QualityControl  1.5.1
O2 Data Quality Control Framework
Mapping.h
1 
6 #ifndef QC_MODULE_MUONCHAMBERS_MAPPING_H
7 #define QC_MODULE_MUONCHAMBERS_MAPPING_H
8 
9 #include "MCHMappingInterface/Segmentation.h"
10 
12 
13 #define MCH_DE_MAX 2000
14 #define MCH_DSID_MAX 2047
15 #define MCH_MAX_CRU_ID 31
16 #define MCH_MAX_CRU_IN_FLP 31
17 #define LINKID_MAX 0x7FF
18 
19 using namespace o2::quality_control::core;
20 
21 namespace o2
22 {
23 namespace quality_control_modules
24 {
25 namespace muonchambers
26 {
27 
28 class MapSolar
29 {
30  public:
31  int mLink; // link ID
32 
33  MapSolar();
34  ~MapSolar();
35 };
36 
38 {
39  public:
40  int mCruId; // CRU ID
41  int mCruLink; // CRU link
42 
43  MapSolarInv();
44  ~MapSolarInv();
45 };
46 
48 {
49  public:
50  int mDE; // detector element
51  int mIndex; // DS index
52  int mBad; // if = 1 bad pad (not used for analysis)
53 
54  MapDualSampa();
55  ~MapDualSampa();
56 };
57 
59 {
60  public:
61  int mLink; // detector element
62  int mAddress; // DS index
63 
65  ~MapDualSampaInv();
66 };
67 
68 class MapPad
69 {
70  public:
71  int fDE; // detector element
72  int fDsID; // electronic address
73  int fAddress; // electronic address
74  int fPadx; // PadX index
75  int fPady; // PadY index
76  float fX; // x coordinate (cm)
77  float fY; // y coordinate (cm)
78  float fSizeX; // dimension along x (cm)
79  float fSizeY; // dimension along y (cm)
80  int fCathode; // bend 'b'(98), nb 'n'(110), undef 'u'(117)
81  int fBad; // if = 1 bad pad (not used for analysis)
82 
83  MapPad();
84  ~MapPad();
85 };
86 
87 class MapCRU
88 {
89 
90  MapSolar mSolarMap[MCH_MAX_CRU_IN_FLP][24];
91  MapSolarInv mSolarMapInv[LINKID_MAX + 1];
92 
93  public:
94  MapCRU();
95  bool readMapping(std::string mapFile);
96  int32_t getLink(int32_t c, int32_t l);
97  bool getLinkInv(uint32_t link_id, int32_t& c, int32_t& l);
98 };
99 
100 class MapFEC
101 {
102 
103  MapDualSampa mDsMap[LINKID_MAX + 1][40];
104  MapDualSampaInv mDsMapInv[MCH_DE_MAX + 1][MCH_DSID_MAX + 1];
105 
106  public:
107  MapFEC();
108  bool readDSMapping(std::string mapFile);
109  bool getDSMapping(uint32_t link_id, uint32_t ds_addr, uint32_t& de, uint32_t& dsid);
110  bool getDSMappingInv(uint32_t de, uint32_t dsid, uint32_t& link_id, uint32_t& ds_addr);
111  bool getPadByLinkID(uint32_t link_id, uint32_t ds_addr, uint32_t dsch, MapPad& pad);
112  bool getPadByDE(uint32_t de, uint32_t dsid, uint32_t dsch, MapPad& pad);
113 };
114 
115 } // namespace muonchambers
116 } // namespace quality_control_modules
117 } // namespace o2
118 
119 #endif // QC_MODULE_MUONCHAMBERS_MAPPING_H
These methods can be used to build a complex processing topology. It spawns 3 separate dummy processi...
Definition: Activity.h:19