Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
RiddersAlgorithm.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 // RiddersAlgorithm.h, (c) ATLAS Detector software
8 
9 #ifndef TRKRIDDERSALGORITHM_H
10 #define TRKRIDDERSALGORITHM_H
11 
12 // Gaudi includes
14 #include "GaudiKernel/ToolHandle.h"
15 #include "GaudiKernel/IRndmGenSvc.h"
16 #include "GaudiKernel/RndmGenerators.h"
17 #include "GaudiKernel/SystemOfUnits.h"
19 #include <string>
20 
22 
23 class AtlasDetectorID;
24 class Identifier;
25 class TTree;
26 
27 #ifndef RIDDLERSSTEPS
28 #define RIDDLERSSTEPS 10
29 #endif
30 
31 namespace Trk
32 {
33 
34  class MagneticFieldProperties;
35 
45  {
46  public:
47 
49  RiddersAlgorithm(const std::string& name, ISvcLocator* pSvcLocator);
52 
59 
60  private:
62  static Amg::Transform3D createTransform(double x, double y, double z, double phi=0., double theta=0., double alphaZ=0.);
63 
65  static double parabolicInterpolation(double y0, double y1, double y2,
66  double x0, double x1, double x2);
67 
69  PublicToolHandle<IPropagator> m_propagator
70  {this, "Propagator", "Trk::RungeKuttaPropagator/RungeKuttaPropagator"};
71  BooleanProperty m_useCustomField{this, "UseCustomMagneticField", true};
72  BooleanProperty m_useAlignedSurfaces{this, "UseAlignedSurfaces", true};
73  DoubleProperty m_fieldValue
74  {this, "CustomFieldValue", 2.*Gaudi::Units::tesla};
76 
78  DoubleProperty m_sigmaLoc
79  {this, "StartPerigeeSigmaLoc", 100.*Gaudi::Units::micrometer};
80  DoubleProperty m_sigmaR
81  {this, "StartPerigeeSigmaR", 0.};
82  DoubleProperty m_minPhi{this, "StartPerigeeMinPhi", -M_PI};
83  DoubleProperty m_maxPhi{this, "StartPerigeeMaxPhi", M_PI};
84  DoubleProperty m_minEta{this, "StartPerigeeMinEta", -2.5};
85  DoubleProperty m_maxEta{this, "StartPerigeeMaxEta", 2.5};
86  DoubleProperty m_minP
87  {this, "StartPerigeeMinP", 0.5*Gaudi::Units::GeV};
88  DoubleProperty m_maxP
89  {this, "StartPerigeeMaxP", 50000*Gaudi::Units::GeV};
90 
92  DoubleProperty m_minimumR{this, "TargetSurfaceMinR", 10.};
93  DoubleProperty m_maximumR{this, "TargetSurfaceMaxR", 1000.};
94 
96  DoubleArrayProperty m_localVariations{this, "LocalVariations", {}};
97  DoubleArrayProperty m_angularVariations{this, "AngularVariations", {}};
98  DoubleArrayProperty m_qOpVariations{this, "QopVariations", {}};
99 
100  TTree* m_validationTree = nullptr;
101 
102  StringProperty m_validationTreeName
103  {this, "ValidationTreeName", "RiddersTree",
104  "validation tree name - to be acessed by this from root"};
106  {this, "ValidationTreeDescription", "Output of the RiddersAlgorithm",
107  "validation tree description - second argument in TTree"};
108  StringProperty m_validationTreeFolder
109  {this, "ValidationTreeFolder", "/val/RiddersAlgorithm",
110  "stream/folder to for the TTree to be written out"};
111 
112  int m_steps = 0;
119 
126 
133 
140 
147 
148 
150  Rndm::Numbers* m_gaussDist = nullptr;
151  Rndm::Numbers* m_flatDist = nullptr;
152 
153  };
154 } // end of namespace
155 
156 #endif
Trk::RiddersAlgorithm::m_phisteps
float m_phisteps[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:132
Trk::RiddersAlgorithm::m_localVariations
DoubleArrayProperty m_localVariations
variations
Definition: RiddersAlgorithm.h:96
Trk::y
@ y
Definition: ParamDefs.h:56
plotBeamSpotCompare.x1
x1
Definition: plotBeamSpotCompare.py:216
Trk::RiddersAlgorithm
Definition: RiddersAlgorithm.h:45
GeV
#define GeV
Definition: PhysicsAnalysis/TauID/TauAnalysisTools/Root/HelperFunctions.cxx:17
Trk::z
@ z
global position (cartesian)
Definition: ParamDefs.h:57
Trk::MagneticFieldProperties
Definition: MagneticFieldProperties.h:31
Trk::RiddersAlgorithm::m_thetaloc2
float m_thetaloc2[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:135
Trk::RiddersAlgorithm::m_maxEta
DoubleProperty m_maxEta
Definition: RiddersAlgorithm.h:85
Trk::RiddersAlgorithm::parabolicInterpolation
static double parabolicInterpolation(double y0, double y1, double y2, double x0, double x1, double x2)
Langrange-parabolic interpolation.
Definition: RiddersAlgorithm.cxx:818
Trk::RiddersAlgorithm::m_thetaphi
float m_thetaphi[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:136
Trk::RiddersAlgorithm::m_flatDist
Rndm::Numbers * m_flatDist
Definition: RiddersAlgorithm.h:151
Trk::RiddersAlgorithm::RiddersAlgorithm
RiddersAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Standard Athena-Algorithm Constructor.
Definition: RiddersAlgorithm.cxx:24
plotBeamSpotCompare.x2
x2
Definition: plotBeamSpotCompare.py:218
Trk::RiddersAlgorithm::m_validationTreeDescription
StringProperty m_validationTreeDescription
Definition: RiddersAlgorithm.h:106
Trk::RiddersAlgorithm::m_maxP
DoubleProperty m_maxP
Definition: RiddersAlgorithm.h:89
M_PI
#define M_PI
Definition: ActiveFraction.h:11
Trk::RiddersAlgorithm::m_sigmaR
DoubleProperty m_sigmaR
Definition: RiddersAlgorithm.h:81
IPropagator.h
Trk::RiddersAlgorithm::m_qoploc2
float m_qoploc2[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:142
Trk::RiddersAlgorithm::m_loc1theta
float m_loc1theta[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:116
Trk::RiddersAlgorithm::m_loc2steps
float m_loc2steps[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:125
Trk::RiddersAlgorithm::m_philoc2
float m_philoc2[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:128
Trk::RiddersAlgorithm::m_thetaloc1
float m_thetaloc1[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:134
makeTRTBarrelCans.y1
tuple y1
Definition: makeTRTBarrelCans.py:15
Trk::RiddersAlgorithm::m_loc2theta
float m_loc2theta[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:123
Trk::RiddersAlgorithm::m_loc1qop
float m_loc1qop[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:117
Trk::RiddersAlgorithm::m_gaussDist
Rndm::Numbers * m_gaussDist
Random Number setup.
Definition: RiddersAlgorithm.h:150
AthAlgorithm.h
Trk::RiddersAlgorithm::m_qopphi
float m_qopphi[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:143
Trk::RiddersAlgorithm::m_validationTree
TTree * m_validationTree
Root Validation Tree.
Definition: RiddersAlgorithm.h:100
GeoPrimitives.h
Trk::RiddersAlgorithm::m_loc1phi
float m_loc1phi[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:115
Trk::RiddersAlgorithm::m_thetasteps
float m_thetasteps[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:139
Trk::RiddersAlgorithm::m_angularVariations
DoubleArrayProperty m_angularVariations
Definition: RiddersAlgorithm.h:97
Trk::RiddersAlgorithm::m_qOpVariations
DoubleArrayProperty m_qOpVariations
Definition: RiddersAlgorithm.h:98
Trk::theta
@ theta
Definition: ParamDefs.h:66
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
RIDDLERSSTEPS
#define RIDDLERSSTEPS
Definition: RiddersAlgorithm.h:28
Trk::RiddersAlgorithm::m_minP
DoubleProperty m_minP
Definition: RiddersAlgorithm.h:87
makeTRTBarrelCans.y2
tuple y2
Definition: makeTRTBarrelCans.py:18
Trk::RiddersAlgorithm::m_thetaqop
float m_thetaqop[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:138
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
Trk::RiddersAlgorithm::m_loc1steps
float m_loc1steps[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:118
python.SystemOfUnits.micrometer
int micrometer
Definition: SystemOfUnits.py:71
Trk::RiddersAlgorithm::m_loc2loc1
float m_loc2loc1[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:120
Trk::RiddersAlgorithm::m_philoc1
float m_philoc1[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:127
Trk::RiddersAlgorithm::m_steps
int m_steps
Definition: RiddersAlgorithm.h:112
Trk::RiddersAlgorithm::m_qoptheta
float m_qoptheta[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:144
Trk::RiddersAlgorithm::m_sigmaLoc
DoubleProperty m_sigmaLoc
The smearing.
Definition: RiddersAlgorithm.h:79
Trk::RiddersAlgorithm::~RiddersAlgorithm
~RiddersAlgorithm()
Default Destructor.
Definition: RiddersAlgorithm.cxx:29
Trk::RiddersAlgorithm::m_qopsteps
float m_qopsteps[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:146
Trk::RiddersAlgorithm::m_loc2loc2
float m_loc2loc2[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:121
Trk::RiddersAlgorithm::m_propagator
PublicToolHandle< IPropagator > m_propagator
member variables for algorithm properties:
Definition: RiddersAlgorithm.h:70
AthAlgorithm
Definition: AthAlgorithm.h:47
Trk::RiddersAlgorithm::m_minPhi
DoubleProperty m_minPhi
Definition: RiddersAlgorithm.h:82
Trk::RiddersAlgorithm::m_phiphi
float m_phiphi[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:129
Trk::RiddersAlgorithm::m_minimumR
DoubleProperty m_minimumR
To create the first extimations.
Definition: RiddersAlgorithm.h:92
Trk::RiddersAlgorithm::m_loc2phi
float m_loc2phi[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:122
Trk::RiddersAlgorithm::m_loc1loc1
float m_loc1loc1[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:113
Trk::RiddersAlgorithm::m_fieldValue
DoubleProperty m_fieldValue
Definition: RiddersAlgorithm.h:74
Trk::RiddersAlgorithm::m_qoploc1
float m_qoploc1[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:141
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::RiddersAlgorithm::m_magFieldProperties
MagneticFieldProperties * m_magFieldProperties
Definition: RiddersAlgorithm.h:75
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
python.SystemOfUnits.tesla
int tesla
Definition: SystemOfUnits.py:228
Trk::RiddersAlgorithm::initialize
StatusCode initialize()
standard Athena-Algorithm method
Definition: RiddersAlgorithm.cxx:39
Trk::RiddersAlgorithm::m_thetatheta
float m_thetatheta[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:137
Trk::RiddersAlgorithm::createTransform
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
Definition: RiddersAlgorithm.cxx:789
Trk::RiddersAlgorithm::m_maxPhi
DoubleProperty m_maxPhi
Definition: RiddersAlgorithm.h:83
Trk::RiddersAlgorithm::m_validationTreeName
StringProperty m_validationTreeName
Definition: RiddersAlgorithm.h:103
Trk::RiddersAlgorithm::m_loc2qop
float m_loc2qop[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:124
Trk::RiddersAlgorithm::m_phiqop
float m_phiqop[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:131
Trk::RiddersAlgorithm::m_phitheta
float m_phitheta[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:130
Trk::RiddersAlgorithm::m_qopqop
float m_qopqop[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:145
Trk::phi
@ phi
Definition: ParamDefs.h:75
Trk::RiddersAlgorithm::m_useAlignedSurfaces
BooleanProperty m_useAlignedSurfaces
Definition: RiddersAlgorithm.h:72
Trk::x
@ x
Definition: ParamDefs.h:55
Trk::RiddersAlgorithm::m_minEta
DoubleProperty m_minEta
Definition: RiddersAlgorithm.h:84
Trk::RiddersAlgorithm::m_loc1loc2
float m_loc1loc2[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:114
Trk::RiddersAlgorithm::m_useCustomField
BooleanProperty m_useCustomField
Definition: RiddersAlgorithm.h:71
Trk::RiddersAlgorithm::m_validationTreeFolder
StringProperty m_validationTreeFolder
Definition: RiddersAlgorithm.h:109
AtlasDetectorID
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
Definition: AtlasDetectorID.h:57
Trk::RiddersAlgorithm::execute
StatusCode execute()
standard Athena-Algorithm method
Definition: RiddersAlgorithm.cxx:137
Trk::RiddersAlgorithm::finalize
StatusCode finalize()
standard Athena-Algorithm method
Definition: RiddersAlgorithm.cxx:129
Trk::RiddersAlgorithm::m_maximumR
DoubleProperty m_maximumR
Definition: RiddersAlgorithm.h:93
Identifier
Definition: IdentifierFieldParser.cxx:14