RecoTracker
TkNavigation
plugins
SimpleNavigableLayer.h
Go to the documentation of this file.
1
#ifndef TkNavigation_SimpleNavigableLayer_H
2
#define TkNavigation_SimpleNavigableLayer_H
3
#include "
FWCore/Utilities/interface/Visibility.h
"
4
5
#include "
TrackingTools/DetLayers/interface/NavigableLayer.h
"
6
#include "
DataFormats/TrajectorySeed/interface/PropagationDirection.h
"
7
#include "
TrackingTools/GeomPropagators/interface/AnalyticalPropagator.h
"
8
9
#include "
TrackingTools/DetLayers/interface/BarrelDetLayer.h
"
10
#include "
TrackingTools/DetLayers/interface/ForwardDetLayer.h
"
11
#include "
TrackingTools/DetLayers/interface/TkLayerLess.h
"
12
13
#include <vector>
14
15
class
GtfPropagator;
16
20
class
dso_hidden
SimpleNavigableLayer
:
public
NavigableLayer
{
21
public
:
22
typedef
std::vector<const DetLayer*>
DLC
;
23
typedef
std::vector<const BarrelDetLayer*>
BDLC
;
24
typedef
std::vector<const ForwardDetLayer*>
FDLC
;
25
26
SimpleNavigableLayer
(
const
MagneticField
* field,
float
eps,
bool
checkCrossingSide =
true
)
27
: theField(field), theEpsilon(eps), theCheckCrossingSide(checkCrossingSide), theSelfSearch(
false
) {}
28
29
virtual
void
setInwardLinks(
const
BDLC&,
const
FDLC&,
TkLayerLess
sorter
=
TkLayerLess
(
outsideIn
)) = 0;
30
31
virtual
void
setAdditionalLink(
const
DetLayer
*,
NavigationDirection
direction =
insideOut
) = 0;
32
33
void
setCheckCrossingSide
(
bool
docheck) { theCheckCrossingSide = docheck; }
34
35
using
NavigableLayer::compatibleLayers
;
36
std::vector<const DetLayer*>
compatibleLayers
(
const
FreeTrajectoryState
& fts,
37
PropagationDirection
timeDirection,
38
int
&
counter
)
const
final
;
39
40
protected
:
41
const
MagneticField
*
theField
;
42
float
theEpsilon
;
43
bool
theCheckCrossingSide
;
44
45
public
:
46
bool
theSelfSearch
;
47
48
protected
:
49
typedef
BDLC::iterator
BDLI
;
50
typedef
FDLC::iterator
FDLI
;
51
typedef
BDLC::const_iterator
ConstBDLI
;
52
typedef
FDLC::const_iterator
ConstFDLI
;
53
typedef
TrajectoryStateOnSurface
TSOS
;
54
55
bool
wellInside(
const
FreeTrajectoryState
& fts,
56
PropagationDirection
dir
,
57
const
BarrelDetLayer
* bl,
58
DLC
&
result
)
const
dso_internal
;
59
60
bool
wellInside(
const
FreeTrajectoryState
& fts,
61
PropagationDirection
dir
,
62
const
ForwardDetLayer
* bl,
63
DLC
&
result
)
const
dso_internal
;
64
65
bool
wellInside(
const
FreeTrajectoryState
& fts,
66
PropagationDirection
dir
,
67
ConstBDLI
begin
,
68
ConstBDLI
end
,
69
DLC
&
result
)
const
dso_internal
;
70
71
bool
wellInside(
const
FreeTrajectoryState
& fts,
72
PropagationDirection
dir
,
73
const
DLC
&
layers
,
74
DLC
&
result
)
const
dso_internal
;
75
76
bool
wellInside(
const
FreeTrajectoryState
& fts,
77
PropagationDirection
dir
,
78
ConstFDLI
begin
,
79
ConstFDLI
end
,
80
DLC
&
result
)
const
dso_internal
;
81
82
AnalyticalPropagator
propagator
(
PropagationDirection
dir
)
const
{
83
AnalyticalPropagator
aPropagator(theField);
84
aPropagator.
setPropagationDirection
(
dir
);
85
return
aPropagator;
86
}
87
88
TSOS
crossingState(
const
FreeTrajectoryState
& fts,
PropagationDirection
dir
)
const
dso_internal
;
89
};
90
91
#endif // SimpleNavigableLayer_H
counter
Definition:
counter.py:1
Visibility.h
SimpleNavigableLayer::DLC
std::vector< const DetLayer * > DLC
Definition:
SimpleNavigableLayer.h:22
funct::false
false
Definition:
Factorize.h:34
SimpleNavigableLayer::theField
const MagneticField * theField
Definition:
SimpleNavigableLayer.h:41
DetLayer
Definition:
DetLayer.h:21
SimpleNavigableLayer::theCheckCrossingSide
bool theCheckCrossingSide
Definition:
SimpleNavigableLayer.h:43
TkLayerLess.h
SimpleNavigableLayer::propagator
AnalyticalPropagator propagator(PropagationDirection dir) const
Definition:
SimpleNavigableLayer.h:82
SimpleNavigableLayer::BDLI
BDLC::iterator BDLI
Definition:
SimpleNavigableLayer.h:49
end
#define end
Definition:
vmac.h:39
NavigableLayer.h
TrajectoryStateOnSurface
Definition:
TrajectoryStateOnSurface.h:16
SimpleNavigableLayer::theSelfSearch
bool theSelfSearch
Definition:
SimpleNavigableLayer.h:46
Propagator::setPropagationDirection
virtual void setPropagationDirection(PropagationDirection dir)
Definition:
Propagator.h:130
dso_hidden
#define dso_hidden
Definition:
Visibility.h:12
SimpleNavigableLayer::setCheckCrossingSide
void setCheckCrossingSide(bool docheck)
Definition:
SimpleNavigableLayer.h:33
sorter
Definition:
SETFilter.cc:31
dso_internal
#define dso_internal
Definition:
Visibility.h:13
BarrelDetLayer.h
AnalyticalPropagator.h
NavigableLayer
Definition:
NavigableLayer.h:22
SimpleNavigableLayer::ConstFDLI
FDLC::const_iterator ConstFDLI
Definition:
SimpleNavigableLayer.h:52
BarrelDetLayer
Definition:
BarrelDetLayer.h:22
PropagationDirection.h
SimpleNavigableLayer
Definition:
SimpleNavigableLayer.h:20
AnalyticalPropagator
Definition:
AnalyticalPropagator.h:22
SimpleNavigableLayer::FDLI
FDLC::iterator FDLI
Definition:
SimpleNavigableLayer.h:50
NavigationDirection
NavigationDirection
Definition:
NavigationDirection.h:4
ForwardDetLayer
Definition:
ForwardDetLayer.h:22
outsideIn
Definition:
NavigationDirection.h:4
FreeTrajectoryState
Definition:
FreeTrajectoryState.h:27
SimpleNavigableLayer::FDLC
std::vector< const ForwardDetLayer * > FDLC
Definition:
SimpleNavigableLayer.h:24
ForwardDetLayer.h
SimpleNavigableLayer::BDLC
std::vector< const BarrelDetLayer * > BDLC
Definition:
SimpleNavigableLayer.h:23
PropagationDirection
PropagationDirection
Definition:
PropagationDirection.h:4
insideOut
Definition:
NavigationDirection.h:4
mps_fire.result
result
Definition:
mps_fire.py:303
SimpleNavigableLayer::ConstBDLI
BDLC::const_iterator ConstBDLI
Definition:
SimpleNavigableLayer.h:51
SimpleNavigableLayer::TSOS
TrajectoryStateOnSurface TSOS
Definition:
SimpleNavigableLayer.h:53
MagneticField
Definition:
MagneticField.h:19
TkLayerLess
Definition:
TkLayerLess.h:14
begin
#define begin
Definition:
vmac.h:32
hgcalTopologyTester_cfi.layers
layers
Definition:
hgcalTopologyTester_cfi.py:8
SimpleNavigableLayer::theEpsilon
float theEpsilon
Definition:
SimpleNavigableLayer.h:42
SimpleNavigableLayer::SimpleNavigableLayer
SimpleNavigableLayer(const MagneticField *field, float eps, bool checkCrossingSide=true)
Definition:
SimpleNavigableLayer.h:26
DeadROC_duringRun.dir
dir
Definition:
DeadROC_duringRun.py:23
NavigableLayer::compatibleLayers
virtual std::vector< const DetLayer * > compatibleLayers(NavigationDirection direction) const =0
Generated for CMSSW Reference Manual by
1.8.16