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 
49  void add(ME0EtaPartition* roll);
50 
53  const ME0EtaPartition* etaPartition(ME0DetId id) const;
54 
55  const ME0EtaPartition* etaPartition(int isl) const;
56 
59  const std::vector<const ME0EtaPartition*>& etaPartitions() const;
60 
63  int nEtaPartitions() const;
64 
65  //For a line fit in the chamber frame, compute: global phi position extrapolated
66  //to the last layer - that extrapolated to the inner layer
67  float computeDeltaPhi(const LocalPoint& position, const LocalVector& direction) const;
68 
69 private:
71 
72  // vector of layers for a chamber
73  std::vector<const ME0Layer*> layers_;
74  // vector of eta partitions for a chamber
75  std::vector<const ME0EtaPartition*> etaPartitions_;
76 };
77 #endif
const ME0Layer * layer(ME0DetId id) const
Return the layer corresponding to the given id.
Definition: ME0Chamber.cc:28
bool operator==(const ME0Chamber &ch) const
equal if the id is the same
Definition: ME0Chamber.cc:14
ME0DetId id() const
Return the ME0DetId of this chamber.
Definition: ME0Chamber.cc:12
std::vector< const GeomDet * > components() const override
Return the rolls in the chamber.
Definition: ME0Chamber.cc:18
const ME0EtaPartition * etaPartition(ME0DetId id) const
Definition: ME0Chamber.cc:50
int nEtaPartitions() const
Definition: ME0Chamber.cc:48
std::vector< const ME0EtaPartition * > etaPartitions_
Definition: ME0Chamber.h:75
float computeDeltaPhi(const LocalPoint &position, const LocalVector &direction) const
Definition: ME0Chamber.cc:64
void add(ME0Layer *layer)
Add Layer to the chamber which takes ownership.
Definition: ME0Chamber.cc:16
int nLayers() const
Retunr numbers of layers.
Definition: ME0Chamber.cc:26
std::vector< const ME0Layer * > layers_
Definition: ME0Chamber.h:73
const std::vector< const ME0Layer * > & layers() const
Return the layers.
Definition: ME0Chamber.cc:24
const std::vector< const ME0EtaPartition * > & etaPartitions() const
Definition: ME0Chamber.cc:46
ME0Chamber(ME0DetId id, const ReferenceCountingPointer< BoundPlane > &plane)
Constructor.
Definition: ME0Chamber.cc:6
Definition: DetId.h:17
ME0DetId detId_
Definition: ME0Chamber.h:70
const Surface::PositionType & position() const
The position (origin of the R.F.)
Definition: GeomDet.h:43
SubDetector subDetector() const override
Which subdetector.
Definition: ME0Chamber.h:22
const GeomDet * component(DetId id) const override
Return the sub-component (roll) with a given id in this chamber.
Definition: ME0Chamber.cc:22
~ME0Chamber() override
Destructor.
Definition: ME0Chamber.cc:10