CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
MuonTkNavigationSchool.h
Go to the documentation of this file.
1 #ifndef RecoMuon_GlobalTrackingTools_MuonTkNavigationSchool_H
2 #define RecoMuon_GlobalTrackingTools_MuonTkNavigationSchool_H
3 
19 #include <vector>
20 
21 class BarrelDetLayer;
22 class ForwardDetLayer;
23 class NavigableLayer;
30 class MagneticField;
31 
32 // ---------------------
33 // -- Class Interface --
34 // ---------------------
35 
37 
38  public:
39 
42  const GeometricSearchTracker*,
43  const MagneticField*);
44 
47 
49  virtual std::vector<NavigableLayer*> navigableLayers() const;
50 
51  private:
52 
55 
58 
60  void linkBarrelLayers();
61 
63  void linkEndcapLayers(const MapE&,
64  std::vector<MuonForwardNavigableLayer*>&,
65  std::vector<SimpleForwardNavigableLayer*>&);
66 
68  float barrelLength() const;
69 
71  float calculateEta(float r, float z) const;
72 
73  private:
74 
75  struct delete_layer {
76  template <typename T>
77  void operator()(T*& p) {
78  if (p) {
79  delete p;
80  p = 0;
81  }
82  }
83  };
84 
85  typedef std::vector<BarrelDetLayer*> BDLC;
86  typedef std::vector<ForwardDetLayer*> FDLC;
87 
91 
92  std::vector<SimpleBarrelNavigableLayer*> theTkBarrelNLC;
93  std::vector<SimpleForwardNavigableLayer*> theTkForwardNLC;
94  std::vector<SimpleForwardNavigableLayer*> theTkBackwardNLC;
95 
96  std::vector<MuonBarrelNavigableLayer*> theMuonBarrelNLC;
97  std::vector<MuonForwardNavigableLayer*> theMuonForwardNLC;
98  std::vector<MuonForwardNavigableLayer*> theMuonBackwardNLC;
99 
103 
104 };
105 
106 #endif
std::vector< SimpleBarrelNavigableLayer * > theTkBarrelNLC
std::vector< SimpleForwardNavigableLayer * > theTkBackwardNLC
MuonTkNavigationSchool(const MuonDetLayerGeometry *, const GeometricSearchTracker *, const MagneticField *)
constructor
float barrelLength() const
calaulate the length of the barrel
std::map< ForwardDetLayer *, MuonEtaRange, MuonDetLayerComp > MapE
const MagneticField * theMagneticField
std::vector< BarrelDetLayer * > BDLC
std::vector< MuonBarrelNavigableLayer * > theMuonBarrelNLC
std::vector< MuonForwardNavigableLayer * > theMuonBackwardNLC
std::vector< MuonForwardNavigableLayer * > theMuonForwardNLC
double double double z
std::map< BarrelDetLayer *, MuonEtaRange, MuonDetLayerComp > MapB
const GeometricSearchTracker * theGeometricSearchTracker
virtual std::vector< NavigableLayer * > navigableLayers() const
return a vector of NavigableLayer*, from base class
std::vector< ForwardDetLayer * > FDLC
const MuonDetLayerGeometry * theMuonDetLayerGeometry
void linkEndcapLayers(const MapE &, std::vector< MuonForwardNavigableLayer * > &, std::vector< SimpleForwardNavigableLayer * > &)
link endcap layers
void addEndcapLayer(ForwardDetLayer *)
add endcap layer (backward and forward)
void linkBarrelLayers()
link barrel layers
std::vector< SimpleForwardNavigableLayer * > theTkForwardNLC
long double T
float calculateEta(float r, float z) const
pseudorapidity from r and z
void addBarrelLayer(BarrelDetLayer *)
add barrel layer