TrackingTools
GeomPropagators
src
StraightLinePlaneCrossing.cc
Go to the documentation of this file.
1
#include "
TrackingTools/GeomPropagators/interface/StraightLinePlaneCrossing.h
"
2
3
#include "
DataFormats/GeometrySurface/interface/Plane.h
"
4
5
//
6
// Propagation status and path length to intersection
7
//
8
std::pair<bool, double>
StraightLinePlaneCrossing::pathLength
(
const
Plane
& plane)
const
{
9
//
10
// calculate path length
11
//
12
PositionType
planePosition(plane.
position
());
13
DirectionType
planeNormal(plane.
normalVector
());
14
auto
pz = planeNormal.
dot
(
theP0
);
15
auto
dS = -planeNormal.dot(
theX0
- planePosition) / pz;
16
// check direction
17
auto
opposite2Track =
18
((
thePropDir
==
alongMomentum
) & (dS < 0.
f
)) | ((
thePropDir
==
oppositeToMomentum
) & (dS > 0.f));
19
//
20
// Return result
21
//
22
return
std::pair<bool, double>(!opposite2Track, dS);
23
}
24
25
std::pair<bool, StraightLinePlaneCrossing::PositionType>
StraightLinePlaneCrossing::position
(
const
Plane
& plane)
const
{
26
auto
crossed =
pathLength
(plane);
27
if
(crossed.first)
28
return
std::pair<bool, PositionType>(
true
,
position
(crossed.second));
29
else
30
return
std::pair<bool, PositionType>(
false
,
PositionType
());
31
}
StraightLinePlaneCrossing::theX0
const PositionType theX0
Definition:
StraightLinePlaneCrossing.h:53
f
double f[11][100]
Definition:
MuScleFitUtils.cc:78
oppositeToMomentum
Definition:
PropagationDirection.h:4
StraightLinePlaneCrossing::thePropDir
const PropagationDirection thePropDir
Definition:
StraightLinePlaneCrossing.h:55
Plane.h
Basic3DVector::dot
T dot(const Basic3DVector &rh) const
Scalar product, or "dot" product, with a vector of same type.
Definition:
extBasic3DVector.h:189
StraightLinePlaneCrossing.h
StraightLinePlaneCrossing::PositionType
Basic3DVector< float > PositionType
Definition:
StraightLinePlaneCrossing.h:21
GloballyPositioned::position
const PositionType & position() const
Definition:
GloballyPositioned.h:36
Plane
Definition:
Plane.h:16
StraightLinePlaneCrossing::position
PositionType position(float s) const
Definition:
StraightLinePlaneCrossing.h:42
StraightLinePlaneCrossing::pathLength
std::pair< bool, double > pathLength(const Plane &plane) const
Definition:
StraightLinePlaneCrossing.cc:8
alongMomentum
Definition:
PropagationDirection.h:4
Basic3DVector< float >
StraightLinePlaneCrossing::theP0
const PositionType theP0
Definition:
StraightLinePlaneCrossing.h:54
Plane::normalVector
GlobalVector normalVector() const
Definition:
Plane.h:41
Generated for CMSSW Reference Manual by
1.8.16