Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 13:03:00

0001 #ifndef Geometry_GEMGeometry_ME0Layer_h
0002 #define Geometry_GEMGeometry_ME0Layer_h
0003 
0004 #include "Geometry/CommonDetUnit/interface/GeomDet.h"
0005 #include "DataFormats/MuonDetId/interface/ME0DetId.h"
0006 
0007 class ME0EtaPartition;
0008 
0009 class ME0Layer : public GeomDet {
0010 public:
0011   /// Constructor
0012   ME0Layer(ME0DetId id, const ReferenceCountingPointer<BoundPlane>& plane);
0013 
0014   /// Destructor
0015   ~ME0Layer() override;
0016 
0017   /// Return the ME0DetId of this layer
0018   ME0DetId id() const;
0019 
0020   // Which subdetector
0021   SubDetector subDetector() const override { return GeomDetEnumerators::ME0; }
0022 
0023   /// equal if the id is the same
0024   bool operator==(const ME0Layer& ch) const;
0025 
0026   /// Add EtaPartition to the layer which takes ownership
0027   void add(const ME0EtaPartition* roll);
0028 
0029   /// Return the rolls in the layer
0030   std::vector<const GeomDet*> components() const override;
0031 
0032   /// Return the sub-component (roll) with a given id in this layer
0033   const GeomDet* component(DetId id) const override;
0034 
0035   /// Return the eta partition corresponding to the given id
0036   const ME0EtaPartition* etaPartition(ME0DetId id) const;
0037 
0038   const ME0EtaPartition* etaPartition(int isl) const;
0039 
0040   /// Return the eta partitions
0041   const std::vector<const ME0EtaPartition*>& etaPartitions() const;
0042 
0043   /// Retunr numbers of eta partitions
0044   int nEtaPartitions() const;
0045 
0046 private:
0047   ME0DetId detId_;
0048 
0049   // vector of eta partitions for a layer
0050   std::vector<const ME0EtaPartition*> etaPartitions_;
0051 };
0052 #endif