ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkExtrapolation
TrkExUtils
TrkExUtils
RungeKuttaUtils.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3
*/
4
6
// Header file for class RungeKuttaUtils, (c) ATLAS Detector software
7
// author Igor Gavrilenko
9
10
#ifndef RungeKuttaUtils_H
11
#define RungeKuttaUtils_H
12
13
#include "
CxxUtils/restrict.h
"
14
#include "
TrkNeutralParameters/NeutralParameters.h
"
15
#include "
TrkParameters/TrackParameters.h
"
16
#include "
TrkSurfaces/BoundaryCheck.h
"
17
#include "
EventPrimitives/EventPrimitives.h
"
18
19
#include <map>
20
#include <vector>
21
#include <utility>
22
23
namespace
Trk
{
24
25
class
ConeSurface
;
26
class
DiscSurface
;
27
class
PlaneSurface
;
28
class
CylinderSurface
;
29
class
StraightLineSurface
;
30
class
PatternTrackParameters
;
31
88
89
namespace
RungeKuttaUtils
{
90
92
// Step estimators to surface
94
double
95
stepEstimator
(
int
kind,
96
double
*
ATH_RESTRICT
Su,
97
const
double
*
ATH_RESTRICT
P
,
98
bool
& Q);
99
double
100
stepEstimator
(
Trk::SurfaceType
surfaceType,
101
double
*
ATH_RESTRICT
Su,
102
const
double
*
ATH_RESTRICT
P
,
103
bool
& Q);
105
// Step estimators to surfaces
107
std::pair<double, int>
108
stepEstimator
(std::vector<std::pair<const Trk::Surface*, Trk::BoundaryCheck>>&,
109
std::multimap<double, int>&,
110
const
double
*
ATH_RESTRICT
,
111
const
double
*
ATH_RESTRICT
,
112
double
,
113
double
,
114
int
Nv,
115
bool
&);
116
117
int
118
fillDistancesMap
(
119
std::vector<std::pair<const Trk::Surface*, Trk::BoundaryCheck>>&,
120
std::multimap<double, int>&,
121
const
double
*
ATH_RESTRICT
,
122
double
,
123
const
Trk::Surface
*,
124
double
*
ATH_RESTRICT
);
125
127
// Transformations from local to global system coordinates
128
// for Trk::TrackParameters and Trk::NeutralParameters
130
bool
131
transformLocalToGlobal
(
bool
,
const
Trk::TrackParameters
&,
double
*
ATH_RESTRICT
);
132
bool
133
transformLocalToGlobal
(
bool
,
const
Trk::NeutralParameters
&,
double
*
ATH_RESTRICT
);
134
136
// Transformations from local to global system coordinates
138
bool
139
transformLocalToGlobal
(
bool
,
140
const
Trk::Surface
*,
141
const
AmgVector
(5) &
ATH_RESTRICT
,
142
double
*
ATH_RESTRICT
);
143
145
// Transformations from local to global system coordinates
146
// for Trk::PatternTrackParameters
148
bool
149
transformLocalToGlobal
(
bool
,
const
Trk::PatternTrackParameters
&,
double
*);
150
152
// Transformations from global to local system coordinates
154
void
155
transformGlobalToLocal
(
double
*
ATH_RESTRICT
,
double
*
ATH_RESTRICT
);
156
void
157
transformGlobalToLocal
(
const
Trk::Surface
*,
158
bool
,
159
double
*
ATH_RESTRICT
,
160
double
*
ATH_RESTRICT
,
161
double
*
ATH_RESTRICT
);
162
164
// Covariance matrix production for Trk::TrackParameters
166
AmgSymMatrix
(5)
167
newCovarianceMatrix(
const
double
*
ATH_RESTRICT
,
const
AmgSymMatrix
(5) &
ATH_RESTRICT
);
168
170
// Transformations from curvilinear to global system coordinates
171
// covariance matrix only
173
void
174
transformCurvilinearToGlobal
(
double
*
ATH_RESTRICT
,
double
*
ATH_RESTRICT
);
175
177
// Transformations from global to curvilinear system coordinates
178
// covariance matrix only
180
void
181
transformGlobalToCurvilinear
(
bool
,
182
double
*
ATH_RESTRICT
,
183
double
*
ATH_RESTRICT
,
184
double
*
ATH_RESTRICT
);
185
187
// Jacobian of transformations from curvilinear to local system coordinates
189
void
190
jacobianTransformCurvilinearToLocal
(
const
Trk
::
TrackParameters
&,
double
*
ATH_RESTRICT
);
191
void
192
jacobianTransformCurvilinearToLocal
(
const
Trk
::
PatternTrackParameters
&,
193
double
*
ATH_RESTRICT
);
194
void
195
jacobianTransformCurvilinearToLocal
(
double
*
ATH_RESTRICT
,
196
const
Trk
::
Surface
*,
197
double
*
ATH_RESTRICT
);
198
199
}
200
}
201
202
#endif
// RungeKuttaUtils_H
BoundaryCheck.h
EventPrimitives.h
AmgSymMatrix
#define AmgSymMatrix(dim)
Definition
EventPrimitives.h:50
AmgVector
#define AmgVector(rows)
Definition
EventPrimitives.h:55
P
static Double_t P(Double_t *tt, Double_t *par)
Definition
LArPhysWaveHECTool.cxx:280
NeutralParameters.h
TrackParameters.h
Trk::ConeSurface
Class for a conical surface in the ATLAS detector.
Definition
ConeSurface.h:52
Trk::CylinderSurface
Class for a CylinderSurface in the ATLAS detector.
Definition
CylinderSurface.h:55
Trk::DiscSurface
Class for a DiscSurface in the ATLAS detector.
Definition
DiscSurface.h:54
Trk::PatternTrackParameters
Definition
PatternTrackParameters.h:32
Trk::PlaneSurface
Class for a planaer rectangular or trapezoidal surface in the ATLAS detector.
Definition
PlaneSurface.h:64
Trk::StraightLineSurface
Class for a StraightLineSurface in the ATLAS detector to describe dirft tube and straw like detectors...
Definition
StraightLineSurface.h:51
Trk::Surface
Abstract Base Class for tracking surfaces.
Definition
Surface.h:79
const
RungeKuttaUtils
Trk::RungeKuttaUtils is set algorithms for track parameters transformation from local to global and g...
Trk::RungeKuttaUtils::transformGlobalToCurvilinear
void transformGlobalToCurvilinear(bool, double *ATH_RESTRICT, double *ATH_RESTRICT, double *ATH_RESTRICT)
Trk::RungeKuttaUtils::transformLocalToGlobal
bool transformLocalToGlobal(bool, const Trk::TrackParameters &, double *ATH_RESTRICT)
Trk::RungeKuttaUtils::transformGlobalToLocal
void transformGlobalToLocal(double *ATH_RESTRICT, double *ATH_RESTRICT)
Trk::RungeKuttaUtils::fillDistancesMap
int fillDistancesMap(std::vector< std::pair< const Trk::Surface *, Trk::BoundaryCheck > > &, std::multimap< double, int > &, const double *ATH_RESTRICT, double, const Trk::Surface *, double *ATH_RESTRICT)
Trk::RungeKuttaUtils::jacobianTransformCurvilinearToLocal
void jacobianTransformCurvilinearToLocal(const Trk::TrackParameters &, double *ATH_RESTRICT)
Trk::RungeKuttaUtils::stepEstimator
double stepEstimator(int kind, double *ATH_RESTRICT Su, const double *ATH_RESTRICT P, bool &Q)
Definition
RungeKuttaUtils.cxx:1212
Trk::RungeKuttaUtils::AmgSymMatrix
AmgSymMatrix(5) new CovarianceMatrix(const double *ATH_RESTRICT
Trk::RungeKuttaUtils::transformCurvilinearToGlobal
void transformCurvilinearToGlobal(double *ATH_RESTRICT, double *ATH_RESTRICT)
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition
FakeTrackBuilder.h:9
Trk::SurfaceType
SurfaceType
This enumerator simplifies the persistency & calculations,.
Definition
SurfaceTypes.h:17
Trk::NeutralParameters
ParametersBase< NeutralParametersDim, Neutral > NeutralParameters
Definition
NeutralParameters.h:26
Trk::TrackParameters
ParametersBase< TrackParametersDim, Charged > TrackParameters
Definition
Tracking/TrkEvent/TrkParameters/TrkParameters/TrackParameters.h:27
restrict.h
Macro wrapping the nonstandard restrict keyword.
ATH_RESTRICT
#define ATH_RESTRICT
Definition
restrict.h:31
Generated on
for ATLAS Offline Software by
1.17.0