ATLAS Offline Software
TrigTauMonitorSingleAlgorithm.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 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 
13 public:
14  TrigTauMonitorSingleAlgorithm(const std::string& name, ISvcLocator* pSvcLocator);
15  virtual StatusCode initialize() override;
16 
17 private:
18  // Enable total efficiency histograms
19  // Note: Should only be used when reprocessing EB or MC data. Comparisons of total efficiencies between chains on normal data-taking
20  // conditions would be meaningless, since different L1/HLT items can have different prescales, and are not within a Coherent-Prescale-Set
21  Gaudi::Property<bool> m_doTotalEfficiency{this, "DoTotalEfficiency", false, "Do total efficiency histograms"};
22 
23  // Require at least 1 offline Tau per event (will bias the variable distributions for background events)
24  Gaudi::Property<bool> m_requireOfflineTaus{this, "RequireOfflineTaus", true, "Require at leat 1 offline tau per event"};
25  Gaudi::Property<unsigned int> m_offline_tau_id{this, "OfflineTauID", TauID::RNN, "Offline TauID (1: RNN, 2: GNTau)"};
26 
27  // Do offline taus variable distributions
28  Gaudi::Property<bool> m_doOfflineTausDistributions{this, "DoOfflineTausDistributions", true};
29 
30  // HLT TauID score monitoring
31  Gaudi::Property<std::map<std::string, std::map<std::string, std::pair<std::string, std::string>>>> m_monitoredHLTIdScores {this, "HLTTauIDScores", {}, "Pairs of the TauID score and signal-transformed scores for each HLT TauID algorithm to be monitored, for each reconstruction sequence (type, e.g. tracktwoMVA, tracktwoLLP, etc...)"};
32  std::map<std::string, std::map<std::string, std::pair<SG::ReadDecorHandleKey<xAOD::TauJetContainer>, SG::ReadDecorHandleKey<xAOD::TauJetContainer>>>> m_monitoredHLTIdDecorHandleKeys;
33 
34  // Offline TauID score monitoring
35  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"};
36  std::map<std::string, std::pair<SG::ReadDecorHandleKey<xAOD::TauJetContainer>, SG::ReadDecorHandleKey<xAOD::TauJetContainer>>> m_monitoredOfflineIdDecorHandleKeys;
37 
38  virtual StatusCode processEvent(const EventContext& ctx) const override;
39 
40  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;
41  void fillIDInputVars(const std::string& trigger, const std::vector<const xAOD::TauJet*>& tau_vec,const std::string& nProng, bool online) const;
42  void fillIDTrack(const std::string& trigger, const std::vector<const xAOD::TauJet*>& tau_vec, bool online) const;
43  void fillIDCluster(const std::string& trigger, const std::vector<const xAOD::TauJet*>& tau_vec, bool online) const;
44  void fillBasicVars(const EventContext& ctx, const std::string& trigger, const std::vector<const xAOD::TauJet*>& tau_vec, const std::string& nProng, bool online) const;
45  void fillIDScores(const EventContext& ctx, const std::string& trigger, const std::vector<const xAOD::TauJet*>& tau_vec, const std::string& nProng, bool online) const;
46 
47  std::vector<TLorentzVector> getRoIsVector(const EventContext& ctx, const std::string& trigger) const;
48 };
49 
50 #endif
TrigTauMonitorSingleAlgorithm::m_monitoredHLTIdScores
Gaudi::Property< std::map< std::string, std::map< std::string, std::pair< std::string, std::string > > > > m_monitoredHLTIdScores
Definition: TrigTauMonitorSingleAlgorithm.h:31
TrigTauMonitorSingleAlgorithm
Definition: TrigTauMonitorSingleAlgorithm.h:12
TrigTauMonitorSingleAlgorithm::fillIDInputVars
void fillIDInputVars(const std::string &trigger, const std::vector< const xAOD::TauJet * > &tau_vec, const std::string &nProng, bool online) const
Definition: TrigTauMonitorSingleAlgorithm.cxx:221
TrigTauMonitorSingleAlgorithm::fillIDScores
void fillIDScores(const EventContext &ctx, const std::string &trigger, const std::vector< const xAOD::TauJet * > &tau_vec, const std::string &nProng, bool online) const
Definition: TrigTauMonitorSingleAlgorithm.cxx:455
TrigTauMonitorSingleAlgorithm::TrigTauMonitorSingleAlgorithm
TrigTauMonitorSingleAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Definition: TrigTauMonitorSingleAlgorithm.cxx:10
TrigTauMonitorSingleAlgorithm::processEvent
virtual StatusCode processEvent(const EventContext &ctx) const override
Definition: TrigTauMonitorSingleAlgorithm.cxx:61
TrigTauMonitorSingleAlgorithm::m_monitoredOfflineIdScores
Gaudi::Property< std::map< std::string, std::pair< std::string, std::string > > > m_monitoredOfflineIdScores
Definition: TrigTauMonitorSingleAlgorithm.h:35
TrigTauMonitorSingleAlgorithm::fillIDCluster
void fillIDCluster(const std::string &trigger, const std::vector< const xAOD::TauJet * > &tau_vec, bool online) const
Definition: TrigTauMonitorSingleAlgorithm.cxx:361
TrigTauMonitorSingleAlgorithm::m_monitoredOfflineIdDecorHandleKeys
std::map< std::string, std::pair< SG::ReadDecorHandleKey< xAOD::TauJetContainer >, SG::ReadDecorHandleKey< xAOD::TauJetContainer > > > m_monitoredOfflineIdDecorHandleKeys
Definition: TrigTauMonitorSingleAlgorithm.h:36
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TrigTauMonitorSingleAlgorithm::m_offline_tau_id
Gaudi::Property< unsigned int > m_offline_tau_id
Definition: TrigTauMonitorSingleAlgorithm.h:25
TrigTauMonitorBaseAlgorithm.h
TrigTauMonitorSingleAlgorithm::initialize
virtual StatusCode initialize() override
initialize
Definition: TrigTauMonitorSingleAlgorithm.cxx:15
TrigTauMonitorSingleAlgorithm::getRoIsVector
std::vector< TLorentzVector > getRoIsVector(const EventContext &ctx, const std::string &trigger) const
Definition: TrigTauMonitorSingleAlgorithm.cxx:500
TrigTauMonitorSingleAlgorithm::m_requireOfflineTaus
Gaudi::Property< bool > m_requireOfflineTaus
Definition: TrigTauMonitorSingleAlgorithm.h:24
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
TrigTauMonitorBaseAlgorithm
Definition: TrigTauMonitorBaseAlgorithm.h:24
TrigTauMonitorSingleAlgorithm::m_doTotalEfficiency
Gaudi::Property< bool > m_doTotalEfficiency
Definition: TrigTauMonitorSingleAlgorithm.h:21
TrigTauMonitorSingleAlgorithm::m_doOfflineTausDistributions
Gaudi::Property< bool > m_doOfflineTausDistributions
Definition: TrigTauMonitorSingleAlgorithm.h:28
TrigTauMonitorSingleAlgorithm::fillIDTrack
void fillIDTrack(const std::string &trigger, const std::vector< const xAOD::TauJet * > &tau_vec, bool online) const
Definition: TrigTauMonitorSingleAlgorithm.cxx:290
TrigTauMonitorSingleAlgorithm::fillBasicVars
void fillBasicVars(const EventContext &ctx, const std::string &trigger, const std::vector< const xAOD::TauJet * > &tau_vec, const std::string &nProng, bool online) const
Definition: TrigTauMonitorSingleAlgorithm.cxx:413
SG::ReadDecorHandleKey
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
Definition: StoreGate/StoreGate/ReadDecorHandleKey.h:85
TrigTauMonitorSingleAlgorithm::m_monitoredHLTIdDecorHandleKeys
std::map< std::string, std::map< std::string, std::pair< SG::ReadDecorHandleKey< xAOD::TauJetContainer >, SG::ReadDecorHandleKey< xAOD::TauJetContainer > > > > m_monitoredHLTIdDecorHandleKeys
Definition: TrigTauMonitorSingleAlgorithm.h:32
TrigTauMonitorSingleAlgorithm::fillHLTEfficiencies
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
Definition: TrigTauMonitorSingleAlgorithm.cxx:152