CMS 3D CMS Logo

ME0Chamber.h
Go to the documentation of this file.
1 #ifndef Geometry_GEMGeometry_ME0Chamber_h
2 #define Geometry_GEMGeometry_ME0Chamber_h
3 
6 
7 class ME0Layer;
8 class ME0EtaPartition;
9 
10 class ME0Chamber : public GeomDet {
11 public:
14 
16  ~ME0Chamber() override;
17 
19  ME0DetId id() const;
20 
21  // Which subdetector
22  SubDetector subDetector() const override {return GeomDetEnumerators::ME0;}
23 
25  bool operator==(const ME0Chamber& ch) const;
26 
28  void add(ME0Layer* layer);
29 
31  std::vector<const GeomDet*> components() const override;
32 
34  const GeomDet* component(DetId id) const override;
35 
37  const ME0Layer* layer(ME0DetId id) const;
38 
39  const ME0Layer* layer(int isl) const;
40 
42  const std::vector<const ME0Layer*>& layers() const;
43 
45  int nLayers() const;
46 
47 
50  void add(ME0EtaPartition* roll);
51 
54  const ME0EtaPartition* etaPartition(ME0DetId id) const;
55 
56  const ME0EtaPartition* etaPartition(int isl) const;
57 
60  const std::vector<const ME0EtaPartition*>& etaPartitions() const;
61 
64  int nEtaPartitions() const;
65 
66  //For a line fit in the chamber frame, compute: global phi position extrapolated
67  //to the last layer - that extrapolated to the inner layer
68  float computeDeltaPhi(const LocalPoint& position, const LocalVector& direction ) const;
69 
70 
71 
72 private:
73 
75 
76  // vector of layers for a chamber
77  std::vector<const ME0Layer*> layers_;
78  // vector of eta partitions for a chamber
79  std::vector<const ME0EtaPartition*> etaPartitions_;
80 };
81 #endif
int nLayers() const
Retunr numbers of layers.
Definition: ME0Chamber.cc:38
const std::vector< const ME0EtaPartition * > & etaPartitions() const
Definition: ME0Chamber.cc:61
int nEtaPartitions() const
Definition: ME0Chamber.cc:65
const ME0Layer * layer(ME0DetId id) const
Return the layer corresponding to the given id.
Definition: ME0Chamber.cc:42
std::vector< const ME0EtaPartition * > etaPartitions_
Definition: ME0Chamber.h:79
const GeomDet * component(DetId id) const override
Return the sub-component (roll) with a given id in this chamber.
Definition: ME0Chamber.cc:30
std::vector< const GeomDet * > components() const override
Return the rolls in the chamber.
Definition: ME0Chamber.cc:26
SubDetector subDetector() const override
Which subdetector.
Definition: ME0Chamber.h:22
ME0DetId id() const
Return the ME0DetId of this chamber.
Definition: ME0Chamber.cc:14
void add(ME0Layer *layer)
Add Layer to the chamber which takes ownership.
Definition: ME0Chamber.cc:22
std::vector< const ME0Layer * > layers_
Definition: ME0Chamber.h:77
const Surface::PositionType & position() const
The position (origin of the R.F.)
Definition: GeomDet.h:48
float computeDeltaPhi(const LocalPoint &position, const LocalVector &direction) const
Definition: ME0Chamber.cc:82
ME0Chamber(ME0DetId id, const ReferenceCountingPointer< BoundPlane > &plane)
Constructor.
Definition: ME0Chamber.cc:6
const ME0EtaPartition * etaPartition(ME0DetId id) const
Definition: ME0Chamber.cc:69
Definition: DetId.h:18
ME0DetId detId_
Definition: ME0Chamber.h:74
bool operator==(const ME0Chamber &ch) const
equal if the id is the same
Definition: ME0Chamber.cc:18
const std::vector< const ME0Layer * > & layers() const
Return the layers.
Definition: ME0Chamber.cc:34
~ME0Chamber() override
Destructor.
Definition: ME0Chamber.cc:12