CMS 3D CMS Logo

MuonNavigationSchool.h
Go to the documentation of this file.
1 #ifndef Navigation_MuonNavigationSchool_H
2 #define Navigation_MuonNavigationSchool_H
3 
29 #include <vector>
30 #include <map>
31 
34 class MuonEtaRange;
35 class BarrelDetLayer;
36 class ForwardDetLayer;
37 
39 public:
42  bool enableRPC = true,
43  bool enableCSC = true,
44  bool enableGEM = false,
45  bool enableME0 = false);
47  ~MuonNavigationSchool() override;
49  StateType navigableLayers() override;
50 
51 private:
53  void addBarrelLayer(const BarrelDetLayer*);
55  void addEndcapLayer(const ForwardDetLayer*);
57  void linkBarrelLayers();
59  void linkEndcapLayers(const MapE&, std::vector<MuonForwardNavigableLayer*>&);
61  void createInverseLinks();
62  float calculateEta(const float&, const float&) const;
63 
64 private:
65  struct delete_layer {
66  template <typename T>
67  void operator()(T*& p) {
68  if (p) {
69  delete p;
70  p = nullptr;
71  }
72  }
73  };
74 
78 
79  std::vector<MuonBarrelNavigableLayer*> theBarrelNLC;
80  std::vector<MuonForwardNavigableLayer*> theForwardNLC;
81  std::vector<MuonForwardNavigableLayer*> theBackwardNLC;
82 
84 };
85 #endif
MuonNavigationSchool
Definition: MuonNavigationSchool.h:38
MuonNavigationSchool::~MuonNavigationSchool
~MuonNavigationSchool() override
Destructor.
Definition: MuonNavigationSchool.cc:98
MuonNavigationSchool::theForwardNLC
std::vector< MuonForwardNavigableLayer * > theForwardNLC
Definition: MuonNavigationSchool.h:80
MuonNavigationSchool::createInverseLinks
void createInverseLinks()
establish inward links
Definition: MuonNavigationSchool.cc:255
MuonNavigationSchool::delete_layer
Definition: MuonNavigationSchool.h:65
MuonNavigationSchool::delete_layer::operator()
void operator()(T *&p)
Definition: MuonNavigationSchool.h:67
MuonNavigationSchool::MuonNavigationSchool
MuonNavigationSchool(const MuonDetLayerGeometry *, bool enableRPC=true, bool enableCSC=true, bool enableGEM=false, bool enableME0=false)
Constructor.
Definition: MuonNavigationSchool.cc:42
NavigationSchool
Definition: NavigationSchool.h:18
MapE
std::map< const ForwardDetLayer *, MuonEtaRange, MuonDetLayerComp > MapE
Definition: MuonDetLayerMap.h:37
MuonDetLayerGeometry.h
MuonNavigationSchool::theForwardLayers
MapE theForwardLayers
barrel
Definition: MuonNavigationSchool.h:76
MapB
std::map< const BarrelDetLayer *, MuonEtaRange, MuonDetLayerComp > MapB
Definition: MuonDetLayerMap.h:36
MuonNavigationSchool::addEndcapLayer
void addEndcapLayer(const ForwardDetLayer *)
add endcap layer (backward and forward)
Definition: MuonNavigationSchool.cc:139
MuonEtaRange
Definition: MuonEtaRange.h:15
MuonNavigationSchool::linkEndcapLayers
void linkEndcapLayers(const MapE &, std::vector< MuonForwardNavigableLayer * > &)
link endcap layers
Definition: MuonNavigationSchool.cc:219
MuonDetLayerGeometry
Definition: MuonDetLayerGeometry.h:21
MuonDetLayerMap.h
MuonNavigationSchool::addBarrelLayer
void addBarrelLayer(const BarrelDetLayer *)
add barrel layer
Definition: MuonNavigationSchool.cc:127
MuonNavigationSchool::theBarrelLayers
MapB theBarrelLayers
Definition: MuonNavigationSchool.h:75
MuonBarrelNavigableLayer
Definition: MuonBarrelNavigableLayer.h:34
NavigationSchool::StateType
std::vector< NavigableLayer * > StateType
Definition: NavigationSchool.h:26
MuonNavigationSchool::theBarrelNLC
std::vector< MuonBarrelNavigableLayer * > theBarrelNLC
-z endcap
Definition: MuonNavigationSchool.h:79
AlCaHLTBitMon_ParallelJobs.p
def p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
MuonNavigationSchool::linkBarrelLayers
void linkBarrelLayers()
link barrel layers
Definition: MuonNavigationSchool.cc:165
MuonNavigationSchool::theMuonDetLayerGeometry
const MuonDetLayerGeometry * theMuonDetLayerGeometry
Definition: MuonNavigationSchool.h:83
BarrelDetLayer
Definition: BarrelDetLayer.h:22
ForwardDetLayer
Definition: ForwardDetLayer.h:22
T
long double T
Definition: Basic3DVectorLD.h:48
MuonNavigationSchool::calculateEta
float calculateEta(const float &, const float &) const
calculate pseudorapidity from r and z
Definition: MuonNavigationSchool.cc:158
MuonNavigationSchool::navigableLayers
StateType navigableLayers() override
return navigable layers, from base class
Definition: MuonNavigationSchool.cc:105
MuonForwardNavigableLayer
Definition: MuonForwardNavigableLayer.h:33
NavigationSchool.h
MuonNavigationSchool::theBackwardLayers
MapE theBackwardLayers
+z endcap
Definition: MuonNavigationSchool.h:77
MuonNavigationSchool::theBackwardNLC
std::vector< MuonForwardNavigableLayer * > theBackwardNLC
Definition: MuonNavigationSchool.h:81