ATLAS Offline Software
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 
11 #include "xAODMuon/MuonContainer.h"
12 #include "GaudiKernel/SystemOfUnits.h"
13 
14 // include Muon SelectionTool for quality criteria
16 
17 class StoreGateSvc;
18 
20  enum { MaxNumberTools = 20 };
21 
22 public:
23 
24  TrigMuonEFIdtpHypoTool(const std::string& type, const std::string & name, const IInterface* parent);
26 
29  const xAOD::Muon* m,
30  const xAOD::TrackParticle* pt,
31  const xAOD::TrackParticle* ftf,
32  const TrigCompositeUtils::Decision* previousDecision )
33  : decision( d ),
34  muon( m ),
35  ptTrack( pt ),
36  ftfTrack( ftf ),
38  TrigCompositeUtils::decisionIDs( previousDecision ).end() )
39  {}
40 
42  const xAOD::Muon* muon;
46  };
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;
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
xAOD::muon
@ muon
Definition: TrackingPrimitives.h:195
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
TrigMuonEFIdtpHypoTool::m_acceptAll
Gaudi::Property< bool > m_acceptAll
Definition: TrigMuonEFIdtpHypoTool.h:66
TrigCompositeUtils.h
TrigMuonEFIdtpHypoTool::m_muonSelTool
ToolHandle< CP::IMuonSelectionTool > m_muonSelTool
Definition: TrigMuonEFIdtpHypoTool.h:72
hist_file_dump.d
d
Definition: hist_file_dump.py:137
TrigMuonEFIdtpHypoTool::MuonEFIdperfInfo::decision
TrigCompositeUtils::Decision * decision
Definition: TrigMuonEFIdtpHypoTool.h:41
TrigMuonEFIdtpHypoTool::initialize
virtual StatusCode initialize() override
Definition: TrigMuonEFIdtpHypoTool.cxx:24
PlotCalibFromCool.begin
begin
Definition: PlotCalibFromCool.py:94
test_pyathena.pt
pt
Definition: test_pyathena.py:11
TrigMuonEFIdtpHypoTool::multiplicitySelection
StatusCode multiplicitySelection(std::vector< TrigMuonEFIdtpHypoTool::MuonEFIdperfInfo > &toolInput) const
Definition: TrigMuonEFIdtpHypoTool.cxx:186
TrigMuonEFIdtpHypoTool::MuonEFIdperfInfo::ptTrack
const xAOD::TrackParticle * ptTrack
Definition: TrigMuonEFIdtpHypoTool.h:43
TrigMuonEFIdtpHypoTool::m_ptBins
Gaudi::Property< std::vector< std::vector< double > > > m_ptBins
Definition: TrigMuonEFIdtpHypoTool.h:62
xAOD::Muon_v1
Class describing a Muon.
Definition: Muon_v1.h:38
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
TrigMuonEFIdtpHypoTool::decideOnSingleObject
bool decideOnSingleObject(TrigMuonEFIdtpHypoTool::MuonEFIdperfInfo &input, size_t cutIndex) const
Definition: TrigMuonEFIdtpHypoTool.cxx:66
IMuonSelectionTool.h
GenericMonitoringTool.h
StoreGateSvc
The Athena Transient Store API.
Definition: StoreGateSvc.h:128
TrigMuonEFIdtpHypoTool::MuonEFIdperfInfo::ftfTrack
const xAOD::TrackParticle * ftfTrack
Definition: TrigMuonEFIdtpHypoTool.h:44
TrigMuonEFIdtpHypoTool::MuonEFIdperfInfo::previousDecisionIDs
const TrigCompositeUtils::DecisionIDContainer previousDecisionIDs
Definition: TrigMuonEFIdtpHypoTool.h:45
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TrigMuonEFIdtpHypoTool::m_monTool
ToolHandle< GenericMonitoringTool > m_monTool
Definition: TrigMuonEFIdtpHypoTool.h:71
PlotPulseshapeFromCool.input
input
Definition: PlotPulseshapeFromCool.py:106
TrigMuonEFIdtpHypoTool::MuonEFIdperfInfo::MuonEFIdperfInfo
MuonEFIdperfInfo(TrigCompositeUtils::Decision *d, const xAOD::Muon *m, const xAOD::TrackParticle *pt, const xAOD::TrackParticle *ftf, const TrigCompositeUtils::Decision *previousDecision)
Definition: TrigMuonEFIdtpHypoTool.h:28
TrigMuonEFIdtpHypoTool::m_decisionId
HLT::Identifier m_decisionId
Definition: TrigMuonEFIdtpHypoTool.h:58
test_pyathena.parent
parent
Definition: test_pyathena.py:15
TrigMuonEFIdtpHypoTool::m_bins
std::vector< size_t > m_bins
Definition: TrigMuonEFIdtpHypoTool.h:70
xAOD::TrigComposite_v1
Class used to describe composite objects in the HLT.
Definition: TrigComposite_v1.h:52
HLT::Identifier
Definition: TrigCompositeUtils/TrigCompositeUtils/HLTIdentifier.h:20
TrigMuonEFIdtpHypoTool::~TrigMuonEFIdtpHypoTool
~TrigMuonEFIdtpHypoTool()=default
TrigMuonEFIdtpHypoTool::m_muonqualityCut
Gaudi::Property< bool > m_muonqualityCut
Definition: TrigMuonEFIdtpHypoTool.h:60
TrigMuonEFIdtpHypoTool::m_ptThresholds
Gaudi::Property< std::vector< std::vector< double > > > m_ptThresholds
Definition: TrigMuonEFIdtpHypoTool.h:64
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
TrigMuonEFIdtpHypoTool::MaxNumberTools
@ MaxNumberTools
Definition: TrigMuonEFIdtpHypoTool.h:20
TrigMuonEFIdtpHypoTool::passedQualityCuts
bool passedQualityCuts(const xAOD::Muon *muon) const
Definition: TrigMuonEFIdtpHypoTool.cxx:131
MuonContainer.h
TrigMuonEFIdtpHypoTool::inclusiveSelection
StatusCode inclusiveSelection(std::vector< TrigMuonEFIdtpHypoTool::MuonEFIdperfInfo > &toolInput) const
Definition: TrigMuonEFIdtpHypoTool.cxx:168
TrigMuonEFIdtpHypoTool::MuonEFIdperfInfo::muon
const xAOD::Muon * muon
Definition: TrigMuonEFIdtpHypoTool.h:42
TrigCompositeUtils::DecisionIDContainer
std::set< DecisionID > DecisionIDContainer
Definition: TrigComposite_v1.h:28
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
TrigMuonEFIdtpHypoTool
Definition: TrigMuonEFIdtpHypoTool.h:19
HLTIdentifier.h
TrigCompositeUtils::decisionIDs
void decisionIDs(const Decision *d, DecisionIDContainer &destination)
Extracts DecisionIDs stored in the Decision object.
Definition: TrigCompositeUtilsRoot.cxx:67
TrigCompositeUtils
Definition: Event/xAOD/xAODTrigger/xAODTrigger/TrigComposite.h:19
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
AthAlgTool
Definition: AthAlgTool.h:26
TrigMuonEFIdtpHypoTool::TrigMuonEFIdtpHypoTool
TrigMuonEFIdtpHypoTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: TrigMuonEFIdtpHypoTool.cxx:16
GeV
#define GeV
Definition: CaloTransverseBalanceVecMon.cxx:30
TrigMuonEFIdtpHypoTool::decide
StatusCode decide(std::vector< TrigMuonEFIdtpHypoTool::MuonEFIdperfInfo > &toolInput) const
Definition: TrigMuonEFIdtpHypoTool.cxx:150
TrigMuonEFIdtpHypoTool::MuonEFIdperfInfo
Definition: TrigMuonEFIdtpHypoTool.h:27