ATLAS Offline Software
Loading...
Searching...
No Matches
TrigTauMonitorSingleAlgorithm.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TRIGTAUMONITORING_TRIGTAUMONITORSINGLEALGORITHM_H
6#define TRIGTAUMONITORING_TRIGTAUMONITORSINGLEALGORITHM_H
7
8#include "Gaudi/Parsers/Factory.h"
9
11
13public:
14 TrigTauMonitorSingleAlgorithm(const std::string& name, ISvcLocator* pSvcLocator);
15 virtual StatusCode initialize() override;
16
17 using VarPropertyMap = std::map<std::string, std::map<std::string, std::pair<std::string, std::string>>>;
18 using VarKeysMap = std::map<std::string, std::map<std::string, std::pair<SG::ReadDecorHandleKey<xAOD::TauJetContainer>, SG::ReadDecorHandleKey<xAOD::TauJetContainer>>>>;
19
20private:
21 // Enable total efficiency histograms
22 // Note: Should only be used when reprocessing EB or MC data. Comparisons of total efficiencies between chains on normal data-taking
23 // conditions would be meaningless, since different L1/HLT items can have different prescales, and are not within a Coherent-Prescale-Set
24 Gaudi::Property<bool> m_doTotalEfficiency{this, "DoTotalEfficiency", false, "Do total efficiency histograms"};
25
26 // Require at least 1 offline Tau per event (will bias the variable distributions for background events)
27 Gaudi::Property<bool> m_requireOfflineTaus{this, "RequireOfflineTaus", true, "Require at leat 1 offline tau per event"};
28 Gaudi::Property<unsigned int> m_offline_tau_id{this, "OfflineTauID", TauID::RNN, "Offline TauID (1: RNN, 2: GNTau)"};
29
30 // Do offline taus variable distributions
31 Gaudi::Property<bool> m_doOfflineTausDistributions{this, "DoOfflineTausDistributions", true};
32
33 // HLT TauID/HitZ monitoring
34 Gaudi::Property<VarPropertyMap> m_monitoredHLTIdScores {this, "HLTTauIDScores", {}, "Pairs of the TauID score and signal-transformed scores for each HLT TauID algorithm to be monitored, for each Tau container suffix (type, e.g. MVA, LLP, etc...)"};
35 Gaudi::Property<VarPropertyMap> m_monitoredHLTCaloHitsPreselIdScores {this, "HLTTauCaloHitsPreselIDScores", {}, "Pairs of the Calo+Hits preselection TauID score and signal-transformed scores for each HLT TauID algorithm to be monitored, for each Tau container suffix (type, e.g. MVA_CaloHitsBase, MVA_HitZ, etc...)"};
36 Gaudi::Property<VarPropertyMap> m_monitoredHLTHitZVars {this, "HLTTauHitZVars", {}, "Pairs of the HitZ z0 and z0 sigma for each HLT HitZ algorithm to be monitored, for each Tau container suffix (type, e.g. MVA_HitZ, etc...)"};
37
39
40 StatusCode createKeys(const VarPropertyMap& var_names_map);
41
42 // Offline TauID score monitoring
43 Gaudi::Property<std::map<std::string, std::pair<std::string, std::string>>> m_monitoredOfflineIdScores {this, "OfflineTauIDScores", {}, "Pairs of the TauID score and signal-transformed scores for each Offline TauID algorithm to be monitored"};
44
45 virtual StatusCode processEvent(const EventContext& ctx) const override;
46
47 void fillHLTEfficiencies(const EventContext& ctx, const std::string& trigger, const bool l1_accept_flag, const std::vector<const xAOD::TauJet*>& offline_tau_vec, const std::vector<const xAOD::TauJet*>& online_tau_vec, const std::string& nProng) const;
48 void fillIDInputVars(const std::string& trigger, const std::vector<const xAOD::TauJet*>& tau_vec,const std::string& nProng, bool online) const;
49 void fillIDTrack(const std::string& trigger, const std::vector<const xAOD::TauJet*>& tau_vec, bool online) const;
50 void fillIDCluster(const std::string& trigger, const std::vector<const xAOD::TauJet*>& tau_vec, bool online) const;
51 void fillBasicVars(const EventContext& ctx, const std::string& trigger, const std::vector<const xAOD::TauJet*>& tau_vec, const std::string& nProng, bool online) const;
52 void fillIDScores(const EventContext& ctx, const std::string& trigger, const std::vector<const xAOD::TauJet*>& tau_vec, const std::string& nProng, bool online) const;
53 void fillHitZVars(const EventContext& ctx, const std::string& trigger, const std::vector<const xAOD::TauJet*>& tau_vec, const std::string& nProng) const;
54
55 void fillVarPairs(const EventContext& ctx, ToolHandle<GenericMonitoringTool>& mon_group, const VarPropertyMap::mapped_type& vars, const std::string& category, const std::string& match_var_name, const std::string& mon_var_1_name, const std::string& mon_var_2_name, const std::vector<const xAOD::TauJet*>& tau_vec) const;
56
57 std::vector<TLorentzVector> getRoIsVector(const EventContext& ctx, const std::string& trigger) const;
58};
59
60#endif
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
TrigTauMonitorBaseAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
void fillIDScores(const EventContext &ctx, const std::string &trigger, const std::vector< const xAOD::TauJet * > &tau_vec, const std::string &nProng, bool online) const
virtual StatusCode initialize() override
initialize
TrigTauMonitorSingleAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
void fillHitZVars(const EventContext &ctx, const std::string &trigger, const std::vector< const xAOD::TauJet * > &tau_vec, const std::string &nProng) const
StatusCode createKeys(const VarPropertyMap &var_names_map)
Gaudi::Property< VarPropertyMap > m_monitoredHLTIdScores
void fillIDInputVars(const std::string &trigger, const std::vector< const xAOD::TauJet * > &tau_vec, const std::string &nProng, bool online) const
Gaudi::Property< std::map< std::string, std::pair< std::string, std::string > > > m_monitoredOfflineIdScores
virtual StatusCode processEvent(const EventContext &ctx) const override
std::map< std::string, std::map< std::string, std::pair< SG::ReadDecorHandleKey< xAOD::TauJetContainer >, SG::ReadDecorHandleKey< xAOD::TauJetContainer > > > > VarKeysMap
Gaudi::Property< VarPropertyMap > m_monitoredHLTCaloHitsPreselIdScores
void fillHLTEfficiencies(const EventContext &ctx, const std::string &trigger, const bool l1_accept_flag, const std::vector< const xAOD::TauJet * > &offline_tau_vec, const std::vector< const xAOD::TauJet * > &online_tau_vec, const std::string &nProng) const
Gaudi::Property< VarPropertyMap > m_monitoredHLTHitZVars
Gaudi::Property< unsigned int > m_offline_tau_id
void fillVarPairs(const EventContext &ctx, ToolHandle< GenericMonitoringTool > &mon_group, const VarPropertyMap::mapped_type &vars, const std::string &category, const std::string &match_var_name, const std::string &mon_var_1_name, const std::string &mon_var_2_name, const std::vector< const xAOD::TauJet * > &tau_vec) const
std::map< std::string, std::map< std::string, std::pair< std::string, std::string > > > VarPropertyMap
void fillIDCluster(const std::string &trigger, const std::vector< const xAOD::TauJet * > &tau_vec, bool online) const
Gaudi::Property< bool > m_doOfflineTausDistributions
void fillBasicVars(const EventContext &ctx, const std::string &trigger, const std::vector< const xAOD::TauJet * > &tau_vec, const std::string &nProng, bool online) const
void fillIDTrack(const std::string &trigger, const std::vector< const xAOD::TauJet * > &tau_vec, bool online) const
std::vector< TLorentzVector > getRoIsVector(const EventContext &ctx, const std::string &trigger) const