33 "Cabling is not available in "
34 "TgcRDO_Decoder::getDigit()");
38 int offset = 0, offsetORed = 0;
40 const uint16_t sswId = rawData.
sswId();
41 const uint16_t slbId = rawData.
slbId();
42 const uint16_t bitpos = rawData.
bitpos();
46 if ((slbId % 4 == 3 && bitpos >= 77 && bitpos <= 84) ||
47 (slbId % 4 != 3 && bitpos >= 77 && bitpos <= 111)) {
50 }
else if (sswId >= 3 && sswId <= 8) {
51 if ((slbId == 1 && bitpos >= 66 && bitpos <= 73) ||
52 (slbId == 2 && bitpos >= 42 && bitpos <= 63)) {
55 if ((slbId == 1 && bitpos >= 102 && bitpos <= 109) ||
56 (slbId == 2 && bitpos >= 78 && bitpos <= 99)) {
59 if ((slbId == 1 && bitpos >= 74 && bitpos <= 75) ||
60 (slbId == 2 && bitpos >= 40 && bitpos <= 41)) {
63 if ((slbId == 1 && bitpos >= 110 && bitpos <= 111) ||
64 (slbId == 2 && bitpos >= 76 && bitpos <= 77)) {
69 int corr = orFlag ? offsetORed : offset;
73 bool c_found = cabling->getOfflineIDfromReadoutID(
75 bitpos + corr, orFlag);
81 return std::make_unique<TgcDigit>(chanId, rawData.
bcTag());
86 bool orFlag, uint16_t& bctag)
const {
93 "Cabling is not available in "
94 "TgcRDO_Decoder::getOfflineData()");
100 const uint16_t sswId = rawData.
sswId();
101 const uint16_t slbId = rawData.
slbId();
102 const uint16_t bitpos = rawData.
bitpos();
104 int offset = 0, offsetORed = 0;
107 if ((slbId % 4 == 3 && bitpos >= 77 && bitpos <= 84) ||
108 (slbId % 4 != 3 && bitpos >= 77 && bitpos <= 111)) {
111 }
else if (sswId >= 3 && sswId <= 8) {
112 if ((slbId == 1 && bitpos >= 66 && bitpos <= 73) ||
113 (slbId == 2 && bitpos >= 42 && bitpos <= 63)) {
116 if ((slbId == 1 && bitpos >= 102 && bitpos <= 109) ||
117 (slbId == 2 && bitpos >= 78 && bitpos <= 99)) {
120 if ((slbId == 1 && bitpos >= 74 && bitpos <= 75) ||
121 (slbId == 2 && bitpos >= 40 && bitpos <= 41)) {
124 if ((slbId == 1 && bitpos >= 110 && bitpos <= 111) ||
125 (slbId == 2 && bitpos >= 76 && bitpos <= 77)) {
130 int corr = orFlag ? offsetORed : offset;
133 bool c_found = cabling->getOfflineIDfromReadoutID(
135 bitpos + corr, orFlag);
141 bctag = rawData.
bcTag();
virtual Identifier getOfflineData(const EventContext &ctx, const TgcRawData &rawData, bool orFlag, uint16_t &bctag) const override
Get offline ID and bcTag from TGC RDO.