ATLAS Offline Software
StableDeltaRMatchingTool.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_STABLEDELTARMATCHINGTOOL_H
6 #define INDETTRACKPERFMON_STABLEDELTARMATCHINGTOOL_H
7 
15 #include "AsgTools/AsgTool.h"
17 #include "StableMatchingBase.h"
18 
20 #include "ITrackMatchingTool.h"
21 
22 namespace IDTPM {
23 
24  template<typename T, typename R>
26  public:
28  StableDeltaRMatchingTool(const std::string& name)
29  : StableMatchingBase<T,R>(name) {}
30 
32  virtual StatusCode initialize() override {
33  ATH_MSG_DEBUG("Initializing " << this->name());
35 
36  if (m_dRmax < 0) {
37  ATH_MSG_ERROR("No DeltaRMax criteria requested");
38  return StatusCode::FAILURE;
39  }
40  return StatusCode::SUCCESS;
41  }
42 
43  protected:
44 
45  virtual float distance(const T& t, const R& r) const override {
46  float dR = deltaR(t, r);
47  // Return -1 if distance exceeds threshold
48  return (dR > m_dRmax) ? -1 : dR;
49  }
50 
51  FloatProperty m_dRmax { this, "dRmax", 0.05, "Maximum DeltaR cone size for DeltaR-matching (disabled if <0)" };
52  };
53 
58  public StableDeltaRMatchingTool<xAOD::TrackParticle, xAOD::TrackParticle>,
59  public virtual ITrackMatchingTool
60  {
61  public:
63 
65  StableDeltaRMatchingTool_trk(const std::string& name)
67 
69  virtual StatusCode match(TrackAnalysisCollections& trkAnaColls,
70  const std::string& chainRoIName,
71  const std::string& roiStr) const override;
72 
74 
78 
79  virtual StatusCode match(const std::vector<const xAOD::TrackParticle*>& vTest,
80  const std::vector<const xAOD::TrackParticle*>& vRef,
81  ITrackMatchingLookup& matches) const override {
82  ATH_MSG_DEBUG("Doing Track->Track stable DeltaR matching");
83  ATH_CHECK(matchVectors(vTest, vRef, matches));
84  return StatusCode::SUCCESS;
85  }
86 
88  virtual StatusCode match(const std::vector<const xAOD::TrackParticle*>& /*vTest*/,
89  const std::vector<const xAOD::TruthParticle*>& /*vRef*/,
90  ITrackMatchingLookup& /*matches*/) const override {
91  ATH_MSG_WARNING("Track->Truth matching not supported by this tool.");
92  return StatusCode::SUCCESS;
93  }
94 
96  virtual StatusCode match(const std::vector<const xAOD::TruthParticle*>& /*vTest*/,
97  const std::vector<const xAOD::TrackParticle*>& /*vRef*/,
98  ITrackMatchingLookup& /*matches*/) const override {
99  ATH_MSG_WARNING("Truth->Track matching not supported by this tool.");
100  return StatusCode::SUCCESS;
101  }
102  };
103 
108  public StableDeltaRMatchingTool<xAOD::TrackParticle, xAOD::TruthParticle>,
109  public virtual ITrackMatchingTool
110  {
111  public:
113 
117 
119  virtual StatusCode match(TrackAnalysisCollections& trkAnaColls,
120  const std::string& chainRoIName,
121  const std::string& roiStr) const override;
122 
124 
126  virtual StatusCode match(const std::vector<const xAOD::TrackParticle*>& /*vTest*/,
127  const std::vector<const xAOD::TrackParticle*>& /*vRef*/,
128  ITrackMatchingLookup& /*matches*/) const override {
129  ATH_MSG_WARNING("Track->Track matching not supported by this tool.");
130  return StatusCode::SUCCESS;
131  }
132 
134  virtual StatusCode match(const std::vector<const xAOD::TrackParticle*>& vTest,
135  const std::vector<const xAOD::TruthParticle*>& vRef,
136  ITrackMatchingLookup& matches) const override {
137  ATH_MSG_DEBUG("Doing Track->Truth stable DeltaR matching.");
138  ATH_CHECK(matchVectors(vTest, vRef, matches));
139  return StatusCode::SUCCESS;
140  }
141 
143  virtual StatusCode match(const std::vector<const xAOD::TruthParticle*>& /*vTest*/,
144  const std::vector<const xAOD::TrackParticle*>& /*vRef*/,
145  ITrackMatchingLookup& /*matches*/) const override {
146  ATH_MSG_WARNING("Truth->Track matching not supported by this tool.");
147  return StatusCode::SUCCESS;
148  }
149  };
150 
155  public StableDeltaRMatchingTool<xAOD::TruthParticle, xAOD::TrackParticle>,
156  public virtual ITrackMatchingTool
157  {
158  public:
160 
164 
166  virtual StatusCode match(TrackAnalysisCollections& trkAnaColls,
167  const std::string& chainRoIName,
168  const std::string& roiStr) const override;
169 
171 
173  virtual StatusCode match(const std::vector<const xAOD::TrackParticle*>& /*vTest*/,
174  const std::vector<const xAOD::TrackParticle*>& /*vRef*/,
175  ITrackMatchingLookup& /*matches*/) const override {
176  ATH_MSG_WARNING("Track->Track matching not supported by this tool.");
177  return StatusCode::SUCCESS;
178  }
179 
181  virtual StatusCode match(const std::vector<const xAOD::TrackParticle*>& /*vTest*/,
182  const std::vector<const xAOD::TruthParticle*>& /*vRef*/,
183  ITrackMatchingLookup& /*matches*/) const override {
184  ATH_MSG_WARNING("Track->Truth matching not supported by this tool.");
185  return StatusCode::SUCCESS;
186  }
187 
189  virtual StatusCode match(const std::vector<const xAOD::TruthParticle*>& vTest,
190  const std::vector<const xAOD::TrackParticle*>& vRef,
191  ITrackMatchingLookup& matches) const override {
192  ATH_MSG_DEBUG("Doing Truth->Track stable DeltaR matching.");
193  ATH_CHECK(matchVectors(vTest, vRef, matches));
194  return StatusCode::SUCCESS;
195  }
196  };
197 
198 } // end of namespace IDTPM
199 
200 #endif // > !INDETTRACKPERFMON_STABLEDELTARMATCHINGTOOL_H
201 
IDTPM::StableDeltaRMatchingTool_trkTruth::match
virtual StatusCode match(const std::vector< const xAOD::TrackParticle * > &vTest, const std::vector< const xAOD::TruthParticle * > &vRef, ITrackMatchingLookup &matches) const override
track -> truth matching
Definition: StableDeltaRMatchingTool.h:134
beamspotman.r
def r
Definition: beamspotman.py:672
IDTPM::StableDeltaRMatchingTool_trk::StableDeltaRMatchingTool_trk
StableDeltaRMatchingTool_trk(const std::string &name)
Constructor.
Definition: StableDeltaRMatchingTool.h:65
IDTPM::StableDeltaRMatchingTool_trkTruth::StableDeltaRMatchingTool_trkTruth
StableDeltaRMatchingTool_trkTruth(const std::string &name)
Constructor.
Definition: StableDeltaRMatchingTool.h:115
IDTPM::StableDeltaRMatchingTool_truthTrk::match
virtual StatusCode match(const std::vector< const xAOD::TruthParticle * > &vTest, const std::vector< const xAOD::TrackParticle * > &vRef, ITrackMatchingLookup &matches) const override
truth -> track matching
Definition: StableDeltaRMatchingTool.h:189
IDTPM::TrackAnalysisCollections
Definition: TrackAnalysisCollections.h:46
IDTPM::StableDeltaRMatchingTool_truthTrk::match
virtual StatusCode match(const std::vector< const xAOD::TrackParticle * > &, const std::vector< const xAOD::TruthParticle * > &, ITrackMatchingLookup &) const override
track -> truth matching (disabled)
Definition: StableDeltaRMatchingTool.h:181
IDTPM::StableDeltaRMatchingTool_trkTruth::match
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.
Definition: StableDeltaRMatchingTool.h:126
IDTPM::StableDeltaRMatchingTool_trkTruth::ASG_TOOL_CLASS
ASG_TOOL_CLASS(StableDeltaRMatchingTool_trkTruth, ITrackMatchingTool)
IDTPM::ITrackMatchingTool
Definition: InnerDetector/InDetValidation/InDetTrackPerfMon/src/ITrackMatchingTool.h:32
IDTPM::StableDeltaRMatchingTool_trk::match
virtual StatusCode match(const std::vector< const xAOD::TrackParticle * > &, const std::vector< const xAOD::TruthParticle * > &, ITrackMatchingLookup &) const override
track -> truth matching (disabled)
Definition: StableDeltaRMatchingTool.h:88
StableMatchingBase.h
TruthParticle
Definition: PhysicsAnalysis/TruthParticleID/McParticleEvent/McParticleEvent/TruthParticle.h:58
xAOD
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Definition: ICaloAffectedTool.h:24
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
IDTPM::StableDeltaRMatchingTool_trkTruth::match
virtual StatusCode match(const std::vector< const xAOD::TruthParticle * > &, const std::vector< const xAOD::TrackParticle * > &, ITrackMatchingLookup &) const override
truth -> track matching (disabled)
Definition: StableDeltaRMatchingTool.h:143
IDTPM::StableDeltaRMatchingTool_trk::match
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.
Definition: StableDeltaRMatchingTool.h:79
xAOD::TrackParticle
TrackParticle_v1 TrackParticle
Reference the current persistent version:
Definition: Event/xAOD/xAODTracking/xAODTracking/TrackParticle.h:13
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
IDTPM::StableDeltaRMatchingTool_truthTrk
Definition: StableDeltaRMatchingTool.h:157
IDTPM::StableDeltaRMatchingTool_trk
Definition: StableDeltaRMatchingTool.h:60
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
IDTPM::StableDeltaRMatchingTool_truthTrk::StableDeltaRMatchingTool_truthTrk
StableDeltaRMatchingTool_truthTrk(const std::string &name)
Constructor.
Definition: StableDeltaRMatchingTool.h:162
IDTPM::StableDeltaRMatchingTool::StableDeltaRMatchingTool
StableDeltaRMatchingTool(const std::string &name)
Constructor.
Definition: StableDeltaRMatchingTool.h:28
IDTPM::StableDeltaRMatchingTool::m_dRmax
FloatProperty m_dRmax
Definition: StableDeltaRMatchingTool.h:51
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
IDTPM::StableDeltaRMatchingTool::distance
virtual float distance(const T &t, const R &r) const override
Definition: StableDeltaRMatchingTool.h:45
IDTPM::StableDeltaRMatchingTool
Definition: StableDeltaRMatchingTool.h:25
IDTPM::deltaR
float deltaR(const U1 &p1, const U2 &p2)
Accessor utility function for getting the DeltaR betwen two tracks.
Definition: TrackParametersHelper.h:250
ITrackMatchingTool.h
IDTPM::StableDeltaRMatchingTool_trkTruth::match
virtual StatusCode match(TrackAnalysisCollections &trkAnaColls, const std::string &chainRoIName, const std::string &roiStr) const override
General matching method, via TrackAnalysisCollections
Definition: StableDeltaRMatchingTool.cxx:45
IDTPM::StableDeltaRMatchingTool_truthTrk::match
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.
Definition: StableDeltaRMatchingTool.h:173
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
IDTPM::StableDeltaRMatchingTool_trkTruth
Definition: StableDeltaRMatchingTool.h:110
IDTPM::StableDeltaRMatchingTool_truthTrk::ASG_TOOL_CLASS
ASG_TOOL_CLASS(StableDeltaRMatchingTool_truthTrk, ITrackMatchingTool)
IDTPM::StableDeltaRMatchingTool_trk::match
virtual StatusCode match(const std::vector< const xAOD::TruthParticle * > &, const std::vector< const xAOD::TrackParticle * > &, ITrackMatchingLookup &) const override
truth -> track matching (disabled)
Definition: StableDeltaRMatchingTool.h:96
IDTPM::StableMatchingBase< xAOD::TrackParticle, xAOD::TrackParticle >::matchVectors
virtual StatusCode matchVectors(const std::vector< const xAOD::TrackParticle * > &vTest, const std::vector< const xAOD::TrackParticle * > &vRef, ITrackMatchingLookup &matches) const
matchVectors
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
IDTPM::StableDeltaRMatchingTool_truthTrk::match
virtual StatusCode match(TrackAnalysisCollections &trkAnaColls, const std::string &chainRoIName, const std::string &roiStr) const override
General matching method, via TrackAnalysisCollections
Definition: StableDeltaRMatchingTool.cxx:67
IDTPM::StableDeltaRMatchingTool_trk::match
virtual StatusCode match(TrackAnalysisCollections &trkAnaColls, const std::string &chainRoIName, const std::string &roiStr) const override
General matching method, via TrackAnalysisCollections
Definition: StableDeltaRMatchingTool.cxx:23
IDTPM::ITrackMatchingLookup
Definition: ITrackMatchingLookup.h:30
IDTPM::StableDeltaRMatchingTool_trk::ASG_TOOL_CLASS
ASG_TOOL_CLASS(StableDeltaRMatchingTool_trk, ITrackMatchingTool)
IDTPM
Athena include(s).
Definition: IPlotsDefinitionSvc.h:25
AsgTool.h
IDTPM::StableDeltaRMatchingTool::initialize
virtual StatusCode initialize() override
Initialize.
Definition: StableDeltaRMatchingTool.h:32
asg::AsgTool::initialize
virtual StatusCode initialize()
Dummy implementation of the initialisation function.
Definition: AsgTool.h:133
IDTPM::StableMatchingBase
Definition: StableMatchingBase.h:32