107 {
108
110 if(!this_jTowerContainer.isValid()){
112 return StatusCode::FAILURE;
113 }
114
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149 int fcal2Eta = 3; int fcal2Phi = 0; int fcal2Mod = 1100000;
150 int initialFCAL2 =
calcTowerID(fcal2Eta,fcal2Phi,fcal2Mod);
151 int fcal1Eta = 7; int fcal1Phi = 0; int fcal1Mod = 900000;
152 int initialFCAL1 =
calcTowerID(fcal1Eta,fcal1Phi,fcal1Mod);
153 int fcal0Eta = 11; int fcal0Phi = 0; int fcal0Mod = 700000;
154 int initialFCAL0 =
calcTowerID(fcal0Eta,fcal0Phi,fcal0Mod);
155 int emecEta = 28; int emecPhi = 0; int emecMod = 500000;
156 int initialEMEC =
calcTowerID(emecEta,emecPhi,emecMod);
157 int transEta = 14; int transPhi = 0; int transMod = 300000;
158 int initialTRANS =
calcTowerID(transEta,transPhi,transMod);
159 int embEta = 13; int embPhi = 0; int embMod = 100000;
160 int initialEMB =
calcTowerID(embEta,embPhi,embMod);
161
162 SG::ReadCondHandle<jFEXDBCondData> myDBTool = SG::ReadCondHandle<jFEXDBCondData>(
m_DBToolKey );
165 return StatusCode::FAILURE;
166 }
167
168 unsigned int evtTimeStamp = Gaudi::Hive::currentContext().eventID().time_stamp();
169
171
172 thisJFEX = 0;
173
174
175
176
177 std::unordered_map<int,jTower> tmp_jTowersColl_subset_ENDCAP_AND_EMB_AND_FCAL;
178 tmp_jTowersColl_subset_ENDCAP_AND_EMB_AND_FCAL.reserve(1600);
179
180
182
183
186 tmp_jTowersIDs_subset_ENDCAP_AND_EMB_AND_FCAL[
i][j] = 0;
187 }
188 }
189
190 int rows =
sizeof tmp_jTowersIDs_subset_ENDCAP_AND_EMB_AND_FCAL /
sizeof tmp_jTowersIDs_subset_ENDCAP_AND_EMB_AND_FCAL[0];
191 int cols =
sizeof tmp_jTowersIDs_subset_ENDCAP_AND_EMB_AND_FCAL[0] /
sizeof tmp_jTowersIDs_subset_ENDCAP_AND_EMB_AND_FCAL[0][0];
192
193
194 for(int thisCol=0; thisCol<4; thisCol++){
195 for(
int thisRow=0; thisRow<
rows/4; thisRow++){
196
197 int towerid = initialFCAL2 - (thisCol * 64) + thisRow;
198
199 tmp_jTowersIDs_subset_ENDCAP_AND_EMB_AND_FCAL[thisRow][thisCol] = towerid;
200 tmp_jTowersColl_subset_ENDCAP_AND_EMB_AND_FCAL.insert( std::unordered_map<int, jTower>::value_type(towerid, *(this_jTowerContainer->findTower(towerid))));
201
202 }
203 }
204
205
206
207 for(int thisCol=4; thisCol<12; thisCol++){
208 for(
int thisRow=0; thisRow<
rows/4; thisRow++){
209
210 int towerid = initialFCAL1 - ((thisCol-4) * 64) + thisRow;
211
212 tmp_jTowersIDs_subset_ENDCAP_AND_EMB_AND_FCAL[thisRow][thisCol] = towerid;
213 tmp_jTowersColl_subset_ENDCAP_AND_EMB_AND_FCAL.insert( std::unordered_map<int, jTower>::value_type(towerid, *(this_jTowerContainer->findTower(towerid))));
214
215 }
216 }
217
218
219
220 for(int thisCol=12; thisCol<24; thisCol++){
221 for(
int thisRow=0; thisRow<
rows/4; thisRow++){
222
223 int towerid = initialFCAL0 - ((thisCol-12) * 64) + thisRow;
224
225 tmp_jTowersIDs_subset_ENDCAP_AND_EMB_AND_FCAL[thisRow][thisCol] = towerid;
226 tmp_jTowersColl_subset_ENDCAP_AND_EMB_AND_FCAL.insert( std::unordered_map<int, jTower>::value_type(towerid, *(this_jTowerContainer->findTower(towerid))));
227
228 }
229 }
230
231
232
233 for(int thisCol=24; thisCol<28; thisCol++){
234 for(
int thisRow=0; thisRow<
rows/2; thisRow++){
235
236 int towerid = initialEMEC - ((thisCol-24) * 64) + thisRow;
237
238 tmp_jTowersIDs_subset_ENDCAP_AND_EMB_AND_FCAL[thisRow][thisCol] = towerid;
239 tmp_jTowersColl_subset_ENDCAP_AND_EMB_AND_FCAL.insert( std::unordered_map<int, jTower>::value_type(towerid, *(this_jTowerContainer->findTower(towerid))));
240
241 }
242 }
243
244 for(int thisCol=28; thisCol<38; thisCol++){
245 for(
int thisRow=0; thisRow<
rows; thisRow++){
246
247 int towerid = initialEMEC - ((thisCol-24) * 64) + thisRow;
248
249 tmp_jTowersIDs_subset_ENDCAP_AND_EMB_AND_FCAL[thisRow][thisCol] = towerid;
250 tmp_jTowersColl_subset_ENDCAP_AND_EMB_AND_FCAL.insert( std::unordered_map<int, jTower>::value_type(towerid, *(this_jTowerContainer->findTower(towerid))));
251
252 }
253 }
254
255 for(
int thisRow = 0; thisRow <
rows; thisRow++){
256
257 int towerid = initialTRANS + thisRow;
258
259 tmp_jTowersIDs_subset_ENDCAP_AND_EMB_AND_FCAL[thisRow][38] = towerid;
260 tmp_jTowersColl_subset_ENDCAP_AND_EMB_AND_FCAL.insert( std::unordered_map<int, jTower>::value_type(towerid, *(this_jTowerContainer->findTower(towerid))));
261
262 }
263
264 for(int thisCol = 39; thisCol < 45; thisCol++){
265 for(
int thisRow=0; thisRow<
rows; thisRow++){
266
267 int towerid = initialEMB - ( (thisCol-39) * 64) + thisRow;
268
269 tmp_jTowersIDs_subset_ENDCAP_AND_EMB_AND_FCAL[thisRow][thisCol] = towerid;
270 tmp_jTowersColl_subset_ENDCAP_AND_EMB_AND_FCAL.insert( std::unordered_map<int, jTower>::value_type(towerid, *(this_jTowerContainer->findTower(towerid))));
271
272 }
273 }
274
277 for (int thisRow=rows-1; thisRow>=0; thisRow--) {
278 for (
int thisCol=0; thisCol<
cols; thisCol++) {
279 int tmptowerid = tmp_jTowersIDs_subset_ENDCAP_AND_EMB_AND_FCAL[thisRow][thisCol];
280 if(tmptowerid == 0 ) continue;
281 const LVL1::jTower* tmptower = this_jTowerContainer->findTower(tmptowerid);
282 const float tmptowereta = tmptower->
iEta();
283 const float tmptowerphi = tmptower->
iPhi();
284 if(thisCol != cols-1) {
285 ATH_MSG_DEBUG(
"| " << tmptowerid <<
"([" << tmptowerphi <<
"][" << tmptowereta <<
"]) ");
286 }
287 else {
288 ATH_MSG_DEBUG(
"| " << tmptowerid <<
"([" << tmptowereta <<
"][" << tmptowerphi <<
"]) |");
289 }
290 }
291 }
292 }
294 ATH_CHECK(
m_jFEXSimTool->ExecuteForwardASide(tmp_jTowersIDs_subset_ENDCAP_AND_EMB_AND_FCAL, inputOutputCollection, { evtTimeStamp, myDBTool->get_jJCalibParams(thisJFEX) } ));
295
296 m_allSmallRJetTobs.insert(std::unordered_map<uint8_t, std::vector< std::vector<std::unique_ptr<jFEXTOB>> > >::value_type(thisJFEX,(
m_jFEXSimTool->getSmallRJetTOBs() ) ));
297 m_allLargeRJetTobs.insert(std::unordered_map<uint8_t, std::vector< std::vector<std::unique_ptr<jFEXTOB>> > >::value_type(thisJFEX,(
m_jFEXSimTool->getLargeRJetTOBs() ) ));
298 m_alltauTobs.insert( std::unordered_map<uint8_t, std::vector< std::vector<std::unique_ptr<jFEXTOB>> > >::value_type(thisJFEX,(
m_jFEXSimTool->getTauTOBs() ) ));
299 m_allfwdElTobs.insert( std::unordered_map<uint8_t, std::vector<std::vector<std::vector<uint32_t>>> >::value_type(thisJFEX,(
m_jFEXSimTool->getFwdElTOBs() ) ));
300
301 m_allsumEtTobs.insert(std::unordered_map<uint8_t, std::vector<std::unique_ptr<jFEXTOB>> >::value_type(thisJFEX,(
m_jFEXSimTool->getSumEtTOBs() ) ));
302 m_allMetTobs.insert(std::unordered_map<uint8_t, std::vector<std::unique_ptr<jFEXTOB>> >::value_type(thisJFEX,(
m_jFEXSimTool->getMetTOBs() ) ));
304
305
306
307
308
309
310
311
312
313 emecEta = 23; emecPhi = 0; emecMod = 500000;
314 initialEMEC =
calcTowerID(emecEta,emecPhi,emecMod);
315 transEta = 14; transPhi = 0; transMod = 300000;
316 initialTRANS =
calcTowerID(transEta,transPhi,transMod);
317 embEta = 13; embPhi = 0; embMod = 100000;
319
320
321 thisJFEX = 1;
322
323
324 std::unordered_map<int,jTower> tmp_jTowersColl_subset_1;
325
326
328
329
332 tmp_jTowersIDs_subset_1[
i][j] = 0;
333 }
334 }
335
336 rows =
sizeof tmp_jTowersIDs_subset_1 /
sizeof tmp_jTowersIDs_subset_1[0];
337 cols =
sizeof tmp_jTowersIDs_subset_1[0] /
sizeof tmp_jTowersIDs_subset_1[0][0];
338
339
340 for(int thisCol = 0; thisCol < 9; thisCol++){
341 for(
int thisRow=0; thisRow<
rows; thisRow++){
342
343 int towerid = initialEMEC - (thisCol * 64) + thisRow;
344
345 tmp_jTowersIDs_subset_1[thisRow][thisCol] = towerid;
346 tmp_jTowersColl_subset_1.insert( std::unordered_map<int, jTower>::value_type(towerid, *(this_jTowerContainer->findTower(towerid))));
347
348 }
349 }
350
351
352 for(
int thisRow = 0; thisRow <
rows; thisRow++) {
353
354 int towerid = initialTRANS + thisRow;
355
356 tmp_jTowersIDs_subset_1[thisRow][9] = towerid;
357 tmp_jTowersColl_subset_1.insert( std::unordered_map<int, jTower>::value_type(towerid, *(this_jTowerContainer->findTower(towerid))));
358
359 }
360
361
362 for(
int thisCol = 10; thisCol <
cols; thisCol++) {
363 for(
int thisRow=0; thisRow<
rows; thisRow++) {
364
365 int towerid = initialEMB - ( (thisCol-10) * 64) + thisRow ;
366
367 tmp_jTowersIDs_subset_1[thisRow][thisCol] = towerid;
368 tmp_jTowersColl_subset_1.insert( std::unordered_map<int, jTower>::value_type(towerid, *(this_jTowerContainer->findTower(towerid))));
369
370 }
371 }
372
375 for (int thisRow=rows-1; thisRow>=0; thisRow--) {
376 for (
int thisCol=0; thisCol<
cols; thisCol++) {
377 int tmptowerid = tmp_jTowersIDs_subset_1[thisRow][thisCol];
378 if(tmptowerid == 0) continue;
379 const LVL1::jTower* tmptower = this_jTowerContainer->findTower(tmptowerid);
380 const float tmptowereta = tmptower->
iEta();
381 const float tmptowerphi = tmptower->
iPhi();
382 if(thisCol != cols-1) {
383 ATH_MSG_DEBUG(
"| " << tmptowerid <<
"([" << tmptowerphi <<
"][" << tmptowereta <<
"]) ");
384 }
385 else {
386 ATH_MSG_DEBUG(
"| " << tmptowerid <<
"([" << tmptowereta <<
"][" << tmptowerphi <<
"]) |");
387 }
388 }
389 }
390 }
392 ATH_CHECK(
m_jFEXSimTool->ExecuteBarrel(tmp_jTowersIDs_subset_1, inputOutputCollection, { evtTimeStamp, myDBTool->get_jJCalibParams(thisJFEX) } ));
393
394 m_allSmallRJetTobs.insert(std::unordered_map<uint8_t, std::vector< std::vector<std::unique_ptr<jFEXTOB>> > >::value_type(thisJFEX,(
m_jFEXSimTool->getSmallRJetTOBs() ) ));
395 m_allLargeRJetTobs.insert(std::unordered_map<uint8_t, std::vector< std::vector<std::unique_ptr<jFEXTOB>> > >::value_type(thisJFEX,(
m_jFEXSimTool->getLargeRJetTOBs() ) ));
396 m_alltauTobs.insert( std::unordered_map<uint8_t, std::vector< std::vector<std::unique_ptr<jFEXTOB>> > >::value_type(thisJFEX,(
m_jFEXSimTool->getTauTOBs() ) ));
397
398 m_allsumEtTobs.insert(std::unordered_map<uint8_t, std::vector<std::unique_ptr<jFEXTOB>> >::value_type(thisJFEX,(
m_jFEXSimTool->getSumEtTOBs() ) ));
399 m_allMetTobs.insert(std::unordered_map<uint8_t, std::vector<std::unique_ptr<jFEXTOB>> >::value_type(thisJFEX,(
m_jFEXSimTool->getMetTOBs() ) ));
401
402
403
404
405
406
407
408
409
410 emecEta = 15; emecPhi = 0; emecMod = 500000;
411 initialEMEC =
calcTowerID(emecEta,emecPhi,emecMod);
412 transEta = 14; transPhi = 0; transMod = 300000;
413 initialTRANS =
calcTowerID(transEta,transPhi,transMod);
414 embEta = 13; embPhi = 0; embMod = 100000;
416
417
418 thisJFEX = 2;
419
420
421 std::unordered_map<int,jTower> tmp_jTowersColl_subset_2;
422
423
425
426
429 tmp_jTowersIDs_subset_2[
i][j] = 0;
430 }
431 }
432
433
434 rows =
sizeof tmp_jTowersIDs_subset_2 /
sizeof tmp_jTowersIDs_subset_2[0];
435 cols =
sizeof tmp_jTowersIDs_subset_2[0] /
sizeof tmp_jTowersIDs_subset_2[0][0];
436
437
438 for(
int thisRow=0; thisRow<
rows; thisRow++) {
439
440 int towerid = initialEMEC + thisRow;
441
442 tmp_jTowersIDs_subset_2[thisRow][0] = towerid;
443 tmp_jTowersColl_subset_2.insert( std::unordered_map<int, jTower>::value_type(towerid, *(this_jTowerContainer->findTower(towerid))));
444
445 }
446
447
448 for(
int thisRow = 0; thisRow <
rows; thisRow++) {
449
450 int towerid = initialTRANS + thisRow;
451
452 tmp_jTowersIDs_subset_2[thisRow][1] = towerid;
453 tmp_jTowersColl_subset_2.insert( std::unordered_map<int, jTower>::value_type(towerid, *(this_jTowerContainer->findTower(towerid))));
454
455 }
456
457
458 for(
int thisCol = 2; thisCol <
cols-8; thisCol++) {
459 for(
int thisRow=0; thisRow<
rows; thisRow++) {
460 int towerid = -1;
461
462 int tmp_initEMB = initialEMB;
463
464 towerid = tmp_initEMB - ( (thisCol-2) * 64) + thisRow;
465 tmp_jTowersIDs_subset_2[thisRow][thisCol] = towerid;
466
467 tmp_jTowersColl_subset_2.insert( std::unordered_map<int, jTower>::value_type(towerid, *(this_jTowerContainer->findTower(towerid))));
468
469 }
470 }
471
472 embEta = 0; embPhi = 0; embMod = 200000;
474
475
476 for(
int thisCol = 16; thisCol <
cols; thisCol++) {
477 for(
int thisRow=0; thisRow<
rows; thisRow++) {
478 int towerid = -1;
479
480 int tmp_initEMB = initialEMB;
481
482 towerid = tmp_initEMB + ( (thisCol-16) * 64) + thisRow;
483 tmp_jTowersIDs_subset_2[thisRow][thisCol] = towerid;
484
485 tmp_jTowersColl_subset_2.insert( std::unordered_map<int, jTower>::value_type(towerid, *(this_jTowerContainer->findTower(towerid))));
486
487 }
488 }
489
492 for (int thisRow=rows-1; thisRow>=0; thisRow--) {
493 for (
int thisCol=0; thisCol<
cols; thisCol++) {
494 int tmptowerid = tmp_jTowersIDs_subset_2[thisRow][thisCol];
495 if(tmptowerid == 0) continue;
496 const LVL1::jTower* tmptower = this_jTowerContainer->findTower(tmptowerid);
497 const float tmptowereta = tmptower->
iEta();
498 const float tmptowerphi = tmptower->
iPhi();
499 if(thisCol != cols-1) {
500 ATH_MSG_DEBUG(
"| " << tmptowerid <<
"([" << tmptowereta <<
"][" << tmptowerphi <<
"]) ");
501 }
502 else {
503 ATH_MSG_DEBUG(
"| " << tmptowerid <<
"([" << tmptowereta <<
"][" << tmptowerphi <<
"]) |");
504 }
505 }
506 }
507 }
508
509
511 ATH_CHECK(
m_jFEXSimTool->ExecuteBarrel(tmp_jTowersIDs_subset_2, inputOutputCollection, { evtTimeStamp, myDBTool->get_jJCalibParams(thisJFEX) } ));
512
513 m_allSmallRJetTobs.insert(std::unordered_map<uint8_t, std::vector< std::vector<std::unique_ptr<jFEXTOB>> > >::value_type(thisJFEX,(
m_jFEXSimTool->getSmallRJetTOBs() ) ));
514 m_allLargeRJetTobs.insert(std::unordered_map<uint8_t, std::vector< std::vector<std::unique_ptr<jFEXTOB>> > >::value_type(thisJFEX,(
m_jFEXSimTool->getLargeRJetTOBs() ) ));
515 m_alltauTobs.insert( std::unordered_map<uint8_t, std::vector< std::vector<std::unique_ptr<jFEXTOB>> > >::value_type(thisJFEX,(
m_jFEXSimTool->getTauTOBs() ) ));
516
517 m_allsumEtTobs.insert(std::unordered_map<uint8_t, std::vector<std::unique_ptr<jFEXTOB>> >::value_type(thisJFEX,(
m_jFEXSimTool->getSumEtTOBs() ) ));
518 m_allMetTobs.insert(std::unordered_map<uint8_t, std::vector<std::unique_ptr<jFEXTOB>> >::value_type(thisJFEX,(
m_jFEXSimTool->getMetTOBs() ) ));
520
521
522
523
524
525
526
527
528
529 emecEta = 15; emecPhi = 0; emecMod = 600000;
530 initialEMEC =
calcTowerID(emecEta,emecPhi,emecMod);
531 transEta = 14; transPhi = 0; transMod = 400000;
532 initialTRANS =
calcTowerID(transEta,transPhi,transMod);
533 embEta = 7; embPhi = 0; embMod = 100000;
535
536
537 thisJFEX = 3;
538
539
540 std::unordered_map<int,jTower> tmp_jTowersColl_subset_3;
541
542
544
545
548 tmp_jTowersIDs_subset_3[
i][j] = 0;
549 }
550 }
551
552
553 rows =
sizeof tmp_jTowersIDs_subset_3 /
sizeof tmp_jTowersIDs_subset_3[0];
554 cols =
sizeof tmp_jTowersIDs_subset_3[0] /
sizeof tmp_jTowersIDs_subset_3[0][0];
555
556
557 for(int thisCol = 0; thisCol < 8; thisCol++){
558 for(
int thisRow=0; thisRow<
rows; thisRow++){
559 int towerid = -1;
560
561 int tmp_initEMB = initialEMB;
562
563 towerid = tmp_initEMB - ( (thisCol) * 64) + thisRow;
564
565 tmp_jTowersIDs_subset_3[thisRow][thisCol] = towerid;
566
567 tmp_jTowersColl_subset_3.insert( std::unordered_map<int, jTower>::value_type(towerid, *(this_jTowerContainer->findTower(towerid))));
568
569 }
570 }
571
572 embEta = 0; embPhi = 0; embMod = 200000;
574
575 for(int thisCol = 8; thisCol < 22; thisCol++){
576 for(
int thisRow=0; thisRow<
rows; thisRow++){
577 int towerid = -1;
578
579 int tmp_initEMB = initialEMB;
580
581 towerid = tmp_initEMB + ( (thisCol-8) * 64) + thisRow;
582
583 tmp_jTowersIDs_subset_3[thisRow][thisCol] = towerid;
584
585 tmp_jTowersColl_subset_3.insert( std::unordered_map<int, jTower>::value_type(towerid, *(this_jTowerContainer->findTower(towerid))));
586
587 }
588 }
589
590
591 for(
int thisRow = 0; thisRow <
rows; thisRow++){
592 int towerid = initialTRANS + thisRow;
593
594 tmp_jTowersIDs_subset_3[thisRow][22] = towerid;
595 tmp_jTowersColl_subset_3.insert( std::unordered_map<int, jTower>::value_type(towerid, *(this_jTowerContainer->findTower(towerid))));
596
597 }
598
599
600 for(
int thisRow=0; thisRow<
rows; thisRow++){
601 int towerid = initialEMEC + + thisRow;
602
603 tmp_jTowersIDs_subset_3[thisRow][23] = towerid;
604 tmp_jTowersColl_subset_3.insert( std::unordered_map<int, jTower>::value_type(towerid, *(this_jTowerContainer->findTower(towerid))));
605
606 }
607
610 for (int thisRow=rows-1; thisRow>=0; thisRow--) {
611 for (
int thisCol=0; thisCol<
cols; thisCol++) {
612 int tmptowerid = tmp_jTowersIDs_subset_3[thisRow][thisCol];
613 if(tmptowerid == 0) continue;
614 const LVL1::jTower* tmptower = this_jTowerContainer->findTower(tmptowerid);
615 const float tmptowereta = tmptower->
iEta();
616 const float tmptowerphi = tmptower->
iPhi();
617 if(thisCol != cols-1) {
618 ATH_MSG_DEBUG(
"| " << tmptowerid <<
"([" << tmptowereta <<
"][" << tmptowerphi <<
"]) ");
619 }
620 else {
621 ATH_MSG_DEBUG(
"| " << tmptowerid <<
"([" << tmptowereta <<
"][" << tmptowerphi <<
"]) |");
622 }
623 }
624 }
625 }
626
627
629 ATH_CHECK(
m_jFEXSimTool->ExecuteBarrel(tmp_jTowersIDs_subset_3, inputOutputCollection, { evtTimeStamp, myDBTool->get_jJCalibParams(thisJFEX) } ));
630
631 m_allSmallRJetTobs.insert(std::unordered_map<uint8_t, std::vector< std::vector<std::unique_ptr<jFEXTOB>> > >::value_type(thisJFEX,(
m_jFEXSimTool->getSmallRJetTOBs() ) ));
632 m_allLargeRJetTobs.insert(std::unordered_map<uint8_t, std::vector< std::vector<std::unique_ptr<jFEXTOB>> > >::value_type(thisJFEX,(
m_jFEXSimTool->getLargeRJetTOBs() ) ));
633 m_alltauTobs.insert( std::unordered_map<uint8_t, std::vector< std::vector<std::unique_ptr<jFEXTOB>> > >::value_type(thisJFEX,(
m_jFEXSimTool->getTauTOBs() ) ));
634
635 m_allsumEtTobs.insert(std::unordered_map<uint8_t, std::vector<std::unique_ptr<jFEXTOB>> >::value_type(thisJFEX,(
m_jFEXSimTool->getSumEtTOBs() ) ));
636 m_allMetTobs.insert(std::unordered_map<uint8_t, std::vector<std::unique_ptr<jFEXTOB>> >::value_type(thisJFEX,(
m_jFEXSimTool->getMetTOBs() ) ));
638
639
640
641
642
643
644
645
646 emecEta = 15; emecPhi = 0; emecMod = 600000;
647 initialEMEC =
calcTowerID(emecEta,emecPhi,emecMod);
648 transEta = 14; transPhi = 0; transMod = 400000;
649 initialTRANS =
calcTowerID(transEta,transPhi,transMod);
650 embEta = 0; embPhi = 0; embMod = 200000;
652
653
654 thisJFEX = 4;
655
656
657 std::unordered_map<int,jTower> tmp_jTowersColl_subset_4;
658
659
661
662
665 tmp_jTowersIDs_subset_4[
i][j] = 0;
666 }
667 }
668
669 rows =
sizeof tmp_jTowersIDs_subset_4 /
sizeof tmp_jTowersIDs_subset_4[0];
670 cols =
sizeof tmp_jTowersIDs_subset_4[0] /
sizeof tmp_jTowersIDs_subset_4[0][0];
671
672
673 for(int thisCol = 0; thisCol < 14; thisCol++){
674 for(
int thisRow=0; thisRow<
rows; thisRow++){
675 int towerid = initialEMB + ( (thisCol) * 64) + thisRow;
676
677 tmp_jTowersIDs_subset_4[thisRow][thisCol] = towerid;
678 tmp_jTowersColl_subset_4.insert( std::unordered_map<int, jTower>::value_type(towerid, *(this_jTowerContainer->findTower(towerid))));
679
680 }
681 }
682
683 for(
int thisRow = 0; thisRow <
rows; thisRow++){
684 int towerid = initialTRANS + thisRow;
685
686 tmp_jTowersIDs_subset_4[thisRow][14] = towerid;
687 tmp_jTowersColl_subset_4.insert( std::unordered_map<int, jTower>::value_type(towerid, *(this_jTowerContainer->findTower(towerid))));
688
689 }
690
691 for(
int thisCol = 15; thisCol <
cols; thisCol++){
692 for(
int thisRow=0; thisRow<
rows; thisRow++){
693 int towerid = initialEMEC + ( (thisCol-15) * 64) + thisRow;
694
695 tmp_jTowersIDs_subset_4[thisRow][thisCol] = towerid;
696 tmp_jTowersColl_subset_4.insert( std::unordered_map<int, jTower>::value_type(towerid, *(this_jTowerContainer->findTower(towerid))));
697
698 }
699 }
700
703 for (int thisRow=rows-1; thisRow>=0; thisRow--) {
704 for (
int thisCol=0; thisCol<
cols; thisCol++) {
705 int tmptowerid = tmp_jTowersIDs_subset_4[thisRow][thisCol];
706 if(tmptowerid == 0) continue;
707 const LVL1::jTower* tmptower = this_jTowerContainer->findTower(tmptowerid);
708 const float tmptowereta = tmptower->
iEta();
709 const float tmptowerphi = tmptower->
iPhi();
710 if(thisCol != cols-1) {
711 ATH_MSG_DEBUG(
"| " << tmptowerid <<
"([" << tmptowereta <<
"][" << tmptowerphi <<
"]) ");
712 }
713 else {
714 ATH_MSG_DEBUG(
"| " << tmptowerid <<
"([" << tmptowereta <<
"][" << tmptowerphi <<
"]) |");
715 }
716 }
717 }
718 }
719
720
722 ATH_CHECK(
m_jFEXSimTool->ExecuteBarrel(tmp_jTowersIDs_subset_4, inputOutputCollection, { evtTimeStamp, myDBTool->get_jJCalibParams(thisJFEX) } ));
723
724 m_allSmallRJetTobs.insert(std::unordered_map<uint8_t, std::vector< std::vector<std::unique_ptr<jFEXTOB>> > >::value_type(thisJFEX,(
m_jFEXSimTool->getSmallRJetTOBs() ) ));
725 m_allLargeRJetTobs.insert(std::unordered_map<uint8_t, std::vector< std::vector<std::unique_ptr<jFEXTOB>> > >::value_type(thisJFEX,(
m_jFEXSimTool->getLargeRJetTOBs() ) ));
726 m_alltauTobs.insert( std::unordered_map<uint8_t, std::vector< std::vector<std::unique_ptr<jFEXTOB>> > >::value_type(thisJFEX,(
m_jFEXSimTool->getTauTOBs() ) ));
727
728 m_allsumEtTobs.insert(std::unordered_map<uint8_t, std::vector<std::unique_ptr<jFEXTOB>> >::value_type(thisJFEX,(
m_jFEXSimTool->getSumEtTOBs() ) ));
729 m_allMetTobs.insert(std::unordered_map<uint8_t, std::vector<std::unique_ptr<jFEXTOB>> >::value_type(thisJFEX,(
m_jFEXSimTool->getMetTOBs() ) ));
731
732
733
734
735
736
737
738
739 fcal2Eta = 0; fcal2Phi = 0; fcal2Mod = 1200000;
740 initialFCAL2 =
calcTowerID(fcal2Eta,fcal2Phi,fcal2Mod);
741 fcal1Eta = 0; fcal1Phi = 0; fcal1Mod = 1000000;
742 initialFCAL1 =
calcTowerID(fcal1Eta,fcal1Phi,fcal1Mod);
743 fcal0Eta = 0; fcal0Phi = 0; fcal0Mod = 800000;
744 initialFCAL0 =
calcTowerID(fcal0Eta,fcal0Phi,fcal0Mod);
745 emecEta = 15; emecPhi = 0; emecMod = 600000;
746 initialEMEC =
calcTowerID(emecEta,emecPhi,emecMod);
747 transEta = 14; transPhi = 0; transMod = 400000;
748 initialTRANS =
calcTowerID(transEta,transPhi,transMod);
749 embEta = 8; embPhi = 0; embMod = 200000;
751
752
753 thisJFEX = 5;
754
755
756 std::unordered_map<int,jTower> tmp_jTowersColl_subset_ENDCAP_AND_EMB_AND_FCAL_2;
757
758
760
761
764 tmp_jTowersIDs_subset_ENDCAP_AND_EMB_AND_FCAL_2[
i][j] = 0;
765 }
766 }
767
768 rows =
sizeof tmp_jTowersIDs_subset_ENDCAP_AND_EMB_AND_FCAL_2 /
sizeof tmp_jTowersIDs_subset_ENDCAP_AND_EMB_AND_FCAL_2[0];
769 cols =
sizeof tmp_jTowersIDs_subset_ENDCAP_AND_EMB_AND_FCAL_2[0] /
sizeof tmp_jTowersIDs_subset_ENDCAP_AND_EMB_AND_FCAL_2[0][0];
770
771
772 for(int thisCol = 0; thisCol < 6; thisCol++){
773 for(
int thisRow=0; thisRow<
rows; thisRow++){
774 int towerid = initialEMB + ( (thisCol) * 64) + thisRow;
775
776 tmp_jTowersIDs_subset_ENDCAP_AND_EMB_AND_FCAL_2[thisRow][thisCol] = towerid;
777 tmp_jTowersColl_subset_ENDCAP_AND_EMB_AND_FCAL_2.insert( std::unordered_map<int, jTower>::value_type(towerid, *(this_jTowerContainer->findTower(towerid))));
778
779 }
780 }
781
782
783 for(
int thisRow = 0; thisRow <
rows; thisRow++){
784 int towerid = initialTRANS + thisRow;
785
786 tmp_jTowersIDs_subset_ENDCAP_AND_EMB_AND_FCAL_2[thisRow][6] = towerid;
787 tmp_jTowersColl_subset_ENDCAP_AND_EMB_AND_FCAL_2.insert( std::unordered_map<int, jTower>::value_type(towerid, *(this_jTowerContainer->findTower(towerid))));
788
789 }
790
791
792 for(int thisCol=7; thisCol<17; thisCol++){
793 for(
int thisRow=0; thisRow<
rows; thisRow++){
794
795 int towerid = initialEMEC + ((thisCol-7) * 64) + thisRow;
796
797 tmp_jTowersIDs_subset_ENDCAP_AND_EMB_AND_FCAL_2[thisRow][thisCol] = towerid;
798 tmp_jTowersColl_subset_ENDCAP_AND_EMB_AND_FCAL_2.insert( std::unordered_map<int, jTower>::value_type(towerid, *(this_jTowerContainer->findTower(towerid))));
799
800 }
801 }
802
803
804 for(int thisCol=17; thisCol<21; thisCol++){
805 for(
int thisRow=0; thisRow<
rows/2; thisRow++){
806
807 int towerid = initialEMEC + ((thisCol-7) * 64) + thisRow;
808
809 tmp_jTowersIDs_subset_ENDCAP_AND_EMB_AND_FCAL_2[thisRow][thisCol] = towerid;
810 tmp_jTowersColl_subset_ENDCAP_AND_EMB_AND_FCAL_2.insert( std::unordered_map<int, jTower>::value_type(towerid, *(this_jTowerContainer->findTower(towerid))));
811
812 }
813 }
814
815
816
817
818 for(int thisCol=21; thisCol<33; thisCol++){
819 for(
int thisRow=0; thisRow<
rows/4; thisRow++){
820
821 int towerid = initialFCAL0 + ((thisCol-21) * 64) + thisRow;
822
823 tmp_jTowersIDs_subset_ENDCAP_AND_EMB_AND_FCAL_2[thisRow][thisCol] = towerid;
824 tmp_jTowersColl_subset_ENDCAP_AND_EMB_AND_FCAL_2.insert( std::unordered_map<int, jTower>::value_type(towerid, *(this_jTowerContainer->findTower(towerid))));
825
826 }
827 }
828
829
830
831
832 for(int thisCol=33; thisCol<41; thisCol++){
833 for(
int thisRow=0; thisRow<
rows/4; thisRow++){
834
835 int towerid = initialFCAL1 + ((thisCol-33) * 64) + thisRow;
836
837 tmp_jTowersIDs_subset_ENDCAP_AND_EMB_AND_FCAL_2[thisRow][thisCol] = towerid;
838 tmp_jTowersColl_subset_ENDCAP_AND_EMB_AND_FCAL_2.insert( std::unordered_map<int, jTower>::value_type(towerid, *(this_jTowerContainer->findTower(towerid))));
839
840 }
841 }
842
843
844
845
846 for(int thisCol=41; thisCol<45; thisCol++){
847 for(
int thisRow=0; thisRow<
rows/4; thisRow++){
848
849 int towerid = initialFCAL2 + ((thisCol-41) * 64) + thisRow;
850
851 tmp_jTowersIDs_subset_ENDCAP_AND_EMB_AND_FCAL_2[thisRow][thisCol] = towerid;
852 tmp_jTowersColl_subset_ENDCAP_AND_EMB_AND_FCAL_2.insert( std::unordered_map<int, jTower>::value_type(towerid, *(this_jTowerContainer->findTower(towerid))));
853
854 }
855 }
856
857
860 for (int thisRow=rows-1; thisRow>=0; thisRow--) {
861 for (
int thisCol=0; thisCol<
cols; thisCol++) {
862 int tmptowerid = tmp_jTowersIDs_subset_ENDCAP_AND_EMB_AND_FCAL_2[thisRow][thisCol];
863 if(tmptowerid == 0) continue;
864 const LVL1::jTower* tmptower = this_jTowerContainer->findTower(tmptowerid);
865 const float tmptowereta = tmptower->
iEta();
866 const float tmptowerphi = tmptower->
iPhi();
867 if(thisCol != cols-1) {
868 ATH_MSG_DEBUG(
"| " << tmptowerid <<
"([" << tmptowerphi <<
"][" << tmptowereta <<
"]) ");
869 }
870 else {
871 ATH_MSG_DEBUG(
"| " << tmptowerid <<
"([" << tmptowereta <<
"][" << tmptowerphi <<
"]) |");
872 }
873 }
874 }
875 }
876
878 ATH_CHECK(
m_jFEXSimTool->ExecuteForwardCSide(tmp_jTowersIDs_subset_ENDCAP_AND_EMB_AND_FCAL_2, inputOutputCollection, { evtTimeStamp, myDBTool->get_jJCalibParams(thisJFEX) } ));
879
880 m_allSmallRJetTobs.insert(std::unordered_map<uint8_t, std::vector< std::vector<std::unique_ptr<jFEXTOB>> > >::value_type(thisJFEX,(
m_jFEXSimTool->getSmallRJetTOBs() ) ));
881 m_allLargeRJetTobs.insert(std::unordered_map<uint8_t, std::vector< std::vector<std::unique_ptr<jFEXTOB>> > >::value_type(thisJFEX,(
m_jFEXSimTool->getLargeRJetTOBs() ) ));
882 m_alltauTobs.insert( std::unordered_map<uint8_t, std::vector< std::vector<std::unique_ptr<jFEXTOB>> > >::value_type(thisJFEX,(
m_jFEXSimTool->getTauTOBs() ) ));
883 m_allfwdElTobs.insert( std::unordered_map<uint8_t, std::vector<std::vector<std::vector<uint32_t>>> >::value_type(thisJFEX,(
m_jFEXSimTool->getFwdElTOBs() ) ));
884
885 m_allsumEtTobs.insert(std::unordered_map<uint8_t, std::vector<std::unique_ptr<jFEXTOB>> >::value_type(thisJFEX,(
m_jFEXSimTool->getSumEtTOBs() ) ));
886 m_allMetTobs.insert(std::unordered_map<uint8_t, std::vector<std::unique_ptr<jFEXTOB>> >::value_type(thisJFEX,(
m_jFEXSimTool->getMetTOBs() ) ));
888
889
890
891
892
893
894 SG::ReadHandle<TrigConf::L1Menu> l1Menu (
m_l1MenuKey);
895
896 const int jFwdElResolution = l1Menu->thrExtraInfo().jEM().resolutionMeV();
897
898
899 auto tobContainer_jJ = std::make_unique<xAOD::jFexSRJetRoIContainer> ();
900 std::unique_ptr< xAOD::jFexSRJetRoIAuxContainer > tobAuxContainer_jJ = std::make_unique<xAOD::jFexSRJetRoIAuxContainer> ();
901 tobContainer_jJ->setStore(tobAuxContainer_jJ.get());
902
904
905 auto xtobContainer_jJ = std::make_unique<xAOD::jFexSRJetRoIContainer> ();
906 std::unique_ptr< xAOD::jFexSRJetRoIAuxContainer > xtobAuxContainer_jJ = std::make_unique<xAOD::jFexSRJetRoIAuxContainer> ();
907 xtobContainer_jJ->setStore(xtobAuxContainer_jJ.get());
908
910
911
912 SG::WriteHandle<xAOD::jFexSRJetRoIContainer> output_Tob_jJ(
m_TobOutKey_jJ);
913 ATH_MSG_DEBUG(
" write: " << output_Tob_jJ.key() <<
" = " <<
"..." );
914 ATH_CHECK(output_Tob_jJ.record(std::move(tobContainer_jJ),std::move(tobAuxContainer_jJ)));
915
916 SG::WriteHandle<xAOD::jFexSRJetRoIContainer> output_xTob_jJ(
m_xTobOutKey_jJ);
917 ATH_MSG_DEBUG(
" write: " << output_xTob_jJ.key() <<
" = " <<
"..." );
918 ATH_CHECK(output_xTob_jJ.record(std::move(xtobContainer_jJ),std::move(xtobAuxContainer_jJ)));
919
920
922 for(auto const & tobs: fpga) {
923 for(
size_t it = 0;
it<tobs.size();
it++) {
926 char istob = 0;
927 if(tobs.at(it)->getWord() != 0) {
928 eta = (this_jTowerContainer->findTower( tobs.at(it)->getTTID() ))->centreEta();
929 phi = (this_jTowerContainer->findTower( tobs.at(it)->getTTID() ))->centrephi_toPI();
930 }
931
932
933 if(it<7){
934 istob = 1;
936 tobDec_jJ_seedET( *(output_Tob_jJ->back()) ) = tobs.at(it)->getSeedEt();
937 }
939 xtobDec_jJ_seedET( *(output_xTob_jJ->back()) ) = tobs.at(it)->getSeedEt();
940 }
941 }
942 }
943
944
945 auto tobContainer_jLJ = std::make_unique<xAOD::jFexLRJetRoIContainer> ();
946 std::unique_ptr< xAOD::jFexLRJetRoIAuxContainer > tobAuxContainer_jLJ = std::make_unique<xAOD::jFexLRJetRoIAuxContainer> ();
947 tobContainer_jLJ->setStore(tobAuxContainer_jLJ.get());
948
949 auto xtobContainer_jLJ = std::make_unique<xAOD::jFexLRJetRoIContainer> ();
950 std::unique_ptr< xAOD::jFexLRJetRoIAuxContainer > xtobAuxContainer_jLJ = std::make_unique<xAOD::jFexLRJetRoIAuxContainer> ();
951 xtobContainer_jLJ->setStore(xtobAuxContainer_jLJ.get());
952
953
954 SG::WriteHandle<xAOD::jFexLRJetRoIContainer_v1> output_Tob_jLJ(
m_TobOutKey_jLJ);
955 ATH_MSG_DEBUG(
" write: " << output_Tob_jLJ.key() <<
" = " <<
"..." );
956 ATH_CHECK(output_Tob_jLJ.record(std::move(tobContainer_jLJ),std::move(tobAuxContainer_jLJ)));
957
958 SG::WriteHandle<xAOD::jFexLRJetRoIContainer_v1> output_xTob_jLJ(
m_xTobOutKey_jLJ);
959 ATH_MSG_DEBUG(
" write: " << output_xTob_jLJ.key() <<
" = " <<
"..." );
960 ATH_CHECK(output_xTob_jLJ.record(std::move(xtobContainer_jLJ),std::move(xtobAuxContainer_jLJ)));
961
963
964
966 for(auto const& tobs: fpga) {
967 for(
size_t it = 0;
it<tobs.size();
it++) {
970 char istob = 0;
971 if(tobs.at(it)->getWord() != 0) {
972 eta = (this_jTowerContainer->findTower( tobs.at(it)->getTTID() ))->centreEta();
973 phi = (this_jTowerContainer->findTower( tobs.at(it)->getTTID() ))->centrephi_toPI();
974 }
975
976
977 if(it<1){
978 istob=1;
980 }
982 }
983 }
984 }
985
986 auto tobContainer_jTau = std::make_unique<xAOD::jFexTauRoIContainer> ();
987 std::unique_ptr< xAOD::jFexTauRoIAuxContainer > tobAuxContainer_jTau = std::make_unique<xAOD::jFexTauRoIAuxContainer> ();
988 tobContainer_jTau->setStore(tobAuxContainer_jTau.get());
989
990 auto xtobContainer_jTau = std::make_unique<xAOD::jFexTauRoIContainer> ();
991 std::unique_ptr< xAOD::jFexTauRoIAuxContainer > xtobAuxContainer_jTau = std::make_unique<xAOD::jFexTauRoIAuxContainer> ();
992 xtobContainer_jTau->setStore(xtobAuxContainer_jTau.get());
993
994 SG::WriteHandle<xAOD::jFexTauRoIContainer_v1> output_Tob_jTau(
m_TobOutKey_jTau);
995 ATH_MSG_DEBUG(
" write: " << output_Tob_jTau.key() <<
" = " <<
"..." );
996 ATH_CHECK(output_Tob_jTau.record(std::move(tobContainer_jTau),std::move(tobAuxContainer_jTau)));
997
998 SG::WriteHandle<xAOD::jFexTauRoIContainer_v1> output_xTob_jTau(
m_xTobOutKey_jTau);
999 ATH_MSG_DEBUG(
" write: " << output_xTob_jTau.key() <<
" = " <<
"..." );
1000 ATH_CHECK(output_xTob_jTau.record(std::move(xtobContainer_jTau),std::move(xtobAuxContainer_jTau)));
1001
1002
1004 for(auto const& tobs : fpga){
1005 for(
size_t it = 0;
it<tobs.size();
it++) {
1008 char istob = 0;
1009 if(tobs.at(it)->getWord() != 0){
1010 eta = (this_jTowerContainer->findTower( tobs.at(it)->getTTID() ))->centreEta();
1011 phi = (this_jTowerContainer->findTower( tobs.at(it)->getTTID() ))->centrephi_toPI();
1012 }
1013
1014
1015 if(it<6){
1016 istob=1;
1018 }
1020 }
1021 }
1022
1023 }
1024
1025
1026 auto tobContainer_jEM = std::make_unique<xAOD::jFexFwdElRoIContainer> ();
1027 std::unique_ptr< xAOD::jFexFwdElRoIAuxContainer > tobAuxContainer_jEM = std::make_unique<xAOD::jFexFwdElRoIAuxContainer> ();
1028 tobContainer_jEM->setStore(tobAuxContainer_jEM.get());
1029
1030 auto xtobContainer_jEM = std::make_unique<xAOD::jFexFwdElRoIContainer> ();
1031 std::unique_ptr< xAOD::jFexFwdElRoIAuxContainer > xtobAuxContainer_jEM = std::make_unique<xAOD::jFexFwdElRoIAuxContainer> ();
1032 xtobContainer_jEM->setStore(xtobAuxContainer_jEM.get());
1033
1034 SG::WriteHandle<xAOD::jFexFwdElRoIContainer_v1> output_Tob_jEM(
m_TobOutKey_jEM);
1035 ATH_MSG_DEBUG(
" write: " << output_Tob_jEM.key() <<
" = " <<
"..." );
1036 ATH_CHECK(output_Tob_jEM.record(std::move(tobContainer_jEM),std::move(tobAuxContainer_jEM)));
1037
1038 SG::WriteHandle<xAOD::jFexFwdElRoIContainer_v1> output_xTob_jEM(
m_xTobOutKey_jEM);
1039 ATH_MSG_DEBUG(
" write: " << output_xTob_jEM.key() <<
" = " <<
"..." );
1040 ATH_CHECK(output_xTob_jEM.record(std::move(xtobContainer_jEM),std::move(xtobAuxContainer_jEM)));
1041
1042
1044 const int fpga_map[4]={0,1,3,2};
1046 for(auto &FPGA_tob : MODULE_tobs) {
1047 if (fpgaNum>3) {
1048 ATH_MSG_ERROR(
"FPGA larger than 4 in Forward electron EDM!");
1049 continue;
1050 }
1051 for(
size_t it = 0;
it<FPGA_tob.size();
it++) {
1054 char istob = 0;
1055 if(FPGA_tob.at(it).at(1) != 0) {
1056 eta = (this_jTowerContainer->findTower(FPGA_tob.at(it).at(1)))->centreEta();
1057 phi = (this_jTowerContainer->findTower(FPGA_tob.at(it).at(1)))->centrephi_toPI();
1058 }
1059
1060 if(it<5){
1061 istob=1;
1063 }
1065 }
1066 fpgaNum++;
1067 }
1068
1069 }
1070
1071
1072 auto tobContainer_jTE = std::make_unique<xAOD::jFexSumETRoIContainer> ();
1073 std::unique_ptr< xAOD::jFexSumETRoIAuxContainer > tobAuxContainer_jTE = std::make_unique<xAOD::jFexSumETRoIAuxContainer> ();
1074 tobContainer_jTE->setStore(tobAuxContainer_jTE.get());
1075
1076 SG::WriteHandle<xAOD::jFexSumETRoIContainer_v1> output_Tob_jTE(
m_TobOutKey_jTE);
1077 ATH_MSG_DEBUG(
" write: " << output_Tob_jTE.key() <<
" = " <<
"..." );
1078 ATH_CHECK(output_Tob_jTE.record(std::move(tobContainer_jTE),std::move(tobAuxContainer_jTE)));
1079
1081
1082 for(auto const& t : tobs) {
1084 }
1085 }
1086
1087
1088 auto tobContainer_jXE = std::make_unique<xAOD::jFexMETRoIContainer> ();
1089 std::unique_ptr< xAOD::jFexMETRoIAuxContainer > tobAuxContainer_jXE = std::make_unique<xAOD::jFexMETRoIAuxContainer> ();
1090 tobContainer_jXE->setStore(tobAuxContainer_jXE.get());
1091
1092 SG::WriteHandle<xAOD::jFexMETRoIContainer_v1> output_Tob_jXE(
m_TobOutKey_jXE);
1093 ATH_MSG_DEBUG(
" write: " << output_Tob_jXE.key() <<
" = " <<
"..." );
1094 ATH_CHECK(output_Tob_jXE.record(std::move(tobContainer_jXE),std::move(tobAuxContainer_jXE)));
1095
1097
1098 for(auto const& t : tobs) {
1100 }
1101 }
1102
1103
1104
1105
1106
1107
1108
1109
1110 return StatusCode::SUCCESS;
1111
1112 }
#define ATH_CHECK
Evaluate an expression and check for errors.
bool msgLvl(const MSG::Level lvl) const
static constexpr int jFEX_wide_algoSpace_width
static constexpr int jFEX_thin_algoSpace_width
static constexpr int jFEX_algoSpace_height
std::unordered_map< uint8_t, std::vector< std::vector< std::unique_ptr< jFEXTOB > > > > m_allLargeRJetTobs
SG::WriteHandleKey< xAOD::jFexLRJetRoIContainer > m_xTobOutKey_jLJ
StatusCode fillFwdElEDM(uint8_t jFexNum, uint8_t fpgaNumber, uint32_t tobWord, char istob, int resolution, float_t eta, float_t phi, SG::WriteHandle< xAOD::jFexFwdElRoIContainer > &jContainer) const
std::unordered_map< uint8_t, std::vector< std::vector< std::unique_ptr< jFEXTOB > > > > m_alltauTobs
SG::WriteHandleKey< xAOD::jFexMETRoIContainer > m_TobOutKey_jXE
SG::WriteHandleKey< xAOD::jFexFwdElRoIContainer > m_xTobOutKey_jEM
SG::ReadHandleKey< LVL1::jTowerContainer > m_jTowerContainerSGKey
SG::ReadHandleKey< TrigConf::L1Menu > m_l1MenuKey
ToolHandle< IjFEXSim > m_jFEXSimTool
std::unordered_map< uint8_t, std::vector< std::vector< std::unique_ptr< jFEXTOB > > > > m_allSmallRJetTobs
SG::WriteHandleKey< xAOD::jFexTauRoIContainer > m_TobOutKey_jTau
StatusCode fillTauEDM(const std::unique_ptr< jFEXTOB > &internalTob, char istob, float_t eta, float_t phi, SG::WriteHandle< xAOD::jFexTauRoIContainer > &jContainer) const
StatusCode fillMetEDM(const std::unique_ptr< jFEXTOB > &internalTob, SG::WriteHandle< xAOD::jFexMETRoIContainer > &jContainer) const
SG::WriteHandleKey< xAOD::jFexSRJetRoIContainer > m_xTobOutKey_jJ
SG::WriteDecorHandleKey< xAOD::jFexSRJetRoIContainer > m_TobDecorKey_jJ_seedET
std::unordered_map< uint8_t, std::vector< std::unique_ptr< jFEXTOB > > > m_allMetTobs
StatusCode fillLRJetEDM(const std::unique_ptr< jFEXTOB > &internalTob, char istob, float_t eta, float_t phi, SG::WriteHandle< xAOD::jFexLRJetRoIContainer > &jContainer) const
SG::WriteDecorHandleKey< xAOD::jFexSRJetRoIContainer > m_xTobDecorKey_jJ_seedET
virtual int calcTowerID(int eta, int phi, int mod) const override
SG::WriteHandleKey< xAOD::jFexLRJetRoIContainer > m_TobOutKey_jLJ
SG::WriteHandleKey< xAOD::jFexSRJetRoIContainer > m_TobOutKey_jJ
SG::WriteHandleKey< xAOD::jFexFwdElRoIContainer > m_TobOutKey_jEM
std::unordered_map< uint8_t, std::vector< std::unique_ptr< jFEXTOB > > > m_allsumEtTobs
StatusCode fillSRJetEDM(const std::unique_ptr< jFEXTOB > &internalTob, char istob, float_t eta, float_t phi, SG::WriteHandle< xAOD::jFexSRJetRoIContainer > &jContainer) const
SG::WriteHandleKey< xAOD::jFexTauRoIContainer > m_xTobOutKey_jTau
SG::ReadCondHandleKey< jFEXDBCondData > m_DBToolKey
std::unordered_map< uint8_t, std::vector< std::vector< std::vector< uint32_t > > > > m_allfwdElTobs
StatusCode fillSumEtEDM(const std::unique_ptr< jFEXTOB > &internalTob, SG::WriteHandle< xAOD::jFexSumETRoIContainer > &jContainer) const
SG::WriteHandleKey< xAOD::jFexSumETRoIContainer > m_TobOutKey_jTE
int iEta() const
Get coordinates of tower.
int iPhi() const
Return global phi index.