diff --git a/Trigger/TrigMonitoring/TrigTauMonitoring/src/HLTTauMonTool.cxx b/Trigger/TrigMonitoring/TrigTauMonitoring/src/HLTTauMonTool.cxx index d2df0a36e6a31446f88642c2ce223e258395ae08..96ff5acb675efcaf060342b57fb541b055c7ac00 100644 --- a/Trigger/TrigMonitoring/TrigTauMonitoring/src/HLTTauMonTool.cxx +++ b/Trigger/TrigMonitoring/TrigTauMonitoring/src/HLTTauMonTool.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ /** @file HLTTauMonTool.cxx @@ -244,7 +244,6 @@ StatusCode HLTTauMonTool::init() { if(m_L1StringCondition=="allowResurrectedDecision") m_L1TriggerCondition=TrigDefs::Physics | TrigDefs::allowResurrectedDecision; if(m_HLTStringCondition=="allowResurrectedDecision") m_HLTTriggerCondition=TrigDefs::Physics | TrigDefs::allowResurrectedDecision; - ATH_CHECK( m_luminosityCondDataKey.initialize() ); return StatusCode::SUCCESS; } @@ -328,19 +327,18 @@ StatusCode HLTTauMonTool::fill() { m_mu_offline = avg_mu; ATH_MSG_DEBUG("offline mu "<<avg_mu); } - SG::ReadCondHandle<LuminosityCondData> lumiData (m_luminosityCondDataKey); - float avg_mu = lumiData->lbAverageInteractionsPerCrossing(); - m_mu_online = avg_mu; - ATH_MSG_DEBUG("online mu "<<avg_mu); m_muCut40Passed = (!m_domuCut40 || (m_domuCut40 && (m_mu_offline<40.))); const xAOD::EventInfo* evtInfo = 0; if( !evtStore()->retrieve(evtInfo, "EventInfo" ).isSuccess() ){ - ATH_MSG_DEBUG("Failed to retrieve EventInfo container, aborting!"); + ATH_MSG_WARNING("Failed to retrieve EventInfo container, aborting!"); return StatusCode::SUCCESS; } - m_LB = evtInfo->lumiBlock(); + m_LB = evtInfo->lumiBlock(); + + ATH_MSG_DEBUG("actual mu: "<<evtInfo->actualInteractionsPerCrossing() ); + m_mu_online = evtInfo->actualInteractionsPerCrossing(); // fill true taus vectors m_true_taus.clear(); @@ -506,7 +504,7 @@ StatusCode HLTTauMonTool::fill() { for(;comb!=combEnd;++comb){ const std::vector< Trig::Feature<xAOD::TauJetContainer> > vec_HLTtau = comb->get<xAOD::TauJetContainer>("TrigTauRecMerged",m_HLTTriggerCondition); std::vector<Trig::Feature<xAOD::TauJetContainer> >::const_iterator topoTau = vec_HLTtau.begin(), topoTau_e = vec_HLTtau.end(); - if(topoTau==topoTau_e) ATH_MSG_DEBUG("TrigTauMerged TauJet container EMPTY in " << chain); + if(topoTau==topoTau_e) ATH_MSG_WARNING("TrigTauMerged TauJet container EMPTY in " << chain); ATH_MSG_DEBUG("Item "<< chain << ": " << vec_HLTtau.size() << " " << topoTau->label() << " containers"); for(; topoTau != topoTau_e; ++topoTau){ if(topoTau->cptr()){ @@ -524,17 +522,17 @@ StatusCode HLTTauMonTool::fill() { } else { // TriggerComposite const std::vector< TrigCompositeUtils::LinkInfo<xAOD::TauJetContainer> > features = - getTDT()->features<xAOD::TauJetContainer>( chain, m_HLTTriggerCondition, "TrigTauRecMerged" ); + getTDT()->features<xAOD::TauJetContainer>( chain, m_HLTTriggerCondition, "TrigTauRecMerged_MVA" ); if(features.size()!=2){ ATH_MSG_DEBUG("Number of features for chain " << chain << " is "<< features.size()); if (features.size() == 0) { - ATH_MSG_DEBUG("TrigTauMerged TauJet container EMPTY in " << chain); + ATH_MSG_WARNING("TrigTauMerged TauJet container EMPTY in " << chain); } } for(const auto& tauJetLinkInfo : features){ if (!tauJetLinkInfo.isValid()) { - ATH_MSG_WARNING("Invalid tauJet"); + ATH_MSG_WARNING("Invalid tauJet from TrigTauRecMerged_MVA"); continue; } ElementLink<xAOD::TauJetContainer> tauJetEL = tauJetLinkInfo.link; @@ -565,12 +563,6 @@ StatusCode HLTTauMonTool::fill() { } } - - - - - - // muCut on filling the histograms if (m_muCut40Passed) { @@ -644,11 +636,6 @@ void HLTTauMonTool::cloneHistogram2(const std::string name, const std::string fo } - - - - - StatusCode HLTTauMonTool::fillHistogramsForItem(const std::string & trigItem, const bool & monRNN, const bool & monBDT, const std::string & goodTauRefType){ ATH_MSG_DEBUG ("HLTTauMonTool::fillHistogramsForItem " << trigItem); @@ -658,10 +645,11 @@ StatusCode HLTTauMonTool::fillHistogramsForItem(const std::string & trigItem, co std::string trig_item_EF = "HLT_"+trigItem; std::string trig_item_L1(LowerChain( trig_item_EF ) ); if(trig_item_L1=="") { - ATH_MSG_DEBUG("L1 chain for "<< trig_item_EF << " not found"); + ATH_MSG_WARNING("L1 chain for "<< trig_item_EF << " not found"); } // protection against AODSLIM that misses HLT tau tracks and HLT clusters, for RNN monitoring + // FixMe use new container names for R22 bool isAODFULL = evtStore()->contains<xAOD::TauTrackContainer>("HLT_xAOD__TauTrackContainer_TrigTauRecMergedTracks") && evtStore()->contains<xAOD::CaloClusterContainer>("HLT_xAOD__CaloClusterContainer_TrigCaloClusterMaker"); @@ -696,16 +684,16 @@ StatusCode HLTTauMonTool::fillHistogramsForItem(const std::string & trigItem, co ATH_CHECK(fillL1TauVsOffline(*itEMTau, goodTauRefType)); } const xAOD::TauJetContainer * tauJetCont = 0; - if( !evtStore()->retrieve(tauJetCont, "HLT_xAOD__TauJetContainer_TrigTauRecMerged").isSuccess() ){ - ATH_MSG_WARNING("Failed to retrieve HLT_xAOD__TauJetContainer_TrigTauRecMerged container. Exiting!"); - return StatusCode::FAILURE; + StatusCode sc = evtStore()->retrieve(tauJetCont, "HLT_xAOD__TauJetContainer_TrigTauRecMerged"); + if( sc.isFailure() || !tauJetCont ){ + ATH_MSG_DEBUG("Failed to retrieve HLT_xAOD__TauJetContainer_TrigTauRecMerged container. Exiting."); + sc = evtStore()->retrieve(tauJetCont, "HLT_TrigTauRecMerged_MVA"); + if( sc.isFailure() || !tauJetCont ){ + ATH_MSG_WARNING("Failed to retrieve HLT_TrigTauRecMerged_MVA container. Exiting."); + return StatusCode::FAILURE; + } } - - - - - xAOD::TauJetContainer::const_iterator CI = tauJetCont->begin(),tauJetCont_end = tauJetCont->end(); for(; CI!=tauJetCont_end; ++CI){ @@ -740,19 +728,6 @@ StatusCode HLTTauMonTool::fillHistogramsForItem(const std::string & trigItem, co ATH_MSG_DEBUG ("HLTTauMonTool::fillHistogramsForItem passed " << trig_item_EF); - - - - - - - - - - - - - std::vector< uint32_t > tau_roIWord; std::vector< float > tau_roi_eta; std::vector< float > tau_roi_phi; @@ -840,7 +815,7 @@ StatusCode HLTTauMonTool::fillHistogramsForItem(const std::string & trigItem, co // L1 Histograms, but looking only at RoIs seeding events passing HLT. Otherwise we are biased to events accepted by other chains for(const auto& tauJetLinkInfo : features){ if (!tauJetLinkInfo.isValid()) { - ATH_MSG_WARNING("Invalid tauJet"); + ATH_MSG_WARNING("Invalid tauJet 1"); continue; } const TrigCompositeUtils::Decision* decision = tauJetLinkInfo.source; @@ -1026,7 +1001,7 @@ StatusCode HLTTauMonTool::fillHistogramsForItem(const std::string & trigItem, co } for(const auto& tauJetLinkInfo : featuresPreselect){ if (!tauJetLinkInfo.isValid()) { - ATH_MSG_WARNING("Invalid tauJet"); + ATH_MSG_WARNING("Invalid tauJet Preselection"); continue; } const ElementLink<xAOD::TauJetContainer> tauJetEL = tauJetLinkInfo.link; @@ -1048,7 +1023,7 @@ StatusCode HLTTauMonTool::fillHistogramsForItem(const std::string & trigItem, co } for(const auto& tauJetLinkInfo : featuresMerged){ if (!tauJetLinkInfo.isValid()) { - ATH_MSG_WARNING("Invalid tauJet"); + ATH_MSG_WARNING("Invalid tauJet MVA 2"); continue; } const ElementLink<xAOD::TauJetContainer> tauJetEL = tauJetLinkInfo.link; @@ -1082,23 +1057,6 @@ StatusCode HLTTauMonTool::fillHistogramsForItem(const std::string & trigItem, co } // TriggerElement or TrigComposite } // end events passing HLT chain - - - - - - - - - - - - - - - - - // L1Topo Tests if(trig_item_EF=="HLT_tau35_medium1_tracktwo_tau25_medium1_tracktwo_L1TAU20IM_2TAU12IM" && getTDT()->isPassed(trig_item_EF)){ @@ -1137,7 +1095,7 @@ StatusCode HLTTauMonTool::fillHistogramsForItem(const std::string & trigItem, co for(const auto& tauJetLinkInfo : features){ if (!tauJetLinkInfo.isValid()) { - ATH_MSG_WARNING("Invalid tauJet"); + ATH_MSG_WARNING("Invalid tauJet MVA 3"); continue; } const ElementLink<xAOD::TauJetContainer> tauJetEL = tauJetLinkInfo.link; @@ -1180,11 +1138,6 @@ StatusCode HLTTauMonTool::fillHistogramsForItem(const std::string & trigItem, co // if(sc.isFailure()){ ATH_MSG_WARNING("Failed to fill combo eff curves. Exiting!"); return StatusCode::FAILURE;} } - - - - - if (!sc.isSuccess()) { ATH_MSG_WARNING("Could not fill histograms for given item."); } @@ -1193,13 +1146,6 @@ StatusCode HLTTauMonTool::fillHistogramsForItem(const std::string & trigItem, co } - - - - - - - StatusCode HLTTauMonTool::fillL1Tau(const xAOD::EmTauRoI * aL1Tau){ ATH_MSG_DEBUG("HLTTauMonTool::fillL1Tau"); @@ -2473,7 +2419,7 @@ void HLTTauMonTool::testL1TopoNavigation(const std::string & trigItem){ } else { // TrigComposite const std::vector< TrigCompositeUtils::LinkInfo<xAOD::TauJetContainer> > features - = getTDT()->features<xAOD::TauJetContainer>( trig_item_EF, m_HLTTriggerCondition, "TrigTauRecMerged" ); + = getTDT()->features<xAOD::TauJetContainer>( trig_item_EF, m_HLTTriggerCondition, "HLT_TrigTauRecMerged_MVA" ); const xAOD::EmTauRoIContainer* l1Tau_cont = 0; if ( !evtStore()->retrieve( l1Tau_cont, "LVL1EmTauRoIs").isSuccess() ){ @@ -2485,7 +2431,7 @@ void HLTTauMonTool::testL1TopoNavigation(const std::string & trigItem){ for(const auto& tauJetLinkInfo : features){ if (!tauJetLinkInfo.isValid()) { - ATH_MSG_WARNING("Invalid tauJet"); + ATH_MSG_WARNING("Invalid tauJet MVA 4"); continue; } const TrigCompositeUtils::Decision* decision = tauJetLinkInfo.source; @@ -2645,7 +2591,7 @@ bool HLTTauMonTool::Match_Offline_L1(const xAOD::TauJet *aOfflineTau, const std: for(const auto& tauJetLinkInfo : features){ if (!tauJetLinkInfo.isValid()) { - ATH_MSG_WARNING("Invalid tauJet"); + ATH_MSG_WARNING("Invalid tauJet 5"); continue; } const TrigCompositeUtils::Decision* decision = tauJetLinkInfo.source; @@ -2702,7 +2648,7 @@ bool HLTTauMonTool::Match_Offline_EF(const xAOD::TauJet *aOfflineTau, const std: for(const auto& tauJetLinkInfo : features){ if (!tauJetLinkInfo.isValid()) { - ATH_MSG_WARNING("Invalid tauJet"); + ATH_MSG_WARNING("Invalid tauJet 6"); continue; } const TrigCompositeUtils::Decision* decision = tauJetLinkInfo.source; @@ -2928,10 +2874,15 @@ StatusCode HLTTauMonTool::TauEfficiency(const std::string & trigItem, const std: if( (TauDenom.find("Truth")==std::string::npos || !m_truth) && TauDenom.find("Reco")==std::string::npos) addToDenom = true; const xAOD::TauJetContainer * hlt_cont = 0; - if( !evtStore()->retrieve(hlt_cont, "HLT_xAOD__TauJetContainer_TrigTauRecPreselection").isSuccess() ){ - ATH_MSG_WARNING("Failed to retrieve HLT_xAOD__TauJetContainer_TrigTauRecPreselection container. Exiting."); + StatusCode sc = evtStore()->retrieve(hlt_cont, "HLT_xAOD__TauJetContainer_TrigTauRecPreselection"); + if( sc.isFailure() || !hlt_cont ){ + ATH_MSG_DEBUG("Failed to retrieve HLT_xAOD__TauJetContainer_TrigTauRecPreselection container. Exiting."); + sc = evtStore()->retrieve(hlt_cont, "HLT_TrigTauRecMerged_Presel"); + if( sc.isFailure() || !hlt_cont ){ + ATH_MSG_WARNING("Failed to retrieve HLT_TrigTauRecMerged_Presel container. Exiting."); return StatusCode::FAILURE; } + } xAOD::TauJetContainer::const_iterator hltItr, hlt_cont_end = hlt_cont->end(); for(hltItr=hlt_cont->begin(); hltItr!=hlt_cont_end; ++hltItr){ TLorentzVector hltTLV = (*hltItr)->p4(); @@ -2956,26 +2907,26 @@ StatusCode HLTTauMonTool::TauEfficiency(const std::string & trigItem, const std: if(trigItem.find("125")!=std::string::npos) if(hltTLV.Pt()<125000.) continue; if(trigItem.find("160")!=std::string::npos) if(hltTLV.Pt()<160000.) continue; if(addToDenom){ - tlv_TauDenom.push_back(hltTLV); - ntrk_TauDenom.push_back(ntrack_TAU); - good_TauDenom.push_back(true); - } - if(!addToDenom){ - tlv_tmp.push_back(hltTLV); - } + tlv_TauDenom.push_back(hltTLV); + ntrk_TauDenom.push_back(ntrack_TAU); + good_TauDenom.push_back(true); + } + if(!addToDenom){ + tlv_tmp.push_back(hltTLV); + } } if(!addToDenom){ - for(unsigned int i=0;i<tlv_TauDenom.size();i++){ - if(!good_TauDenom.at(i)) continue; - bool matched(false); - for(unsigned int j=0;j<tlv_tmp.size();j++){ - if(tlv_tmp.at(j).DeltaR(tlv_TauDenom.at(i))<0.2) matched = true; - } - if(!matched) good_TauDenom.at(i) = false; - } - tlv_tmp.clear(); - } + for(unsigned int i=0;i<tlv_TauDenom.size();i++){ + if(!good_TauDenom.at(i)) continue; + bool matched(false); + for(unsigned int j=0;j<tlv_tmp.size();j++){ + if(tlv_tmp.at(j).DeltaR(tlv_TauDenom.at(i))<0.2) matched = true; + } + if(!matched) good_TauDenom.at(i) = false; + } + tlv_tmp.clear(); + } } std::string trigItemShort=trigItem; @@ -3061,6 +3012,7 @@ StatusCode HLTTauMonTool::TauEfficiency(const std::string & trigItem, const std: profile("TProfRecoL1HighPtEfficiency")->Fill(pt/GeV,L1matched); profile("TProfRecoL1EtaEfficiency")->Fill(eta,L1matched); profile("TProfRecoL1PhiEfficiency")->Fill(phi,L1matched); + ATH_MSG_DEBUG("This is the tau phi: " << phi << " is it L1 matched? " << L1matched << "trig Item" << trigItem); profile("TProfRecoL1NTrackEfficiency")->Fill(ntracks,L1matched); profile("TProfRecoL1NVtxEfficiency")->Fill(nvtx,L1matched); profile("TProfRecoL1MuEfficiency")->Fill(mu,L1matched); @@ -3815,6 +3767,8 @@ bool HLTTauMonTool::L1TauMatching(const std::string & trigItem, const TLorentzVe } std::string HLT_item = "HLT_"+trigItem; + ATH_MSG_DEBUG("HLT_item: " << HLT_item << " Trig Item: " << trigItem); + if(getTDT()->isPassed( HLT_item,(TrigDefs::Physics | TrigDefs::allowResurrectedDecision | TrigDefs::alsoDeactivateTEs) )) { ATH_MSG_DEBUG("HTLTauMonTool::L1TauMatching event passed " << HLT_item << ", obtaining list of features now"); @@ -3853,11 +3807,14 @@ bool HLTTauMonTool::L1TauMatching(const std::string & trigItem, const TLorentzVe const std::vector< TrigCompositeUtils::LinkInfo<xAOD::TauJetContainer> > features = getTDT()->features<xAOD::TauJetContainer>( HLT_item, TrigDefs::includeFailedDecisions ); + int counter=0; for(const auto& tauJetLinkInfo : features){ if (!tauJetLinkInfo.isValid()) { - ATH_MSG_WARNING("Invalid tauJet"); + ATH_MSG_WARNING("Invalid tauJet on L1TauMatching"); continue; } + counter++; + ATH_MSG_DEBUG("Counter: " << counter); const TrigCompositeUtils::Decision* decision = tauJetLinkInfo.source; const TrigCompositeUtils::LinkInfo<TrigRoiDescriptorCollection> initialRoILinkInfo = diff --git a/Trigger/TrigMonitoring/TrigTauMonitoring/src/HLTTauMonTool.h b/Trigger/TrigMonitoring/TrigTauMonitoring/src/HLTTauMonTool.h index d4a5c955ee575b2f85fe57a9cd1ece78553f703b..ca839c4344edbcd2ce2969b4f2ad6199c7866a2c 100644 --- a/Trigger/TrigMonitoring/TrigTauMonitoring/src/HLTTauMonTool.h +++ b/Trigger/TrigMonitoring/TrigTauMonitoring/src/HLTTauMonTool.h @@ -188,12 +188,10 @@ class HLTTauMonTool : public IHLTMonTool { ToolHandle<TrigTauEmul::IHltEmulationTool> m_hltemulationTool; ToolHandle<ILumiBlockMuTool> m_lumiBlockMuTool; - SG::ReadCondHandleKey<LuminosityCondData> m_luminosityCondDataKey - { this, "LuminosityCondDataKey", "LuminosityCondDataOnline", "" }; -// ToolHandle<ILuminosityTool> m_luminosityToolOnline; + float m_mu_offline; int m_mu_online; - int m_LB; + int m_LB; ///Name of the trigger items to be monitored. diff --git a/Trigger/TrigMonitoring/TrigTauMonitoring/src/HLTTauMonTool_bookHistograms.cxx b/Trigger/TrigMonitoring/TrigTauMonitoring/src/HLTTauMonTool_bookHistograms.cxx index 8af3ab872d90fd6f31d4c65dff4e1785bba63d30..71b897f1783399bb472a146cc71f53f3a92ee7bb 100644 --- a/Trigger/TrigMonitoring/TrigTauMonitoring/src/HLTTauMonTool_bookHistograms.cxx +++ b/Trigger/TrigMonitoring/TrigTauMonitoring/src/HLTTauMonTool_bookHistograms.cxx @@ -121,8 +121,8 @@ void HLTTauMonTool::bookHistogramsForItem(const std::string & trigItem){ //Basic kinematic variables addHistogram(new TH1F("hEFEt","EF Et;E_{T}[GeV];Nevents",50,0.0,100.0)); addHistogram(new TH1F("hEFEta","EF TrigCaloCluster Eta; #eta ; Nevents",26,-2.6,2.6)); - addHistogram(new TH1F("hEFNUM","Online mu; Online #mu ; Nevents",50,0,50)); - addHistogram(new TH2F("hEFNUMvsmu","Online vs offline mu; Online #mu ; Offline #mu", 70,0,70,70,0,70)); + addHistogram(new TH1F("hEFNUM","Online mu; Online #mu ; Nevents",100,0,100)); + addHistogram(new TH2F("hEFNUMvsmu","Online vs offline mu; Online #mu ; Offline #mu", 100,0,100,100,0,100)); addHistogram(new TH1F("hEFPhi","EF TrigCaloCluster Phi; #phi ; Nevents",16,-3.2,3.2)); addHistogram(new TH1F("hEFnTrack","EF number of tracks;number of tracks;Nevents",10,0,10)); addHistogram(new TH2F("hEFEtaVsPhi","EF TrigCaloCluster Eta vs Phi; #eta ; #phi ; Nevents",26,-2.6,2.6,16,-3.2,3.2)); diff --git a/Trigger/TrigMonitoring/TrigTauMonitoring/src/HLTTauMonTool_emulation.cxx b/Trigger/TrigMonitoring/TrigTauMonitoring/src/HLTTauMonTool_emulation.cxx index b74ab5e05b3d592cd7dd2fb6ff54044d0b78c948..0cdb716138c949e4e11703232088d094494e34bd 100644 --- a/Trigger/TrigMonitoring/TrigTauMonitoring/src/HLTTauMonTool_emulation.cxx +++ b/Trigger/TrigMonitoring/TrigTauMonitoring/src/HLTTauMonTool_emulation.cxx @@ -9,7 +9,7 @@ using namespace std; std::string HLTTauMonTool::LowerChain(std::string hlt_item){ - ATH_MSG_DEBUG("HLTTauMonTool::LowerChain()"); + ATH_MSG_DEBUG("HLTTauMonTool::LowerChain() " << hlt_item); std::string l1_chain(""); @@ -17,10 +17,17 @@ std::string HLTTauMonTool::LowerChain(std::string hlt_item){ if( (hlt_chain = m_configsvc->chainList()->chain(hlt_item)) ){ ATH_MSG_DEBUG("HLT Chain " << hlt_item << " found in TrigConfSvc!"); std::string lower_chain( hlt_chain->lower_chain_name() ); - ATH_MSG_DEBUG("L1 Chain " << lower_chain << " found in TrigConfSvc!"); l1_chain = lower_chain; + }else{ + auto trig_conf = getTDT()->ExperimentalAndExpertMethods()->getChainConfigurationDetails(hlt_item); + if(trig_conf != nullptr){ + ATH_MSG_DEBUG("TrigConf is available"); + l1_chain = trig_conf->lower_chain_name(); //L1 trigger seed + } } + ATH_MSG_DEBUG("L1 Chain " << l1_chain << " found in TrigConfSvc!"); + return l1_chain; } @@ -63,18 +70,28 @@ StatusCode HLTTauMonTool::Emulation(){ // retrieve HLT containers const xAOD::TauJetContainer * tauPreselCont = 0; - if( evtStore()->retrieve(tauPreselCont, "HLT_xAOD__TauJetContainer_TrigTauRecPreselection").isFailure() ){ - ATH_MSG_WARNING("Failed to retrieve HLT_xAOD__TauJetContainer_TrigTauRecPreselection container. Exiting!"); - return StatusCode::FAILURE; + StatusCode sc = evtStore()->retrieve(tauPreselCont, "HLT_xAOD__TauJetContainer_TrigTauRecPreselection"); + if( sc.isFailure() || !tauPreselCont ){ + ATH_MSG_DEBUG("Failed to retrieve HLT_xAOD__TauJetContainer_TrigTauRecPreselection container. Exiting."); + sc = evtStore()->retrieve(tauPreselCont, "HLT_TrigTauRecMerged_Presel"); + if( sc.isFailure() || !tauPreselCont ){ + ATH_MSG_WARNING("Failed to retrieve HLT_TrigTauRecMerged_Presel container. Exiting."); + return sc; + } } + // retrieve HLT containers const xAOD::TauJetContainer * tauHLTCont = 0; - if( evtStore()->retrieve(tauHLTCont, "HLT_xAOD__TauJetContainer_TrigTauRecMerged").isFailure() ){ - ATH_MSG_WARNING("Failed to retrieve HLT_xAOD__TauJetContainer_TrigTauRecMerged container. Exiting!"); - return StatusCode::FAILURE; + sc = evtStore()->retrieve(tauHLTCont, "HLT_xAOD__TauJetContainer_TrigTauRecMerged"); + if( sc.isFailure() || !tauHLTCont ){ + ATH_MSG_DEBUG("Failed to retrieve HLT_xAOD__TauJetContainer_TrigTauRecMerged container. Exiting."); + sc = evtStore()->retrieve(tauHLTCont, "HLT_TrigTauRecMerged_MVA"); + if( sc.isFailure() || !tauPreselCont ){ + ATH_MSG_WARNING("Failed to retrieve HLT_TrigTauRecMerged_MVA container. Exiting."); + return sc; + } } - ATH_CHECK(m_l1emulationTool->calculate(l1taus, l1jets, l1muons, l1xe)); // //m_l1emulationTool->PrintCounters(); //