Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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
28 #include "Acts/EventData/TrackParameters.hpp"
29 // STL
30 #include <memory>
31 #include <vector>
32 #include <fstream>
33 #include <mutex>
34 
35 namespace Acts {
36  class TrackingGeometry;
37 
38  namespace detail {
39  struct Step;
40  }
41 }
42 
44  double m_d0 ;
45  double m_z0 ;
46  double m_phi ;
47  double m_eta ;
48  double m_pt ;
49  double m_charge;
50  perigeeParameters(double d0, double z0, double phi, double eta, double pt, double charge):
52 };
53 
54 namespace Trk
55 {
71  {
72  public:
73 
75  ExtrapolatorComparisonTest(const std::string& name, ISvcLocator* pSvcLocator);
78 
80  StatusCode initialize() override;
82  StatusCode execute(const EventContext& ctx) const override;
84  StatusCode finalize() override;
85 
86  private:
87 
93  {
95  ActsTrackWrapper(const Acts::BoundTrackParameters* trackParams, Acts::GeometryContext& ctx)
96  : m_params(trackParams)
97  , m_geometryContext(ctx) {};
98 
100  Acts::Vector3 position() const {return m_params->position(m_geometryContext);}
102  Acts::BoundVector parameters() const {return m_params->parameters();}
104  const std::optional<Acts::BoundSquareMatrix>& covariance() const {return m_params->covariance();}
105 
106  private:
108  const Acts::BoundTrackParameters* m_params;
110  Acts::GeometryContext m_geometryContext;
111  };
112 
113  void generatePerigee(std::vector<perigeeParameters>& parameters);
114 
116  ToolHandle<IActsExtrapolationTool> m_extrapolationTool{this, "ExtrapolationTool", "ActsExtrapolationTool"};
117 
119  ToolHandle<Trk::IExtrapolator> m_atlasExtrapolator {this, "Extrapolator", "Trk::Extrapolator/AtlasExtrapolator"};
120 
121 
122  DoubleProperty m_sigmaD0
123  {this, "StartPerigeeSigmaD0", 17.*Gaudi::Units::micrometer};
124  DoubleProperty m_sigmaZ0
125  {this, "StartPerigeeSigmaZ0", 50.*Gaudi::Units::micrometer};
126  DoubleProperty m_minPhi{this, "StartPerigeeMinPhi", -M_PI};
127  DoubleProperty m_maxPhi{this, "StartPerigeeMaxPhi", M_PI};
128  DoubleProperty m_minEta{this, "StartPerigeeMinEta", -3.};
129  DoubleProperty m_maxEta{this, "StartPerigeeMaxEta", 3.};
130  DoubleProperty m_minPt
131  {this, "StartPerigeeMinPt", 0.5*Gaudi::Units::GeV};
132  DoubleProperty m_maxPt
133  {this, "StartPerigeeMaxPt", 50000*Gaudi::Units::GeV};
134 
135  IntegerProperty m_particleType
136  {this, "ParticleType", 2, "the particle type for the extrap."};
137 
139  unsigned int m_referenceSurfaces = 0;
140 
141  DoubleArrayProperty m_referenceSurfaceRadius
142  {this, "ReferenceSurfaceRadius", {}};
143  DoubleArrayProperty m_referenceSurfaceHalflength
144  {this, "ReferenceSurfaceHalfZ", {}};
145 
148 
149  std::vector< std::vector<const Trk::Surface*> > m_atlasReferenceSurfaceTriples;
150  std::vector< std::vector< std::shared_ptr<const Acts::Surface> > > m_actsReferenceSurfaceTriples;
151 
152  IntegerProperty m_eventsPerExecute{this, "EventsPerExecute", 1};
153 
155  {this, "ATLASPropResultRootWriter", "ATLASPropResultRootWriterSvc"};
157  {this, "ACTSPropResultRootWriter", "ACTSPropResultRootWriterSvc"};
158  ServiceHandle<IAthRNGSvc> m_rndmSvc{this, "RndmSvc", "AthRNGSvc"};
160  };
161 } // end of namespace
162 
163 #endif
Trk::ExtrapolatorComparisonTest::m_atlasReferenceSurfaceTriples
std::vector< std::vector< const Trk::Surface * > > m_atlasReferenceSurfaceTriples
Definition: ExtrapolatorComparisonTest.h:149
GeV
#define GeV
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/Root/HelperFunctions.cxx:17
Trk::ExtrapolatorComparisonTest::ActsTrackWrapper::parameters
Acts::BoundVector parameters() const
Parameter getter.
Definition: ExtrapolatorComparisonTest.h:102
Trk::ExtrapolatorComparisonTest::ActsTrackWrapper
Definition: ExtrapolatorComparisonTest.h:93
perigeeParameters
Definition: ExtrapolatorComparisonTest.h:43
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:48
perigeeParameters::m_charge
double m_charge
Definition: ExtrapolatorComparisonTest.h:49
Trk::ExtrapolatorComparisonTest::m_sigmaZ0
DoubleProperty m_sigmaZ0
Definition: ExtrapolatorComparisonTest.h:125
Trk::ExtrapolatorComparisonTest::m_referenceSurfacePositiveBoundary
std::vector< double > m_referenceSurfacePositiveBoundary
Definition: ExtrapolatorComparisonTest.h:147
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:119
test_pyathena.pt
pt
Definition: test_pyathena.py:11
Trk::ExtrapolatorComparisonTest::finalize
StatusCode finalize() override
standard Athena-Algorithm method
Definition: ExtrapolatorComparisonTest.cxx:131
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:110
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:116
Trk::ExtrapolatorComparisonTest::m_referenceSurfaceNegativeBoundary
std::vector< double > m_referenceSurfaceNegativeBoundary
Definition: ExtrapolatorComparisonTest.h:146
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:108
Trk::ExtrapolatorComparisonTest::m_referenceSurfaceHalflength
DoubleArrayProperty m_referenceSurfaceHalflength
Definition: ExtrapolatorComparisonTest.h:144
Trk::ExtrapolatorComparisonTest::initialize
StatusCode initialize() override
standard Athena-Algorithm method
Definition: ExtrapolatorComparisonTest.cxx:68
Trk::ExtrapolatorComparisonTest::m_minPt
DoubleProperty m_minPt
Definition: ExtrapolatorComparisonTest.h:131
Acts
Definition: ChamberAssembleTool.h:18
perigeeParameters::perigeeParameters
perigeeParameters(double d0, double z0, double phi, double eta, double pt, double charge)
Definition: ExtrapolatorComparisonTest.h:50
Trk::ExtrapolatorComparisonTest::m_minPhi
DoubleProperty m_minPhi
Definition: ExtrapolatorComparisonTest.h:126
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
perigeeParameters::m_phi
double m_phi
Definition: ExtrapolatorComparisonTest.h:46
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:139
Trk::ExtrapolatorComparisonTest::m_actsReferenceSurfaceTriples
std::vector< std::vector< std::shared_ptr< const Acts::Surface > > > m_actsReferenceSurfaceTriples
Definition: ExtrapolatorComparisonTest.h:150
Trk::ExtrapolatorComparisonTest::m_actsPropResultWriterSvc
ServiceHandle< PropResultRootWriterSvc > m_actsPropResultWriterSvc
Definition: ExtrapolatorComparisonTest.h:157
python.SystemOfUnits.micrometer
int micrometer
Definition: SystemOfUnits.py:71
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:159
Trk::ExtrapolatorComparisonTest::m_sigmaD0
DoubleProperty m_sigmaD0
Definition: ExtrapolatorComparisonTest.h:123
Trk::ExtrapolatorComparisonTest::ActsTrackWrapper::position
Acts::Vector3 position() const
Position getter.
Definition: ExtrapolatorComparisonTest.h:100
AthReentrantAlgorithm.h
Trk::ExtrapolatorComparisonTest::m_referenceSurfaces
unsigned int m_referenceSurfaces
member variables for algorithm properties:
Definition: ExtrapolatorComparisonTest.h:139
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::ExtrapolatorComparisonTest::m_eventsPerExecute
IntegerProperty m_eventsPerExecute
Definition: ExtrapolatorComparisonTest.h:152
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:128
Trk::ExtrapolatorComparisonTest::m_particleType
IntegerProperty m_particleType
Definition: ExtrapolatorComparisonTest.h:136
charge
double charge(const T &p)
Definition: AtlasPID.h:931
PropResultRootWriterSvc.h
perigeeParameters::m_d0
double m_d0
Definition: ExtrapolatorComparisonTest.h:44
Trk::ExtrapolatorComparisonTest::m_referenceSurfaceRadius
DoubleArrayProperty m_referenceSurfaceRadius
Definition: ExtrapolatorComparisonTest.h:142
RNGWrapper.h
Trk::ExtrapolatorComparisonTest::m_maxPhi
DoubleProperty m_maxPhi
Definition: ExtrapolatorComparisonTest.h:127
Trk::ExtrapolatorComparisonTest
Definition: ExtrapolatorComparisonTest.h:71
Trk::ExtrapolatorComparisonTest::m_rndmSvc
ServiceHandle< IAthRNGSvc > m_rndmSvc
Definition: ExtrapolatorComparisonTest.h:158
Trk::ExtrapolatorComparisonTest::ActsTrackWrapper::ActsTrackWrapper
ActsTrackWrapper(const Acts::BoundTrackParameters *trackParams, Acts::GeometryContext &ctx)
Constructor.
Definition: ExtrapolatorComparisonTest.h:95
physics_parameters.parameters
parameters
Definition: physics_parameters.py:144
Trk::ExtrapolatorComparisonTest::m_atlasPropResultWriterSvc
ServiceHandle< PropResultRootWriterSvc > m_atlasPropResultWriterSvc
Definition: ExtrapolatorComparisonTest.h:155
Trk::ExtrapolatorComparisonTest::m_maxEta
DoubleProperty m_maxEta
Definition: ExtrapolatorComparisonTest.h:129
perigeeParameters::m_eta
double m_eta
Definition: ExtrapolatorComparisonTest.h:47
perigeeParameters::m_z0
double m_z0
Definition: ExtrapolatorComparisonTest.h:45
Trk::ExtrapolatorComparisonTest::ActsTrackWrapper::covariance
const std::optional< Acts::BoundSquareMatrix > & covariance() const
Covariance getter.
Definition: ExtrapolatorComparisonTest.h:104
Trk::ExtrapolatorComparisonTest::m_maxPt
DoubleProperty m_maxPt
Definition: ExtrapolatorComparisonTest.h:133
Trk::ExtrapolatorComparisonTest::generatePerigee
void generatePerigee(std::vector< perigeeParameters > &parameters)
IActsExtrapolationTool.h
IAthRNGSvc.h
ServiceHandle
Definition: ClusterMakerTool.h:37