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