ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkExtrapolation
TrkExAlgs
TrkExAlgs
ExtrapolatorComparisonTest.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 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
13
#include "
AthenaBaseComps/AthReentrantAlgorithm.h
"
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"
21
#include "
AthenaKernel/IAthRNGSvc.h
"
22
#include "
AthenaKernel/RNGWrapper.h
"
23
#include "
TrkExInterfaces/IExtrapolator.h
"
24
// ACTS
25
#include "
ActsGeometryInterfaces/IExtrapolationTool.h
"
26
#include "
ActsGeometryInterfaces/GeometryContext.h
"
27
#include "
ActsGeometryInterfaces/ITrackingGeometrySvc.h
"
28
#include "
TrkExAlgs/PropResultRootWriterSvc.h
"
29
#include "Acts/EventData/BoundTrackParameters.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
44
struct
perigeeParameters
{
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
):
52
m_d0
(d0),
m_z0
(z0),
m_phi
(
phi
),
m_eta
(
eta
),
m_pt
(pt),
m_charge
(
charge
) {}
53
};
54
55
namespace
Trk
56
{
70
71
class
ExtrapolatorComparisonTest
:
public
AthReentrantAlgorithm
72
{
73
public
:
74
76
ExtrapolatorComparisonTest
(
const
std::string& name, ISvcLocator* pSvcLocator);
78
~ExtrapolatorComparisonTest
();
79
81
StatusCode
initialize
()
override
;
83
StatusCode
execute
(
const
EventContext& ctx)
const override
;
85
StatusCode
finalize
()
override
;
86
87
private
:
88
93
struct
ActsTrackWrapper
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::BoundMatrix>&
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<ActsTrk::IExtrapolationTool>
m_extrapolationTool
{
this
,
"ExtrapolationTool"
,
"ActsExtrapolationTool"
};
118
120
ToolHandle<Trk::IExtrapolator>
m_atlasExtrapolator
{
this
,
"Extrapolator"
,
"Trk::Extrapolator/AtlasExtrapolator"
};
121
122
ServiceHandle<ActsTrk::ITrackingGeometrySvc>
m_trackingGeometrySvc
{
this
,
"TrackingGeometrySvc"
,
"ActsTrackingGeometrySvc"
};
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
148
std::vector<double>
m_referenceSurfaceNegativeBoundary
;
149
std::vector<double>
m_referenceSurfacePositiveBoundary
;
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
156
ServiceHandle<PropResultRootWriterSvc>
m_atlasPropResultWriterSvc
157
{
this
,
"ATLASPropResultRootWriter"
,
"ATLASPropResultRootWriterSvc"
};
158
ServiceHandle<PropResultRootWriterSvc>
m_actsPropResultWriterSvc
159
{
this
,
"ACTSPropResultRootWriter"
,
"ACTSPropResultRootWriterSvc"
};
160
ServiceHandle<IAthRNGSvc>
m_rndmSvc
{
this
,
"RndmSvc"
,
"AthRNGSvc"
};
161
ATHRNG::RNGWrapper
*
m_randomEngine
=
nullptr
;
162
};
163
}
// end of namespace
164
165
#endif
M_PI
#define M_PI
Definition
ActiveFraction.h:14
ITrackingGeometrySvc.h
eta
Scalar eta() const
pseudorapidity method
Definition
AmgMatrixBasePlugin.h:83
phi
Scalar phi() const
phi method
Definition
AmgMatrixBasePlugin.h:67
AthReentrantAlgorithm.h
charge
double charge(const T &p)
Definition
AtlasPID.h:1003
GeometryContext.h
IAthRNGSvc.h
IExtrapolationTool.h
IExtrapolator.h
PropResultRootWriterSvc.h
RNGWrapper.h
ATHRNG::RNGWrapper
A wrapper class for event-slot-local random engines.
Definition
RNGWrapper.h:56
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition
AthReentrantAlgorithm.h:74
ServiceHandle
Definition
ClusterMakerTool.h:36
Trk::ExtrapolatorComparisonTest::m_maxEta
DoubleProperty m_maxEta
Definition
ExtrapolatorComparisonTest.h:131
Trk::ExtrapolatorComparisonTest::m_rndmSvc
ServiceHandle< IAthRNGSvc > m_rndmSvc
Definition
ExtrapolatorComparisonTest.h:160
Trk::ExtrapolatorComparisonTest::m_extrapolationTool
ToolHandle< ActsTrk::IExtrapolationTool > m_extrapolationTool
The ACTS ExtrapolationTool to be retrieved.
Definition
ExtrapolatorComparisonTest.h:117
Trk::ExtrapolatorComparisonTest::m_actsPropResultWriterSvc
ServiceHandle< PropResultRootWriterSvc > m_actsPropResultWriterSvc
Definition
ExtrapolatorComparisonTest.h:159
Trk::ExtrapolatorComparisonTest::m_minPt
DoubleProperty m_minPt
Definition
ExtrapolatorComparisonTest.h:133
Trk::ExtrapolatorComparisonTest::m_sigmaZ0
DoubleProperty m_sigmaZ0
Definition
ExtrapolatorComparisonTest.h:127
Trk::ExtrapolatorComparisonTest::execute
StatusCode execute(const EventContext &ctx) const override
standard Athena-Algorithm method
Definition
ExtrapolatorComparisonTest.cxx:140
Trk::ExtrapolatorComparisonTest::m_maxPt
DoubleProperty m_maxPt
Definition
ExtrapolatorComparisonTest.h:135
Trk::ExtrapolatorComparisonTest::m_referenceSurfaceRadius
DoubleArrayProperty m_referenceSurfaceRadius
Definition
ExtrapolatorComparisonTest.h:144
Trk::ExtrapolatorComparisonTest::m_sigmaD0
DoubleProperty m_sigmaD0
Definition
ExtrapolatorComparisonTest.h:125
Trk::ExtrapolatorComparisonTest::m_randomEngine
ATHRNG::RNGWrapper * m_randomEngine
Definition
ExtrapolatorComparisonTest.h:161
Trk::ExtrapolatorComparisonTest::m_atlasPropResultWriterSvc
ServiceHandle< PropResultRootWriterSvc > m_atlasPropResultWriterSvc
Definition
ExtrapolatorComparisonTest.h:157
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::finalize
StatusCode finalize() override
standard Athena-Algorithm method
Definition
ExtrapolatorComparisonTest.cxx:132
Trk::ExtrapolatorComparisonTest::m_referenceSurfacePositiveBoundary
std::vector< double > m_referenceSurfacePositiveBoundary
Definition
ExtrapolatorComparisonTest.h:149
Trk::ExtrapolatorComparisonTest::m_actsReferenceSurfaceTriples
std::vector< std::vector< std::shared_ptr< const Acts::Surface > > > m_actsReferenceSurfaceTriples
Definition
ExtrapolatorComparisonTest.h:152
Trk::ExtrapolatorComparisonTest::m_minEta
DoubleProperty m_minEta
Definition
ExtrapolatorComparisonTest.h:130
Trk::ExtrapolatorComparisonTest::~ExtrapolatorComparisonTest
~ExtrapolatorComparisonTest()
Default Destructor.
Definition
ExtrapolatorComparisonTest.cxx:55
Trk::ExtrapolatorComparisonTest::m_eventsPerExecute
IntegerProperty m_eventsPerExecute
Definition
ExtrapolatorComparisonTest.h:154
Trk::ExtrapolatorComparisonTest::m_referenceSurfaceNegativeBoundary
std::vector< double > m_referenceSurfaceNegativeBoundary
Definition
ExtrapolatorComparisonTest.h:148
Trk::ExtrapolatorComparisonTest::m_atlasExtrapolator
ToolHandle< Trk::IExtrapolator > m_atlasExtrapolator
The ATLAS Extrapolator to be retrieved.
Definition
ExtrapolatorComparisonTest.h:120
Trk::ExtrapolatorComparisonTest::generatePerigee
void generatePerigee(std::vector< perigeeParameters > ¶meters)
Trk::ExtrapolatorComparisonTest::m_maxPhi
DoubleProperty m_maxPhi
Definition
ExtrapolatorComparisonTest.h:129
Trk::ExtrapolatorComparisonTest::m_referenceSurfaces
unsigned int m_referenceSurfaces
member variables for algorithm properties:
Definition
ExtrapolatorComparisonTest.h:141
Trk::ExtrapolatorComparisonTest::ExtrapolatorComparisonTest
ExtrapolatorComparisonTest(const std::string &name, ISvcLocator *pSvcLocator)
Standard Athena-Algorithm Constructor.
Definition
ExtrapolatorComparisonTest.cxx:50
Trk::ExtrapolatorComparisonTest::m_trackingGeometrySvc
ServiceHandle< ActsTrk::ITrackingGeometrySvc > m_trackingGeometrySvc
Definition
ExtrapolatorComparisonTest.h:122
Trk::ExtrapolatorComparisonTest::m_minPhi
DoubleProperty m_minPhi
Definition
ExtrapolatorComparisonTest.h:128
Trk::ExtrapolatorComparisonTest::m_particleType
IntegerProperty m_particleType
Definition
ExtrapolatorComparisonTest.h:138
Trk::ExtrapolatorComparisonTest::m_atlasReferenceSurfaceTriples
std::vector< std::vector< const Trk::Surface * > > m_atlasReferenceSurfaceTriples
Definition
ExtrapolatorComparisonTest.h:151
Acts::detail
Definition
ExtrapolationTestAlg.h:34
Acts
This class is not to needed in AthSimulation.
Definition
MuonSpectrometer/MuonPhaseII/Event/xAOD/xAODMuonPrepData/xAODMuonPrepData/UtilFunctions.h:23
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition
FakeTrackBuilder.h:9
Trk::ExtrapolatorComparisonTest::ActsTrackWrapper::parameters
Acts::BoundVector parameters() const
Parameter getter.
Definition
ExtrapolatorComparisonTest.h:103
Trk::ExtrapolatorComparisonTest::ActsTrackWrapper::m_params
const Acts::BoundTrackParameters * m_params
The Acts track parameters.
Definition
ExtrapolatorComparisonTest.h:109
Trk::ExtrapolatorComparisonTest::ActsTrackWrapper::position
Acts::Vector3 position() const
Position getter.
Definition
ExtrapolatorComparisonTest.h:101
Trk::ExtrapolatorComparisonTest::ActsTrackWrapper::m_geometryContext
Acts::GeometryContext m_geometryContext
The Acts geometry context.
Definition
ExtrapolatorComparisonTest.h:111
Trk::ExtrapolatorComparisonTest::ActsTrackWrapper::covariance
const std::optional< Acts::BoundMatrix > & covariance() const
Covariance getter.
Definition
ExtrapolatorComparisonTest.h:105
Trk::ExtrapolatorComparisonTest::ActsTrackWrapper::ActsTrackWrapper
ActsTrackWrapper(const Acts::BoundTrackParameters *trackParams, Acts::GeometryContext &ctx)
Constructor.
Definition
ExtrapolatorComparisonTest.h:96
perigeeParameters::m_phi
double m_phi
Definition
ExtrapolatorComparisonTest.h:47
perigeeParameters::perigeeParameters
perigeeParameters(double d0, double z0, double phi, double eta, double pt, double charge)
Definition
ExtrapolatorComparisonTest.h:51
perigeeParameters::m_pt
double m_pt
Definition
ExtrapolatorComparisonTest.h:49
perigeeParameters::m_charge
double m_charge
Definition
ExtrapolatorComparisonTest.h:50
perigeeParameters::m_d0
double m_d0
Definition
ExtrapolatorComparisonTest.h:45
perigeeParameters::m_eta
double m_eta
Definition
ExtrapolatorComparisonTest.h:48
perigeeParameters::m_z0
double m_z0
Definition
ExtrapolatorComparisonTest.h:46
Generated on
for ATLAS Offline Software by
1.17.0