ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
TpcDefs.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file TpcDefs.h
1 
7 #ifndef TPC_TPCDEFS_H
8 #define TPC_TPCDEFS_H
9 
10 #include <trackbase/TrkrDefs.h>
11 
12 #include <cstdint> // for uint8_t, uint16_t, uint32_t
13 
20 namespace TpcDefs
21 {
22 // hitsetkey layout:
23 // Tpc specific lower 16 bits
24 // 24 - 32 tracker id
25 // 16 - 24 layer
26 // 8 - 16 sector id
27 // 0 - 8 side
28 static const unsigned int kBitShiftSectorId __attribute__((unused)) = 8;
29 static const unsigned int kBitShiftSide __attribute__((unused)) = 0;
30 
31 // bit shift for hitkey
32 // 16 - 32 pad id
33 // 0 - 16 time bin
34 static const unsigned int kBitShiftPad __attribute__((unused)) = 16;
35 static const unsigned int kBitShiftTBin __attribute__((unused)) = 0;
36 
37 // max values for pad and time bin
38 static const uint16_t MAXPAD __attribute__((unused)) = 1024;
39 static const uint16_t MAXTBIN __attribute__((unused)) = 512;
40 
46 uint8_t getSectorId(TrkrDefs::hitsetkey key);
47 
53 uint8_t getSectorId(TrkrDefs::cluskey key);
54 
60 uint8_t getSide(TrkrDefs::hitsetkey key);
61 
67 uint8_t getSide(TrkrDefs::cluskey key);
68 
74 uint16_t getPad(TrkrDefs::hitkey key);
75 
81 uint16_t getTBin(TrkrDefs::hitkey key);
82 
89 TrkrDefs::hitkey genHitKey(const uint16_t pad, const uint16_t tbin);
90 
101 TrkrDefs::hitsetkey genHitSetKey(const uint8_t lyr, const uint8_t sector, const uint8_t side);
102 
111 TrkrDefs::cluskey genClusKey(const uint8_t lyr, const uint8_t sector, const uint8_t side, const uint32_t clusid);
112 
119 TrkrDefs::cluskey genClusKey(const TrkrDefs::hitsetkey hskey, const uint32_t clusid);
120 
121 } // namespace TpcDefs
122 
123 #endif //TPC_TPCDEFS_H