CMS 3D CMS Logo

SimpleNavigationSchool.h
Go to the documentation of this file.
1 #ifndef TkNavigation_SimpleNavigationSchool_H
2 #define TkNavigation_SimpleNavigationSchool_H
4 
6 #include <vector>
7 
8 class DetLayer;
9 class BarrelDetLayer;
10 class ForwardDetLayer;
14 class MagneticField;
15 
20 public:
21  SimpleNavigationSchool() : TkNavigationSchool(nullptr, nullptr) {}
23  : TkNavigationSchool(tracker, field) {
24  init();
25  }
26  ~SimpleNavigationSchool() override { cleanMemory(); }
27 
28  // from base class
29  StateType navigableLayers() override;
30 
31 protected:
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;
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, const FDLC& group, FDLC& reachableFL);
62 
63  virtual void linkWithinGroup(FDLI fl, const FDLC& group, FDLC& reachableFL);
64 
65  virtual ConstFDLI outerRadiusIncrease(FDLI fl, const FDLC& group);
66 
67  virtual std::vector<FDLC> splitForwardLayers();
68 
69  virtual float barrelLength();
70 
71  virtual void establishInverseRelations();
72 
73  virtual void linkNextLayerInGroup(FDLI fli, const FDLC& group, FDLC& reachableFL);
74 
75  void cleanMemory();
76 
77 private:
78  void init();
79 };
80 
81 #endif // SimpleNavigationSchool_H
std::vector< const BarrelDetLayer * > BDLC
int init
Definition: HydjetWrapper.h:66
std::vector< SimpleForwardNavigableLayer * > FNLCType
FDLC::const_iterator ConstFDLI
std::vector< const DetLayer * > DLC
std::vector< const ForwardDetLayer * > FDLC
std::vector< SimpleBarrelNavigableLayer * > BNLCType
virtual StateType navigableLayers()=0
#define dso_hidden
Definition: Visibility.h:12
SimpleNavigationSchool(const GeometricSearchTracker *tracker, const MagneticField *field)
BDLC::const_iterator ConstBDLI