ATLAS Offline Software
RiddersAlgorithm.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 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"
18 #include <string>
19 
20 class AtlasDetectorID;
21 class Identifier;
22 class TTree;
23 
24 #ifndef RIDDLERSSTEPS
25 #define RIDDLERSSTEPS 10
26 #endif
27 
28 namespace Trk
29 {
30 
31  class IPropagator;
32  class MagneticFieldProperties;
33 
43  {
44  public:
45 
47  RiddersAlgorithm(const std::string& name, ISvcLocator* pSvcLocator);
50 
57 
58  private:
60  static Amg::Transform3D createTransform(double x, double y, double z, double phi=0., double theta=0., double alphaZ=0.);
61 
63  static double parabolicInterpolation(double y0, double y1, double y2,
64  double x0, double x1, double x2);
65 
67  ToolHandle<IPropagator> m_propagator;
70  double m_fieldValue;
72 
74  double m_sigmaLoc;
75  double m_sigmaR;
76  double m_minPhi;
77  double m_maxPhi;
78  double m_minEta;
79  double m_maxEta;
80  double m_minP;
81  double m_maxP;
82 
84  double m_minimumR;
85  double m_maximumR;
86 
88  std::vector<double> m_localVariations;
89  std::vector<double> m_angularVariations;
90  std::vector<double> m_qOpVariations;
91 
93 
94  std::string m_validationTreeName;
96  std::string m_validationTreeFolder;
97 
98  int m_steps;
105 
112 
119 
126 
133 
134 
136  Rndm::Numbers* m_gaussDist;
137  Rndm::Numbers* m_flatDist;
138 
139  };
140 } // end of namespace
141 
142 #endif
Trk::RiddersAlgorithm::m_phisteps
float m_phisteps[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:118
Trk::RiddersAlgorithm::m_sigmaLoc
double m_sigmaLoc
The smearing.
Definition: RiddersAlgorithm.h:74
Trk::y
@ y
Definition: ParamDefs.h:62
plotBeamSpotCompare.x1
x1
Definition: plotBeamSpotCompare.py:216
Trk::RiddersAlgorithm
Definition: RiddersAlgorithm.h:43
Trk::RiddersAlgorithm::m_qOpVariations
std::vector< double > m_qOpVariations
Definition: RiddersAlgorithm.h:90
Trk::RiddersAlgorithm::m_localVariations
std::vector< double > m_localVariations
variations
Definition: RiddersAlgorithm.h:88
Trk::RiddersAlgorithm::m_minimumR
double m_minimumR
To create the first extimations.
Definition: RiddersAlgorithm.h:84
Trk::RiddersAlgorithm::m_validationTreeFolder
std::string m_validationTreeFolder
stream/folder to for the TTree to be written out
Definition: RiddersAlgorithm.h:96
Trk::z
@ z
global position (cartesian)
Definition: ParamDefs.h:63
Trk::MagneticFieldProperties
Definition: MagneticFieldProperties.h:31
Trk::RiddersAlgorithm::m_thetaloc2
float m_thetaloc2[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:121
Trk::RiddersAlgorithm::parabolicInterpolation
static double parabolicInterpolation(double y0, double y1, double y2, double x0, double x1, double x2)
Langrange-parabolic interpolation.
Definition: RiddersAlgorithm.cxx:932
Trk::RiddersAlgorithm::m_thetaphi
float m_thetaphi[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:122
Trk::RiddersAlgorithm::m_maxPhi
double m_maxPhi
Maximal phi value.
Definition: RiddersAlgorithm.h:77
Trk::RiddersAlgorithm::m_fieldValue
double m_fieldValue
Definition: RiddersAlgorithm.h:70
Trk::RiddersAlgorithm::m_flatDist
Rndm::Numbers * m_flatDist
Definition: RiddersAlgorithm.h:137
Trk::RiddersAlgorithm::RiddersAlgorithm
RiddersAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Standard Athena-Algorithm Constructor.
Definition: RiddersAlgorithm.cxx:30
plotBeamSpotCompare.x2
x2
Definition: plotBeamSpotCompare.py:218
Trk::RiddersAlgorithm::m_maximumR
double m_maximumR
Definition: RiddersAlgorithm.h:85
Trk::RiddersAlgorithm::m_qoploc2
float m_qoploc2[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:128
Trk::RiddersAlgorithm::m_maxEta
double m_maxEta
Maximal eta value.
Definition: RiddersAlgorithm.h:79
Trk::RiddersAlgorithm::m_loc1theta
float m_loc1theta[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:102
Trk::RiddersAlgorithm::m_maxP
double m_maxP
Maximal p value.
Definition: RiddersAlgorithm.h:81
Trk::RiddersAlgorithm::m_loc2steps
float m_loc2steps[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:111
Trk::RiddersAlgorithm::m_philoc2
float m_philoc2[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:114
Trk::RiddersAlgorithm::m_thetaloc1
float m_thetaloc1[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:120
Trk::RiddersAlgorithm::m_validationTreeName
std::string m_validationTreeName
validation tree name - to be acessed by this from root
Definition: RiddersAlgorithm.h:94
makeTRTBarrelCans.y1
tuple y1
Definition: makeTRTBarrelCans.py:15
Trk::RiddersAlgorithm::m_loc2theta
float m_loc2theta[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:109
Trk::RiddersAlgorithm::m_loc1qop
float m_loc1qop[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:103
Trk::RiddersAlgorithm::m_gaussDist
Rndm::Numbers * m_gaussDist
Random Number setup.
Definition: RiddersAlgorithm.h:136
AthAlgorithm.h
Trk::RiddersAlgorithm::m_qopphi
float m_qopphi[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:129
Trk::RiddersAlgorithm::m_validationTree
TTree * m_validationTree
Root Validation Tree.
Definition: RiddersAlgorithm.h:92
GeoPrimitives.h
Trk::RiddersAlgorithm::m_minP
double m_minP
Minimal p value.
Definition: RiddersAlgorithm.h:80
Trk::RiddersAlgorithm::m_loc1phi
float m_loc1phi[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:101
Trk::RiddersAlgorithm::m_minEta
double m_minEta
Minimal eta value.
Definition: RiddersAlgorithm.h:78
Trk::RiddersAlgorithm::m_thetasteps
float m_thetasteps[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:125
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
Trk::theta
@ theta
Definition: ParamDefs.h:72
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
RIDDLERSSTEPS
#define RIDDLERSSTEPS
Definition: RiddersAlgorithm.h:25
makeTRTBarrelCans.y2
tuple y2
Definition: makeTRTBarrelCans.py:18
Trk::RiddersAlgorithm::m_thetaqop
float m_thetaqop[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:124
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
Trk::RiddersAlgorithm::m_loc1steps
float m_loc1steps[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:104
Trk::RiddersAlgorithm::m_loc2loc1
float m_loc2loc1[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:106
Trk::RiddersAlgorithm::m_philoc1
float m_philoc1[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:113
Trk::RiddersAlgorithm::m_steps
int m_steps
Definition: RiddersAlgorithm.h:98
Trk::RiddersAlgorithm::m_qoptheta
float m_qoptheta[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:130
Trk::RiddersAlgorithm::m_useCustomField
bool m_useCustomField
Definition: RiddersAlgorithm.h:68
Trk::RiddersAlgorithm::~RiddersAlgorithm
~RiddersAlgorithm()
Default Destructor.
Definition: RiddersAlgorithm.cxx:126
Trk::RiddersAlgorithm::m_qopsteps
float m_qopsteps[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:132
Trk::RiddersAlgorithm::m_loc2loc2
float m_loc2loc2[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:107
AthAlgorithm
Definition: AthAlgorithm.h:47
Trk::RiddersAlgorithm::m_phiphi
float m_phiphi[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:115
Trk::RiddersAlgorithm::m_loc2phi
float m_loc2phi[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:108
Trk::RiddersAlgorithm::m_loc1loc1
float m_loc1loc1[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:99
Trk::RiddersAlgorithm::m_qoploc1
float m_qoploc1[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:127
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::RiddersAlgorithm::m_magFieldProperties
MagneticFieldProperties * m_magFieldProperties
Definition: RiddersAlgorithm.h:71
Trk::RiddersAlgorithm::m_propagator
ToolHandle< IPropagator > m_propagator
member variables for algorithm properties:
Definition: RiddersAlgorithm.h:67
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
Trk::RiddersAlgorithm::m_angularVariations
std::vector< double > m_angularVariations
Definition: RiddersAlgorithm.h:89
Trk::RiddersAlgorithm::initialize
StatusCode initialize()
standard Athena-Algorithm method
Definition: RiddersAlgorithm.cxx:137
Trk::RiddersAlgorithm::m_sigmaR
double m_sigmaR
r sigma of start value
Definition: RiddersAlgorithm.h:75
Trk::RiddersAlgorithm::m_thetatheta
float m_thetatheta[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:123
Trk::RiddersAlgorithm::m_useAlignedSurfaces
bool m_useAlignedSurfaces
Definition: RiddersAlgorithm.h:69
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:903
Trk::RiddersAlgorithm::m_loc2qop
float m_loc2qop[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:110
Trk::RiddersAlgorithm::m_phiqop
float m_phiqop[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:117
Trk::RiddersAlgorithm::m_phitheta
float m_phitheta[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:116
Trk::RiddersAlgorithm::m_qopqop
float m_qopqop[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:131
Trk::phi
@ phi
Definition: ParamDefs.h:81
Trk::RiddersAlgorithm::m_validationTreeDescription
std::string m_validationTreeDescription
validation tree description - second argument in TTree
Definition: RiddersAlgorithm.h:95
Trk::RiddersAlgorithm::m_minPhi
double m_minPhi
Minimal phi value.
Definition: RiddersAlgorithm.h:76
Trk::x
@ x
Definition: ParamDefs.h:61
Trk::RiddersAlgorithm::m_loc1loc2
float m_loc1loc2[RIDDLERSSTEPS]
Definition: RiddersAlgorithm.h:100
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:247
Trk::RiddersAlgorithm::finalize
StatusCode finalize()
standard Athena-Algorithm method
Definition: RiddersAlgorithm.cxx:239