Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:14:39

0001 #ifndef Geometry_GEMGeometry_GEMRegion_h
0002 #define Geometry_GEMGeometry_GEMRegion_h
0003 
0004 /** \class GEMRegion
0005  *
0006  *  Model of a GEM Region
0007  *   
0008  *  A region has maximal 5 stations
0009  *
0010  *  \author S. Dildick
0011  */
0012 
0013 #include "Geometry/CommonDetUnit/interface/GeomDet.h"
0014 #include "DataFormats/MuonDetId/interface/GEMDetId.h"
0015 
0016 class GEMStation;
0017 class GEMSuperChamber;
0018 
0019 class GEMRegion {
0020 public:
0021   /// constructor
0022   GEMRegion(int region);
0023 
0024   /// destructor
0025   ~GEMRegion();
0026 
0027   /// Return the vector of GEMDetIds in this ring
0028   std::vector<GEMDetId> ids() const;
0029 
0030   /// equal if the id is the same
0031   bool operator==(const GEMRegion& reg) const;
0032 
0033   /// Add station to the region which takes ownership
0034   void add(GEMStation* st);
0035 
0036   /// Return the super chambers in the region
0037   std::vector<const GeomDet*> components() const;
0038 
0039   /// Return the sub-component (super chamber) with a given id in this region
0040   const GeomDet* component(DetId id) const;
0041 
0042   /// Return the super chamber corresponding to the given id
0043   const GEMSuperChamber* superChamber(GEMDetId id) const;
0044 
0045   /// Return the super chambers in the region
0046   std::vector<const GEMSuperChamber*> superChambers() const;
0047 
0048   /// Return a station
0049   const GEMStation* station(int st) const;
0050 
0051   /// Return all stations
0052   const std::vector<const GEMStation*>& stations() const;
0053 
0054   /// Return numbers of stations
0055   int nStations() const;
0056 
0057   /// Return the region
0058   int region() const;
0059 
0060 private:
0061   int region_;
0062   // vector of stations for a region
0063   std::vector<const GEMStation*> stations_;
0064 };
0065 #endif