ATLAS Offline Software
Loading...
Searching...
No Matches
DeltaRMatchingTool.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 INDETTRACKPERFMON_DELTARMATCHINGTOOL_H
6#define INDETTRACKPERFMON_DELTARMATCHINGTOOL_H
7
15
17#include "AsgTools/AsgTool.h"
18
20#include "ITrackMatchingTool.h"
21
22
23namespace IDTPM {
24
28 template< typename T, typename R=T >
30 public asg::AsgTool {
31
32 public:
33
35 DeltaRMatchingToolBase( const std::string& name ) :
36 asg::AsgTool( name ) { };
37
39 virtual StatusCode initialize() override
40 {
41 ATH_MSG_DEBUG( "Initializing " << name() );
43
44 if( m_dRmax<0 and m_pTResMax<0 ) {
45 ATH_MSG_ERROR( "No DeltaRMax or pTresMax criteria requested" );
46 return StatusCode::FAILURE;
47 }
48
49 return StatusCode::SUCCESS;
50 }
51
53 StatusCode matchVectors(
54 const std::vector< const T* >& vTest,
55 const std::vector< const R* >& vRef,
56 ITrackMatchingLookup& matches ) const;
57
59 const R* getMatchedRef(
60 const T& t, const std::vector< const R* >& vRef, float& dist ) const;
61
62 protected:
63
64 FloatProperty m_dRmax { this, "dRmax", 0.05, "Maximum DeltaR cone size for DeltaR-matching (disabled if <0)" };
65 FloatProperty m_pTResMax { this, "pTResMax", -9.9, "Maximum relative pT distance allowed for matching (disabled if <0)" };
66
67 }; // class DeltaRMatchingToolBase
68
69
74 public DeltaRMatchingToolBase< xAOD::TrackParticle >,
75 public virtual ITrackMatchingTool {
76
77 public:
78
80
82 DeltaRMatchingTool_trk( const std::string& name ) :
83 DeltaRMatchingToolBase< xAOD::TrackParticle >( name ) { }
84
86 virtual StatusCode match(
87 TrackAnalysisCollections& trkAnaColls,
88 const std::string& chainRoIName,
89 const std::string& roiStr ) const override;
90
93 virtual StatusCode match(
94 const std::vector< const xAOD::TrackParticle* >& vTest,
95 const std::vector< const xAOD::TrackParticle* >& vRef,
96 ITrackMatchingLookup& matches ) const override
97 {
98 ATH_MSG_DEBUG( "Doing Track->Track DeltaR matching" );
99 ATH_CHECK( matchVectors( vTest, vRef, matches ) );
100 return StatusCode::SUCCESS;
101 }
102
104 virtual StatusCode match(
105 const std::vector< const xAOD::TrackParticle* >&,
106 const std::vector< const xAOD::TruthParticle* >&,
107 ITrackMatchingLookup& ) const override
108 {
109 ATH_MSG_WARNING( "Track->Truth matching disabled" );
110 return StatusCode::SUCCESS;
111 }
112
114 virtual StatusCode match(
115 const std::vector< const xAOD::TruthParticle* >&,
116 const std::vector< const xAOD::TrackParticle* >&,
117 ITrackMatchingLookup& ) const override
118 {
119 ATH_MSG_WARNING( "Truth->Track matching disabled" );
120 return StatusCode::SUCCESS;
121 }
122
123 }; // class DeltaRMatchingTool_trk
124
125
130 public DeltaRMatchingToolBase< xAOD::TrackParticle, xAOD::TruthParticle >,
131 public virtual ITrackMatchingTool {
132
133 public:
134
136
138 DeltaRMatchingTool_trkTruth( const std::string& name ) :
139 DeltaRMatchingToolBase< xAOD::TrackParticle, xAOD::TruthParticle >( name ) { }
140
142 virtual StatusCode match(
143 TrackAnalysisCollections& trkAnaColls,
144 const std::string& chainRoIName,
145 const std::string& roiStr ) const override;
146
149 virtual StatusCode match(
150 const std::vector< const xAOD::TrackParticle* >&,
151 const std::vector< const xAOD::TrackParticle* >&,
152 ITrackMatchingLookup& ) const override
153 {
154 ATH_MSG_WARNING( "Track->Track matching disabled" );
155 return StatusCode::SUCCESS;
156 }
157
159 virtual StatusCode match(
160 const std::vector< const xAOD::TrackParticle* >& vTest,
161 const std::vector< const xAOD::TruthParticle* >& vRef,
162 ITrackMatchingLookup& matches ) const override
163 {
164 ATH_MSG_DEBUG( "Doing Track->Truth DeltaR matching" );
165 ATH_CHECK( matchVectors( vTest, vRef, matches ) );
166 return StatusCode::SUCCESS;
167 }
168
170 virtual StatusCode match(
171 const std::vector< const xAOD::TruthParticle* >&,
172 const std::vector< const xAOD::TrackParticle* >&,
173 ITrackMatchingLookup& ) const override
174 {
175 ATH_MSG_WARNING( "Truth->Track matching disabled" );
176 return StatusCode::SUCCESS;
177 }
178
179 }; // class DeltaRMatchingTool_trkTruth
180
181
186 public DeltaRMatchingToolBase< xAOD::TruthParticle, xAOD::TrackParticle >,
187 public virtual ITrackMatchingTool {
188
189 public:
190
192
194 DeltaRMatchingTool_truthTrk( const std::string& name ) :
195 DeltaRMatchingToolBase< xAOD::TruthParticle, xAOD::TrackParticle >( name ) { }
196
198 virtual StatusCode match(
199 TrackAnalysisCollections& trkAnaColls,
200 const std::string& chainRoIName,
201 const std::string& roiStr ) const override;
202
205 virtual StatusCode match(
206 const std::vector< const xAOD::TrackParticle* >&,
207 const std::vector< const xAOD::TrackParticle* >&,
208 ITrackMatchingLookup& ) const override
209 {
210 ATH_MSG_WARNING( "Track->Track matching disabled" );
211 return StatusCode::SUCCESS;
212 }
213
215 virtual StatusCode match(
216 const std::vector< const xAOD::TrackParticle* >&,
217 const std::vector< const xAOD::TruthParticle* >&,
218 ITrackMatchingLookup& ) const override
219 {
220 ATH_MSG_WARNING( "Track->Truth matching disabled" );
221 return StatusCode::SUCCESS;
222 }
223
225 virtual StatusCode match(
226 const std::vector< const xAOD::TruthParticle* >& vTest,
227 const std::vector< const xAOD::TrackParticle* >& vRef,
228 ITrackMatchingLookup& matches ) const override
229 {
230 ATH_MSG_DEBUG( "Doing Truth->Track DeltaR matching" );
231 ATH_CHECK( matchVectors( vTest, vRef, matches ) );
232 return StatusCode::SUCCESS;
233 }
234
235 }; // class DeltaRMatchingTool_truthTrk
236
237} // namespace IDTPM
238
239#include "DeltaRMatchingTool.icc"
240
241#endif // > !INDETTRACKPERFMON_DELTARMATCHINGTOOL_H
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_ERROR(x)
#define ATH_MSG_WARNING(x)
#define ATH_MSG_DEBUG(x)
interface for track matching tools in this package
virtual StatusCode initialize() override
Initialize.
StatusCode matchVectors(const std::vector< const T * > &vTest, const std::vector< const R * > &vRef, ITrackMatchingLookup &matches) const
matchVectors
const R * getMatchedRef(const T &t, const std::vector< const R * > &vRef, float &dist) const
Get the reference track matched to the given test.
DeltaRMatchingToolBase(const std::string &name)
Constructor.
DeltaRMatchingTool_trkTruth(const std::string &name)
Constructor.
ASG_TOOL_CLASS(DeltaRMatchingTool_trkTruth, ITrackMatchingTool)
virtual StatusCode match(const std::vector< const xAOD::TrackParticle * > &vTest, const std::vector< const xAOD::TruthParticle * > &vRef, ITrackMatchingLookup &matches) const override
track -> truth matching
virtual StatusCode match(const std::vector< const xAOD::TruthParticle * > &, const std::vector< const xAOD::TrackParticle * > &, ITrackMatchingLookup &) const override
truth -> track matching (disabled)
virtual StatusCode match(TrackAnalysisCollections &trkAnaColls, const std::string &chainRoIName, const std::string &roiStr) const override
General matching method, via TrackAnalysisCollections.
virtual StatusCode match(const std::vector< const xAOD::TrackParticle * > &, const std::vector< const xAOD::TrackParticle * > &, ITrackMatchingLookup &) const override
Specific matching methods, via test/reference vectors track -> track matching (disabled)
virtual StatusCode match(const std::vector< const xAOD::TrackParticle * > &vTest, const std::vector< const xAOD::TrackParticle * > &vRef, ITrackMatchingLookup &matches) const override
Specific matching methods, via test/reference vectors track -> track matching.
virtual StatusCode match(const std::vector< const xAOD::TruthParticle * > &, const std::vector< const xAOD::TrackParticle * > &, ITrackMatchingLookup &) const override
truth -> track matching (disabled)
ASG_TOOL_CLASS(DeltaRMatchingTool_trk, ITrackMatchingTool)
DeltaRMatchingTool_trk(const std::string &name)
Constructor.
virtual StatusCode match(TrackAnalysisCollections &trkAnaColls, const std::string &chainRoIName, const std::string &roiStr) const override
General matching method, via TrackAnalysisCollections.
virtual StatusCode match(const std::vector< const xAOD::TrackParticle * > &, const std::vector< const xAOD::TruthParticle * > &, ITrackMatchingLookup &) const override
track -> truth matching (disabled)
ASG_TOOL_CLASS(DeltaRMatchingTool_truthTrk, ITrackMatchingTool)
virtual StatusCode match(const std::vector< const xAOD::TruthParticle * > &vTest, const std::vector< const xAOD::TrackParticle * > &vRef, ITrackMatchingLookup &matches) const override
truth -> track matching
virtual StatusCode match(TrackAnalysisCollections &trkAnaColls, const std::string &chainRoIName, const std::string &roiStr) const override
General matching method, via TrackAnalysisCollections.
virtual StatusCode match(const std::vector< const xAOD::TrackParticle * > &, const std::vector< const xAOD::TruthParticle * > &, ITrackMatchingLookup &) const override
track -> truth matching (disabled)
virtual StatusCode match(const std::vector< const xAOD::TrackParticle * > &, const std::vector< const xAOD::TrackParticle * > &, ITrackMatchingLookup &) const override
Specific matching methods, via test/reference vectors track -> track matching (disabled)
DeltaRMatchingTool_truthTrk(const std::string &name)
Constructor.
Base class for the dual-use tool implementation classes.
Definition AsgTool.h:47
AsgTool(const std::string &name)
Constructor specifying the tool instance's name.
Definition AsgTool.cxx:58
virtual StatusCode initialize()
Dummy implementation of the initialisation function.
Definition AsgTool.h:133
Athena include(s).
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.