ATLAS Offline Software
Loading...
Searching...
No Matches
TrigMuonEFIdtpHypoTool.h
Go to the documentation of this file.
1/*
2# Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TRIGMUONHYPO_TRIGMUONEFIDTPHYPOTOOL_H
6#define TRIGMUONHYPO_TRIGMUONEFIDTPHYPOTOOL_H
7
12#include "GaudiKernel/SystemOfUnits.h"
13
14// include Muon SelectionTool for quality criteria
16
17class StoreGateSvc;
18
20 enum { MaxNumberTools = 20 };
21
22public:
23
24 TrigMuonEFIdtpHypoTool(const std::string& type, const std::string & name, const IInterface* parent);
26
47
48 virtual StatusCode initialize() override;
49 StatusCode decide(std::vector<TrigMuonEFIdtpHypoTool::MuonEFIdperfInfo>& toolInput) const ;
50
51 private:
52
53 bool passedQualityCuts(const xAOD::Muon* muon) const;
54 bool decideOnSingleObject(TrigMuonEFIdtpHypoTool::MuonEFIdperfInfo& input, size_t cutIndex) const;
55 StatusCode inclusiveSelection(std::vector<TrigMuonEFIdtpHypoTool::MuonEFIdperfInfo>& toolInput) const;
56 StatusCode multiplicitySelection(std::vector<TrigMuonEFIdtpHypoTool::MuonEFIdperfInfo>& toolInput) const;
57
59 // Properties:
60 Gaudi::Property< bool > m_muonqualityCut {
61 this, "MuonQualityCut", false, "Ignore selection" };
62 Gaudi::Property< std::vector<std::vector<double>> > m_ptBins {
63 this, "PtBins", { {0, 2.5} }, "Bins range of each pT threshold" };
64 Gaudi::Property< std::vector<std::vector<double>> > m_ptThresholds {
65 this, "PtThresholds", { {5.49*Gaudi::Units::GeV} }, "Track pT requirement ( separate threshold for each muon )" };
66 Gaudi::Property< bool > m_acceptAll {
67 this, "AcceptAll", false, "Ignore selection" };
68
69 // Other members:
70 std::vector<size_t> m_bins={0};
71 ToolHandle< GenericMonitoringTool > m_monTool { this, "MonTool", "", "Monitoring tool" };
72 ToolHandle<CP::IMuonSelectionTool> m_muonSelTool{this, "MuonSelectionTool", "CP::MuonSelectionTool/MuonSelectionTool", "Tool for muon quality selection"};
73};
74
75#endif
void decisionIDs(const Decision *d, DecisionIDContainer &id)
Extracts DecisionIDs stored in the Decision object.
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
The Athena Transient Store API.
StatusCode decide(std::vector< TrigMuonEFIdtpHypoTool::MuonEFIdperfInfo > &toolInput) const
Gaudi::Property< std::vector< std::vector< double > > > m_ptBins
StatusCode multiplicitySelection(std::vector< TrigMuonEFIdtpHypoTool::MuonEFIdperfInfo > &toolInput) const
ToolHandle< GenericMonitoringTool > m_monTool
Gaudi::Property< bool > m_muonqualityCut
bool passedQualityCuts(const xAOD::Muon *muon) const
~TrigMuonEFIdtpHypoTool()=default
bool decideOnSingleObject(TrigMuonEFIdtpHypoTool::MuonEFIdperfInfo &input, size_t cutIndex) const
StatusCode inclusiveSelection(std::vector< TrigMuonEFIdtpHypoTool::MuonEFIdperfInfo > &toolInput) const
std::vector< size_t > m_bins
TrigMuonEFIdtpHypoTool(const std::string &type, const std::string &name, const IInterface *parent)
Gaudi::Property< std::vector< std::vector< double > > > m_ptThresholds
ToolHandle< CP::IMuonSelectionTool > m_muonSelTool
virtual StatusCode initialize() override
Gaudi::Property< bool > m_acceptAll
std::set< DecisionID > DecisionIDContainer
TrackParticle_v1 TrackParticle
Reference the current persistent version:
Muon_v1 Muon
Reference the current persistent version:
MuonEFIdperfInfo(TrigCompositeUtils::Decision *d, const xAOD::Muon *m, const xAOD::TrackParticle *pt, const xAOD::TrackParticle *ftf, const TrigCompositeUtils::Decision *previousDecision)
const TrigCompositeUtils::DecisionIDContainer previousDecisionIDs