ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkDetDescr
TrkDetDescrUtils
TrkDetDescrUtils
Intersection.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3
*/
4
6
// Intersection.h, (c) ATLAS Detector software
8
9
#ifndef TRKDETDESCRUTILS_INTERSECTION_H
10
#define TRKDETDESCRUTILS_INTERSECTION_H
11
12
#include "
GeoPrimitives/GeoPrimitives.h
"
13
#include "
TrkEventPrimitives/PropDirection.h
"
14
15
namespace
Trk
{
16
22
23
struct
Intersection
24
{
25
Amg::Vector3D
position
;
26
double
pathLength
;
27
double
distance
;
28
bool
valid
;
29
30
Intersection
(
const
Amg::Vector3D
& sinter,
double
slenght,
bool
svalid,
double
dist = 0.)
31
:
position
(sinter)
32
,
pathLength
(slenght)
33
,
distance
(dist)
34
,
valid
(svalid)
35
{}
36
37
// smaller operator for sorting
38
bool
operator<
(
const
Intersection
& si)
const
{
return
(
valid
&&
pathLength
< si.
pathLength
); }
39
};
40
42
template
<
class
T>
43
class
ObjectIntersection
44
{
45
public
:
46
Intersection
intersection
;
47
const
T*
object
;
48
PropDirection
pDirection
;
49
51
ObjectIntersection
(
const
Intersection
& sInter,
const
T* sObject,
PropDirection
dir =
alongMomentum
)
52
:
intersection
(sInter)
53
,
object
(sObject)
54
,
pDirection
(dir)
55
{}
56
58
bool
operator<
(
const
ObjectIntersection<T>
& oi)
const
{
return
(
intersection
< oi.
intersection
); }
59
};
60
62
template
<
class
T,
class
R,
class
S>
63
class
FullIntersection
64
{
65
public
:
66
Intersection
intersection
;
67
const
T*
object
;
68
const
R*
representation
;
69
const
S*
result
;
70
PropDirection
pDirection
;
71
73
FullIntersection
(
const
Intersection
& sInter,
74
const
T* sObject,
75
const
R* sRepresentation,
76
const
S* sResult,
77
PropDirection
dir =
alongMomentum
)
78
:
intersection
(sInter)
79
,
object
(sObject)
80
,
representation
(sRepresentation)
81
,
result
(sResult)
82
,
pDirection
(dir)
83
{}
84
86
bool
operator<
(
const
FullIntersection<T, R, S>
& oi)
const
{
return
(
intersection
< oi.
intersection
); }
87
};
88
89
}
90
91
#endif
GeoPrimitives.h
PropDirection.h
Trk::FullIntersection< Layer, Surface, T >::object
const Layer * object
Definition
Intersection.h:67
Trk::FullIntersection< Layer, Surface, T >::pDirection
PropDirection pDirection
Definition
Intersection.h:70
Trk::FullIntersection::FullIntersection
FullIntersection(const Intersection &sInter, const T *sObject, const R *sRepresentation, const S *sResult, PropDirection dir=alongMomentum)
Full intersection.
Definition
Intersection.h:73
Trk::FullIntersection::operator<
bool operator<(const FullIntersection< T, R, S > &oi) const
smaller operator for ordering & sorting
Definition
Intersection.h:86
Trk::FullIntersection< Layer, Surface, T >::intersection
Intersection intersection
Definition
Intersection.h:66
Trk::FullIntersection< Layer, Surface, T >::representation
const Surface * representation
Definition
Intersection.h:68
Trk::FullIntersection< Layer, Surface, T >::result
const T * result
Definition
Intersection.h:69
Trk::ObjectIntersection< Surface >::intersection
Intersection intersection
Definition
Intersection.h:46
Trk::ObjectIntersection< Surface >::object
const Surface * object
Definition
Intersection.h:47
Trk::ObjectIntersection::ObjectIntersection
ObjectIntersection(const Intersection &sInter, const T *sObject, PropDirection dir=alongMomentum)
Object intersection.
Definition
Intersection.h:51
Trk::ObjectIntersection::operator<
bool operator<(const ObjectIntersection< T > &oi) const
smaller operator for ordering & sorting
Definition
Intersection.h:58
Trk::ObjectIntersection< Surface >::pDirection
PropDirection pDirection
Definition
Intersection.h:48
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition
GeoPrimitives.h:47
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition
FakeTrackBuilder.h:9
Trk::PropDirection
PropDirection
PropDirection, enum for direction of the propagation.
Definition
PropDirection.h:19
Trk::alongMomentum
@ alongMomentum
Definition
PropDirection.h:20
Trk::Intersection
Definition
Intersection.h:24
Trk::Intersection::valid
bool valid
Definition
Intersection.h:28
Trk::Intersection::Intersection
Intersection(const Amg::Vector3D &sinter, double slenght, bool svalid, double dist=0.)
Definition
Intersection.h:30
Trk::Intersection::pathLength
double pathLength
Definition
Intersection.h:26
Trk::Intersection::operator<
bool operator<(const Intersection &si) const
Definition
Intersection.h:38
Trk::Intersection::distance
double distance
Definition
Intersection.h:27
Trk::Intersection::position
Amg::Vector3D position
Definition
Intersection.h:25
Generated on
for ATLAS Offline Software by
1.17.0