TrackingTools
GeomPropagators
interface
HelixExtrapolatorToLine2Order.h
Go to the documentation of this file.
1
#ifndef HelixExtrapolatorToLine2Order_h_
2
#define HelixExtrapolatorToLine2Order_h_
3
4
#include "
TrackingTools/GeomPropagators/interface/HelixLineExtrapolation.h
"
5
#include "
DataFormats/TrajectorySeed/interface/PropagationDirection.h
"
6
#include "
FWCore/Utilities/interface/Visibility.h
"
7
11
class
HelixExtrapolatorToLine2Order
final :
public
HelixLineExtrapolation
{
12
public
:
14
HelixExtrapolatorToLine2Order
(
const
PositionType
&
point
,
15
const
DirectionType
&
direction
,
16
const
float
curvature
,
17
const
PropagationDirection
propDir =
alongMomentum
);
18
20
HelixExtrapolatorToLine2Order
(
const
double
& x0,
21
const
double
& y0,
22
const
double
&
z0
,
23
const
double
& cosPhi0,
24
const
double
& sinPhi0,
25
const
double
& cosTheta,
26
const
double
& sinTheta,
27
const
double
&
rho
,
28
const
PropagationDirection
propDir =
alongMomentum
)
29
:
thePosition
(x0, y0,
z0
),
30
theDirection
(cosPhi0, sinPhi0, cosTheta / sinTheta),
31
theSinTheta
(sinTheta),
32
theRho
(
rho
),
33
thePropDir
(propDir) {}
34
35
// destructor
36
~HelixExtrapolatorToLine2Order
()
override
{}
37
42
std::pair<bool, double>
pathLength
(
const
GlobalPoint
&
point
)
const override
;
43
48
std::pair<bool, double>
pathLength
(
const
Line
&
line
)
const override
;
49
51
PositionType
position
(
double
s
)
const override
;
52
54
DirectionType
direction
(
double
s
)
const override
;
55
57
PositionTypeDouble
positionInDouble
(
double
s
)
const
;
58
60
DirectionTypeDouble
directionInDouble
(
double
s
)
const
;
61
62
private
:
64
virtual
std::pair<bool, double>
pathLengthFromCoefficients
(
const
double
ceq[4])
const
dso_internal
;
66
int
solve3rdOrder
(
const
double
ceq[],
double
sol
[])
const
dso_internal
;
68
int
solve2ndOrder
(
const
double
ceq[],
double
sol
[])
const
dso_internal
;
69
70
private
:
71
const
PositionTypeDouble
thePosition
;
72
DirectionTypeDouble
theDirection
;
73
double
theSinTheta
;
74
const
double
theRho
;
75
const
PropagationDirection
thePropDir
;
76
};
77
78
#endif
HelixExtrapolatorToLine2Order::HelixExtrapolatorToLine2Order
HelixExtrapolatorToLine2Order(const PositionType &point, const DirectionType &direction, const float curvature, const PropagationDirection propDir=alongMomentum)
Constructor using point, direction and (transverse!) curvature.
Definition:
HelixExtrapolatorToLine2Order.cc:7
DDAxes::rho
HelixExtrapolatorToLine2Order::~HelixExtrapolatorToLine2Order
~HelixExtrapolatorToLine2Order() override
Definition:
HelixExtrapolatorToLine2Order.h:36
Line
Definition:
Line.h:10
HelixLineExtrapolation::PositionTypeDouble
Basic3DVector< double > PositionTypeDouble
Definition:
HelixLineExtrapolation.h:24
alignCSCRings.s
s
Definition:
alignCSCRings.py:92
alongMomentum
Definition:
PropagationDirection.h:4
HelixExtrapolatorToLine2Order::pathLengthFromCoefficients
virtual std::pair< bool, double > pathLengthFromCoefficients(const double ceq[4]) const
common part for propagation to point and line
Definition:
HelixExtrapolatorToLine2Order.cc:76
HelixExtrapolatorToLine2Order::position
PositionType position(double s) const override
Position at pathlength s from the starting point.
Definition:
HelixExtrapolatorToLine2Order.cc:189
HelixExtrapolatorToLine2Order::directionInDouble
DirectionTypeDouble directionInDouble(double s) const
Direction at pathlength s from the starting point in double precision.
Definition:
HelixExtrapolatorToLine2Order.cc:217
PropagationDirection
PropagationDirection
Definition:
PropagationDirection.h:4
HelixLineExtrapolation::DirectionTypeDouble
Basic3DVector< double > DirectionTypeDouble
Definition:
HelixLineExtrapolation.h:25
HelixExtrapolatorToLine2Order::solve2ndOrder
int solve2ndOrder(const double ceq[], double sol[]) const
Solutions of 2nd order equation.
Definition:
HelixExtrapolatorToLine2Order.cc:159
PixelRecoUtilities::curvature
T curvature(T InversePt, const MagneticField &field)
Definition:
PixelRecoUtilities.h:23
HelixLineExtrapolation::DirectionType
Basic3DVector< float > DirectionType
Definition:
HelixLineExtrapolation.h:23
Visibility.h
HelixExtrapolatorToLine2Order::HelixExtrapolatorToLine2Order
HelixExtrapolatorToLine2Order(const double &x0, const double &y0, const double &z0, const double &cosPhi0, const double &sinPhi0, const double &cosTheta, const double &sinTheta, const double &rho, const PropagationDirection propDir=alongMomentum)
Fast constructor (for use by IterativeHelixExtrapolatorToLine).
Definition:
HelixExtrapolatorToLine2Order.h:20
HelixLineExtrapolation::PositionType
Basic3DVector< float > PositionType
Definition:
HelixLineExtrapolation.h:22
HelixLineExtrapolation.h
Basic3DVector< float >
HelixExtrapolatorToLine2Order::solve3rdOrder
int solve3rdOrder(const double ceq[], double sol[]) const
Solutions of 3rd order equation.
Definition:
HelixExtrapolatorToLine2Order.cc:117
HelixExtrapolatorToLine2Order::theSinTheta
double theSinTheta
Definition:
HelixExtrapolatorToLine2Order.h:73
PropagationDirection.h
HelixExtrapolatorToLine2Order
Definition:
HelixExtrapolatorToLine2Order.h:11
mps_splice.line
line
Definition:
mps_splice.py:76
dso_internal
#define dso_internal
Definition:
Visibility.h:13
HelixLineExtrapolation
Definition:
HelixLineExtrapolation.h:15
HelixExtrapolatorToLine2Order::thePropDir
const PropagationDirection thePropDir
Definition:
HelixExtrapolatorToLine2Order.h:75
mkfit::Const::sol
constexpr float sol
Definition:
Config.h:48
HelixExtrapolatorToLine2Order::theDirection
DirectionTypeDouble theDirection
Definition:
HelixExtrapolatorToLine2Order.h:72
Point3DBase< float, GlobalTag >
HelixExtrapolatorToLine2Order::direction
DirectionType direction(double s) const override
Direction at pathlength s from the starting point.
Definition:
HelixExtrapolatorToLine2Order.cc:208
HLTMuonOfflineAnalyzer_cfi.z0
z0
Definition:
HLTMuonOfflineAnalyzer_cfi.py:46
HelixExtrapolatorToLine2Order::thePosition
const PositionTypeDouble thePosition
Definition:
HelixExtrapolatorToLine2Order.h:71
HelixExtrapolatorToLine2Order::pathLength
std::pair< bool, double > pathLength(const GlobalPoint &point) const override
Definition:
HelixExtrapolatorToLine2Order.cc:28
HelixExtrapolatorToLine2Order::positionInDouble
PositionTypeDouble positionInDouble(double s) const
Position at pathlength s from the starting point in double precision.
Definition:
HelixExtrapolatorToLine2Order.cc:198
point
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point
Definition:
invegas.h:5
HelixExtrapolatorToLine2Order::theRho
const double theRho
Definition:
HelixExtrapolatorToLine2Order.h:74
Generated for CMSSW Reference Manual by
1.8.14