CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
MuonDetLayerGeometry.h
Go to the documentation of this file.
1 #ifndef DetLayers_MuonDetLayerGeometry_h
2 #define DetLayers_MuonDetLayerGeometry_h
3 
13 #include <vector>
14 #include <map>
15 
16 class DetLayer;
17 
19  public:
20 
23 
25 
27  virtual ~MuonDetLayerGeometry();
28 
30  const std::vector<const DetLayer*>& allDTLayers() const;
31 
33  const std::vector<const DetLayer*>& allCSCLayers() const;
34 
36  const std::vector<const DetLayer*>& forwardCSCLayers() const;
37 
39  const std::vector<const DetLayer*>& backwardCSCLayers() const;
40 
42  const std::vector<const DetLayer*>& allRPCLayers() const;
43 
45  const std::vector<const DetLayer*>& barrelRPCLayers() const;
46 
48  const std::vector<const DetLayer*>& endcapRPCLayers() const;
49 
51  const std::vector<const DetLayer*>& forwardRPCLayers() const;
52 
54  const std::vector<const DetLayer*>& backwardRPCLayers() const;
55 
57  const std::vector<const DetLayer*>& allLayers() const;
58 
60  const std::vector<const DetLayer*>& allBarrelLayers() const;
61 
63  const std::vector<const DetLayer*>& allEndcapLayers() const;
64 
66  const std::vector<const DetLayer*>& allForwardLayers() const;
67 
69  const std::vector<const DetLayer*>& allBackwardLayers() const;
70 
72  virtual const DetLayer* idToLayer(const DetId& detId) const override;
73 
74  private:
78  void addCSCLayers(const std::pair<std::vector<DetLayer*>, std::vector<DetLayer*> >& csclayers);
79 
80  //. Add DT layers; dtlayers is ASSUMED to be sorted inside-out
81  void addDTLayers(const std::vector<DetLayer*>& dtlayers);
82 
86  void addRPCLayers(const std::vector<DetLayer*>& barrelRPCLayers, const std::pair<std::vector<DetLayer*>, std::vector<DetLayer*> >& endcapRPCLayers);
87 
88 
89  DetId makeDetLayerId(const DetLayer* detLayer) const;
90 
91  void sortLayers();
92 
93  std::vector<const DetLayer*> cscLayers_fw;
94  std::vector<const DetLayer*> cscLayers_bk;
95  std::vector<const DetLayer*> cscLayers_all;
96  std::vector<const DetLayer*> rpcLayers_all;
97  std::vector<const DetLayer*> rpcLayers_endcap;
98  std::vector<const DetLayer*> rpcLayers_fw;
99  std::vector<const DetLayer*> rpcLayers_bk;
100  std::vector<const DetLayer*> rpcLayers_barrel;
101  std::vector<const DetLayer*> dtLayers;
102  std::vector<const DetLayer*> allForward;
103  std::vector<const DetLayer*> allBackward;
104  std::vector<const DetLayer*> allEndcap;
105  std::vector<const DetLayer*> allBarrel;
106  std::vector<const DetLayer*> allDetLayers;
107 
108  std::map<DetId,const DetLayer*> detLayersMap;
109 };
110 #endif
111 
std::vector< const DetLayer * > allDetLayers
std::vector< const DetLayer * > allBarrel
const std::vector< const DetLayer * > & allEndcapLayers() const
return all endcap DetLayers (CSC+RPC), -Z to +Z
const std::vector< const DetLayer * > & forwardRPCLayers() const
return the forward (+Z) RPC DetLayers, inside-out
virtual const DetLayer * idToLayer(const DetId &detId) const override
return the DetLayer which correspond to a certain DetId
void addDTLayers(const std::vector< DetLayer * > &dtlayers)
std::map< DetId, const DetLayer * > detLayersMap
const std::vector< const DetLayer * > & allCSCLayers() const
return the CSC DetLayers (endcap), -Z to +Z
const std::vector< const DetLayer * > & allForwardLayers() const
return all forward (+Z) layers (CSC+RPC), inside-out
std::vector< const DetLayer * > allForward
const std::vector< const DetLayer * > & allBarrelLayers() const
return all barrel DetLayers (DT+RPC), inside-out
std::vector< const DetLayer * > allBackward
MuonDetLayerGeometry()
Constructor.
std::vector< const DetLayer * > rpcLayers_barrel
const std::vector< const DetLayer * > & endcapRPCLayers() const
return the endcap RPC DetLayers, -Z to +Z
std::vector< const DetLayer * > rpcLayers_all
std::vector< const DetLayer * > rpcLayers_bk
std::vector< const DetLayer * > cscLayers_fw
Definition: DetId.h:18
const std::vector< const DetLayer * > & allDTLayers() const
return the DT DetLayers (barrel), inside-out
std::vector< const DetLayer * > allEndcap
const std::vector< const DetLayer * > & forwardCSCLayers() const
return the forward (+Z) CSC DetLayers, inside-out
std::vector< const DetLayer * > cscLayers_bk
DetId makeDetLayerId(const DetLayer *detLayer) const
virtual ~MuonDetLayerGeometry()
Destructor.
void addRPCLayers(const std::vector< DetLayer * > &barrelRPCLayers, const std::pair< std::vector< DetLayer * >, std::vector< DetLayer * > > &endcapRPCLayers)
std::vector< const DetLayer * > cscLayers_all
std::vector< const DetLayer * > dtLayers
const std::vector< const DetLayer * > & allBackwardLayers() const
return all backward (-Z) layers (CSC+RPC), inside-out
std::vector< const DetLayer * > rpcLayers_fw
std::vector< const DetLayer * > rpcLayers_endcap
const std::vector< const DetLayer * > & allLayers() const
return all layers (DT+CSC+RPC), order: backward, barrel, forward
const std::vector< const DetLayer * > & backwardCSCLayers() const
return the backward (-Z) CSC DetLayers, inside-out
const std::vector< const DetLayer * > & barrelRPCLayers() const
return the barrel RPC DetLayers, inside-out
const std::vector< const DetLayer * > & backwardRPCLayers() const
return the backward (-Z) RPC DetLayers, inside-out
void addCSCLayers(const std::pair< std::vector< DetLayer * >, std::vector< DetLayer * > > &csclayers)
const std::vector< const DetLayer * > & allRPCLayers() const
return all RPC DetLayers, order: backward, barrel, forward