ATLAS Offline Software
ExtrapolatorComparisonTest.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // ExtrapolatorComparisonTest.h, (c) ATLAS Detector software
8 
9 #ifndef TRKEXALGS_TRKEXTRAPOLATORCOMPARISONTEST_H
10 #define TRKEXALGS_TRKEXTRAPOLATORCOMPARISONTEST_H
11 
12 // Gaudi includes
14 
15 // ATHENA
16 #include "GaudiKernel/ServiceHandle.h"
17 #include "Gaudi/Property.h" /*no forward decl: typedef*/
18 #include "GaudiKernel/ISvcLocator.h"
19 #include "GaudiKernel/EventContext.h"
20 #include "GaudiKernel/SystemOfUnits.h"
24 // ACTS
29 #include "Acts/EventData/TrackParameters.hpp"
30 // STL
31 #include <memory>
32 #include <vector>
33 #include <fstream>
34 #include <mutex>
35 
36 namespace Acts {
37  class TrackingGeometry;
38 
39  namespace detail {
40  struct Step;
41  }
42 }
43 
45  double m_d0 ;
46  double m_z0 ;
47  double m_phi ;
48  double m_eta ;
49  double m_pt ;
50  double m_charge;
51  perigeeParameters(double d0, double z0, double phi, double eta, double pt, double charge):
53 };
54 
55 namespace Trk
56 {
72  {
73  public:
74 
76  ExtrapolatorComparisonTest(const std::string& name, ISvcLocator* pSvcLocator);
79 
81  StatusCode initialize() override;
83  StatusCode execute(const EventContext& ctx) const override;
85  StatusCode finalize() override;
86 
87  private:
88 
94  {
96  ActsTrackWrapper(const Acts::BoundTrackParameters* trackParams, Acts::GeometryContext& ctx)
97  : m_params(trackParams)
98  , m_geometryContext(ctx) {};
99 
101  Acts::Vector3 position() const {return m_params->position(m_geometryContext);}
103  Acts::BoundVector parameters() const {return m_params->parameters();}
105  const std::optional<Acts::BoundSquareMatrix>& covariance() const {return m_params->covariance();}
106 
107  private:
109  const Acts::BoundTrackParameters* m_params;
111  Acts::GeometryContext m_geometryContext;
112  };
113 
114  void generatePerigee(std::vector<perigeeParameters>& parameters);
115 
117  ToolHandle<IActsExtrapolationTool> m_extrapolationTool{this, "ExtrapolationTool", "ActsExtrapolationTool"};
118 
120  ToolHandle<Trk::IExtrapolator> m_atlasExtrapolator {this, "Extrapolator", "Trk::Extrapolator/AtlasExtrapolator"};
121 
122  PublicToolHandle<ActsTrk::ITrackingGeometryTool> m_trackingGeometryTool{this, "TrackingGeometryTool", "ActsTrackingGeometryTool"};
123 
124  DoubleProperty m_sigmaD0
125  {this, "StartPerigeeSigmaD0", 17.*Gaudi::Units::micrometer};
126  DoubleProperty m_sigmaZ0
127  {this, "StartPerigeeSigmaZ0", 50.*Gaudi::Units::micrometer};
128  DoubleProperty m_minPhi{this, "StartPerigeeMinPhi", -M_PI};
129  DoubleProperty m_maxPhi{this, "StartPerigeeMaxPhi", M_PI};
130  DoubleProperty m_minEta{this, "StartPerigeeMinEta", -3.};
131  DoubleProperty m_maxEta{this, "StartPerigeeMaxEta", 3.};
132  DoubleProperty m_minPt
133  {this, "StartPerigeeMinPt", 0.5*Gaudi::Units::GeV};
134  DoubleProperty m_maxPt
135  {this, "StartPerigeeMaxPt", 50000*Gaudi::Units::GeV};
136 
137  IntegerProperty m_particleType
138  {this, "ParticleType", 2, "the particle type for the extrap."};
139 
141  unsigned int m_referenceSurfaces = 0;
142 
143  DoubleArrayProperty m_referenceSurfaceRadius
144  {this, "ReferenceSurfaceRadius", {}};
145  DoubleArrayProperty m_referenceSurfaceHalflength
146  {this, "ReferenceSurfaceHalfZ", {}};
147 
150 
151  std::vector< std::vector<const Trk::Surface*> > m_atlasReferenceSurfaceTriples;
152  std::vector< std::vector< std::shared_ptr<const Acts::Surface> > > m_actsReferenceSurfaceTriples;
153 
154  IntegerProperty m_eventsPerExecute{this, "EventsPerExecute", 1};
155 
157  {this, "ATLASPropResultRootWriter", "ATLASPropResultRootWriterSvc"};
159  {this, "ACTSPropResultRootWriter", "ACTSPropResultRootWriterSvc"};
160  ServiceHandle<IAthRNGSvc> m_rndmSvc{this, "RndmSvc", "AthRNGSvc"};
162  };
163 } // end of namespace
164 
165 #endif
Trk::ExtrapolatorComparisonTest::m_atlasReferenceSurfaceTriples
std::vector< std::vector< const Trk::Surface * > > m_atlasReferenceSurfaceTriples
Definition: ExtrapolatorComparisonTest.h:151
GeV
#define GeV
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/Root/HelperFunctions.cxx:18
Trk::ExtrapolatorComparisonTest::ActsTrackWrapper::parameters
Acts::BoundVector parameters() const
Parameter getter.
Definition: ExtrapolatorComparisonTest.h:103
Trk::ExtrapolatorComparisonTest::ActsTrackWrapper
Definition: ExtrapolatorComparisonTest.h:94
perigeeParameters
Definition: ExtrapolatorComparisonTest.h:44
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
Trk::ExtrapolatorComparisonTest::~ExtrapolatorComparisonTest
~ExtrapolatorComparisonTest()
Default Destructor.
Definition: ExtrapolatorComparisonTest.cxx:55
ActsGeometryContext.h
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:83
perigeeParameters::m_pt
double m_pt
Definition: ExtrapolatorComparisonTest.h:49
perigeeParameters::m_charge
double m_charge
Definition: ExtrapolatorComparisonTest.h:50
Trk::ExtrapolatorComparisonTest::m_sigmaZ0
DoubleProperty m_sigmaZ0
Definition: ExtrapolatorComparisonTest.h:127
Trk::ExtrapolatorComparisonTest::m_referenceSurfacePositiveBoundary
std::vector< double > m_referenceSurfacePositiveBoundary
Definition: ExtrapolatorComparisonTest.h:149
Trk::ExtrapolatorComparisonTest::ExtrapolatorComparisonTest
ExtrapolatorComparisonTest(const std::string &name, ISvcLocator *pSvcLocator)
Standard Athena-Algorithm Constructor.
Definition: ExtrapolatorComparisonTest.cxx:50
Trk::ExtrapolatorComparisonTest::m_atlasExtrapolator
ToolHandle< Trk::IExtrapolator > m_atlasExtrapolator
The ATLAS Extrapolator to be retrieved.
Definition: ExtrapolatorComparisonTest.h:120
test_pyathena.pt
pt
Definition: test_pyathena.py:11
Trk::ExtrapolatorComparisonTest::finalize
StatusCode finalize() override
standard Athena-Algorithm method
Definition: ExtrapolatorComparisonTest.cxx:132
M_PI
#define M_PI
Definition: ActiveFraction.h:11
Trk::ExtrapolatorComparisonTest::ActsTrackWrapper::m_geometryContext
Acts::GeometryContext m_geometryContext
The Acts geometry context.
Definition: ExtrapolatorComparisonTest.h:111
IExtrapolator.h
detail
Definition: extract_histogram_tag.cxx:14
Trk::ExtrapolatorComparisonTest::m_extrapolationTool
ToolHandle< IActsExtrapolationTool > m_extrapolationTool
The ACTS ExtrapolationTool to be retrieved.
Definition: ExtrapolatorComparisonTest.h:117
Trk::ExtrapolatorComparisonTest::m_referenceSurfaceNegativeBoundary
std::vector< double > m_referenceSurfaceNegativeBoundary
Definition: ExtrapolatorComparisonTest.h:148
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:74
Trk::ExtrapolatorComparisonTest::ActsTrackWrapper::m_params
const Acts::BoundTrackParameters * m_params
The Acts track parameters.
Definition: ExtrapolatorComparisonTest.h:109
Trk::ExtrapolatorComparisonTest::m_referenceSurfaceHalflength
DoubleArrayProperty m_referenceSurfaceHalflength
Definition: ExtrapolatorComparisonTest.h:146
Trk::ExtrapolatorComparisonTest::initialize
StatusCode initialize() override
standard Athena-Algorithm method
Definition: ExtrapolatorComparisonTest.cxx:68
Trk::ExtrapolatorComparisonTest::m_minPt
DoubleProperty m_minPt
Definition: ExtrapolatorComparisonTest.h:133
Acts
Definition: MuonSpectrometer/MuonPhaseII/Event/xAOD/xAODMuonPrepData/xAODMuonPrepData/UtilFunctions.h:17
perigeeParameters::perigeeParameters
perigeeParameters(double d0, double z0, double phi, double eta, double pt, double charge)
Definition: ExtrapolatorComparisonTest.h:51
python.SystemOfUnits.micrometer
float micrometer
Definition: SystemOfUnits.py:80
Trk::ExtrapolatorComparisonTest::m_minPhi
DoubleProperty m_minPhi
Definition: ExtrapolatorComparisonTest.h:128
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Trk::ExtrapolatorComparisonTest::m_trackingGeometryTool
PublicToolHandle< ActsTrk::ITrackingGeometryTool > m_trackingGeometryTool
Definition: ExtrapolatorComparisonTest.h:122
perigeeParameters::m_phi
double m_phi
Definition: ExtrapolatorComparisonTest.h:47
TRT::Track::d0
@ d0
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:62
Trk::ExtrapolatorComparisonTest::execute
StatusCode execute(const EventContext &ctx) const override
standard Athena-Algorithm method
Definition: ExtrapolatorComparisonTest.cxx:140
Trk::ExtrapolatorComparisonTest::m_actsReferenceSurfaceTriples
std::vector< std::vector< std::shared_ptr< const Acts::Surface > > > m_actsReferenceSurfaceTriples
Definition: ExtrapolatorComparisonTest.h:152
Trk::ExtrapolatorComparisonTest::m_actsPropResultWriterSvc
ServiceHandle< PropResultRootWriterSvc > m_actsPropResultWriterSvc
Definition: ExtrapolatorComparisonTest.h:159
TRT::Track::z0
@ z0
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:63
Trk::ExtrapolatorComparisonTest::m_randomEngine
ATHRNG::RNGWrapper * m_randomEngine
Definition: ExtrapolatorComparisonTest.h:161
Trk::ExtrapolatorComparisonTest::m_sigmaD0
DoubleProperty m_sigmaD0
Definition: ExtrapolatorComparisonTest.h:125
Trk::ExtrapolatorComparisonTest::ActsTrackWrapper::position
Acts::Vector3 position() const
Position getter.
Definition: ExtrapolatorComparisonTest.h:101
AthReentrantAlgorithm.h
Trk::ExtrapolatorComparisonTest::m_referenceSurfaces
unsigned int m_referenceSurfaces
member variables for algorithm properties:
Definition: ExtrapolatorComparisonTest.h:141
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::ExtrapolatorComparisonTest::m_eventsPerExecute
IntegerProperty m_eventsPerExecute
Definition: ExtrapolatorComparisonTest.h:154
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
ATHRNG::RNGWrapper
A wrapper class for event-slot-local random engines.
Definition: RNGWrapper.h:56
Trk::ExtrapolatorComparisonTest::m_minEta
DoubleProperty m_minEta
Definition: ExtrapolatorComparisonTest.h:130
Trk::ExtrapolatorComparisonTest::m_particleType
IntegerProperty m_particleType
Definition: ExtrapolatorComparisonTest.h:138
charge
double charge(const T &p)
Definition: AtlasPID.h:986
PropResultRootWriterSvc.h
perigeeParameters::m_d0
double m_d0
Definition: ExtrapolatorComparisonTest.h:45
Trk::ExtrapolatorComparisonTest::m_referenceSurfaceRadius
DoubleArrayProperty m_referenceSurfaceRadius
Definition: ExtrapolatorComparisonTest.h:144
RNGWrapper.h
Trk::ExtrapolatorComparisonTest::m_maxPhi
DoubleProperty m_maxPhi
Definition: ExtrapolatorComparisonTest.h:129
ITrackingGeometryTool.h
Trk::ExtrapolatorComparisonTest
Definition: ExtrapolatorComparisonTest.h:72
Trk::ExtrapolatorComparisonTest::m_rndmSvc
ServiceHandle< IAthRNGSvc > m_rndmSvc
Definition: ExtrapolatorComparisonTest.h:160
Trk::ExtrapolatorComparisonTest::ActsTrackWrapper::ActsTrackWrapper
ActsTrackWrapper(const Acts::BoundTrackParameters *trackParams, Acts::GeometryContext &ctx)
Constructor.
Definition: ExtrapolatorComparisonTest.h:96
physics_parameters.parameters
parameters
Definition: physics_parameters.py:144
Trk::ExtrapolatorComparisonTest::m_atlasPropResultWriterSvc
ServiceHandle< PropResultRootWriterSvc > m_atlasPropResultWriterSvc
Definition: ExtrapolatorComparisonTest.h:157
Trk::ExtrapolatorComparisonTest::m_maxEta
DoubleProperty m_maxEta
Definition: ExtrapolatorComparisonTest.h:131
perigeeParameters::m_eta
double m_eta
Definition: ExtrapolatorComparisonTest.h:48
perigeeParameters::m_z0
double m_z0
Definition: ExtrapolatorComparisonTest.h:46
Trk::ExtrapolatorComparisonTest::ActsTrackWrapper::covariance
const std::optional< Acts::BoundSquareMatrix > & covariance() const
Covariance getter.
Definition: ExtrapolatorComparisonTest.h:105
Trk::ExtrapolatorComparisonTest::m_maxPt
DoubleProperty m_maxPt
Definition: ExtrapolatorComparisonTest.h:135
Trk::ExtrapolatorComparisonTest::generatePerigee
void generatePerigee(std::vector< perigeeParameters > &parameters)
IActsExtrapolationTool.h
IAthRNGSvc.h
ServiceHandle
Definition: ClusterMakerTool.h:37