Belle II Software development
ARICHHvCablesMapping.cc
1/**************************************************************************
2 * basf2 (Belle II Analysis Software Framework) *
3 * Author: The Belle II Collaboration *
4 * *
5 * See git log for contributors and copyright holders. *
6 * This file is licensed under LGPL-3.0, see LICENSE.md. *
7 **************************************************************************/
8
9#include <framework/logging/Logger.h>
10
11#include <arich/dbobjects/ARICHHvCablesMapping.h>
12#include <iostream>
13
14using namespace std;
15using namespace Belle2;
16
18{
19}
20
21int ARICHHvCablesMapping::getModuleID(int sectorID, int cableID, int innerID) const
22{
23 if (sectorID > 6 || sectorID < 1) { B2WARNING("ARICHHvCablesMapping::getcableID: Sector number " << sectorID << " not valid!"); return 0;}
24 if (cableID > 4 || cableID < 1) { B2WARNING("ARICHHvCablesMapping::getcableID: Cable number " << cableID << " not valid!"); return 0;}
25 if (innerID > 20 || innerID < 2) { B2WARNING("ARICHHvCablesMapping::getcableID: Inner cable number " << innerID << " not valid!"); return 0;}
26
27 int module = 0;
28 std::vector<int> position{sectorID, cableID, innerID};
29 for (auto& i : m_module2cable) {
30 if (i.second == position) module = i.first;
31 }
32 return module;
33}
34
35int ARICHHvCablesMapping::getSectorID(int moduleID) const
36{
37 if (moduleID > 420 || moduleID < 1) { B2WARNING("ARICHHvCablesMapping::getcableID: Module number " << moduleID << " not valid!"); return 0;}
38 std::vector<int> sector = m_module2cable.find(moduleID)->second;
39 return (int)sector[0];
40}
41
42int ARICHHvCablesMapping::getCableID(int moduleID) const
43{
44 if (moduleID > 420 || moduleID < 1) { B2WARNING("ARICHHvCablesMapping::getcableID: Module number " << moduleID << " not valid!"); return 0;}
45 std::vector<int> cable = m_module2cable.find(moduleID)->second;
46 return (int)cable[1];
47}
48
49int ARICHHvCablesMapping::getInnerID(int moduleID) const
50{
51 if (moduleID > 420 || moduleID < 1) { B2WARNING("ARICHHvCablesMapping::getcableID: Module number " << moduleID << " not valid!"); return 0;}
52 std::vector<int> inner = m_module2cable.find(moduleID)->second;
53 return (int)inner[2];
54}
55
56void ARICHHvCablesMapping::addMapping(int moduleID, int sectorID, int cableID, int innerID)
57{
58
59 if (moduleID > 420 || moduleID < 1) { B2WARNING("ARICHHvCablesMapping::addMapping: Module number " << moduleID << " not valid!"); }
60 if (sectorID > 6 || sectorID < 1) { B2WARNING("ARICHHvCablesMapping::addMapping: Sector number " << sectorID << " not valid!"); }
61 if (cableID > 8 || cableID < 1) { B2WARNING("ARICHHvCablesMapping::addMapping: Cable number " << cableID << " not valid!"); }
62 if (innerID > 20 || innerID < 2) { B2WARNING("ARICHHvCablesMapping::addMapping: Inner cable number " << innerID << " not valid!"); }
63
64 std::vector<int> cableMap{sectorID, cableID, innerID};
65 m_module2cable.insert(std::pair<int, std::vector<int>>(moduleID, cableMap));
66
67}
68
70{
71
72 for (int moduleID = 1; moduleID < N_MODULES + 1; moduleID++) {
73 cout << " Module " << moduleID << ": sector " << getSectorID(moduleID) << ", cable " << getCableID(
74 moduleID) << ", inner " << getInnerID(moduleID) << endl;
75 }
76
77 cout << endl;
78 cout << "Moving to finding module number... " << endl;
79 int l = 0;
80
81 for (int i = 1; i < 7 ; i++) {
82 for (int j = 1; j < 5 ; j++) {
83 for (int k = 2; k < 21; k++) {
84 if (k == 7) continue;
85 if ((j == 1 || j == 4) && k == 20) continue;
86 std::cout << " Module: " << getModuleID(i, j, k) << ": sector " << i << ", cable " << j << ", inner " << k << std::endl;
87 l++;
88 }
89 }
90 }
91
92 cout << "number of modules = " << l << endl;
93
94}
95
int getCableID(int moduleID) const
Get ID of cable to which module is connected.
int getSectorID(int moduleID) const
Get ID of sector of a cable to which module is connected.
void addMapping(int moduleID, int sectorID, int cableID, int innerID)
Add mapping entry.
int getModuleID(int sectorID, int cableID, int innerID) const
Get ID of module connected to cable in sector.
ARICHHvCablesMapping()
Default constructor.
int getInnerID(int moduleID) const
Get inner cable ID to which module is connected.
void print() const
Pring mapping.
std::map< int, std::vector< int > > m_module2cable
map of modules to cables
Abstract base class for different kinds of events.
STL namespace.