188 {0x580,
"ConcJet: Input TrigPathA (Jet Cands)"},
189 {0x581,
"ConcJet: Input TrigPathB (HF Rings)"},
190 {0x582,
"ConcJet: Input TrigPathC (MissHt)"},
191 {0x583,
"ConcJet: Jet Cands and Counts Output to GT"},
192 {0x587,
"ConcJet: BX & Orbit Info"},
194 {0x680,
"ConcElec: Input TrigPathA (EM Cands)"},
195 {0x681,
"ConcElec: Input TrigPathB (Et Sums)"},
196 {0x682,
"ConcElec: Input TrigPathC (Ht Sums)"},
197 {0x683,
"ConcElec: EM Cands and Energy Sums Output to GT"},
198 {0x686,
"ConcElec: Test (GT Serdes Loopback)"},
199 {0x687,
"ConcElec: BX & Orbit Info"},
201 {0x800,
"Leaf0ElecPosEtaU1: Sort Input"},
202 {0x803,
"Leaf0ElecPosEtaU1: Sort Output"},
203 {0x804,
"Leaf0ElecPosEtaU1: Raw Input"},
204 {0x880,
"Leaf0ElecPosEtaU2: Sort Input"},
205 {0x883,
"Leaf0ElecPosEtaU2: Sort Output"},
206 {0x884,
"Leaf0ElecPosEtaU2: Raw Input"},
207 {0xc00,
"Leaf0ElecNegEtaU1: Sort Input"},
208 {0xc03,
"Leaf0ElecNegEtaU1: Sort Output"},
209 {0xc04,
"Leaf0ElecNegEtaU1: Raw Input"},
210 {0xc80,
"Leaf0ElecNegEtaU2: Sort Input"},
211 {0xc83,
"Leaf0ElecNegEtaU2: Sort Output"},
212 {0xc84,
"Leaf0ElecNegEtaU2: Raw Input"},
214 {0x300,
"WheelPosEtaJet: Input TrigPathA (Jet Sort)"},
215 {0x301,
"WheelPosEtaJet: Input TrigPathB (MissHt)"},
216 {0x303,
"WheelPosEtaJet: Output TrigPathA (Jet Sort)"},
217 {0x305,
"WheelPosEtaJet: Output TrigPathB (MissHt)"},
218 {0x306,
"WheelPosEtaJet: Test (deprecated)"},
219 {0x307,
"WheelPosEtaJet: Info (deprecated)"},
221 {0x380,
"WheelPosEtaEnergy: Input TrigPathA (Et)"},
222 {0x381,
"WheelPosEtaEnergy: Input TrigPathB (Ht)"},
223 {0x383,
"WheelPosEtaEnergy: Output TrigPathA (Et)"},
224 {0x385,
"WheelPosEtaEnergy: Output TrigPathB (Ht)"},
225 {0x386,
"WheelPosEtaEnergy: Test"},
226 {0x387,
"WheelPosEtaEnergy: BX & Orbit Info"},
228 {0x700,
"WheelNegEtaJet: Input TrigPathA (Jet Sort)"},
229 {0x701,
"WheelNegEtaJet: Input TrigPathB (MissHt)"},
230 {0x703,
"WheelNegEtaJet: Output TrigPathA (Jet Sort)"},
231 {0x705,
"WheelNegEtaJet: Output TrigPathB (MissHt)"},
232 {0x706,
"WheelNegEtaJet: Test (deprecated)"},
233 {0x707,
"WheelNegEtaJet: Info (deprecated)"},
235 {0x780,
"WheelNegEtaEnergy: Input TrigPathA (Et)"},
236 {0x781,
"WheelNegEtaEnergy: Input TrigPathB (Ht)"},
237 {0x783,
"WheelNegEtaEnergy: Output TrigPathA (Et)"},
238 {0x785,
"WheelNegEtaEnergy: Output TrigPathB (Ht)"},
239 {0x786,
"WheelNegEtaEnergy: Test"},
240 {0x787,
"WheelNegEtaEnergy: BX & Orbit Info"},
242 {0x900,
"Leaf1JetPosEtaU1: JF2 Input"},
243 {0x901,
"Leaf1JetPosEtaU1: JF2 Shared Received"},
244 {0x902,
"Leaf1JetPosEtaU1: JF2 Shared Sent"},
245 {0x903,
"Leaf1JetPosEtaU1: JF2 Output"},
246 {0x904,
"Leaf1JetPosEtaU1: JF2 Raw Input"},
247 {0x908,
"Leaf1JetPosEtaU1: JF3 Input"},
248 {0x909,
"Leaf1JetPosEtaU1: JF3 Shared Received"},
249 {0x90a,
"Leaf1JetPosEtaU1: JF3 Shared Sent"},
250 {0x90b,
"Leaf1JetPosEtaU1: JF3 Output"},
251 {0x90c,
"Leaf1JetPosEtaU1: JF3 Raw Input"},
252 {0x980,
"Leaf1JetPosEtaU2: Eta0 Input"},
253 {0x984,
"Leaf1JetPosEtaU2: Eta0 Raw Input"},
254 {0x988,
"Leaf1JetPosEtaU2: JF1 Input"},
255 {0x989,
"Leaf1JetPosEtaU2: JF1 Shared Received"},
256 {0x98a,
"Leaf1JetPosEtaU2: JF1 Shared Sent"},
257 {0x98b,
"Leaf1JetPosEtaU2: JF1 Output"},
258 {0x98c,
"Leaf1JetPosEtaU2: JF1 Raw Input"},
259 {0xa00,
"Leaf2JetPosEtaU1: JF2 Input"},
260 {0xa01,
"Leaf2JetPosEtaU1: JF2 Shared Received"},
261 {0xa02,
"Leaf2JetPosEtaU1: JF2 Shared Sent"},
262 {0xa03,
"Leaf2JetPosEtaU1: JF2 Output"},
263 {0xa04,
"Leaf2JetPosEtaU1: JF2 Raw Input"},
264 {0xa08,
"Leaf2JetPosEtaU1: JF3 Input"},
265 {0xa09,
"Leaf2JetPosEtaU1: JF3 Shared Received"},
266 {0xa0a,
"Leaf2JetPosEtaU1: JF3 Shared Sent"},
267 {0xa0b,
"Leaf2JetPosEtaU1: JF3 Output"},
268 {0xa0c,
"Leaf2JetPosEtaU1: JF3 Raw Input"},
269 {0xa80,
"Leaf2JetPosEtaU2: Eta0 Input"},
270 {0xa84,
"Leaf2JetPosEtaU2: Eta0 Raw Input"},
271 {0xa88,
"Leaf2JetPosEtaU2: JF1 Input"},
272 {0xa89,
"Leaf2JetPosEtaU2: JF1 Shared Received"},
273 {0xa8a,
"Leaf2JetPosEtaU2: JF1 Shared Sent"},
274 {0xa8b,
"Leaf2JetPosEtaU2: JF1 Output"},
275 {0xa8c,
"Leaf2JetPosEtaU2: JF1 Raw Input"},
276 {0xb00,
"Leaf3JetPosEtaU1: JF2 Input"},
277 {0xb01,
"Leaf3JetPosEtaU1: JF2 Shared Received"},
278 {0xb02,
"Leaf3JetPosEtaU1: JF2 Shared Sent"},
279 {0xb03,
"Leaf3JetPosEtaU1: JF2 Output"},
280 {0xb04,
"Leaf3JetPosEtaU1: JF2 Raw Input"},
281 {0xb08,
"Leaf3JetPosEtaU1: JF3 Input"},
282 {0xb09,
"Leaf3JetPosEtaU1: JF3 Shared Received"},
283 {0xb0a,
"Leaf3JetPosEtaU1: JF3 Shared Sent"},
284 {0xb0b,
"Leaf3JetPosEtaU1: JF3 Output"},
285 {0xb0c,
"Leaf3JetPosEtaU1: JF3 Raw Input"},
286 {0xb80,
"Leaf3JetPosEtaU2: Eta0 Input"},
287 {0xb84,
"Leaf3JetPosEtaU2: Eta0 Raw Input"},
288 {0xb88,
"Leaf3JetPosEtaU2: JF1 Input"},
289 {0xb89,
"Leaf3JetPosEtaU2: JF1 Shared Received"},
290 {0xb8a,
"Leaf3JetPosEtaU2: JF1 Shared Sent"},
291 {0xb8b,
"Leaf3JetPosEtaU2: JF1 Output"},
292 {0xb8c,
"Leaf3JetPosEtaU2: JF1 Raw Input"},
294 {0xd00,
"Leaf1JetNegEtaU1: JF2 Input"},
295 {0xd01,
"Leaf1JetNegEtaU1: JF2 Shared Received"},
296 {0xd02,
"Leaf1JetNegEtaU1: JF2 Shared Sent"},
297 {0xd03,
"Leaf1JetNegEtaU1: JF2 Output"},
298 {0xd04,
"Leaf1JetNegEtaU1: JF2 Raw Input"},
299 {0xd08,
"Leaf1JetNegEtaU1: JF3 Input"},
300 {0xd09,
"Leaf1JetNegEtaU1: JF3 Shared Received"},
301 {0xd0a,
"Leaf1JetNegEtaU1: JF3 Shared Sent"},
302 {0xd0b,
"Leaf1JetNegEtaU1: JF3 Output"},
303 {0xd0c,
"Leaf1JetNegEtaU1: JF3 Raw Input"},
304 {0xd80,
"Leaf1JetNegEtaU2: Eta0 Input"},
305 {0xd84,
"Leaf1JetNegEtaU2: Eta0 Raw Input"},
306 {0xd88,
"Leaf1JetNegEtaU2: JF1 Input"},
307 {0xd89,
"Leaf1JetNegEtaU2: JF1 Shared Received"},
308 {0xd8a,
"Leaf1JetNegEtaU2: JF1 Shared Sent"},
309 {0xd8b,
"Leaf1JetNegEtaU2: JF1 Output"},
310 {0xd8c,
"Leaf1JetNegEtaU2: JF1 Raw Input"},
311 {0xe00,
"Leaf2JetNegEtaU1: JF2 Input"},
312 {0xe01,
"Leaf2JetNegEtaU1: JF2 Shared Received"},
313 {0xe02,
"Leaf2JetNegEtaU1: JF2 Shared Sent"},
314 {0xe03,
"Leaf2JetNegEtaU1: JF2 Output"},
315 {0xe04,
"Leaf2JetNegEtaU1: JF2 Raw Input"},
316 {0xe08,
"Leaf2JetNegEtaU1: JF3 Input"},
317 {0xe09,
"Leaf2JetNegEtaU1: JF3 Shared Received"},
318 {0xe0a,
"Leaf2JetNegEtaU1: JF3 Shared Sent"},
319 {0xe0b,
"Leaf2JetNegEtaU1: JF3 Output"},
320 {0xe0c,
"Leaf2JetNegEtaU1: JF3 Raw Input"},
321 {0xe80,
"Leaf2JetNegEtaU2: Eta0 Input"},
322 {0xe84,
"Leaf2JetNegEtaU2: Eta0 Raw Input"},
323 {0xe88,
"Leaf2JetNegEtaU2: JF1 Input"},
324 {0xe89,
"Leaf2JetNegEtaU2: JF1 Shared Received"},
325 {0xe8a,
"Leaf2JetNegEtaU2: JF1 Shared Sent"},
326 {0xe8b,
"Leaf2JetNegEtaU2: JF1 Output"},
327 {0xe8c,
"Leaf2JetNegEtaU2: JF1 Raw Input"},
328 {0xf00,
"Leaf3JetNegEtaU1: JF2 Input"},
329 {0xf01,
"Leaf3JetNegEtaU1: JF2 Shared Received"},
330 {0xf02,
"Leaf3JetNegEtaU1: JF2 Shared Sent"},
331 {0xf03,
"Leaf3JetNegEtaU1: JF2 Output"},
332 {0xf04,
"Leaf3JetNegEtaU1: JF2 Raw Input"},
333 {0xf08,
"Leaf3JetNegEtaU1: JF3 Input"},
334 {0xf09,
"Leaf3JetNegEtaU1: JF3 Shared Received"},
335 {0xf0a,
"Leaf3JetNegEtaU1: JF3 Shared Sent"},
336 {0xf0b,
"Leaf3JetNegEtaU1: JF3 Output"},
337 {0xf0c,
"Leaf3JetNegEtaU1: JF3 Raw Input"},
338 {0xf80,
"Leaf3JetNegEtaU2: Eta0 Input"},
339 {0xf84,
"Leaf3JetNegEtaU2: Eta0 Raw Input"},
340 {0xf88,
"Leaf3JetNegEtaU2: JF1 Input"},
341 {0xf89,
"Leaf3JetNegEtaU2: JF1 Shared Received"},
342 {0xf8a,
"Leaf3JetNegEtaU2: JF1 Shared Sent"},
343 {0xf8b,
"Leaf3JetNegEtaU2: JF1 Output"},
344 {0xf8c,
"Leaf3JetNegEtaU2: JF1 Raw Input"}
543 {0x680 , IsoBoundaryPair(8,15)},
544 {0x800 , IsoBoundaryPair(0, 9)},
545 {0x803 , IsoBoundaryPair(0, 1)},
546 {0x880 , IsoBoundaryPair(0, 7)},
547 {0x883 , IsoBoundaryPair(0, 1)},
548 {0xc00 , IsoBoundaryPair(0, 9)},
549 {0xc03 , IsoBoundaryPair(0, 1)},
550 {0xc80 , IsoBoundaryPair(0, 7)},
551 {0xc83 , IsoBoundaryPair(0, 1)}
561 m_numberOfGctSamplesToUnpack(numberOfGctSamplesToUnpack),
562 m_numberOfRctSamplesToUnpack(numberOfRctSamplesToUnpack)
573 uint32_t hdr = data[0] + (data[1]<<8) + (data[2]<<16) + (data[3]<<24);
585 unsigned blockId = hdr & 0xfff;
586 unsigned blockLength = 0;
587 unsigned nSamples = (hdr>>16) & 0xf;
588 unsigned bxId = (hdr>>20) & 0xfff;
589 unsigned eventId = (hdr>>12) & 0xf;
592 if(valid) { blockLength =
blockLengthMap().find(blockId)->second; }
594 return GctBlockHeader(blockId, blockLength, nSamples, bxId, eventId, valid);
601 if ( hdr.
nSamples() < 1 ) {
return true; }
617 const uint32_t nSamples,
619 const uint32_t eventId)
const
631 return ((bxId & 0xfff) << 20) | ((nSamples & 0xf) << 16) | ((eventId & 0xf) << 12) | (blockId & 0xfff);
644 const unsigned int id = hdr.
blockId();
645 const unsigned int nSamples = hdr.
nSamples();
649 const uint16_t * p16 =
reinterpret_cast<const uint16_t *
>(
d);
653 const unsigned int emCandCategoryOffset = nSamples * 4;
654 const unsigned int timeSampleOffset = nSamples * 2;
657 unsigned int centralSample = (unsigned)std::ceil((
double)nSamples/2.)-1;
658 unsigned int firstSample = centralSample-(unsigned)std::ceil((
double)samplesToUnpack/2.)+1;
659 unsigned int lastSample = centralSample+(unsigned)(samplesToUnpack/2);
661 LogDebug(
"GCT") <<
"Unpacking output EM. Central sample=" << centralSample <<
" first=" << firstSample <<
" last=" <<
lastSample;
663 for (
unsigned int iso=0; iso<2; ++iso)
665 bool isoFlag = (iso==1);
672 for (
unsigned int bx=firstSample; bx<=
lastSample; ++bx)
676 const unsigned int cand0Offset = iso*emCandCategoryOffset + bx*2;
678 em->push_back(
L1GctEmCand(p16[cand0Offset], isoFlag,
id, 0, (
int)bx-(
int)centralSample));
679 em->push_back(
L1GctEmCand(p16[cand0Offset + timeSampleOffset], isoFlag,
id, 1, (
int)bx-(
int)centralSample));
680 em->push_back(
L1GctEmCand(p16[cand0Offset + 1], isoFlag,
id, 2, (
int)bx-(
int)centralSample));
681 em->push_back(
L1GctEmCand(p16[cand0Offset + timeSampleOffset + 1], isoFlag,
id, 3, (
int)bx-(
int)centralSample));
683 LogDebug(
"GCT") <<
"Unpacked a bunch of EG. iso=" << iso <<
" bx=" << bx << std::endl;
687 p16 += emCandCategoryOffset * 2;
691 for (
unsigned int bx=firstSample; bx<=
lastSample; ++bx)
693 const unsigned int offset = bx*2;
701 const uint32_t * p32 =
reinterpret_cast<const uint32_t *
>(p16);
703 for (
unsigned int bx=firstSample; bx<=
lastSample; ++bx) {
705 LogDebug(
"GCT") <<
"Unpacked energy sums bx=" << bx << std::endl;
713 const unsigned int id = hdr.
blockId();
714 const unsigned int nSamples = hdr.
nSamples();
718 const uint16_t * p16 =
reinterpret_cast<const uint16_t *
>(
d);
722 const unsigned int jetCandCategoryOffset = nSamples * 4;
723 const unsigned int timeSampleOffset = nSamples * 2;
726 unsigned int centralSample = (unsigned)std::ceil((
double)nSamples/2.)-1;
727 unsigned int firstSample = centralSample-(unsigned)std::ceil((
double)samplesToUnpack/2.)+1;
728 unsigned int lastSample = centralSample+(unsigned)(samplesToUnpack/2);
730 LogDebug(
"GCT") <<
"Unpacking output Jets. Samples to unpack=" << samplesToUnpack <<
" central=" << centralSample <<
" first=" << firstSample <<
" last=" <<
lastSample;
742 for(
unsigned int bx = firstSample ; bx <=
lastSample; ++bx)
745 const unsigned int cand0Offset = iCat*jetCandCategoryOffset + bx*2;
748 jets->push_back(
L1GctJetCand(p16[cand0Offset], tauflag, forwardFlag,
id, 0, (
int)bx-(
int)centralSample));
750 jets->push_back(
L1GctJetCand(p16[cand0Offset + timeSampleOffset], tauflag, forwardFlag,
id, 1, (
int)bx-(
int)centralSample));
752 jets->push_back(
L1GctJetCand(p16[cand0Offset + 1], tauflag, forwardFlag,
id, 2, (
int)bx-(
int)centralSample));
754 jets->push_back(
L1GctJetCand(p16[cand0Offset + timeSampleOffset + 1], tauflag, forwardFlag,
id, 3, (
int)bx-(
int)centralSample));
758 p16 += NUM_JET_CATEGORIES * jetCandCategoryOffset;
763 const uint32_t * p32 =
reinterpret_cast<const uint32_t *
>(p16);
765 for (
unsigned int bx=firstSample; bx<=
lastSample; ++bx)
780 if(
hltMode()) {
LogDebug(
"GCT") <<
"HLT mode - skipping unpack of internal EM Cands";
return; }
782 unsigned int id = hdr.
blockId();
783 unsigned int nSamples = hdr.
nSamples();
790 unsigned int lowerIsoPairBound =
found->second.first;
791 unsigned int upperIsoPairBound =
found->second.second;
794 const uint16_t *
p =
reinterpret_cast<const uint16_t *
>(
d);
797 for(
unsigned int bx=0; bx < nSamples; ++bx)
800 for(
unsigned int candPair = 0 ; candPair < numCandPairs ; ++candPair)
803 bool iso = ((candPair>=lowerIsoPairBound) && (candPair<=upperIsoPairBound));
806 for(
unsigned int i = 0 ;
i < 2 ; ++
i)
808 unsigned offset = 2*(bx + candPair*nSamples) +
i;
809 uint16_t candRaw = p[
offset];
822 if(
hltMode()) {
LogDebug(
"GCT") <<
"HLT mode - skipping unpack of RCT EM Cands";
return; }
824 unsigned int id = hdr.
blockId();
825 unsigned int nSamples = hdr.
nSamples();
829 const uint16_t *
p =
reinterpret_cast<const uint16_t *
>(
d);
833 uint16_t eIsoRank[4];
834 uint16_t eIsoCard[4];
836 uint16_t eNonIsoRank[4];
837 uint16_t eNonIsoCard[4];
838 uint16_t eNonIsoRgn[4];
839 uint16_t MIPbits[7][2];
840 uint16_t QBits[7][2];
847 for (
unsigned int crate=
found->second; crate<found->
second+length/3; ++crate) {
850 for (
unsigned short iSfp=0 ; iSfp<4 ; ++iSfp) {
851 for (
unsigned short cyc=0 ; cyc<2 ; ++cyc) {
852 if (iSfp==0) { sfp[cyc][iSfp] = 0; }
858 p = p + 2*(nSamples-1);
862 srcCardRouting().
SFPtoEMU(eIsoRank, eIsoCard, eIsoRgn, eNonIsoRank, eNonIsoCard, eNonIsoRgn, MIPbits, QBits, sfp);
865 for (
unsigned short int i=0;
i<4; ++
i) {
868 for (
unsigned short int i=0;
i<4; ++
i) {
869 colls()->
rctEm()->push_back(
L1CaloEmCand( eNonIsoRank[
i], eNonIsoRgn[i], eNonIsoCard[i], crate,
false, i, bx) );
878 if(
hltMode()) {
LogDebug(
"GCT") <<
"HLT mode - skipping unpack of RCT Regions";
return; }
880 unsigned int id = hdr.
blockId();
881 unsigned int nSamples = hdr.
nSamples();
889 unsigned int crate=
found->second;
892 const uint16_t *
p =
reinterpret_cast<const uint16_t *
>(
d);
898 for (
unsigned int i=0;
i<length; ++
i)
900 for (uint16_t bx=0; bx<nSamples; ++bx)
905 iphi = 2*((11-crate)%9);
909 iphi = 2*((20-crate)%9);
918 if (iphi>0) { iphi-=1; }
929 if (iphi>0) { iphi-=1; }
947 if(
hltMode()) {
LogDebug(
"GCT") <<
"HLT mode - skipping unpack of GCT Fibres";
return; }
949 unsigned int id = hdr.
blockId();
950 unsigned int nSamples = hdr.
nSamples();
954 const uint32_t *
p =
reinterpret_cast<const uint32_t *
>(
d);
956 for (
unsigned int i=0;
i<length; ++
i) {
957 for (
unsigned int bx=0; bx<nSamples; ++bx) {
974 if(
hltMode()) {
LogDebug(
"GCT") <<
"HLT mode - skipping unpack of internal Et Sums";
return; }
976 unsigned int id = hdr.
blockId();
977 unsigned int nSamples = hdr.
nSamples();
981 const uint32_t *
p =
reinterpret_cast<const uint32_t *
>(
d);
983 for (
unsigned int i=0;
i<length; ++
i) {
985 for (
unsigned int bx=0; bx<nSamples; ++bx) {
995 if(
hltMode()) {
LogDebug(
"GCT") <<
"HLT mode - skipping unpack of internal Jet Cands";
return; }
997 unsigned int id = hdr.
blockId();
998 unsigned int nSamples = hdr.
nSamples();
1002 const uint32_t *
p =
reinterpret_cast<const uint32_t *
>(
d);
1004 for (
unsigned int i=0;
i<length; ++
i) {
1006 for (
unsigned int bx=0; bx<nSamples; ++bx) {
1021 if(
hltMode()) {
LogDebug(
"GCT") <<
"HLT mode - skipping unpack of internal Jet Cands";
return; }
1023 unsigned int id = hdr.
blockId();
1024 unsigned int nSamples = hdr.
nSamples();
1028 const uint16_t *
p =
reinterpret_cast<const uint16_t *
>(
d);
1030 for (
unsigned int i=0;
i<length; ++
i) {
1032 for (
unsigned int bx=0; bx<nSamples; ++bx) {
1044 if(
hltMode()) {
LogDebug(
"GCT") <<
"HLT mode - skipping unpack of internal Jet Cands";
return; }
1046 unsigned int id = hdr.
blockId();
1047 unsigned int nSamples = hdr.
nSamples();
1051 const uint16_t *
p =
reinterpret_cast<const uint16_t *
>(
d);
1053 for (
unsigned int i=0;
i<length; ++
i) {
1055 for (
unsigned int bx=0; bx<nSamples; ++bx) {
1067 if(
hltMode()) {
LogDebug(
"GCT") <<
"HLT mode - skipping unpack of internal Jet Cands";
return; }
1069 unsigned int id = hdr.
blockId();
1070 unsigned int nSamples = hdr.
nSamples();
1074 const uint16_t *
p =
reinterpret_cast<const uint16_t *
>(
d);
1076 for (
unsigned int i=0;
i<length; ++
i) {
1078 for (
unsigned int bx=0; bx<nSamples; ++bx) {
1090 if(
hltMode()) {
LogDebug(
"GCT") <<
"HLT mode - skipping unpack of internal HF ring data";
return; }
1092 unsigned int id = hdr.
blockId();
1093 unsigned int nSamples = hdr.
nSamples();
1097 const uint32_t *
p =
reinterpret_cast<const uint32_t *
>(
d);
1099 for (
unsigned int i=0;
i<length/2; ++
i) {
1101 for (
unsigned int bx=0; bx<nSamples; ++bx) {
1105 for (
unsigned int bx=0; bx<nSamples; ++bx) {
1115 if(
hltMode()) {
LogDebug(
"GCT") <<
"HLT mode - skipping unpack of wheel input internal Et sums and HF ring data";
return; }
1117 unsigned int id = hdr.
blockId();
1118 unsigned int nSamples = hdr.
nSamples();
1122 const uint32_t *
p =
reinterpret_cast<const uint32_t *
>(
d);
1124 for (
unsigned int i=0;
i<length; ++
i) {
1126 for (
unsigned int bx=0; bx<nSamples; ++bx) {
1129 }
else if (
i>2 &&
i<9) {
1131 }
else if (
i>8 &&
i<15) {
1144 if(
hltMode()) {
LogDebug(
"GCT") <<
"HLT mode - skipping unpack of wheel output internal Et sums and HF ring data";
return; }
1146 unsigned int id = hdr.
blockId();
1147 unsigned int nSamples = hdr.
nSamples();
1151 const uint32_t *
p =
reinterpret_cast<const uint32_t *
>(
d);
1153 for (
unsigned int i=0;
i<length; ++
i) {
1155 for (
unsigned int bx=0; bx<nSamples; ++bx) {
1158 }
else if (
i>0 &&
i<3) {
1160 }
else if (
i>2 &&
i<5) {
1173 if(
hltMode()) {
LogDebug(
"GCT") <<
"HLT mode - skipping unpack of pre-wheel internal Missing Ht data";
return; }
1175 unsigned int id = hdr.
blockId();
1176 unsigned int nSamples = hdr.
nSamples();
1180 const uint32_t *
p =
reinterpret_cast<const uint32_t *
>(
d);
1182 for (
unsigned int iLength=0; iLength < length; ++iLength)
1185 for (
unsigned int bx=0; bx<nSamples; ++bx)
1196 if(
hltMode()) {
LogDebug(
"GCT") <<
"HLT mode - skipping unpack of post-wheel internal Missing Ht data";
return; }
1198 unsigned int id = hdr.
blockId();
1199 unsigned int nSamples = hdr.
nSamples();
1203 const uint32_t *
p =
reinterpret_cast<const uint32_t *
>(
d);
1205 for (
unsigned int iLength=0; iLength < length; ++iLength)
1208 for (
unsigned int bx=0; bx<nSamples; ++bx)
static L1GctInternEtSum fromMissEtxOrEty(uint16_t capBlock, uint16_t capIndex, int16_t bx, uint32_t data)
L1GctHFBitCountsCollection *const gctHfBitCounts() const
GCT output: Hadronic-Forward bit-counts collection.
static L1GctInternJetData fromJetPreCluster(L1CaloRegionDetId rgn, uint16_t capBlock, uint16_t capIndex, int16_t bx, uint32_t data)
construct from "jet_precluster"
L1GctEmCandCollection *const gctNonIsoEm() const
GCT output: Non-isolated EM candidate collection.
Global Calorimeter Trigger SC -> CC fibre data word.
L1CaloEmCollection *const rctEm() const
Input electrons from the RCT to the GCT.
L1GctHtMissCollection *const gctHtMiss() const
GCT output: Missing Ht collection.
void SFPtoEMU(unsigned short(&eIsoRank)[4], unsigned short(&eIsoCardId)[4], unsigned short(&eIsoRegionId)[4], unsigned short(&eNonIsoRank)[4], unsigned short(&eNonIsoCardId)[4], unsigned short(&eNonIsoRegionId)[4], unsigned short(&MIPbits)[7][2], unsigned short(&Qbits)[7][2], unsigned short(&SFP)[2][4]) const
Level-1 Trigger jet candidate.
Level-1 Region Calorimeter Trigger EM candidate.
Persistable copy of missing Et measured at Level-1.
tuple unpackSharedRegions
static L1GctInternJetData fromJetClusterMinimal(L1CaloRegionDetId rgn, uint16_t capBlock, uint16_t capIndex, int16_t bx, uint32_t data)
construct from "jet_cluster_minimal"
static L1GctInternHFData fromConcBitCounts(const uint16_t capBlock, const uint16_t capIndex, const int16_t bx, const uint32_t data)
Level-1 Trigger EM candidate at output of GCT.
static L1GctInternEtSum fromTotalEtOrHt(uint16_t capBlock, uint16_t capIndex, int16_t bx, uint32_t data)
L1GctInternHFDataCollection *const gctInternHFData() const
Internal Hadronic-Forward bit-counts/ring-sums data collection.
U second(std::pair< T, U > const &p)
std::vector< L1GctJetCand > L1GctJetCandCollection
static L1GctInternHtMiss unpackerMissHtxHty(const uint16_t capBlock, const uint16_t capIndex, const int16_t bx, const uint32_t data)
Named ctor for making missing Ht x & y components object from unpacker raw data (wheel input)...
L1GctInternEtSumCollection *const gctInternEtSums() const
Internal Et Sum collection.
L1GctEtTotalCollection *const gctEtTot() const
GCT output: Total Et collection.
static L1GctInternHtMiss unpackerMissHty(const uint16_t capBlock, const uint16_t capIndex, const int16_t bx, const uint32_t data)
Named ctor for making missing Ht y-component object from unpacker raw data.
static L1GctInternHFData fromConcRingSums(const uint16_t capBlock, const uint16_t capIndex, const int16_t bx, const uint32_t data)
L1GctInternHtMissCollection *const gctInternHtMiss() const
Internal missing Ht collection.
Persistable copy of total Et measured at Level-1.
tuple numberOfRctSamplesToUnpack
L1GctEtMissCollection *const gctEtMiss() const
GCT output: Missing Et collection.
tuple numberOfGctSamplesToUnpack
static L1GctInternEtSum fromJetMissEt(uint16_t capBlock, uint16_t capIndex, int16_t bx, uint32_t data)
static L1GctInternHFData fromWheelRingSums(const uint16_t capBlock, const uint16_t capIndex, const int16_t bx, const uint32_t data)
Persistable copy of total Ht measured at Level-1.
static L1GctHFRingEtSums fromConcRingSums(const uint16_t capBlock, const uint16_t capIndex, const int16_t bx, const uint32_t data)
static L1GctInternJetData fromJetCluster(L1CaloRegionDetId rgn, uint16_t capBlock, uint16_t capIndex, int16_t bx, uint32_t data)
construct from "jet_cluster"
L1GctHFRingEtSumsCollection *const gctHfRingEtSums() const
GCT output: Hadronic-Forward ring-sums collection.
Persistable copy of missing Et measured at Level-1.
static L1GctInternJetData fromGctTrigObject(L1CaloRegionDetId rgn, uint16_t capBlock, uint16_t capIndex, int16_t bx, uint32_t data)
construct from "gct_trig_object"
L1GctFibreCollection *const gctFibres() const
Raw fibre input to the GCT.
L1GctEmCandCollection *const gctIsoEm() const
GCT output: Isolated EM candidate collection.
L1GctInternJetDataCollection *const gctInternJets() const
Internal Jet candidate collection.
static L1GctInternHtMiss unpackerMissHtx(const uint16_t capBlock, const uint16_t capIndex, const int16_t bx, const uint32_t data)
Named ctor for making missing Ht x-component object from unpacker raw data.
L1GctEtHadCollection *const gctEtHad() const
GCT output: Hadronic transverse-energy (Ht) collection.
static L1GctHFBitCounts fromConcHFBitCounts(const uint16_t capBlock, const uint16_t capIndex, const int16_t bx, const uint32_t data)
static L1GctInternHFData fromWheelBitCounts(const uint16_t capBlock, const uint16_t capIndex, const int16_t bx, const uint32_t data)
L1GctInternEmCandCollection *const gctInternEm() const
Internal EM candidate collection.
static L1CaloRegion makeRegionFromUnpacker(const uint16_t data, const unsigned ieta, const unsigned iphi, const uint16_t block, const uint16_t index, const int16_t bx)
constructor from raw data and GCT indices for unpacking
static L1GctInternEtSum fromJetTotEt(uint16_t capBlock, uint16_t capIndex, int16_t bx, uint32_t data)
L1CaloRegionCollection *const rctCalo() const
Input calo regions from the RCT to the GCT.
std::vector< L1GctEmCand > L1GctEmCandCollection
static L1GctInternEtSum fromJetTotHt(uint16_t capBlock, uint16_t capIndex, int16_t bx, uint32_t data)