Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
EnergyLossExtrapolationValidation.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // EnergyLossValidation.h, (c) ATLAS Detector software
8 
9 #ifndef TRKEXALGS_ENERGYLOSSEXTRAPOLATIONVALIDATION_H
10 #define TRKEXALGS_ENERGYLOSSEXTRAPOLATIONVALIDATION_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"
19 #include <string>
21 // CylinderSurfaces
24 //
25 #include <memory>
26 class TTree;
27 
28 #ifndef TRKEXALGS_MAXPARAMETERS
29 #define TRKEXALGS_MAXPARAMETERS 10
30 #endif
31 
32 
33 namespace Trk
34 {
35 
36  class IExtrapolator;
37  class Surface;
38  class TrackingGeometry;
39  class TrackingVolume;
40 
62  {
63  public:
64 
66  EnergyLossExtrapolationValidation(const std::string& name, ISvcLocator* pSvcLocator);
69 
76 
77  private:
79  static std::unique_ptr<Amg::Transform3D> createTransform(double x,
80  double y,
81  double z,
82  double phi = 0.,
83  double theta = 0.,
84  double alphaZ = 0.);
85 
87  const TrackingVolume* m_highestVolume = nullptr;
88 
90  ToolHandle<IExtrapolator> m_extrapolator
91  {this, "Extrapolator", "Trk::Extrapolator/AtlasExtrapolator"};
92 
94  Rndm::Numbers* m_gaussDist = nullptr;
95  Rndm::Numbers* m_flatDist = nullptr;
96 
98  {this, "UseMaterialCollection", false,
99  "use the material collection (extrapolateM)"};
100 
101  TTree* m_validationTree = nullptr;
102  TTree* m_validationRunTree = nullptr;
103 
104  StringProperty m_validationTreeFolder
105  {this, "ValidationTreeFolder", "/val/EventTreeTG",
106  "stream/folder to for the TTree to be written out"};
107  StringProperty m_validationTreeName
108  {this, "ValidationTreeName", "EventTreeTG",
109  "validation tree name - to be accessed by this from root"};
111  {this, "ValidationTreeDescription",
112  "Event output of the EnergyLossExtrapolationValidation Algorithm",
113  "validation tree description - second argument in TTree"};
115  {this, "ValidationRunTreeFolder", "/val/RunTreeTG",
116  "stream/folder to for the second TTree to be written out"};
117  StringProperty m_validationRunTreeName
118  {this, "ValidationRunTreeName", "RunTreeTG",
119  "run stats tree name - to be accessed by this from root"};
121  {this, "ValidationRunTreeDescription",
122  "Run stats of the EnergyLossExtrapolationValidation Algorithm",
123  "run stats tree description - second argument in TTree"};
124 
125  UnsignedIntegerProperty m_cylinders{this, "ValidationCylinders", 6,
126  "number of cylinder layers"};
127  BooleanProperty m_onion{this, "StrictOnionMode", true,
128  "strictly hierarchical ordering (onion-like)"};
129  FloatProperty m_momentum{this, "StartPerigeeMomentum",
130  10.*Gaudi::Units::GeV};
131  BooleanProperty m_usePt{this, "StartPerigeeUsePt", true,
132  "use pt instead of p"};
133  FloatProperty m_minEta{this, "StartPerigeeMinEta", -3.};
134  FloatProperty m_maxEta{this, "StartPerigeeMaxEta", 3.};
135 
136  size_t m_events = 0;
139 
140  int m_pdg = 0;
141  IntegerProperty m_particleType{this, "ParticleType", 2,
142  "the particle type for the extrapolation"};
143 
144  // ---- variables for the ROOT event tree
145  size_t m_entries = 0;
159 
160  // ---- output statistics
161  size_t m_triesForward = 0;
162  size_t m_breaksForward = 0;
163  size_t m_triesBack = 0;
164  size_t m_breaksBack = 0;
165 
167  size_t m_collectedLayerBack = 0;
168 
169 
170  // ---- cylinders and discs
176  FloatArrayProperty m_cylinderVR{this, "ValidationCylinderR", {},
177  "radius of cylinder layers"};
178  FloatArrayProperty m_cylinderVZ{this, "ValidationCylinderZ", {},
179  "length of cylinder layers"};
180  };
181 } // end of namespace
182 
183 #endif
Trk::EnergyLossExtrapolationValidation::initialize
StatusCode initialize()
standard Athena-Algorithm method
Definition: EnergyLossExtrapolationValidation.cxx:50
Trk::EnergyLossExtrapolationValidation::m_collectedLayerBack
size_t m_collectedLayerBack
collected material layers backward
Definition: EnergyLossExtrapolationValidation.h:167
Trk::y
@ y
Definition: ParamDefs.h:56
Trk::EnergyLossExtrapolationValidation::m_parameterX0
float m_parameterX0[TRKEXALGS_MAXPARAMETERS]
thickness in X0
Definition: EnergyLossExtrapolationValidation.h:148
GeV
#define GeV
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/Root/HelperFunctions.cxx:17
Trk::z
@ z
global position (cartesian)
Definition: ParamDefs.h:57
Trk::EnergyLossExtrapolationValidation::m_minEta
FloatProperty m_minEta
Definition: EnergyLossExtrapolationValidation.h:133
Trk::EnergyLossExtrapolationValidation::m_maxEta
FloatProperty m_maxEta
Definition: EnergyLossExtrapolationValidation.h:134
Trk::EnergyLossExtrapolationValidation::m_parameterEta
float m_parameterEta[TRKEXALGS_MAXPARAMETERS]
eta
Definition: EnergyLossExtrapolationValidation.h:154
Trk::EnergyLossExtrapolationValidation::m_highestVolume
const TrackingVolume * m_highestVolume
the highest volume
Definition: EnergyLossExtrapolationValidation.h:87
Trk::EnergyLossExtrapolationValidation::m_parameterP
float m_parameterP[TRKEXALGS_MAXPARAMETERS]
P.
Definition: EnergyLossExtrapolationValidation.h:157
Surface
Definition: Trigger/TrigAccel/TrigCudaFitter/src/Surface.h:8
Trk::EnergyLossExtrapolationValidation::createTransform
static std::unique_ptr< Amg::Transform3D > createTransform(double x, double y, double z, double phi=0., double theta=0., double alphaZ=0.)
private helper method to create a Transform
Definition: EnergyLossExtrapolationValidation.cxx:460
Trk::EnergyLossExtrapolationValidation::m_totalRecordedLayers
int m_totalRecordedLayers
total number of recorded layers
Definition: EnergyLossExtrapolationValidation.h:137
Trk::EnergyLossExtrapolationValidation::m_events
size_t m_events
total number of recorded events
Definition: EnergyLossExtrapolationValidation.h:136
Trk::EnergyLossExtrapolationValidation::m_triesForward
size_t m_triesForward
extrapolation events forward
Definition: EnergyLossExtrapolationValidation.h:161
Trk::EnergyLossExtrapolationValidation::m_validationTreeFolder
StringProperty m_validationTreeFolder
Definition: EnergyLossExtrapolationValidation.h:105
Trk::EnergyLossExtrapolationValidation::m_cylinderR
float m_cylinderR[TRKEXALGS_MAXPARAMETERS]
radius of cylinder layers (for ROOT tree)
Definition: EnergyLossExtrapolationValidation.h:171
Trk::EnergyLossExtrapolationValidation::m_theDiscs2
DataVector< const Trk::DiscSurface > * m_theDiscs2
Definition: EnergyLossExtrapolationValidation.h:175
Trk::EnergyLossExtrapolationValidation::m_triesBack
size_t m_triesBack
extrapolation events backward
Definition: EnergyLossExtrapolationValidation.h:163
Trk::EnergyLossExtrapolationValidation::m_entries
size_t m_entries
effective number of used entries (recorded layers) in this event
Definition: EnergyLossExtrapolationValidation.h:145
AthAlgorithm.h
Trk::EnergyLossExtrapolationValidation::finalize
StatusCode finalize()
standard Athena-Algorithm method
Definition: EnergyLossExtrapolationValidation.cxx:162
Trk::EnergyLossExtrapolationValidation::m_theCylinders
DataVector< const Trk::CylinderSurface > * m_theCylinders
Definition: EnergyLossExtrapolationValidation.h:173
Trk::EnergyLossExtrapolationValidation::m_momentum
FloatProperty m_momentum
Definition: EnergyLossExtrapolationValidation.h:129
Trk::EnergyLossExtrapolationValidation::m_energy
float m_energy[TRKEXALGS_MAXPARAMETERS]
energy
Definition: EnergyLossExtrapolationValidation.h:146
Trk::EnergyLossExtrapolationValidation::m_validationTreeName
StringProperty m_validationTreeName
Definition: EnergyLossExtrapolationValidation.h:108
Trk::EnergyLossExtrapolationValidation::m_onion
BooleanProperty m_onion
Definition: EnergyLossExtrapolationValidation.h:127
Trk::EnergyLossExtrapolationValidation::m_extrapolator
ToolHandle< IExtrapolator > m_extrapolator
The Extrapolator to be retrieved.
Definition: EnergyLossExtrapolationValidation.h:91
Trk::EnergyLossExtrapolationValidation::m_parameterQoverP
float m_parameterQoverP[TRKEXALGS_MAXPARAMETERS]
qOverP
Definition: EnergyLossExtrapolationValidation.h:156
Trk::EnergyLossExtrapolationValidation::m_breaksBack
size_t m_breaksBack
extrapolation breaks backward
Definition: EnergyLossExtrapolationValidation.h:164
Trk::theta
@ theta
Definition: ParamDefs.h:66
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Trk::EnergyLossExtrapolationValidation::m_materialCollectionValidation
BooleanProperty m_materialCollectionValidation
Definition: EnergyLossExtrapolationValidation.h:98
CylinderSurface.h
Trk::EnergyLossExtrapolationValidation::m_collectedLayerForward
size_t m_collectedLayerForward
collected material layers forward
Definition: EnergyLossExtrapolationValidation.h:166
Trk::EnergyLossExtrapolationValidation::m_avgRecordedLayers
float m_avgRecordedLayers
average recorded layers per event
Definition: EnergyLossExtrapolationValidation.h:138
Trk::EnergyLossExtrapolationValidation::m_validationRunTreeDescription
StringProperty m_validationRunTreeDescription
Definition: EnergyLossExtrapolationValidation.h:121
TRKEXALGS_MAXPARAMETERS
#define TRKEXALGS_MAXPARAMETERS
Definition: EnergyLossExtrapolationValidation.h:29
Trk::EnergyLossExtrapolationValidation::m_positionZ
float m_positionZ[TRKEXALGS_MAXPARAMETERS]
position Z
Definition: EnergyLossExtrapolationValidation.h:152
DataVector< const Trk::CylinderSurface >
Trk::EnergyLossExtrapolationValidation::m_breaksForward
size_t m_breaksForward
extrapolation breaks forward
Definition: EnergyLossExtrapolationValidation.h:162
AthAlgorithm
Definition: AthAlgorithm.h:47
Trk::EnergyLossExtrapolationValidation::m_theDiscs1
DataVector< const Trk::DiscSurface > * m_theDiscs1
Definition: EnergyLossExtrapolationValidation.h:174
Trk::EnergyLossExtrapolationValidation::m_validationRunTree
TTree * m_validationRunTree
Root Run Stats Tree.
Definition: EnergyLossExtrapolationValidation.h:102
Trk::EnergyLossExtrapolationValidation::m_positionY
float m_positionY[TRKEXALGS_MAXPARAMETERS]
position Y
Definition: EnergyLossExtrapolationValidation.h:151
Trk::EnergyLossExtrapolationValidation
Definition: EnergyLossExtrapolationValidation.h:62
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::EnergyLossExtrapolationValidation::~EnergyLossExtrapolationValidation
~EnergyLossExtrapolationValidation()
Default Destructor.
Definition: EnergyLossExtrapolationValidation.cxx:35
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
Trk::EnergyLossExtrapolationValidation::m_validationRunTreeName
StringProperty m_validationRunTreeName
Definition: EnergyLossExtrapolationValidation.h:118
Trk::EnergyLossExtrapolationValidation::m_radius
float m_radius[TRKEXALGS_MAXPARAMETERS]
position radius
Definition: EnergyLossExtrapolationValidation.h:149
DataVector.h
An STL vector of pointers that by default owns its pointed-to elements.
Trk::EnergyLossExtrapolationValidation::m_cylinders
UnsignedIntegerProperty m_cylinders
Definition: EnergyLossExtrapolationValidation.h:125
Trk::EnergyLossExtrapolationValidation::m_layer
size_t m_layer[TRKEXALGS_MAXPARAMETERS]
layer id
Definition: EnergyLossExtrapolationValidation.h:158
Trk::EnergyLossExtrapolationValidation::EnergyLossExtrapolationValidation
EnergyLossExtrapolationValidation(const std::string &name, ISvcLocator *pSvcLocator)
Standard Athena-Algorithm Constructor.
Definition: EnergyLossExtrapolationValidation.cxx:30
Trk::EnergyLossExtrapolationValidation::m_energyLoss
float m_energyLoss[TRKEXALGS_MAXPARAMETERS]
energy loss
Definition: EnergyLossExtrapolationValidation.h:147
Trk::EnergyLossExtrapolationValidation::m_validationRunTreeFolder
StringProperty m_validationRunTreeFolder
Definition: EnergyLossExtrapolationValidation.h:115
Trk::EnergyLossExtrapolationValidation::m_cylinderZ
float m_cylinderZ[TRKEXALGS_MAXPARAMETERS]
length of cylinder layers (for ROOT tree)
Definition: EnergyLossExtrapolationValidation.h:172
Trk::EnergyLossExtrapolationValidation::m_pdg
int m_pdg
PDG code corresponding to m_particleType.
Definition: EnergyLossExtrapolationValidation.h:140
Trk::EnergyLossExtrapolationValidation::m_parameterPhi
float m_parameterPhi[TRKEXALGS_MAXPARAMETERS]
phi
Definition: EnergyLossExtrapolationValidation.h:153
Trk::EnergyLossExtrapolationValidation::m_particleType
IntegerProperty m_particleType
Definition: EnergyLossExtrapolationValidation.h:141
Trk::EnergyLossExtrapolationValidation::m_positionX
float m_positionX[TRKEXALGS_MAXPARAMETERS]
position X
Definition: EnergyLossExtrapolationValidation.h:150
DiscSurface.h
Trk::EnergyLossExtrapolationValidation::m_cylinderVR
FloatArrayProperty m_cylinderVR
Definition: EnergyLossExtrapolationValidation.h:176
Trk::phi
@ phi
Definition: ParamDefs.h:75
Trk::EnergyLossExtrapolationValidation::m_flatDist
Rndm::Numbers * m_flatDist
Definition: EnergyLossExtrapolationValidation.h:95
Trk::x
@ x
Definition: ParamDefs.h:55
Trk::EnergyLossExtrapolationValidation::m_gaussDist
Rndm::Numbers * m_gaussDist
Random Number setup.
Definition: EnergyLossExtrapolationValidation.h:94
Trk::EnergyLossExtrapolationValidation::m_validationTreeDescription
StringProperty m_validationTreeDescription
Definition: EnergyLossExtrapolationValidation.h:111
Trk::EnergyLossExtrapolationValidation::m_parameterTheta
float m_parameterTheta[TRKEXALGS_MAXPARAMETERS]
theta
Definition: EnergyLossExtrapolationValidation.h:155
Trk::TrackingVolume
Definition: TrackingVolume.h:121
Trk::EnergyLossExtrapolationValidation::m_usePt
BooleanProperty m_usePt
Definition: EnergyLossExtrapolationValidation.h:131
Trk::EnergyLossExtrapolationValidation::m_validationTree
TTree * m_validationTree
Root Validation Tree.
Definition: EnergyLossExtrapolationValidation.h:101
Trk::EnergyLossExtrapolationValidation::execute
StatusCode execute()
standard Athena-Algorithm method
Definition: EnergyLossExtrapolationValidation.cxx:189
Trk::EnergyLossExtrapolationValidation::m_cylinderVZ
FloatArrayProperty m_cylinderVZ
Definition: EnergyLossExtrapolationValidation.h:178