5#ifndef TRIGTAUMONITORING_TRIGTAUMONITORL1ALGORITHM_H
6#define TRIGTAUMONITORING_TRIGTAUMONITORL1ALGORITHM_H
18 Gaudi::Property<bool>
m_requireOfflineTaus{
this,
"RequireOfflineTaus",
true,
"Require at leat 1 offline tau per event"};
27 virtual StatusCode
processEvent(
const EventContext& ctx)
const override;
29 template <
typename T = xAOD::eFexTauRoI>
30 void fillL1Efficiencies(
const EventContext& ctx,
const std::vector<const xAOD::TauJet*>& offline_tau_vec,
const std::string& nProng,
const std::string& trigger,
const std::vector<const T*>& rois)
const
36 auto monGroup =
getGroup(trigger+
"_L1_Efficiency_"+nProng);
48 tauPt = offline_tau->pt()/Gaudi::Units::GeV;
49 tauEta = offline_tau->eta();
50 tauPhi = offline_tau->phi();
52 bool is_highPt = tauPt > info.getL1TauThreshold() + 20.0;
55 for(
const T* roi : rois) {
60 fill(monGroup, tauPt, tauEta, tauPhi, averageMu, L1_match);
63 L1_match_highPt =
static_cast<bool>(L1_match);
64 fill(monGroup, tauEta, tauPhi, L1_match_highPt);
71 void fillL1eTauVars(
const std::string& trigger,
const std::vector<const xAOD::eFexTauRoI*>& rois,
const std::vector<const xAOD::eFexTauRoI*>& xtob_rois)
const;
72 void fillL1jTauVars(
const std::string& trigger,
const std::vector<const xAOD::jFexTauRoI*>& rois)
const;
73 void fillL1cTauVars(
const std::string& trigger,
const std::vector<std::pair<const xAOD::eFexTauRoI*, const xAOD::jFexTauRoI*>>& rois,
const std::vector<const xAOD::eFexTauRoI*>& xtob_rois)
const;
const ToolHandle< GenericMonitoringTool > & getGroup(const std::string &name) const
Get a specific monitoring tool from the tool handle array.
Declare a monitored scalar variable.
Property holding a SG store/key/clid from which a ReadHandle is made.
TrigTauMonitorBaseAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
bool matchObjects(const T1 *tau, const std::vector< const T2 * > &tau_vec, float threshold) const
const TrigTauInfo & getTrigInfo(const std::string &trigger) const
void fillL1jTauVars(const std::string &trigger, const std::vector< const xAOD::jFexTauRoI * > &rois) const
Gaudi::Property< unsigned int > m_offline_tau_id
virtual StatusCode processEvent(const EventContext &ctx) const override
void fillL1Efficiencies(const EventContext &ctx, const std::vector< const xAOD::TauJet * > &offline_tau_vec, const std::string &nProng, const std::string &trigger, const std::vector< const T * > &rois) const
void fillL1eTauVars(const std::string &trigger, const std::vector< const xAOD::eFexTauRoI * > &rois, const std::vector< const xAOD::eFexTauRoI * > &xtob_rois) const
void fillL1cTauVars(const std::string &trigger, const std::vector< std::pair< const xAOD::eFexTauRoI *, const xAOD::jFexTauRoI * > > &rois, const std::vector< const xAOD::eFexTauRoI * > &xtob_rois) const
SG::ReadHandleKey< xAOD::eFexTauRoIContainer > m_phase1l1eTauxRoIKey
TrigTauMonitorL1Algorithm(const std::string &name, ISvcLocator *pSvcLocator)
std::vector< const xAOD::eFexTauRoI * > getL1xTOBeTAUs() const
unsigned int getBDTScore(const xAOD::eFexTauRoI *roi, const std::vector< const xAOD::eFexTauRoI * > &xtob_rois) const
Gaudi::Property< bool > m_requireOfflineTaus
virtual StatusCode initialize() override
initialize
void fill(const ToolHandle< GenericMonitoringTool > &groupHandle, std::vector< std::reference_wrapper< Monitored::IMonitoredVariable > > &&variables) const
Fills a vector of variables to a group by reference.
virtual float lbAverageInteractionsPerCrossing(const EventContext &ctx=Gaudi::Hive::currentContext()) const
Calculate the average mu, i.e.
TauJet_v3 TauJet
Definition of the current "tau version".
eFexTauRoI_v1 eFexTauRoI
Define the latest version of the eFexTauRoI class.