58 ATH_MSG_DEBUG(
"MistimedStreamMonitorAlgorith::fillHistograms");
64 unsigned int readoutConfigID = runParameters->runParameters(1)->readoutConfigID();
65 ATH_MSG_DEBUG(
"RunParameters:: readoutConfigID " << readoutConfigID);
69 unsigned int channelID = 0;
70 unsigned int numFadcSlices = 0;
71 unsigned int l1aFadcSlice = 0;
72 unsigned int readout80ModePpm = 0;
75 if ( readoutConfigJSON->readoutConfigJSON(readoutConfigID)->channelId() == readoutConfigID){
77 channelID = readoutConfigJSON->readoutConfigJSON(readoutConfigID)->channelId();
78 numFadcSlices = readoutConfigJSON->readoutConfigJSON(readoutConfigID)->numFadcSlices();
79 l1aFadcSlice = readoutConfigJSON->readoutConfigJSON(readoutConfigID)->l1aFadcSlice();
80 readout80ModePpm = readoutConfigJSON->readoutConfigJSON(readoutConfigID)->readout80ModePpm();
91 return StatusCode::FAILURE;
98 return StatusCode::FAILURE;
103 if(!triggerTowerTES.
isValid()){
105 return StatusCode::FAILURE;
110 unsigned int currentRunNo = ctx.eventID().run_number();
111 unsigned int currentEventNo = ctx.eventID().event_number();
125 if(readout80ModePpm){
126 if(numFadcSlices < 9){
127 ATH_MSG_DEBUG(
"Number of ADC slices < 9 for 80 MHz readout, algorithm cannot run, aborting...");
128 return StatusCode::SUCCESS;
130 if(l1aFadcSlice < 4){
131 ATH_MSG_DEBUG(
"L1a readout pointer < 4 for 80 MHz readout, algorithm cannot run, aborting...");
132 return StatusCode::SUCCESS;
134 if(numFadcSlices - l1aFadcSlice < 4){
135 ATH_MSG_DEBUG(
"L1a readout pointer is at "<< l1aFadcSlice <<
" with "<< numFadcSlices <<
"slices at 80 MHz readout mode, algorithm cannot run, aborting...");
136 return StatusCode::SUCCESS;
140 if(numFadcSlices < 5){
141 ATH_MSG_DEBUG(
"Number of ADC slices < 5 for 40 MHz readout, algorithm cannot run, aborting...");
142 return StatusCode::SUCCESS;
144 if(l1aFadcSlice < 2){
145 ATH_MSG_DEBUG(
"L1a readout pointer < 2 for 40 MHz readout, algorithm cannot run, aborting...");
146 return StatusCode::SUCCESS;
148 if(numFadcSlices - l1aFadcSlice < 2){
149 ATH_MSG_DEBUG(
"L1a readout pointer is at "<< l1aFadcSlice <<
" with "<< numFadcSlices <<
"slices at 40 MHz readout mode, algorithm cannot run, aborting...");
150 return StatusCode::SUCCESS;
158 ATH_MSG_DEBUG(
"TrigDec don't pass HLT_mistimemonj400_L1All");
159 return StatusCode::SUCCESS;
167 bool legacyTrigger=
false;
168 bool phase1Trigger=
false;
169 std::string trigger =
"";
197 ATH_MSG_ERROR(
"No system selected, this should not happen, abort.");
198 return StatusCode::FAILURE;
202 if ( (legacyTrigger==
false) and (phase1Trigger==
false) ) {
204 return StatusCode::SUCCESS;
212 int good3Counter = 0;
213 int good2Counter = 0;
214 int eFexintimeCounter = 0;
215 int eFexoutoftimeCounter = 0;
219 double dEta = 0., dPhi = 0., dPhi1 = 0., dR = 0.;
220 double etaIn = 0., phiIn = 0., etIn = 0.;
221 double etaOut = 0., phiOut = 0., etOut = 0.;
222 bool overlap =
false;
225 if(!jFexSRJetContainer.
isValid()) {
234 std::unique_ptr<xAOD::TriggerTowerContainer> ttContainer = std::make_unique<xAOD::TriggerTowerContainer>();
235 std::unique_ptr<xAOD::TriggerTowerAuxContainer> ttContainerAux = std::make_unique<xAOD::TriggerTowerAuxContainer>();
236 ttContainer->setStore(ttContainerAux.get());
243 float ttPulseCategory = 0;
244 const std::vector<uint16_t>& ttADC = (tt)->adc();
245 std::vector<uint16_t> readoutCorrectedADC;
246 if(!readout80ModePpm){
248 readoutCorrectedADC.push_back(ttADC.at(l1aFadcSlice-2));
249 readoutCorrectedADC.push_back(ttADC.at(l1aFadcSlice-1));
250 readoutCorrectedADC.push_back(ttADC.at(l1aFadcSlice));
251 readoutCorrectedADC.push_back(ttADC.at(l1aFadcSlice+1));
252 readoutCorrectedADC.push_back(ttADC.at(l1aFadcSlice+2));
255 readoutCorrectedADC.push_back(ttADC.at(l1aFadcSlice-4));
256 readoutCorrectedADC.push_back(ttADC.at(l1aFadcSlice-2));
257 readoutCorrectedADC.push_back(ttADC.at(l1aFadcSlice));
258 readoutCorrectedADC.push_back(ttADC.at(l1aFadcSlice+2));
259 readoutCorrectedADC.push_back(ttADC.at(l1aFadcSlice+4));
263 auto maxValIterator = std::max_element(readoutCorrectedADC.begin(), readoutCorrectedADC.end());
264 int maxADCval = *maxValIterator;
265 int adcPeakPositon = std::distance(std::begin(readoutCorrectedADC), maxValIterator);
268 ttPulseCategory = 0.1;
270 else if(maxADCval == 1023) {
274 bool goodQual =
pulseQuality(readoutCorrectedADC, adcPeakPositon);
276 if(adcPeakPositon == 2){
287 else if(adcPeakPositon == 3){
303 if (trigger ==
"jFex") {
305 CHECK(
evtStore()->retrieve( jFexSRJetRoI,
"L1_jFexSRJetRoI" ) );
306 for(
auto tob : *jFexSRJetRoI) {
309 etIn = tob->tobEt()/5;
311 if( (adcPeakPositon == 3) and (goodQual) ) {
313 phiOut = tt->phi()-
M_PI;
314 dEta = std::abs(etaIn-etaOut);
315 dPhi = std::abs(phiIn-phiOut);
316 if ((phiIn < 0) and (phiOut > 0)){
317 dPhi1 = std::abs((phiIn+2*
M_PI)-phiOut);
322 else if ((phiIn > 0) and (phiOut < 0)){
323 dPhi1 = std::abs(phiIn-(phiOut+2*
M_PI));
328 dR = TMath::Sqrt(dEta*dEta+dPhi*dPhi);
329 if ((dR < .2) and (etIn > 160.)) {
336 if (trigger ==
"gFex") {
341 if ( !jetContainer.
isValid() ) {
342 ATH_MSG_WARNING(
"No gFex jet container found in storegate: "<< key.key());
347 for(
auto tob : *gFexJetRoI) {
350 etIn = tob->gFexTobEt()/10;
352 if( (adcPeakPositon == 3) and (goodQual) ) {
354 phiOut = tt->phi()-
M_PI;
355 dEta = std::abs(etaIn-etaOut);
356 dPhi = std::abs(phiIn-phiOut);
357 if ((phiIn < 0) and (phiOut > 0)){
358 dPhi1 = std::abs((phiIn+2*
M_PI)-phiOut);
363 else if ((phiIn > 0) and (phiOut < 0)){
364 dPhi1 = std::abs(phiIn-(phiOut+2*
M_PI));
369 dR = TMath::Sqrt(dEta*dEta+dPhi*dPhi);
370 if ((dR < .2) and (etIn > 100.)) {
383 ttContainer->push_back(newTT);
385 pulseClassificationAcc(*newTT) = ttPulseCategory;
389 for(
auto key : {
"L1_eEMxRoI",
"L1_eEMxRoIOutOfTime"}) {
394 for(
auto tob : *emTobs) {
395 if (tob->et() > 5000) {
396 if (tob->bcn4() == ((ctx.eventID().bunch_crossing_id()) & 0xf )) {
399 else if (tob->bcn4() == (((ctx.eventID().bunch_crossing_id())+1) & 0xf )) {
400 eFexoutoftimeCounter++;
409 CHECK(
evtStore()->retrieve( gFexLRJetRoI,
"L1_gFexLRJetRoI" ) );
410 for(
auto tob : *gFexLRJetRoI) {
411 if (tob->et() > 50) {
418 CHECK(
evtStore()->retrieve( jFexJetRoI,
"L1_jFexSRJetRoI" ) );
419 for(
auto tob : *jFexJetRoI) {
420 if (tob->et() > 25) {
425 if ((good3Counter < 2) and (
m_isIons ==
false)) {
427 return StatusCode::SUCCESS;
432 if ((trigger ==
"eFex") and (eFexoutoftimeCounter < 2)) {
434 return StatusCode::SUCCESS;
439 if( (good2Counter > 3) or
440 ((trigger ==
"eFex") and (eFexintimeCounter > 3)) or
441 ((trigger ==
"jFex") and (jFexCounter > 3)) or
442 ((trigger ==
"gFex") and (gFexCounter > 3)) ){
444 return StatusCode::SUCCESS;
449 if (trigger ==
"eFex") {
453 CHECK(
evtStore()->retrieve( emTobsOut,
"L1_eEMxRoIOutOfTime" ) );
455 for(
auto tob : *emTobs) {
458 etIn = tob->et()/1000;
460 for(
auto tobOut : *emTobsOut) {
461 etaOut = tobOut->eta();
462 phiOut = tobOut->phi();
463 etOut = tobOut->et()/1000;
465 dEta = std::abs(etaIn-etaOut);
466 dPhi = std::abs(phiIn-phiOut);
467 if ((phiIn < 0) and (phiOut > 0)){
468 dPhi1 = std::abs((phiIn+2*
M_PI)-phiOut);
473 else if ((phiIn > 0) and (phiOut < 0)){
474 dPhi1 = std::abs(phiIn-(phiOut+2*
M_PI));
479 dR = TMath::Sqrt(dEta*dEta+dPhi*dPhi);
480 if ((dR < .2) and (etIn > 26.) and (etOut > 26.)){
487 if ((legacyTrigger) and !(phase1Trigger)){
491 if ((overlap==
false) and (
m_isIons ==
false)) {
493 return StatusCode::SUCCESS;
500 std::lock_guard<std::mutex> lock(
m_mutex);
501 m_event_counter[lumiNo]+=1;
508 auto eventMonitor_legacy=
Monitored::Scalar<std::string>(
"eventMonitor_legacy",
"Event"+std::to_string(eventCounter)+
"="+std::to_string(currentEventNo));
509 auto eventMonitor_phaseI=
Monitored::Scalar<std::string>(
"eventMonitor_phaseI",
"Event"+std::to_string(eventCounter)+
"_"+trigger+
"="+std::to_string(currentEventNo));
511 std::string groupName =
"Event_";
513 fill(groupName, eventMonitor_legacy, lbMonitor );
516 fill(groupName, eventMonitor_phaseI, lbMonitor );
520 std::vector<MonitorTT> vecMonTTDecor;
526 ATH_MSG_DEBUG(
"tt->pulseClassification :: " << pulseClassificationAcc(*tt));
529 groupName =
"EventofInterest_" + std::to_string(eventCounter) +
"_";
533 for (
auto& myTower : vecMonTTDecor) {
535 const int layer = (myTower.tower)->layer();
536 pulseCat = pulseClassificationAcc(*myTower.tower);
537 bcidWord = (myTower.tower)->bcidVec()[0];
543 if(pulseCat > 0.5 && bcidWord > 0) {
547 else if(layer == 1 ) {
549 if(pulseCat > 0.5 && bcidWord > 0 )
ATH_CHECK(
fillPPMEtaPhi(myTower, groupName+
"TT_HAD",
"bcidWord", bcidWord) );
555 std::vector<MonitorCPM> vecMonCPM;
573 for (
auto& myTower : vecMonCPM) {
575 std::vector<uint8_t> cpmEMenergy = (myTower.tower)->emEnergyVec();
576 std::vector<uint8_t> cpmHADenergy = (myTower.tower)->hadEnergyVec();
578 etalut = myTower.etaScaled;
580 for (
auto phi: myTower.phiScaled) {
584 if(cpmEMenergy.size() > 2){
585 ATH_MSG_DEBUG(
"CPM :: emLUT0 :: " <<
static_cast<unsigned>(cpmEMenergy.at(0)) <<
":: emLUT1 :: " <<
static_cast<unsigned>(cpmEMenergy.at(1)) <<
":: emLUT2 :: " <<
static_cast<unsigned>(cpmEMenergy.at(2)));
587 emLUT0 =
static_cast<int>(cpmEMenergy.at(0));
588 if(cpmEMenergy.at(0) > 0)
fill(groupName+
"lut_EM0",etalut,philut, emLUT0);
590 emLUT1 =
static_cast<int>(cpmEMenergy.at(1));
591 if(cpmEMenergy.at(1) > 0)
fill(groupName+
"lut_EM1",etalut,philut, emLUT1);
593 emLUT2 =
static_cast<int>(cpmEMenergy.at(2));
594 if(cpmEMenergy.at(2) > 0)
fill(groupName+
"lut_EM2",etalut,philut, emLUT2);
596 if(cpmHADenergy.size() > 2){
597 ATH_MSG_DEBUG(
"CPM :: hadLUT0 :: " <<
static_cast<unsigned>(cpmHADenergy.at(0)) <<
":: hadLUT1 :: " <<
static_cast<unsigned>(cpmHADenergy.at(1)) <<
":: hadLUT2 :: " <<
static_cast<unsigned>(cpmHADenergy.at(2)));
599 hadLUT0 =
static_cast<int>(cpmHADenergy.at(0));
600 if(cpmHADenergy.at(0) > 0)
fill(groupName+
"lut_HAD0",etalut,philut, hadLUT0);
601 hadLUT1 =
static_cast<int>(cpmHADenergy.at(1));
602 if(cpmHADenergy.at(1) > 0)
fill(groupName+
"lut_HAD1",etalut,philut, hadLUT1);
603 hadLUT2 =
static_cast<int>(cpmHADenergy.at(2));
604 if(cpmHADenergy.at(2) > 0)
fill(groupName+
"lut_HAD2",etalut,philut, hadLUT2);
609 std::vector<MonitorJE> vecMonJE;
617 for (
auto&
jet : vecMonJE) {
619 std::vector<uint16_t> jepEMenergy = (
jet.element)->emJetElementETVec();
620 std::vector<uint16_t> jepHADenergy = (
jet.element)->hadJetElementETVec();
622 for (
auto eta:
jet.etaScaled) {
624 if ( std::abs(
eta) > 2.5){
625 for (
auto phi:
jet.phiScaled) {
627 if(jepEMenergy.size() > 2){
628 ATH_MSG_DEBUG(
"JetElement :: emLUT0 :: " <<
static_cast<unsigned>(jepEMenergy.at(0)) <<
":: emLUT1 :: " <<
static_cast<unsigned>(jepEMenergy.at(1)) <<
":: emLUT2 :: " <<
static_cast<unsigned>(jepEMenergy.at(2)));
630 emLUT0 =
static_cast<int>(jepEMenergy.at(0));
631 if(jepEMenergy.at(0) > 0)
fill(groupName+
"lut_EM0",etalut,philut, emLUT0);
633 emLUT1 =
static_cast<int>(jepEMenergy.at(1));
634 if(jepEMenergy.at(1) > 0)
fill(groupName+
"lut_EM1",etalut,philut, emLUT1);
636 emLUT2 =
static_cast<int>(jepEMenergy.at(2));
637 if(jepEMenergy.at(2) > 0)
fill(groupName+
"lut_EM2",etalut,philut, emLUT2);
639 if(jepHADenergy.size()> 2){
640 ATH_MSG_DEBUG(
"JetElement :: hadLUT0 :: " <<
static_cast<unsigned>(jepHADenergy.at(0)) <<
":: hadLUT1 :: " <<
static_cast<unsigned>(jepHADenergy.at(1)) <<
":: hadLUT2 :: " <<
static_cast<unsigned>(jepHADenergy.at(2)));
642 hadLUT0 =
static_cast<int>(jepHADenergy.at(0));
643 if(jepHADenergy.at(0) > 0)
fill(groupName+
"lut_HAD0",etalut,philut, hadLUT0);
645 hadLUT1 =
static_cast<int>(jepHADenergy.at(1));
646 if(jepHADenergy.at(1) > 0)
fill(groupName+
"lut_HAD1",etalut,philut, hadLUT1);
648 hadLUT2 =
static_cast<int>(jepHADenergy.at(2));
649 if(jepHADenergy.at(2) > 0)
fill(groupName+
"lut_HAD2",etalut,philut, hadLUT2);
657 if ( !eFexContainer.
isValid() ) {
675 for(
auto key : {
"L1_eEMxRoI",
"L1_eEMxRoIOutOfTime"}) {
680 for(
auto tob : *emTobs) {
681 TOBeT = tob->et()/1000;
685 if (tob->phi() < 0) {
686 TOBphi = tob->phi()+2*
M_PI;
693 if (tob->bcn4() == (((ctx.eventID().bunch_crossing_id())-1) & 0xf )) {
695 fill(groupName+
"Efex0", TOBeta, TOBphi, TOBeT);
698 else if (tob->bcn4() == ((ctx.eventID().bunch_crossing_id()) & 0xf )) {
700 if (TOBeT_max_in < TOBeT) {
701 TOBeT_max_in = tob->et()/1000;
702 TOBeta_max_in = tob->eta();
703 if (tob->phi() < 0) {
704 TOBphi_max_in = tob->phi()+2*
M_PI;
707 TOBphi_max_in = tob->phi();
710 fill(groupName+
"Efex1", TOBeta, TOBphi, TOBeT);
713 else if (tob->bcn4() == (((ctx.eventID().bunch_crossing_id())+1) & 0xf )) {
715 if (TOBeT_max < TOBeT) {
716 TOBeT_max = tob->et()/1000;
717 TOBeta_max = tob->eta();
718 if (tob->phi() < 0) {
719 TOBphi_max = tob->phi()+2*
M_PI;
722 TOBphi_max = tob->phi();
725 fill(groupName+
"Efex2", TOBeta, TOBphi, TOBeT);
730 if (trigger ==
"eFex") {
731 fill(
"Efex_maxTOB_in", TOBeT_max_in);
732 fill(
"Efex_maxTOB_out", TOBeT_max);
733 fill(
"Efex_maxTOB_out", TOBeta_max, TOBphi_max);
734 fill(
"Efex_maxTOB_in", TOBeta_max_in, TOBphi_max_in);
744 if(!jFexTowerContainer.isValid()) {
751 if(!jEmulatedTowerContainer.
isValid()) {
752 ATH_MSG_WARNING(
"No jFex Tower container valid in storegate with key: "<< jEmulatedTowerContainer.
key()<<
". Will be skipped!");
756 jFexEt=emulTower->et_count().at(0);
758 jFexeta=emulTower->eta()+1e-5;
759 if (emulTower->phi() < 0) {
760 jFexphi=emulTower->phi()+2*
M_PI;
763 jFexphi=emulTower->phi();
766 fill(groupName+
"JfexEmulated",jFexeta,jFexphi, jFexEt);
773 if(jFexSRJetRoI->
tobWord()==0)
continue;
774 jFexEt=jFexSRJetRoI->
tobEt()/5;
775 jFexeta=jFexSRJetRoI->
eta();
776 if (jFexSRJetRoI->
phi() < 0) {
777 jFexphi=jFexSRJetRoI->
phi()+2*
M_PI;
780 jFexphi=jFexSRJetRoI->
phi();
782 if (TOBeT_max < jFexEt) {
783 TOBeT_max = jFexSRJetRoI->
tobEt()/5;
784 TOBeta_max = jFexSRJetRoI->
eta();
785 if (jFexSRJetRoI->
phi() < 0) {
786 TOBphi_max =jFexSRJetRoI->
phi()+2*
M_PI;
789 TOBphi_max =jFexSRJetRoI->
phi();
792 fill(groupName+
"JfexSRJet", jFexeta, jFexphi, jFexEt);
794 if (trigger ==
"jFex") {
795 fill(
"Jfex_maxTOB", TOBeT_max);
796 fill(
"Jfex_maxTOB", TOBeta_max, TOBphi_max);
800 if(!jFexTauContainer.
isValid()) {
805 if(jFexTauRoI->
tobWord()==0)
continue;
806 jFexEt =jFexTauRoI->
tobEt()/5;
807 jFexeta=jFexTauRoI->
eta();
808 if (jFexTauRoI->
phi() < 0) {
809 jFexphi=jFexTauRoI->
phi()+2*
M_PI;
812 jFexphi=jFexTauRoI->
phi();
814 fill(groupName+
"JfexTau", jFexeta, jFexphi, jFexEt);
828 if ( !jetContainer.
isValid() ) {
829 ATH_MSG_WARNING(
"No gFex jet container found in storegate: "<< key.key());
833 gFexEt =gFexJetRoIContainer->gFexTobEt()/10;
834 gFexEta=gFexJetRoIContainer->eta();
835 if (gFexJetRoIContainer->phi() < 0) {
836 gFexPhi=gFexJetRoIContainer->phi()+2*
M_PI;
839 gFexPhi=gFexJetRoIContainer->phi();
841 if (TOBeT_max < gFexEt) {
842 TOBeT_max = gFexJetRoIContainer->gFexTobEt()/10;
843 TOBeta_max = gFexJetRoIContainer->eta();
844 if (gFexJetRoIContainer->phi() < 0) {
845 TOBphi_max=gFexJetRoIContainer->phi()+2*
M_PI;
848 TOBphi_max=gFexJetRoIContainer->phi();
851 if (key_index == 0) {
852 fill(groupName+
"GfexSRJet",gFexEta, gFexPhi, gFexEt);
854 else if (key_index == 1) {
855 fill(groupName+
"GfexLRJet",gFexEta, gFexPhi, gFexEt);
861 if (trigger ==
"gFex") {
862 fill(
"Gfex_maxTOB", TOBeT_max);
863 fill(
"Gfex_maxTOB", TOBeta_max, TOBphi_max);
872 fill(
"Event_all_", eventMonitor_all_legacy, lbMonitor_all );
875 fill(
"Event_all_", eventMonitor_all_phaseI, lbMonitor_all );
879 if ( !eFexContainer.
isValid() ) {
897 for(
auto key : {
"L1_eEMxRoI",
"L1_eEMxRoIOutOfTime"}) {
902 for(
auto tob : *emTobs) {
903 TOBeT = tob->et()/1000;
907 if (tob->phi() < 0) {
908 TOBphi = tob->phi()+2*
M_PI;
914 if (tob->bcn4() == ((ctx.eventID().bunch_crossing_id()) & 0xf )) {
916 if (TOBeT_max_in < TOBeT) {
917 TOBeT_max_in = tob->et()/1000;
918 TOBeta_max_in = tob->eta();
919 if (tob->phi() < 0) {
920 TOBphi_max_in = tob->phi()+2*
M_PI;
923 TOBphi_max_in = tob->phi();
928 else if (tob->bcn4() == (((ctx.eventID().bunch_crossing_id())+1) & 0xf )) {
930 if (TOBeT_max < TOBeT) {
931 TOBeT_max = tob->et()/1000;
932 TOBeta_max = tob->eta();
933 if (tob->phi() < 0) {
934 TOBphi_max = tob->phi()+2*
M_PI;
937 TOBphi_max = tob->phi();
944 if (trigger ==
"eFex") {
945 fill(
"Efex_maxTOB_in", TOBeT_max_in);
946 fill(
"Efex_maxTOB_out", TOBeT_max);
947 fill(
"Efex_maxTOB_out", TOBeta_max, TOBphi_max);
948 fill(
"Efex_maxTOB_in", TOBeta_max_in, TOBphi_max_in);
958 if(!jFexTowerContainer.isValid()) {
964 if(jFexSRJetRoI->
tobWord()==0)
continue;
965 jFexEt=jFexSRJetRoI->
tobEt()/5;
966 jFexeta=jFexSRJetRoI->
eta();
967 if (jFexSRJetRoI->
phi() < 0) {
968 jFexphi=jFexSRJetRoI->
phi()+2*
M_PI;
971 jFexphi=jFexSRJetRoI->
phi();
973 if (TOBeT_max < jFexEt) {
974 TOBeT_max = jFexSRJetRoI->
tobEt()/5;
975 TOBeta_max = jFexSRJetRoI->
eta();
976 if (jFexSRJetRoI->
phi() < 0) {
977 TOBphi_max =jFexSRJetRoI->
phi()+2*
M_PI;
980 TOBphi_max =jFexSRJetRoI->
phi();
984 if (trigger ==
"jFex") {
985 fill(
"Jfex_maxTOB", TOBeT_max);
986 fill(
"Jfex_maxTOB", TOBeta_max, TOBphi_max);
998 if ( !jetContainer.
isValid() ) {
999 ATH_MSG_WARNING(
"No gFex jet container found in storegate: "<< key.key());
1003 gFexEt =gFexJetRoIContainer->gFexTobEt()/10;
1004 gFexEta=gFexJetRoIContainer->eta();
1005 if (gFexJetRoIContainer->phi() < 0) {
1006 gFexPhi=gFexJetRoIContainer->phi()+2*
M_PI;
1009 gFexPhi=gFexJetRoIContainer->phi();
1011 if (TOBeT_max < gFexEt) {
1012 TOBeT_max = gFexJetRoIContainer->gFexTobEt()/10;
1013 TOBeta_max = gFexJetRoIContainer->eta();
1014 if (gFexJetRoIContainer->phi() < 0) {
1015 TOBphi_max=gFexJetRoIContainer->phi()+2*
M_PI;
1018 TOBphi_max=gFexJetRoIContainer->phi();
1024 if (trigger ==
"gFex") {
1025 fill(
"Gfex_maxTOB", TOBeT_max);
1026 fill(
"Gfex_maxTOB", TOBeta_max, TOBphi_max);
1031 return StatusCode::SUCCESS;