ATLAS Offline Software
Loading...
Searching...
No Matches
ExtrapolationValidation.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// ExtrapolationValidation.h, (c) ATLAS Detector software
8
9#ifndef TRKEXALGS_EXTRAPOLATIONVALIDATION_H
10#define TRKEXALGS_EXTRAPOLATIONVALIDATION_H
11
12// Gaudi includes
14#include "GaudiKernel/MsgStream.h"
15#include "GaudiKernel/ToolHandle.h"
16#include "GaudiKernel/IRndmGenSvc.h"
17#include "GaudiKernel/RndmGenerators.h"
18#include "GaudiKernel/SystemOfUnits.h"
21#include <string>
22
24
25class TTree;
26
27#ifndef TRKEXALGS_MAXPARAMETERS
28#define TRKEXALGS_MAXPARAMETERS 10
29#endif
30
31namespace Trk
32{
33
34 class Surface;
35 class TrackingGeometry;
36 class TrackingVolume;
37
55
57 {
58 public:
59
61 ExtrapolationValidation(const std::string& name, ISvcLocator* pSvcLocator);
64
66 StatusCode initialize();
68 StatusCode execute();
70 StatusCode finalize();
71
72 private:
74 static Amg::Transform3D createTransform(double x, double y, double z, double phi=0., double theta=0., double alphaZ=0.);
75
78
80 ToolHandle<IExtrapolator> m_extrapolator
81 {this, "Extrapolator", "Trk::Extrapolator/AtlasExtrapolator"};
82
84 Rndm::Numbers* m_gaussDist = nullptr;
85 Rndm::Numbers* m_flatDist = nullptr;
86
88 {this, "ValidateMaterialCollection", true};
89
90 BooleanProperty m_direct{this, "ExtrapolateDirectly", false,
91 "extrapolate directly"};
92
93 TTree* m_validationTree = nullptr;
94
95 StringProperty m_validationTreeName
96 {this, "ValidationTreeName", "ExtrapolationValidation",
97 "validation tree name - to be acessed by this from root"};
99 {this, "ValidationTreeDescription",
100 "Output of the ExtrapolationValidation Algorithm",
101 "validation tree description - second argument in TTree"};
103 {this, "ValidationTreeFolder", "/val/ExtrapolationValidation",
104 "stream/folder to for the TTree to be written out"};
105
106 double m_maximumR = 0.;
107 double m_maximumZ = 0.;
108
109 DoubleProperty m_sigmaLoc{this, "StartPerigeeSigmaLoc",
110 10.*Gaudi::Units::micrometer, "local sigma of start value"};
111 DoubleProperty m_sigmaR{this, "StartPerigeeSigmaR",
112 17.*Gaudi::Units::micrometer, "r sigma of start value"};
113 DoubleProperty m_sigmaZ{this, "StartPerigeeSigmaZ",
114 50.*Gaudi::Units::millimeter, "Z sigma of start value"};
115 DoubleProperty m_minEta{this, "StartPerigeeMinEta", -3.};
116 DoubleProperty m_maxEta{this, "StartPerigeeMaxEta", 3.};
117 DoubleProperty m_minP{this, "StartPerigeeMinP", 0.5*Gaudi::Units::GeV};
118 DoubleProperty m_maxP{this, "StartPerigeeMaxP", 100.*Gaudi::Units::GeV};
119
120 IntegerProperty m_particleType{this, "ParticleType", 2,
121 "the particle type for the extrap."};
122
123 int m_parameters = 0;
130
137
139 float m_startX = 0.;
140 float m_startY = 0.;
141 float m_startR = 0.;
142 float m_startZ = 0.;
143 float m_startP = 0.;
144
145 float m_estimationX = 0.;
146 float m_estimationY = 0.;
147 float m_estimationR = 0.;
148 float m_estimationZ = 0.;
149
150 float m_destinationX = 0.;
151 float m_destinationY = 0.;
152 float m_destinationR = 0.;
153 float m_destinationZ = 0.;
154
155 // ---- output statistics
156 unsigned int m_triesFront = 0;
157 unsigned int m_breaksFront = 0;
158 unsigned int m_triesBack = 0;
159 unsigned int m_breaksBack = 0;
160
161 unsigned int m_collectedLayerFront = 0;
162 unsigned int m_collectedLayerBack = 0;
163
164 };
165} // end of namespace
166
167#endif
#define TRKEXALGS_MAXPARAMETERS
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
TTree * m_validationTree
Root Validation Tree.
Rndm::Numbers * m_gaussDist
Random Number setup.
const TrackingVolume * m_highestVolume
the highest volume
~ExtrapolationValidation()
Default Destructor.
float m_covarianceLoc2[TRKEXALGS_MAXPARAMETERS]
start local 2
unsigned int m_collectedLayerFront
collected material layers forward
float m_parameterTheta[TRKEXALGS_MAXPARAMETERS]
start theta
float m_parameterPhi[TRKEXALGS_MAXPARAMETERS]
start phi
ExtrapolationValidation(const std::string &name, ISvcLocator *pSvcLocator)
Standard Athena-Algorithm Constructor.
StatusCode finalize()
standard Athena-Algorithm method
float m_parameterLoc1[TRKEXALGS_MAXPARAMETERS]
start local 1
StatusCode initialize()
standard Athena-Algorithm method
StatusCode execute()
standard Athena-Algorithm method
unsigned int m_collectedLayerBack
collected material layers backwards
float m_parameterEta[TRKEXALGS_MAXPARAMETERS]
start eta
int m_destinationSurfaceType
destination surface type
float m_covariancePhi[TRKEXALGS_MAXPARAMETERS]
start phi
ToolHandle< IExtrapolator > m_extrapolator
The Extrapolator to be retrieved.
static Amg::Transform3D createTransform(double x, double y, double z, double phi=0., double theta=0., double alphaZ=0.)
private helper method to create a HepTransform
unsigned int m_breaksFront
breaks front
float m_covarianceQoverP[TRKEXALGS_MAXPARAMETERS]
start qOverP
double m_maximumR
maximum R of the highest
int m_parameters
maximum 3 : start - destination - backward
double m_maximumZ
maximum halfZ of the highest tracking volume
float m_covarianceLoc1[TRKEXALGS_MAXPARAMETERS]
start local 1
float m_parameterQoverP[TRKEXALGS_MAXPARAMETERS]
start qOverP
float m_covarianceTheta[TRKEXALGS_MAXPARAMETERS]
start theta
float m_covarianceDeterminant[TRKEXALGS_MAXPARAMETERS]
start qOverP
unsigned int m_triesFront
events front
float m_parameterLoc2[TRKEXALGS_MAXPARAMETERS]
start local 2
Full Volume description used in Tracking, it inherits from Volume to get the geometrical structure,...
Eigen::Affine3d Transform3D
Ensure that the ATLAS eigen extensions are properly loaded.
@ x
Definition ParamDefs.h:55
@ z
global position (cartesian)
Definition ParamDefs.h:57
@ theta
Definition ParamDefs.h:66
@ y
Definition ParamDefs.h:56
@ phi
Definition ParamDefs.h:75