ATLAS Offline Software
Loading...
Searching...
No Matches
ExtrapolatorTest.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// ExtrapolatorTest.h, (c) ATLAS Detector software
8
9#ifndef TRKEXALGS_TRKEXTRAPOLATORTEST_H
10#define TRKEXALGS_TRKEXTRAPOLATORTEST_H
11
12// Gaudi includes
14#include "GaudiKernel/MsgStream.h"
15#include "GaudiKernel/IRndmGenSvc.h"
16#include "GaudiKernel/RndmGenerators.h"
17#include "GaudiKernel/ToolHandle.h"
18#include "GaudiKernel/SystemOfUnits.h"
19#include <string>
20#include <vector>
21
25
26namespace Trk
27{
28
29 class Surface;
45
47 {
48 public:
49
51 ExtrapolatorTest(const std::string& name, ISvcLocator* pSvcLocator);
54
56 StatusCode initialize();
58 StatusCode execute();
60 StatusCode finalize();
61
62 private:
63
64 void runTest( const Trk::Perigee& perigee );
65
67
69 ToolHandle<IExtrapolator> m_extrapolator
70 {this, "Extrapolator", "Trk::Extrapolator/AtlasExtrapolator"};
71 PublicToolHandle<IPropagator> m_propagator
72 {this, "Propagator", "Trk::RungeKuttaPropagator/RungeKuttaPropagator"};
74
76 Rndm::Numbers* m_gaussDist = nullptr;
77 Rndm::Numbers* m_flatDist = nullptr;
78
79 DoubleProperty m_sigmaD0
80 {this, "StartPerigeeSigmaD0", 17.*Gaudi::Units::micrometer};
81 DoubleProperty m_sigmaZ0
82 {this, "StartPerigeeSigmaZ0", 50.*Gaudi::Units::micrometer};
83 DoubleProperty m_minPhi{this, "StartPerigeeMinPhi", -M_PI};
84 DoubleProperty m_maxPhi{this, "StartPerigeeMaxPhi", M_PI};
85 DoubleProperty m_minEta{this, "StartPerigeeMinEta", -3.};
86 DoubleProperty m_maxEta{this, "StartPerigeeMaxEta", 3.};
87 DoubleProperty m_minP
88 {this, "StartPerigeeMinP", 0.5*Gaudi::Units::GeV};
89 DoubleProperty m_maxP
90 {this, "StartPerigeeMaxP", 50000*Gaudi::Units::GeV};
91
92 IntegerProperty m_direction{this, "StartDirection", 1};
93 IntegerProperty m_particleType
94 {this, "ParticleType", 2, "the particle type for the extrap."};
95
97 unsigned int m_referenceSurfaces = 0;
98
99 DoubleArrayProperty m_referenceSurfaceRadius
100 {this, "ReferenceSurfaceRadius", {}};
102 {this, "ReferenceSurfaceHalfZ", {}};
103 std::vector< std::vector<const Surface*> > m_referenceSurfaceTriples;
104
107
108 std::vector<Trk::Perigee> m_perigees;
109
110 IntegerProperty m_eventsPerExecute{this, "EventsPerExecute", -1};
111 BooleanProperty m_useExtrapolator{this, "UseExtrapolator", false};
112 };
113} // end of namespace
114
115#endif
#define M_PI
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
Rndm::Numbers * m_gaussDist
Random Number setup.
ToolHandle< IExtrapolator > m_extrapolator
The Extrapolator to be retrieved.
StatusCode initialize()
standard Athena-Algorithm method
ExtrapolatorTest(const std::string &name, ISvcLocator *pSvcLocator)
Standard Athena-Algorithm Constructor.
DoubleArrayProperty m_referenceSurfaceRadius
~ExtrapolatorTest()
Default Destructor.
IntegerProperty m_particleType
MagneticFieldProperties * m_magFieldProperties
magnetic field properties
std::vector< double > m_referenceSurfaceNegativeBoundary
unsigned int m_referenceSurfaces
member variables for algorithm properties:
PublicToolHandle< IPropagator > m_propagator
Trk::Perigee generatePerigee()
IntegerProperty m_eventsPerExecute
IntegerProperty m_direction
std::vector< Trk::Perigee > m_perigees
BooleanProperty m_useExtrapolator
std::vector< std::vector< const Surface * > > m_referenceSurfaceTriples
Rndm::Numbers * m_flatDist
StatusCode finalize()
standard Athena-Algorithm method
DoubleArrayProperty m_referenceSurfaceHalflength
void runTest(const Trk::Perigee &perigee)
std::vector< double > m_referenceSurfacePositiveBoundary
StatusCode execute()
standard Athena-Algorithm method
magnetic field properties to steer the behavior of the extrapolation
Abstract Base Class for tracking surfaces.
Ensure that the ATLAS eigen extensions are properly loaded.
ParametersT< TrackParametersDim, Charged, PerigeeSurface > Perigee