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
Vector3DBase< float, LocalTag >
GeomDet::position
const Surface::PositionType & position() const
The position (origin of the R.F.)
Definition: GeomDet.h:43
GeomDetEnumerators::SubDetector
SubDetector
Definition: GeomDetEnumerators.h:10
ME0Chamber::ME0Chamber
ME0Chamber(ME0DetId id, const ReferenceCountingPointer< BoundPlane > &plane)
Constructor.
Definition: ME0Chamber.cc:6
GeomDet
Definition: GeomDet.h:27
ME0Chamber::detId_
ME0DetId detId_
Definition: ME0Chamber.h:70
ME0DetId.h
ME0Chamber::components
std::vector< const GeomDet * > components() const override
Return the rolls in the chamber.
Definition: ME0Chamber.cc:18
ME0Chamber::add
void add(ME0Layer *layer)
Add Layer to the chamber which takes ownership.
Definition: ME0Chamber.cc:16
ME0Chamber::computeDeltaPhi
float computeDeltaPhi(const LocalPoint &position, const LocalVector &direction) const
Definition: ME0Chamber.cc:64
ME0Chamber::subDetector
SubDetector subDetector() const override
Which subdetector.
Definition: ME0Chamber.h:22
ReferenceCountingPointer
Definition: ReferenceCounted.h:60
DetId
Definition: DetId.h:17
ME0Chamber::nLayers
int nLayers() const
Retunr numbers of layers.
Definition: ME0Chamber.cc:26
ME0Chamber::etaPartition
const ME0EtaPartition * etaPartition(ME0DetId id) const
Definition: ME0Chamber.cc:50
ME0Chamber::component
const GeomDet * component(DetId id) const override
Return the sub-component (roll) with a given id in this chamber.
Definition: ME0Chamber.cc:22
Point3DBase< float, LocalTag >
ME0Chamber::layer
const ME0Layer * layer(ME0DetId id) const
Return the layer corresponding to the given id.
Definition: ME0Chamber.cc:28
ME0Chamber::~ME0Chamber
~ME0Chamber() override
Destructor.
Definition: ME0Chamber.cc:10
ME0Layer
Definition: ME0Layer.h:9
ME0Chamber::layers
const std::vector< const ME0Layer * > & layers() const
Return the layers.
Definition: ME0Chamber.cc:24
ME0Chamber
Definition: ME0Chamber.h:10
ME0DetId
Definition: ME0DetId.h:16
GeomDet.h
ME0Chamber::layers_
std::vector< const ME0Layer * > layers_
Definition: ME0Chamber.h:73
ME0Chamber::operator==
bool operator==(const ME0Chamber &ch) const
equal if the id is the same
Definition: ME0Chamber.cc:14
GeomDetEnumerators::ME0
Definition: GeomDetEnumerators.h:22
ME0Chamber::etaPartitions_
std::vector< const ME0EtaPartition * > etaPartitions_
Definition: ME0Chamber.h:75
ME0Chamber::etaPartitions
const std::vector< const ME0EtaPartition * > & etaPartitions() const
Definition: ME0Chamber.cc:46
ME0Chamber::id
ME0DetId id() const
Return the ME0DetId of this chamber.
Definition: ME0Chamber.cc:12
ME0EtaPartition
Definition: ME0EtaPartition.h:12
ME0Chamber::nEtaPartitions
int nEtaPartitions() const
Definition: ME0Chamber.cc:48