File indexing completed on 2025-08-06 08:18:12
0001 #include "TrkrDefs.h"
0002
0003 #include <bitset>
0004
0005 namespace
0006 {
0007
0008
0009
0010
0011 static constexpr unsigned int kBitShiftTrkrId = 24;
0012 static constexpr unsigned int kBitShiftLayer = 16;
0013
0014
0015
0016
0017 static constexpr unsigned int kBitShiftClusId = 32;
0018 }
0019
0020 void TrkrDefs::printBits(const TrkrDefs::hitsetkey key, std::ostream& os)
0021 {
0022 os << "key: " << std::bitset<32>(key) << std::endl;
0023 }
0024
0025 void TrkrDefs::printBits(const TrkrDefs::cluskey key, std::ostream& os)
0026 {
0027 os << "key: " << std::bitset<64>(key) << std::endl;
0028 }
0029
0030 uint8_t
0031 TrkrDefs::getTrkrId(const TrkrDefs::hitsetkey key)
0032 {
0033 TrkrDefs::hitsetkey tmp = (key >> kBitShiftTrkrId);
0034 return tmp;
0035 }
0036
0037 uint8_t
0038 TrkrDefs::getTrkrId(const TrkrDefs::cluskey key)
0039 {
0040 TrkrDefs::hitsetkey tmp = (key >> kBitShiftClusId);
0041 return getTrkrId(tmp);
0042 }
0043
0044 uint8_t
0045 TrkrDefs::getLayer(const TrkrDefs::hitsetkey key)
0046 {
0047 TrkrDefs::hitsetkey tmp = (key >> kBitShiftLayer);
0048 return tmp;
0049 }
0050
0051 uint8_t
0052 TrkrDefs::getLayer(const TrkrDefs::cluskey key)
0053 {
0054 TrkrDefs::hitsetkey tmp = (key >> kBitShiftClusId);
0055 return getLayer(tmp);
0056 }
0057
0058 uint32_t
0059 TrkrDefs::getClusIndex(const TrkrDefs::cluskey key)
0060 {
0061 return key;
0062 }
0063
0064 uint32_t
0065 TrkrDefs::getHitSetKeyFromClusKey(const TrkrDefs::cluskey key)
0066 {
0067 return (key >> kBitShiftClusId);
0068 }
0069
0070 TrkrDefs::hitsetkey
0071 TrkrDefs::getHitSetKeyLo(const TrkrDefs::TrkrId trkrId)
0072 {
0073 return genHitSetKey(trkrId, 0);
0074 }
0075
0076 TrkrDefs::hitsetkey
0077 TrkrDefs::getHitSetKeyHi(const TrkrDefs::TrkrId trkrId)
0078 {
0079 return genHitSetKey(static_cast<TrkrDefs::TrkrId>(trkrId + 1), 0) - 1;
0080 }
0081
0082 TrkrDefs::hitsetkey
0083 TrkrDefs::getHitSetKeyLo(const TrkrDefs::TrkrId trkrId, const uint8_t lyr)
0084 {
0085 return genHitSetKey(trkrId, lyr);
0086 }
0087
0088 TrkrDefs::hitsetkey
0089 TrkrDefs::getHitSetKeyHi(const TrkrDefs::TrkrId trkrId, const uint8_t lyr)
0090 {
0091 return genHitSetKey(trkrId, lyr + 1) - 1;
0092 }
0093
0094 TrkrDefs::cluskey
0095 TrkrDefs::getClusKeyLo(const TrkrDefs::TrkrId trkrId)
0096 {
0097 const TrkrDefs::cluskey tmp = genHitSetKey(trkrId, 0);
0098 return (tmp << kBitShiftClusId);
0099 }
0100
0101 TrkrDefs::cluskey
0102 TrkrDefs::getClusKeyHi(const TrkrDefs::TrkrId trkrId)
0103 {
0104 const TrkrDefs::cluskey tmp = genHitSetKey(static_cast<TrkrDefs::TrkrId>(trkrId + 1), 0);
0105 return (tmp << kBitShiftClusId) - 1;
0106 }
0107
0108 TrkrDefs::cluskey
0109 TrkrDefs::getClusKeyLo(const TrkrDefs::TrkrId trkrId, const uint8_t lyr)
0110 {
0111 const TrkrDefs::cluskey tmp = genHitSetKey(trkrId, lyr);
0112 return (tmp << kBitShiftClusId);
0113 }
0114
0115 TrkrDefs::cluskey
0116 TrkrDefs::getClusKeyHi(const TrkrDefs::TrkrId trkrId, const uint8_t lyr)
0117 {
0118 const TrkrDefs::cluskey tmp = genHitSetKey(trkrId, lyr + 1);
0119 return (tmp << kBitShiftClusId) - 1;
0120 }
0121
0122 TrkrDefs::hitsetkey
0123 TrkrDefs::genHitSetKey(const TrkrDefs::TrkrId trkrId, const uint8_t lyr)
0124 {
0125 TrkrDefs::hitsetkey tmp = trkrId;
0126 TrkrDefs::hitsetkey key = tmp << kBitShiftTrkrId;
0127 tmp = lyr;
0128 key |= (tmp << kBitShiftLayer);
0129 return key;
0130 }
0131
0132 TrkrDefs::cluskey
0133 TrkrDefs::genClusKey(const TrkrDefs::hitsetkey hskey, const uint32_t clusid)
0134 {
0135 const TrkrDefs::cluskey tmp = hskey;
0136 TrkrDefs::cluskey key = (tmp << kBitShiftClusId);
0137 key |= clusid;
0138 return key;
0139 }
0140
0141 uint8_t TrkrDefs::getPhiElement(TrkrDefs::hitsetkey key)
0142 {
0143 const TrkrDefs::hitsetkey tmp = (key >> TrkrDefs::kBitShiftPhiElement);
0144 return tmp;
0145 }
0146
0147 uint8_t TrkrDefs::getZElement(TrkrDefs::hitsetkey key)
0148 {
0149 const TrkrDefs::hitsetkey tmp = (key >> TrkrDefs::kBitShiftZElement);
0150 return tmp;
0151 }
0152
0153 uint8_t TrkrDefs::getPhiElement(TrkrDefs::cluskey key)
0154 {
0155 const TrkrDefs::hitsetkey tmp = (key >> kBitShiftClusId);
0156 return getPhiElement(tmp);
0157 }
0158
0159 uint8_t TrkrDefs::getZElement(TrkrDefs::cluskey key)
0160 {
0161 const TrkrDefs::hitsetkey tmp = (key >> kBitShiftClusId);
0162 return getZElement(tmp);
0163 }