CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
SimpleNavigableLayer.h
Go to the documentation of this file.
1 #ifndef TkNavigation_SimpleNavigableLayer_H
2 #define TkNavigation_SimpleNavigableLayer_H
3 
7 
11 
12 #include <vector>
13 
14 class GtfPropagator;
15 
20 public:
21 
22  typedef std::vector<const DetLayer*> DLC;
23  typedef std::vector<BarrelDetLayer*> BDLC;
24  typedef std::vector<ForwardDetLayer*> FDLC;
25 
26  SimpleNavigableLayer( const MagneticField* field,float eps,bool checkCrossingSide=true) :
28  theEpsilon(eps),thePropagator(field),theCheckCrossingSide(checkCrossingSide) {}
29 
30  virtual void setInwardLinks(const BDLC&, const FDLC&, TkLayerLess sorter = TkLayerLess(outsideIn)) = 0;
31 
32  virtual void setAdditionalLink(DetLayer*, NavigationDirection direction=insideOut) = 0;
33 
34  void setCheckCrossingSide(bool docheck) {theCheckCrossingSide = docheck;}
35 
37 
38  virtual std::vector< const DetLayer * > compatibleLayers (const FreeTrajectoryState &fts,
39  PropagationDirection timeDirection,
40  int& counter)const ;
41 
42 protected:
43 
44  typedef BDLC::iterator BDLI;
45  typedef FDLC::iterator FDLI;
46  typedef BDLC::const_iterator ConstBDLI;
47  typedef FDLC::const_iterator ConstFDLI;
49 
50  float theEpsilon;
51 
53 
55 
57  const BarrelDetLayer* bl, DLC& result) const;
58 
60  const ForwardDetLayer* bl, DLC& result) const;
61 
64 
66  const DLC& layers, DLC& result) const;
67 
70 
72 
73  void pushResult( DLC& result, const FDLC& tmp) const;
74  void pushResult( DLC& result, const BDLC& tmp) const;
75 
77 
78 };
79 
80 #endif // SimpleNavigableLayer_H
TrajectoryStateOnSurface TSOS
void pushResult(DLC &result, const FDLC &tmp) const
std::vector< BarrelDetLayer * > BDLC
PropagationDirection
virtual void setInwardLinks(const BDLC &, const FDLC &, TkLayerLess sorter=TkLayerLess(outsideIn))=0
SimpleNavigableLayer(const MagneticField *field, float eps, bool checkCrossingSide=true)
virtual std::vector< const DetLayer * > compatibleLayers(const FreeTrajectoryState &fts, PropagationDirection timeDirection, int &counter) const
tuple result
Definition: query.py:137
FDLC::const_iterator ConstFDLI
std::vector< const DetLayer * > DLC
#define end
Definition: vmac.h:38
virtual void setAdditionalLink(DetLayer *, NavigationDirection direction=insideOut)=0
bool wellInside(const FreeTrajectoryState &fts, PropagationDirection dir, const BarrelDetLayer *bl, DLC &result) const
Propagator & propagator(PropagationDirection dir) const
std::vector< std::vector< double > > tmp
Definition: MVATrainer.cc:100
std::vector< ForwardDetLayer * > FDLC
void setCheckCrossingSide(bool docheck)
#define begin
Definition: vmac.h:31
AnalyticalPropagator thePropagator
dbl *** dir
Definition: mlp_gen.cc:35
TSOS crossingState(const FreeTrajectoryState &fts, PropagationDirection dir) const
BDLC::const_iterator ConstBDLI