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
SimpleNavigationSchool::FDLI
FDLC::iterator FDLI
Definition: SimpleNavigationSchool.h:37
SimpleBarrelNavigableLayer
Definition: SimpleBarrelNavigableLayer.h:12
SimpleNavigationSchool::~SimpleNavigationSchool
~SimpleNavigationSchool() override
Definition: SimpleNavigationSchool.h:26
Visibility.h
init
int init
Definition: HydjetWrapper.h:64
DetLayer
Definition: DetLayer.h:21
SimpleNavigationSchool::theBarrelLayers
BDLC theBarrelLayers
Definition: SimpleNavigationSchool.h:41
SimpleNavigationSchool
Definition: SimpleNavigationSchool.h:19
SymmetricLayerFinder
Definition: SymmetricLayerFinder.h:17
SimpleNavigationSchool::DLI
DLC::iterator DLI
Definition: SimpleNavigationSchool.h:35
SimpleNavigationSchool::ConstFDLI
FDLC::const_iterator ConstFDLI
Definition: SimpleNavigationSchool.h:39
SimpleNavigationSchool::theLeftLayers
FDLC theLeftLayers
Definition: SimpleNavigationSchool.h:44
SimpleNavigationSchool::FDLC
std::vector< const ForwardDetLayer * > FDLC
Definition: SimpleNavigationSchool.h:34
dso_hidden
#define dso_hidden
Definition: Visibility.h:12
TkNavigationSchool
Definition: TkNavigationSchool.h:12
SimpleNavigationSchool::SimpleNavigationSchool
SimpleNavigationSchool()
Definition: SimpleNavigationSchool.h:21
reco::StateType
StateType
Definition: TrackInfoEnum.h:14
SimpleNavigationSchool::BDLC
std::vector< const BarrelDetLayer * > BDLC
Definition: SimpleNavigationSchool.h:33
PbPb_ZMuSkimMuonDPG_cff.tracker
tracker
Definition: PbPb_ZMuSkimMuonDPG_cff.py:60
SimpleNavigationSchool::DLC
std::vector< const DetLayer * > DLC
Definition: SimpleNavigationSchool.h:32
NavigationSchool::navigableLayers
virtual StateType navigableLayers()=0
SimpleNavigationSchool::BDLI
BDLC::iterator BDLI
Definition: SimpleNavigationSchool.h:36
SimpleNavigationSchool::theForwardNLC
FNLCType theForwardNLC
Definition: SimpleNavigationSchool.h:50
SimpleNavigationSchool::ConstBDLI
BDLC::const_iterator ConstBDLI
Definition: SimpleNavigationSchool.h:38
SimpleNavigationSchool::theBarrelNLC
BNLCType theBarrelNLC
Definition: SimpleNavigationSchool.h:49
BarrelDetLayer
Definition: BarrelDetLayer.h:22
TkNavigationSchool.h
SimpleNavigationSchool::SimpleNavigationSchool
SimpleNavigationSchool(const GeometricSearchTracker *tracker, const MagneticField *field)
Definition: SimpleNavigationSchool.h:22
SimpleNavigationSchool::theForwardLayers
FDLC theForwardLayers
Definition: SimpleNavigationSchool.h:42
ForwardDetLayer
Definition: ForwardDetLayer.h:22
GeometricSearchTracker
Definition: GeometricSearchTracker.h:14
SimpleNavigationSchool::BNLCType
std::vector< SimpleBarrelNavigableLayer * > BNLCType
Definition: SimpleNavigationSchool.h:47
SimpleForwardNavigableLayer
Definition: SimpleForwardNavigableLayer.h:10
MagneticField
Definition: MagneticField.h:19
SimpleNavigationSchool::FNLCType
std::vector< SimpleForwardNavigableLayer * > FNLCType
Definition: SimpleNavigationSchool.h:48
SimpleNavigationSchool::theRightLayers
FDLC theRightLayers
Definition: SimpleNavigationSchool.h:43
watchdog.group
group
Definition: watchdog.py:82