CMS 3D CMS Logo

SimpleNavigationSchool.h
Go to the documentation of this file.
1 #ifndef TkNavigation_SimpleNavigationSchool_H
2 #define TkNavigation_SimpleNavigationSchool_H
3 
6 
7 #include <vector>
8 
9 class DetLayer;
10 class BarrelDetLayer;
11 class ForwardDetLayer;
15 class MagneticField;
16 
21 public:
22 
23  SimpleNavigationSchool() : theField(0),theTracker(0){};
25  const MagneticField* field);
26  ~SimpleNavigationSchool(){cleanMemory();}
27 
28  // from base class
29  virtual StateType navigableLayers() override;
30 
31 protected:
32 
33  typedef std::vector<const DetLayer*> DLC;
34  typedef std::vector<const BarrelDetLayer*> BDLC;
35  typedef std::vector<const ForwardDetLayer*> FDLC;
36  typedef DLC::iterator DLI;
37  typedef BDLC::iterator BDLI;
38  typedef FDLC::iterator FDLI;
39  typedef BDLC::const_iterator ConstBDLI;
40  typedef FDLC::const_iterator ConstFDLI;
41 
47 
48  typedef std::vector< SimpleBarrelNavigableLayer*> BNLCType;
49  typedef std::vector< SimpleForwardNavigableLayer*> FNLCType;
50  BNLCType theBarrelNLC;
51  FNLCType theForwardNLC;
52 
53  virtual void linkBarrelLayers( SymmetricLayerFinder& symFinder);
54  virtual void linkForwardLayers( SymmetricLayerFinder& symFinder);
55 
56  virtual void linkNextForwardLayer( BarrelDetLayer const*, FDLC&);
57 
58  virtual void linkNextLargerLayer( BDLI, BDLI, BDLC&);
59 
60  virtual void linkNextBarrelLayer( ForwardDetLayer const* fl, BDLC&);
61 
62  virtual void linkOuterGroup( ForwardDetLayer const* fl,
63  const FDLC& group,
64  FDLC& reachableFL);
65 
66  virtual void linkWithinGroup( FDLI fl, const FDLC& group, FDLC& reachableFL);
67 
68  virtual ConstFDLI outerRadiusIncrease( FDLI fl, const FDLC& group);
69 
70  virtual std::vector<FDLC> splitForwardLayers();
71 
72  virtual float barrelLength();
73 
74  virtual void establishInverseRelations();
75 
76  virtual void linkNextLayerInGroup( FDLI fli, const FDLC& group, FDLC& reachableFL);
77 
80 
81  void cleanMemory();
82 };
83 
84 #endif // SimpleNavigationSchool_H
#define dso_hidden
std::vector< const BarrelDetLayer * > BDLC
const GeometricSearchTracker * theTracker
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
const MagneticField * theField
BDLC::const_iterator ConstBDLI
std::vector< SimpleForwardNavigableLayer * > FNLCType