diff --git a/Trigger/TrigMonitoring/TrigTauMonitoring/python/TrigTauMonitoringConfigMT.py b/Trigger/TrigMonitoring/TrigTauMonitoring/python/TrigTauMonitoringConfigMT.py index 5fce086b71fecea1a6c33231bdbe5dd31e72d91d..c002129da1621023ff68f969427110d7547e2a7b 100644 --- a/Trigger/TrigMonitoring/TrigTauMonitoring/python/TrigTauMonitoringConfigMT.py +++ b/Trigger/TrigMonitoring/TrigTauMonitoring/python/TrigTauMonitoringConfigMT.py @@ -185,10 +185,7 @@ class TrigTauMonAlgBuilder: info = self.getTrigInfo(trigger) - self.bookbasicVars( monAlg, trigger, online=True ) - self.bookbasicVars( monAlg, trigger, online=False ) - - if info.isRNN() is True: + if info.isRNN() is True: self.bookRNNInputVars( monAlg, trigger,nProng='1P', online=True ) self.bookRNNInputVars( monAlg, trigger,nProng='MP', online=True ) self.bookRNNInputVars( monAlg, trigger,nProng='1P', online=False ) @@ -197,6 +194,8 @@ class TrigTauMonAlgBuilder: self.bookRNNTrack( monAlg, trigger, online=False ) self.bookRNNCluster( monAlg, trigger, online=True ) self.bookRNNCluster( monAlg, trigger, online=False ) + self.bookbasicVars( monAlg, trigger, online=True ) + self.bookbasicVars( monAlg, trigger, online=False ) # # Book RNN Variables @@ -204,7 +203,7 @@ class TrigTauMonAlgBuilder: def bookRNNInputVars( self, monAlg, trigger,nProng, online ): monGroupName = trigger+'_RNN_'+('HLT' if online else 'Offline')+'_InputScalar_'+nProng - monGroupPath = trigger+'/RNN/'+('HLT' if online else 'Offline')+'/InputScalar_'+nProng + monGroupPath = 'RNN/InputScalar_'+nProng+'/'+trigger+('/HLT' if online else '/Offline') monGroup = self.helper.addGroup( monAlg, monGroupName, self.basePath+'/'+monGroupPath ) @@ -218,12 +217,13 @@ class TrigTauMonAlgBuilder: monGroup.defineHistogram('ptRatioEflowApprox', title='ptRatioEflowApprox ('+nProng+'); ptRatioEflowApprox; Events',xbins=50,xmin=0.0,xmax=2.0) monGroup.defineHistogram('mEflowApprox', title='mEflowApprox log ('+nProng+'); mEflowApprox_log; Events',xbins=50,xmin=0.,xmax=5.) monGroup.defineHistogram('ptDetectorAxis', title='ptDetectorAxis log ('+nProng+'); ptDetectorAxis_log; Events',xbins=50,xmin=0.,xmax=5.) - if nProng=='MP': monGroup.defineHistogram('massTrkSys', title='massTrkSys log ('+nProng+'); massTrkSys_log; Events',xbins=50,xmin=0.,xmax=3.) + if nProng=='MP': + monGroup.defineHistogram('massTrkSys', title='massTrkSys log ('+nProng+'); massTrkSys_log; Events',xbins=50,xmin=0.,xmax=3.) def bookRNNTrack( self, monAlg, trigger, online ): monGroupName = trigger+'_RNN_'+('HLT' if online else 'Offline')+'_InputTrack' - monGroupPath = trigger+'/RNN/'+('HLT' if online else 'Offline')+'/InputTrack' + monGroupPath = 'RNN/InputTrack/'+trigger+('/HLT' if online else '/Offline') monGroup = self.helper.addGroup( monAlg, monGroupName, self.basePath+'/'+monGroupPath ) @@ -241,7 +241,7 @@ class TrigTauMonAlgBuilder: def bookRNNCluster( self, monAlg, trigger, online ): monGroupName = trigger+'_RNN_'+('HLT' if online else 'Offline')+'_InputCluster' - monGroupPath = trigger+'/RNN/'+('HLT' if online else 'Offline')+'/InputCluster' + monGroupPath = 'RNN/InputCluster/'+trigger+('/HLT' if online else '/Offline') monGroup = self.helper.addGroup( monAlg, monGroupName, self.basePath+'/'+monGroupPath ) @@ -254,27 +254,29 @@ class TrigTauMonAlgBuilder: monGroup.defineHistogram('cluster_SECOND_LAMBDA_log10',title='cluster_SECOND_LAMBDA_log10; cluster_SECOND_LAMBDA_log10;Events',xbins=50,xmin=-3,xmax=7) monGroup.defineHistogram('cluster_CENTER_LAMBDA_log10',title='cluster_CENTER_LAMBDA_log10; cluster_CENTER_LAMBDA_log10;Events',xbins=50,xmin=-2,xmax=5) -def bookbasicVars( self, monAlg, trigger, online ): + def bookbasicVars( self, monAlg, trigger, online ): - monGroupName = trigger+'/RNN/'+('HLT' if online else 'Offline')+'/basicVars' + monGroupName = trigger+('HLT' if online else 'Offline')+'_basicVars' + monGroupPath = 'basicVars/'+trigger+('/HLT' if online else '/Offline') monGroup = self.helper.addGroup( monAlg, monGroupName, - self.basePath+'/'+monGroupName ) + self.basePath+'/'+monGroupPath ) monGroup.defineHistogram('hEFEt', title='EF Et;E_{T}[GeV];Nevents',xbins=50,xmin=0,xmax=100) monGroup.defineHistogram('hEFEta', title='EF TrigCaloCluster Eta; #eta ; Nevents',xbins=26,xmin=-2.6,xmax=2.6) monGroup.defineHistogram('hEFPhi', title='EF TrigCaloCluster Phi; #phi ; Nevents',xbins=16,xmin=-3.2,xmax=3.2) monGroup.defineHistogram('hEFnTrack', title='EF number of tracks;number of tracks;Nevents',xbins=10,xmin=0,xmax=10) - monGroup.defineHistogram('hEFEta,Phi;hEFEta_Phi', type='TH2F', title='EF TrigCaloCluster Eta vs Phi; #eta ; #phi ; Nevents', - path='Shifter/cell', + + monGroup.defineHistogram('hEFEta;hEFPhi', type='TH2F', title='EF TrigCaloCluster Eta vs Phi; #eta ; #phi', + path=monGroupPath, xbins=26,xmin=-2.6,xmax=2.6,ybins=16,ymin=-3.2,ymax=3.2) #addHistogram(new TH2F("hEFEtaVsPhi","EF TrigCaloCluster Eta vs Phi; #eta ; #phi ; Nevents",26,-2.6,2.6,16,-3.2,3.2)); - monGroup.defineHistogram('hEFEt,Phi;hEFEt_Phi', type='TH2F', title='Et from tau Jet vs #phi; #phi^{EF}; Raw E_{T} [GeV]', - path='Shifter/cell', + monGroup.defineHistogram('hEFEt;hEFPhi', type='TH2F', title='Et from tau Jet vs #phi; #phi^{EF}; Raw E_{T} [GeV]', + path=monGroupPath, xbins=16,xmin=-3.2,xmax=3.2,ybins=50,ymin=0,ymax=100) - monGroup.defineHistogram('hEFEt,Eta;hEFEt_Eta', type='TH2F', title='Et from tau Jet vs #eta; #eta^{EF}; Raw E_{T}[GeV]', - path='Shifter/cell', + monGroup.defineHistogram('hEFEta;hEFEt', type='TH2F', title='Et from tau Jet vs #eta; #eta^{EF}; Raw E_{T}[GeV]', + path=monGroupPath, xbins=26,xmin=-2.6,xmax=2.6,ybins=50,ymin=0,ymax=100) monGroup.defineHistogram('hEFEtRaw', title='EF Et Raw;Uncalibrated E_{T}[GeV];Nevents',xbins=50,xmin=0,xmax=100) diff --git a/Trigger/TrigMonitoring/TrigTauMonitoring/src/TrigTauMonitorAlgorithm.cxx b/Trigger/TrigMonitoring/TrigTauMonitoring/src/TrigTauMonitorAlgorithm.cxx index 6f623e5ec2ec5381a1987329e0c5947bd206107f..a9e7325c81a0d3f5ae1f7ff18a5752d53b4294eb 100644 --- a/Trigger/TrigMonitoring/TrigTauMonitoring/src/TrigTauMonitorAlgorithm.cxx +++ b/Trigger/TrigMonitoring/TrigTauMonitoring/src/TrigTauMonitorAlgorithm.cxx @@ -57,7 +57,7 @@ StatusCode TrigTauMonitorAlgorithm::fillHistograms( const EventContext& ctx ) co const TrigInfo info = getTrigInfo(trigger); - if ( executeNavigation( ctx, info.trigName,info.HLTthr,info.trigWP, pairObjs).isFailure() ) + if ( executeNavigation( ctx, info.trigName,info.HLTthr,info.trigWP, pairObjs).isFailure() || pairObjs.size()==0) { ATH_MSG_WARNING("executeNavigation failed"); return StatusCode::SUCCESS; @@ -133,16 +133,14 @@ void TrigTauMonitorAlgorithm::fillDistributions(std::vector< std::pair< const xA { int nTracks=-1; pairObj.first->detail(xAOD::TauJetParameters::nChargedTracks, nTracks); + ATH_MSG_DEBUG("NTracks Offline: " << nTracks); if(nTracks==1){ tau_vec_1p.push_back(pairObj.first); }else if(nTracks>1){ - ATH_MSG_DEBUG("NTracks Offline: " << nTracks); tau_vec_np.push_back(pairObj.first); } } - fillbasicVars( trigger, tau_vec_1p, false); - fillbasicVars( trigger, tau_vec_np, false); // Offline if(info.isRNN){ @@ -152,6 +150,8 @@ void TrigTauMonitorAlgorithm::fillDistributions(std::vector< std::pair< const xA fillRNNTrack( trigger, tau_vec_np, false ); fillRNNCluster( trigger, tau_vec_1p, false ); fillRNNCluster( trigger, tau_vec_np, false ); + fillbasicVars( trigger, tau_vec_1p, false); + fillbasicVars( trigger, tau_vec_np, false); } tau_vec_1p.clear(); @@ -164,17 +164,14 @@ void TrigTauMonitorAlgorithm::fillDistributions(std::vector< std::pair< const xA // If not pass, continue int nTracks=-1; feat->detail(xAOD::TauJetParameters::nChargedTracks, nTracks); + ATH_MSG_DEBUG("NTracks Online: " << nTracks); if(nTracks==1){ tau_vec_1p.push_back(feat); }else if(nTracks>1){ - ATH_MSG_DEBUG("NTracks Online: " << nTracks); tau_vec_np.push_back(feat); } } - fillbasicVars( trigger, tau_vec_1p, true); - fillbasicVars( trigger, tau_vec_np, true); - if(info.isRNN){ fillRNNInputVars( trigger, tau_vec_1p,"1P", true ); fillRNNInputVars( trigger, tau_vec_np,"MP", true ); @@ -182,6 +179,8 @@ void TrigTauMonitorAlgorithm::fillDistributions(std::vector< std::pair< const xA fillRNNTrack( trigger, tau_vec_np, true ); fillRNNCluster( trigger, tau_vec_1p, true ); fillRNNCluster( trigger, tau_vec_np, true ); + fillbasicVars( trigger, tau_vec_1p, true); + fillbasicVars( trigger, tau_vec_np, true); } @@ -193,11 +192,14 @@ void TrigTauMonitorAlgorithm::fillRNNInputVars(const std::string trigger, std::v auto monGroup = getGroup(trigger+( online ? "_RNN_HLT_InputScalar_"+nProng : "_RNN_Offline_InputScalar_"+nProng)); + ATH_MSG_DEBUG("check00"); + auto centFrac = Monitored::Collection("centFrac", tau_vec, [] (const xAOD::TauJet* tau){ float detail = -999; if (tau->detail(xAOD::TauJetParameters::centFrac, detail)){ detail = std::min(detail, 1.0f); } return detail;}); + ATH_MSG_DEBUG("check03"); auto etOverPtLeadTrk = Monitored::Collection("etOverPtLeadTrk", tau_vec, [] (const xAOD::TauJet* tau){ float detail = -999; if (tau->detail(xAOD::TauJetParameters::etOverPtLeadTrk, detail)){ @@ -233,14 +235,17 @@ void TrigTauMonitorAlgorithm::fillRNNInputVars(const std::string trigger, std::v }return detail;}); auto ptDetectorAxis = Monitored::Collection("ptDetectorAxis", tau_vec, [] (const xAOD::TauJet* tau){ return TMath::Log10(std::min(tau->ptDetectorAxis() / 1000.0, 100.0));}); + ATH_MSG_DEBUG("check01"); auto massTrkSys = Monitored::Collection("massTrkSys", tau_vec, [&nProng] (const xAOD::TauJet* tau){ float detail = -999; if ( tau->detail(xAOD::TauJetParameters::massTrkSys, detail) && nProng.find("MP") != std::string::npos ){ detail = TMath::Log10(std::max(detail, 140.0f)); }return detail;}); - + ATH_MSG_DEBUG("check02"); fill(monGroup, centFrac,etOverPtLeadTrk,dRmax,absipSigLeadTrk,sumPtTrkFrac,emPOverTrkSysP,ptRatioEflowApprox,mEflowApprox,ptDetectorAxis,massTrkSys); + + ATH_MSG_DEBUG("After fill RNN input variables: " << trigger); } @@ -250,6 +255,9 @@ void TrigTauMonitorAlgorithm::fillRNNTrack(const std::string trigger, std::vecto auto monGroup = getGroup(trigger+( online ? "_RNN_HLT_InputTrack" : "_RNN_Offline_InputTrack")); + + auto track_pt_jetseed_log = Monitored::Collection("track_pt_jetseed_log", tau_vec, [] (const xAOD::TauJet* tau){ return TMath::Log10( tau->ptJetSeed());}); + fill(monGroup,track_pt_jetseed_log); for(auto tau: tau_vec){ // Don't call ->allTracks() unless the element links are valid @@ -267,9 +275,6 @@ void TrigTauMonitorAlgorithm::fillRNNTrack(const std::string trigger, std::vecto } auto tracks = tau->allTracks(); - - auto track_pt_jetseed_log = Monitored::Collection("track_pt_jetseed_log", tau_vec, [] (const xAOD::TauJet* tau){ return TMath::Log10( tau->ptJetSeed());}); - fill(monGroup,track_pt_jetseed_log); auto cmp_pt = [](const xAOD::TauTrack *lhs, const xAOD::TauTrack *rhs) { @@ -285,11 +290,11 @@ void TrigTauMonitorAlgorithm::fillRNNTrack(const std::string trigger, std::vecto auto track_pt_log = Monitored::Collection("track_pt_log", tracks, [](const xAOD::TauTrack *track){return TMath::Log10( track->pt()); }); - auto track_dEta = Monitored::Collection("tracks_dEta", tracks, [&tau](const xAOD::TauTrack *track){auto ddeta=track->eta()- tau->eta();return ddeta; }); + auto track_dEta = Monitored::Collection("tracks_dEta", tracks, [&tau](const xAOD::TauTrack *track){auto ddeta=track->eta()- tau->eta();std::cout << "ddeta: " << ddeta << std::endl;return ddeta; }); - auto track_dPhi = Monitored::Collection("tracks_dPhi", tracks, [&tau](const xAOD::TauTrack *track){return track->p4().DeltaPhi(tau->p4()); }); + auto track_dPhi = Monitored::Collection("tracks_dPhi", tracks, [&tau](const xAOD::TauTrack *track){std::cout << "ddphi: " << track->p4().DeltaPhi(tau->p4()) << std::endl;return track->p4().DeltaPhi(tau->p4());}); - auto track_z0sinThetaTJVA_abs_log = Monitored::Collection("tracks_z0sinThetaTJVA_abs_log", tracks, [&tau](const xAOD::TauTrack *track){return track->z0sinThetaTJVA(*tau); }); + auto track_z0sinThetaTJVA_abs_log = Monitored::Collection("tracks_z0sinThetaTJVA_abs_log", tracks, [&tau](const xAOD::TauTrack *track){std::cout <<"tracks_z0sinThetaTJVA_abs_log: "<<track->z0sinThetaTJVA(*tau) << std::endl;return track->z0sinThetaTJVA(*tau); }); auto track_d0_abs_log = Monitored::Collection("tracks_d0_abs_log", tracks, [](const xAOD::TauTrack *track){return TMath::Log10( TMath::Abs(track->track()->d0()) + 1e-6); }); @@ -406,7 +411,9 @@ void TrigTauMonitorAlgorithm::fillbasicVars(const std::string trigger, std::vect { ATH_MSG_DEBUG("Fill Basic Variables: " << trigger); - auto monGroup = getGroup(trigger+( online ? "/basicVars/HLT" : "/basicVars/Offline")); + auto monGroup = getGroup(trigger+( online ? "HLT_basicVars" : "Offline_basicVars")); + + auto hEFEt = Monitored::Collection("hEFEt", tau_vec, [] (const xAOD::TauJet* tau){return tau->pt()/1000; }); auto hEFEta = Monitored::Collection("hEFEta", tau_vec, [] (const xAOD::TauJet* tau){return tau->eta(); }); @@ -418,13 +425,11 @@ void TrigTauMonitorAlgorithm::fillbasicVars(const std::string trigger, std::vect return EFnTrack; }); auto hEFnWideTrack = Monitored::Collection("hEFnWideTrack", tau_vec, [] (const xAOD::TauJet* tau){ int EFWidenTrack(-1); - // XAODTAU_VERSIONS_TAUJET_V3_H EFWidenTrack = tau->nTracksIsolation(); return EFWidenTrack; }); - //hist2("hEFEtaVsPhi")->Fill(aEFTau->eta(),aEFTau->phi()); - //hist2("hEFEtVsPhi")->Fill(aEFTau->phi(),aEFTau->pt()/GeV); - //hist2("hEFEtVsEta")->Fill(aEFTau->eta(),aEFTau->pt()/GeV); + fill(monGroup, hEFEt,hEFEta,hEFPhi,hEFnTrack,hEFnWideTrack); + } TrigInfo TrigTauMonitorAlgorithm::getTrigInfo(const std::string trigger) const{