CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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;
13 class SimpleBarrelNavigableLayer;
14 class SimpleForwardNavigableLayer;
15 class MagneticField;
16 
21 public:
22 
25  const MagneticField* field);
27 
28  // from base class
29  virtual StateType navigableLayers() const;
30 
31 protected:
32 
33  typedef std::vector<const DetLayer*> DLC;
34  typedef std::vector<BarrelDetLayer*> BDLC;
35  typedef std::vector<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;
52 
53  virtual void linkBarrelLayers( SymmetricLayerFinder& symFinder);
54  virtual void linkForwardLayers( SymmetricLayerFinder& symFinder);
55 
56  virtual void linkNextForwardLayer( BarrelDetLayer*, FDLC&);
57 
58  virtual void linkNextLargerLayer( BDLI, BDLI, BDLC&);
59 
60  virtual void linkNextBarrelLayer( ForwardDetLayer* fl, BDLC&);
61 
62  virtual void linkOuterGroup( ForwardDetLayer* 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
virtual void linkOuterGroup(ForwardDetLayer *fl, const FDLC &group, FDLC &reachableFL)
virtual void linkNextForwardLayer(BarrelDetLayer *, FDLC &)
const GeometricSearchTracker * theTracker
virtual StateType navigableLayers() const
virtual void linkNextBarrelLayer(ForwardDetLayer *fl, BDLC &)
std::vector< SimpleBarrelNavigableLayer * > BNLCType
FDLC::const_iterator ConstFDLI
std::vector< ForwardDetLayer * > FDLC
std::vector< const DetLayer * > DLC
virtual void linkNextLayerInGroup(FDLI fli, const FDLC &group, FDLC &reachableFL)
std::vector< NavigableLayer * > StateType
virtual void linkWithinGroup(FDLI fl, const FDLC &group, FDLC &reachableFL)
virtual void linkForwardLayers(SymmetricLayerFinder &symFinder)
virtual void establishInverseRelations()
const MagneticField * theField
virtual void linkBarrelLayers(SymmetricLayerFinder &symFinder)
virtual ConstFDLI outerRadiusIncrease(FDLI fl, const FDLC &group)
virtual std::vector< FDLC > splitForwardLayers()
virtual void linkNextLargerLayer(BDLI, BDLI, BDLC &)
std::vector< BarrelDetLayer * > BDLC
BDLC::const_iterator ConstBDLI
std::vector< SimpleForwardNavigableLayer * > FNLCType