5#ifndef TRIGTAUMONITORING_TRIGTAUMONITORSINGLEALGORITHM_H
6#define TRIGTAUMONITORING_TRIGTAUMONITORSINGLEALGORITHM_H
8#include "Gaudi/Parsers/Factory.h"
17 using VarPropertyMap = std::map<std::string, std::map<std::string, std::pair<std::string, std::string>>>;
24 Gaudi::Property<bool>
m_doTotalEfficiency{
this,
"DoTotalEfficiency",
false,
"Do total efficiency histograms"};
27 Gaudi::Property<bool>
m_requireOfflineTaus{
this,
"RequireOfflineTaus",
true,
"Require at leat 1 offline tau per event"};
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...)"};
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"};
45 virtual StatusCode
processEvent(
const EventContext& ctx)
const override;
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;
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;
57 std::vector<TLorentzVector>
getRoIsVector(
const EventContext& ctx,
const std::string& trigger)
const;
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< bool > m_doTotalEfficiency
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< bool > m_requireOfflineTaus
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
VarKeysMap m_monitoredVarPairsDecorHandleKeys
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