CMS 3D CMS Logo

SimpleNavigableLayer.h
Go to the documentation of this file.
1 #ifndef TkNavigation_SimpleNavigableLayer_H
2 #define TkNavigation_SimpleNavigableLayer_H
4 
8 
12 
13 #include <vector>
14 
15 class GtfPropagator;
16 
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 
36  std::vector<const DetLayer*> compatibleLayers(const FreeTrajectoryState& fts,
37  PropagationDirection timeDirection,
38  int& counter) const final;
39 
40 protected:
42  float theEpsilon;
44 
45 public:
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;
54 
55  bool wellInside(const FreeTrajectoryState& fts,
57  const BarrelDetLayer* bl,
58  DLC& result) const dso_internal;
59 
60  bool wellInside(const FreeTrajectoryState& fts,
62  const ForwardDetLayer* bl,
63  DLC& result) const dso_internal;
64 
65  bool wellInside(const FreeTrajectoryState& fts,
68  ConstBDLI end,
69  DLC& result) const dso_internal;
70 
71  bool wellInside(const FreeTrajectoryState& fts,
73  const DLC& layers,
74  DLC& result) const dso_internal;
75 
76  bool wellInside(const FreeTrajectoryState& fts,
79  ConstFDLI end,
80  DLC& result) const dso_internal;
81 
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