TrackingTools
GeomPropagators
interface
HelixBarrelCylinderCrossing.h
Go to the documentation of this file.
1
#ifndef HelixBarrelCylinderCrossing_H
2
#define HelixBarrelCylinderCrossing_H
3
4
#include "
DataFormats/GeometryVector/interface/Basic2DVector.h
"
5
#include "
DataFormats/GeometryVector/interface/GlobalPoint.h
"
6
#include "
DataFormats/GeometryVector/interface/GlobalVector.h
"
7
#include "
DataFormats/TrajectorySeed/interface/PropagationDirection.h
"
8
9
#include "
FWCore/Utilities/interface/Visibility.h
"
10
11
class
Cylinder
;
12
16
class
HelixBarrelCylinderCrossing
{
17
public
:
18
enum
Solution
{
bothSol
,
bestSol
,
onlyPos
};
19
20
typedef
double
TmpType
;
21
typedef
Basic2DVector<TmpType>
Point
;
// for private use only
22
typedef
Basic2DVector<TmpType>
Vector
;
// for private use only
23
24
typedef
GlobalPoint
PositionType
;
25
typedef
GlobalVector
DirectionType
;
26
27
HelixBarrelCylinderCrossing
(
const
GlobalPoint
& startingPos,
28
const
GlobalVector
& startingDir,
29
double
rho
,
30
PropagationDirection
propDir,
31
const
Cylinder
& cyl,
32
Solution
sol =
bothSol
);
33
34
bool
hasSolution
()
const
{
return
theSolExists
; }
35
40
double
pathLength
()
const
{
return
theS
; }
41
48
PositionType
position
()
const
{
return
thePos
; }
49
51
PositionType
position1
()
const
{
return
thePos1
; }
52
54
PositionType
position2
()
const
{
return
thePos2
; }
55
61
DirectionType
direction
()
const
{
return
theDir
; }
62
63
private
:
64
PositionType
thePos
;
65
DirectionType
theDir
;
66
double
theS
;
67
bool
theSolExists
;
68
69
PositionType
thePos1
;
70
PositionType
thePos2
;
71
72
std::pair<Vector, int>
chooseSolution
(
const
Point
&
p1
,
73
const
Point
&
p2
,
74
const
PositionType
& startingPos,
75
const
DirectionType
& startingDir,
76
PropagationDirection
propDir)
dso_internal
;
77
};
78
79
#endif
Vector3DBase
Definition:
Vector3DBase.h:8
Visibility.h
HelixBarrelCylinderCrossing::onlyPos
Definition:
HelixBarrelCylinderCrossing.h:18
HelixBarrelCylinderCrossing::position2
PositionType position2() const
Method to access separately each solution of the helix-cylinder crossing equations.
Definition:
HelixBarrelCylinderCrossing.h:54
HelixBarrelCylinderCrossing::Point
Basic2DVector< TmpType > Point
Definition:
HelixBarrelCylinderCrossing.h:21
HelixBarrelCylinderCrossing::hasSolution
bool hasSolution() const
Definition:
HelixBarrelCylinderCrossing.h:34
HelixBarrelCylinderCrossing::TmpType
double TmpType
Definition:
HelixBarrelCylinderCrossing.h:20
HelixBarrelCylinderCrossing::theSolExists
bool theSolExists
Definition:
HelixBarrelCylinderCrossing.h:67
HelixBarrelCylinderCrossing::Vector
Basic2DVector< TmpType > Vector
Definition:
HelixBarrelCylinderCrossing.h:22
HelixBarrelCylinderCrossing::HelixBarrelCylinderCrossing
HelixBarrelCylinderCrossing(const GlobalPoint &startingPos, const GlobalVector &startingDir, double rho, PropagationDirection propDir, const Cylinder &cyl, Solution sol=bothSol)
Definition:
HelixBarrelCylinderCrossing.cc:17
HelixBarrelCylinderCrossing::PositionType
GlobalPoint PositionType
Definition:
HelixBarrelCylinderCrossing.h:24
HelixBarrelCylinderCrossing::bestSol
Definition:
HelixBarrelCylinderCrossing.h:18
HelixBarrelCylinderCrossing::thePos1
PositionType thePos1
Definition:
HelixBarrelCylinderCrossing.h:69
p2
double p2[4]
Definition:
TauolaWrapper.h:90
Point3DBase< float, GlobalTag >
HelixBarrelCylinderCrossing::Solution
Solution
Definition:
HelixBarrelCylinderCrossing.h:18
DDAxes::rho
HelixBarrelCylinderCrossing::direction
DirectionType direction() const
Definition:
HelixBarrelCylinderCrossing.h:61
Basic2DVector
Definition:
extBasic2DVector.h:15
dso_internal
#define dso_internal
Definition:
Visibility.h:13
HelixBarrelCylinderCrossing::bothSol
Definition:
HelixBarrelCylinderCrossing.h:18
HelixBarrelCylinderCrossing::position
PositionType position() const
Definition:
HelixBarrelCylinderCrossing.h:48
p1
double p1[4]
Definition:
TauolaWrapper.h:89
HelixBarrelCylinderCrossing::chooseSolution
std::pair< Vector, int > chooseSolution(const Point &p1, const Point &p2, const PositionType &startingPos, const DirectionType &startingDir, PropagationDirection propDir)
Definition:
HelixBarrelCylinderCrossing.cc:134
HelixBarrelCylinderCrossing::position1
PositionType position1() const
Method to access separately each solution of the helix-cylinder crossing equations.
Definition:
HelixBarrelCylinderCrossing.h:51
PropagationDirection.h
HelixBarrelCylinderCrossing::DirectionType
GlobalVector DirectionType
Definition:
HelixBarrelCylinderCrossing.h:25
HelixBarrelCylinderCrossing::thePos
PositionType thePos
Definition:
HelixBarrelCylinderCrossing.h:64
HelixBarrelCylinderCrossing::thePos2
PositionType thePos2
Definition:
HelixBarrelCylinderCrossing.h:70
Basic2DVector.h
PropagationDirection
PropagationDirection
Definition:
PropagationDirection.h:4
GlobalVector.h
HelixBarrelCylinderCrossing
Definition:
HelixBarrelCylinderCrossing.h:16
Cylinder
Definition:
Cylinder.h:19
GlobalPoint.h
HelixBarrelCylinderCrossing::theDir
DirectionType theDir
Definition:
HelixBarrelCylinderCrossing.h:65
HelixBarrelCylinderCrossing::pathLength
double pathLength() const
Definition:
HelixBarrelCylinderCrossing.h:40
HelixBarrelCylinderCrossing::theS
double theS
Definition:
HelixBarrelCylinderCrossing.h:66
Generated for CMSSW Reference Manual by
1.8.16