ATLAS Offline Software
Loading...
Searching...
No Matches
L2MuonSAIOMon.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TRIGMUONMONITORING_L2MUONSAIOMON_H
6#define TRIGMUONMONITORING_L2MUONSAIOMON_H
7
11
12/*
13This is a class for monitoring L2MuonSAIO.
14 */
16
17 public:
18 L2MuonSAIOMon(const std::string& name, ISvcLocator* pSvcLocator );
19
20 virtual StatusCode initialize() override;
21
22 protected:
23 virtual StatusCode fillVariablesPerChain(const EventContext &ctx, const std::string &chain) const override;
24 virtual StatusCode fillVariablesPerOfflineMuonPerChain(const EventContext& ctx, const xAOD::Muon* mu, const std::string &chain) const override;
25
26 private:
27 Gaudi::Property<std::vector<float> > m_monitored_chains_plateau {this, "Plateaus", {}, "List of plateaus of measured trigger"};
28 std::map<std::string, double> m_plateaus {};
29 SG::ReadHandleKey<xAOD::L2CombinedMuonContainer> m_L2MuonCBIOContainerKey {this, "L2CombinedMuonContainerName_IO", "HLT_MuonL2CBInfoIOmode", "L2MuonCBIO container"};
30 StatusCode matchL2IO_wContainer(const EventContext &ctx, const std::string &chain, std::vector< const xAOD::L2CombinedMuon* > &Trig_L2IOobjects) const;
31 StatusCode L2OverlapRemover( const std::vector< const xAOD::L2CombinedMuon* >& matchSA_L2IOobjects, std::vector< bool > &isoverlap, std::vector< bool > &passOR ) const;
32 bool isOverlap( const xAOD::L2CombinedMuon* matchSA_L2IOobject1, const xAOD::L2CombinedMuon* matchSA_L2IOobject2 ) const;
33 StatusCode chooseBestMuon( const std::vector< const xAOD::L2CombinedMuon* >& matchSA_L2IOobjects, std::vector< bool > &passOR, std::vector< unsigned int > &mucombResult ) const;
34 StatusCode muCombHypo_TDTworkaround( const std::string &chain, const std::vector< const xAOD::L2CombinedMuon* >& Trig_L2IOobjects, std::vector< bool > &pass_muCombHypo ) const;
35 StatusCode isPassedmuCombHypo( const std::string &chain, const xAOD::L2CombinedMuon* Trig_L2IOobjects ,bool &pass_muCombHypo) const;
36 StatusCode decision_ptthreshold( const std::string &chain, std::vector< float > &my_EtaBins, std::vector< float > &my_muCombThres,
37 bool &my_pikCuts, float &my_maxPtToApplyPik, float &my_chi2MaxID ) const;
38
39 const xAOD::L2CombinedMuon* searchL2InsideOut(const EventContext &ctx, const xAOD::Muon *mu, const std::string& trigger) const;
40 const xAOD::Muon* searchTagOfflineMuon( const EventContext& ctx, const xAOD::Muon* probe ) const;
41
42 static inline std::tuple<float,float,float> L2ORPosForMatchFunc(const xAOD::L2StandAloneMuon *trig);
43 static inline std::tuple<float,float,float> L2ORPosForMatchFunc(const xAOD::L2CombinedMuon *trig);
44
45 // these threshold is same as the L2OverlapRemover in TrigMufastHypoTool
46 Gaudi::Property< std::vector<float> > m_etaBins {this, "EtaBins", {0, 0.9, 1.1, 1.9, 2.1, 9.9}, "eta bins of DR and mass thresholds"};
47 Gaudi::Property< std::vector<float> > m_dRCBThres {this, "DRThres", {0.002, 0.001, 0.002, 0.002, 0.002}, "DR threshold of L2CB"};
48 Gaudi::Property< std::vector<float> > m_dRbySAThres {this, "dRbySAThres", {0, 0, 0, 0, 0}, "mufast DR threshold of L2CB"};
49 Gaudi::Property< std::vector<float> > m_massCBThres {this, "MassThres", {0.004, 0.002, 0.006, 0.006, 0.006}, "mass threshold of L2CB"};
50
51 // config of L2OverlapRemover for L2Inside-Out
52 bool m_RequireDR = true;
53 bool m_RequireDRbySA = false;
54 bool m_RequireMass = true;
55 bool m_RequireSameSign = true;
56
57};
58
59#endif //TRIGMUONMONITORING_L2MUONSAIOMON_H
virtual StatusCode initialize() override
initialize
StatusCode muCombHypo_TDTworkaround(const std::string &chain, const std::vector< const xAOD::L2CombinedMuon * > &Trig_L2IOobjects, std::vector< bool > &pass_muCombHypo) const
const xAOD::Muon * searchTagOfflineMuon(const EventContext &ctx, const xAOD::Muon *probe) const
StatusCode isPassedmuCombHypo(const std::string &chain, const xAOD::L2CombinedMuon *Trig_L2IOobjects, bool &pass_muCombHypo) const
StatusCode matchL2IO_wContainer(const EventContext &ctx, const std::string &chain, std::vector< const xAOD::L2CombinedMuon * > &Trig_L2IOobjects) const
virtual StatusCode fillVariablesPerChain(const EventContext &ctx, const std::string &chain) const override
Function that fills variables of trigger objects associated to specified trigger chains.
Gaudi::Property< std::vector< float > > m_monitored_chains_plateau
std::map< std::string, double > m_plateaus
StatusCode L2OverlapRemover(const std::vector< const xAOD::L2CombinedMuon * > &matchSA_L2IOobjects, std::vector< bool > &isoverlap, std::vector< bool > &passOR) const
virtual StatusCode fillVariablesPerOfflineMuonPerChain(const EventContext &ctx, const xAOD::Muon *mu, const std::string &chain) const override
Function that fills variables of trigger objects associated to specified trigger chains comparing off...
StatusCode decision_ptthreshold(const std::string &chain, std::vector< float > &my_EtaBins, std::vector< float > &my_muCombThres, bool &my_pikCuts, float &my_maxPtToApplyPik, float &my_chi2MaxID) const
StatusCode chooseBestMuon(const std::vector< const xAOD::L2CombinedMuon * > &matchSA_L2IOobjects, std::vector< bool > &passOR, std::vector< unsigned int > &mucombResult) const
bool isOverlap(const xAOD::L2CombinedMuon *matchSA_L2IOobject1, const xAOD::L2CombinedMuon *matchSA_L2IOobject2) const
L2MuonSAIOMon(const std::string &name, ISvcLocator *pSvcLocator)
SG::ReadHandleKey< xAOD::L2CombinedMuonContainer > m_L2MuonCBIOContainerKey
static std::tuple< float, float, float > L2ORPosForMatchFunc(const xAOD::L2StandAloneMuon *trig)
Gaudi::Property< std::vector< float > > m_etaBins
const xAOD::L2CombinedMuon * searchL2InsideOut(const EventContext &ctx, const xAOD::Muon *mu, const std::string &trigger) const
Gaudi::Property< std::vector< float > > m_massCBThres
Gaudi::Property< std::vector< float > > m_dRCBThres
Gaudi::Property< std::vector< float > > m_dRbySAThres
Property holding a SG store/key/clid from which a ReadHandle is made.
TrigMuonMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
L2CombinedMuon_v1 L2CombinedMuon
Define the latest version of the muon CB class.
Muon_v1 Muon
Reference the current persistent version:
L2StandAloneMuon_v2 L2StandAloneMuon
Define the latest version of the muon SA class.