ATLAS Offline Software
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"
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 
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
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
132 bool
134 
136 // Transformations from local to global system coordinates
138 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
150 
152 // Transformations from global to local system coordinates
154 void
156 void
158  bool,
159  double* ATH_RESTRICT,
160  double* ATH_RESTRICT,
161  double* ATH_RESTRICT);
162 
164 // Covariance matrix production for Trk::TrackParameters
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
175 
177 // Transformations from global to curvilinear system coordinates
178 // covariance matrix only
180 void
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
191 void
193  double* ATH_RESTRICT);
194 void
196  const Trk::Surface*,
197  double* ATH_RESTRICT);
198 
199 }
200 }
201 
202 #endif // RungeKuttaUtils_H
Trk::RungeKuttaUtils::jacobianTransformCurvilinearToLocal
void jacobianTransformCurvilinearToLocal(const Trk::TrackParameters &, double *ATH_RESTRICT)
Trk::RungeKuttaUtils::transformGlobalToCurvilinear
void transformGlobalToCurvilinear(bool, double *ATH_RESTRICT, double *ATH_RESTRICT, double *ATH_RESTRICT)
TrackParameters.h
DMTest::P
P_v1 P
Definition: P.h:23
Trk::SurfaceType
SurfaceType
Definition: SurfaceTypes.h:17
NeutralParameters.h
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
Trk::RungeKuttaUtils::transformLocalToGlobal
bool transformLocalToGlobal(bool, const Trk::TrackParameters &, double *ATH_RESTRICT)
Trk::RungeKuttaUtils::transformGlobalToLocal
void transformGlobalToLocal(double *ATH_RESTRICT, double *ATH_RESTRICT)
ATH_RESTRICT
#define ATH_RESTRICT
Definition: restrict.h:31
Trk::RungeKuttaUtils::transformCurvilinearToGlobal
void transformCurvilinearToGlobal(double *ATH_RESTRICT, double *ATH_RESTRICT)
AmgVector
AmgVector(4) T2BSTrackFilterTool
Definition: T2BSTrackFilterTool.cxx:114
Trk::ParametersBase
Definition: ParametersBase.h:55
RungeKuttaUtils
Definition: RungeKuttaUtils.h:30
EventPrimitives.h
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
restrict.h
Macro wrapping the nonstandard restrict keyword.
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::PatternTrackParameters
Definition: PatternTrackParameters.h:32
BoundaryCheck.h
Trk::RungeKuttaUtils::stepEstimator
double stepEstimator(int kind, double *ATH_RESTRICT Su, const double *ATH_RESTRICT P, bool &Q)
Definition: RungeKuttaUtils.cxx:1212
Trk::Surface
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:75
Trk::RungeKuttaUtils::AmgSymMatrix
AmgSymMatrix(5) new CovarianceMatrix(const double *ATH_RESTRICT