CMS 3D CMS Logo

SimpleNavigationSchool.h
Go to the documentation of this file.
1 #ifndef TkNavigation_SimpleNavigationSchool_H
2 #define TkNavigation_SimpleNavigationSchool_H
3 
5 #include <vector>
6 
7 class DetLayer;
8 class BarrelDetLayer;
9 class ForwardDetLayer;
13 class MagneticField;
14 
19 public:
20 
23  const MagneticField* field) :
24  TkNavigationSchool(tracker,field) {init();}
25  ~SimpleNavigationSchool() override{cleanMemory();}
26 
27  // from base class
28  StateType navigableLayers() override;
29 
30 protected:
31 
32  typedef std::vector<const DetLayer*> DLC;
33  typedef std::vector<const BarrelDetLayer*> BDLC;
34  typedef std::vector<const ForwardDetLayer*> FDLC;
35  typedef DLC::iterator DLI;
36  typedef BDLC::iterator BDLI;
37  typedef FDLC::iterator FDLI;
38  typedef BDLC::const_iterator ConstBDLI;
39  typedef FDLC::const_iterator ConstFDLI;
40 
45  float theBarrelLength=0;
46 
47  typedef std::vector< SimpleBarrelNavigableLayer*> BNLCType;
48  typedef std::vector< SimpleForwardNavigableLayer*> FNLCType;
49  BNLCType theBarrelNLC;
50  FNLCType theForwardNLC;
51 
52  virtual void linkBarrelLayers( SymmetricLayerFinder& symFinder);
53  virtual void linkForwardLayers( SymmetricLayerFinder& symFinder);
54 
55  virtual void linkNextForwardLayer( BarrelDetLayer const*, FDLC&);
56 
57  virtual void linkNextLargerLayer( BDLI, BDLI, BDLC&);
58 
59  virtual void linkNextBarrelLayer( ForwardDetLayer const* fl, BDLC&);
60 
61  virtual void linkOuterGroup( ForwardDetLayer const* fl,
62  const FDLC& group,
63  FDLC& reachableFL);
64 
65  virtual void linkWithinGroup( FDLI fl, const FDLC& group, FDLC& reachableFL);
66 
67  virtual ConstFDLI outerRadiusIncrease( FDLI fl, const FDLC& group);
68 
69  virtual std::vector<FDLC> splitForwardLayers();
70 
71  virtual float barrelLength();
72 
73  virtual void establishInverseRelations();
74 
75  virtual void linkNextLayerInGroup( FDLI fli, const FDLC& group, FDLC& reachableFL);
76 
77  void cleanMemory();
78 private:
79  void init();
80 };
81 
82 #endif // SimpleNavigationSchool_H
std::vector< const BarrelDetLayer * > BDLC
#define nullptr
int init
Definition: HydjetWrapper.h:67
std::vector< SimpleBarrelNavigableLayer * > BNLCType
FDLC::const_iterator ConstFDLI
std::vector< const DetLayer * > DLC
std::vector< NavigableLayer * > StateType
std::vector< const ForwardDetLayer * > FDLC
virtual StateType navigableLayers()=0
#define dso_hidden
Definition: Visibility.h:12
SimpleNavigationSchool(const GeometricSearchTracker *tracker, const MagneticField *field)
BDLC::const_iterator ConstBDLI
std::vector< SimpleForwardNavigableLayer * > FNLCType