TrackPropagation
RungeKutta
src
AnalyticalErrorPropagation.h
Go to the documentation of this file.
1
#ifndef AnalyticalErrorPropagation_H
2
#define AnalyticalErrorPropagation_H
3
4
#include "
FWCore/Utilities/interface/Visibility.h
"
5
#include "
FWCore/Utilities/interface/Likely.h
"
6
#include "
TrackingTools/AnalyticalJacobians/interface/AnalyticalCurvilinearJacobian.h
"
7
#include "
TrackingTools/TrajectoryParametrization/interface/GlobalTrajectoryParameters.h
"
8
#include "
TrackingTools/TrajectoryState/interface/FreeTrajectoryState.h
"
9
#include "
TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h
"
10
#include "
TrackingTools/TrajectoryState/interface/SurfaceSideDefinition.h
"
11
12
class
Surface
;
13
14
inline
std::pair<TrajectoryStateOnSurface, double>
analyticalErrorPropagation
(
15
const
FreeTrajectoryState
& startingState,
16
const
Surface
& surface,
17
SurfaceSideDefinition::SurfaceSide
side
,
18
const
GlobalTrajectoryParameters
& destParameters,
19
const
double
&
s
) {
20
if
UNLIKELY
(!startingState.
hasError
())
21
// return state without errors
22
return
std::pair<TrajectoryStateOnSurface, double>(
TrajectoryStateOnSurface
(destParameters, surface,
side
),
s
);
23
24
//
25
// compute jacobian
26
//
27
28
// FIXME: Compute mean B field between startingState and destParameters and pass it to analyticalJacobian
29
//GlobalPoint xStart = startingState.position();
30
//GlobalPoint xDest = destParameters.position();
31
//GlobalVector h1 = destParameters.magneticFieldInInverseGeV(xStart);
32
//GlobalVector h2 = destParameters.magneticFieldInInverseGeV(xDest);
33
//GlobalVector h = 0.5*(h1+h2);
34
//LogDebug("RungeKutta") << "AnalyticalErrorPropagation: The Fields are: " << h1 << ", " << h2 << ", " << h ;
35
36
//
37
AnalyticalCurvilinearJacobian
analyticalJacobian(
38
startingState.
parameters
(), destParameters.
position
(), destParameters.
momentum
(),
s
);
39
auto
const
& jacobian = analyticalJacobian.
jacobian
();
40
return
std::pair<TrajectoryStateOnSurface, double>(
41
TrajectoryStateOnSurface
(
42
destParameters, ROOT::Math::Similarity(jacobian, startingState.
curvilinearError
().
matrix
()), surface,
side
),
43
s
);
44
}
45
46
#endif
Likely.h
TrajectoryStateOnSurface.h
Visibility.h
AnalyticalCurvilinearJacobian::jacobian
const AlgebraicMatrix55 & jacobian() const
Definition:
AnalyticalCurvilinearJacobian.h:51
AnalyticalCurvilinearJacobian
Definition:
AnalyticalCurvilinearJacobian.h:21
FreeTrajectoryState.h
GlobalTrajectoryParameters.h
FreeTrajectoryState::hasError
bool hasError() const
Definition:
FreeTrajectoryState.h:77
GlobalTrajectoryParameters::position
GlobalPoint position() const
Definition:
GlobalTrajectoryParameters.h:60
Surface
Definition:
Surface.h:36
SurfaceSideDefinition::SurfaceSide
SurfaceSide
Definition:
SurfaceSideDefinition.h:8
AnalyticalCurvilinearJacobian.h
analyticalErrorPropagation
std::pair< TrajectoryStateOnSurface, double > analyticalErrorPropagation(const FreeTrajectoryState &startingState, const Surface &surface, SurfaceSideDefinition::SurfaceSide side, const GlobalTrajectoryParameters &destParameters, const double &s)
Definition:
AnalyticalErrorPropagation.h:14
UNLIKELY
#define UNLIKELY(x)
Definition:
Likely.h:21
TrajectoryStateOnSurface
Definition:
TrajectoryStateOnSurface.h:16
alignCSCRings.s
s
Definition:
alignCSCRings.py:92
FreeTrajectoryState::curvilinearError
const CurvilinearTrajectoryError & curvilinearError() const
Definition:
FreeTrajectoryState.h:89
GlobalTrajectoryParameters
Definition:
GlobalTrajectoryParameters.h:15
GlobalTrajectoryParameters::momentum
GlobalVector momentum() const
Definition:
GlobalTrajectoryParameters.h:65
SurfaceSideDefinition.h
FreeTrajectoryState::parameters
const GlobalTrajectoryParameters & parameters() const
Definition:
FreeTrajectoryState.h:79
Surface::side
virtual Side side(const LocalPoint &p, Scalar tolerance=0) const =0
FreeTrajectoryState
Definition:
FreeTrajectoryState.h:27
CurvilinearTrajectoryError::matrix
const AlgebraicSymMatrix55 & matrix() const
Definition:
CurvilinearTrajectoryError.h:61
Generated for CMSSW Reference Manual by
1.8.16