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:
22  : TkNavigationSchool(tracker, field) {
23  init();
24  }
25  ~SimpleNavigationSchool() override { cleanMemory(); }
26 
27  // from base class
28  StateType navigableLayers() override;
29 
30 protected:
31  typedef std::vector<const DetLayer*> DLC;
32  typedef std::vector<const BarrelDetLayer*> BDLC;
33  typedef std::vector<const ForwardDetLayer*> FDLC;
34  typedef DLC::iterator DLI;
35  typedef BDLC::iterator BDLI;
36  typedef FDLC::iterator FDLI;
37  typedef BDLC::const_iterator ConstBDLI;
38  typedef FDLC::const_iterator ConstFDLI;
39 
44  float theBarrelLength = 0;
45 
46  typedef std::vector<SimpleBarrelNavigableLayer*> BNLCType;
47  typedef std::vector<SimpleForwardNavigableLayer*> FNLCType;
48  BNLCType theBarrelNLC;
49  FNLCType theForwardNLC;
50 
51  virtual void linkBarrelLayers(SymmetricLayerFinder& symFinder);
52  virtual void linkForwardLayers(SymmetricLayerFinder& symFinder);
53 
54  virtual void linkNextForwardLayer(BarrelDetLayer const*, FDLC&);
55 
56  virtual void linkNextLargerLayer(BDLI, BDLI, BDLC&);
57 
58  virtual void linkNextBarrelLayer(ForwardDetLayer const* fl, BDLC&);
59 
60  virtual void linkOuterGroup(ForwardDetLayer const* fl, const FDLC& group, FDLC& reachableFL);
61 
62  virtual void linkWithinGroup(FDLI fl, const FDLC& group, FDLC& reachableFL);
63 
64  virtual ConstFDLI outerRadiusIncrease(FDLI fl, const FDLC& group);
65 
66  virtual std::vector<FDLC> splitForwardLayers();
67 
68  virtual float barrelLength();
69 
70  virtual void establishInverseRelations();
71 
72  virtual void linkNextLayerInGroup(FDLI fli, const FDLC& group, FDLC& reachableFL);
73 
74  void cleanMemory();
75 
76 private:
77  void init();
78 };
79 
80 #endif // SimpleNavigationSchool_H
std::vector< const BarrelDetLayer * > BDLC
#define nullptr
int init
Definition: HydjetWrapper.h:64
std::vector< SimpleForwardNavigableLayer * > FNLCType
FDLC::const_iterator ConstFDLI
std::vector< const DetLayer * > DLC
std::vector< NavigableLayer * > StateType
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