Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 13:02:59

0001 #ifndef Geometry_GEMGeometry_GEMStation_h
0002 #define Geometry_GEMGeometry_GEMStation_h
0003 
0004 /** \class GEMStation
0005  *
0006  *  Model of a GEM Station
0007  *   
0008  *  A station is composed of maximal 3 rings
0009  *
0010  *  \author S. Dildick
0011  */
0012 
0013 #include "Geometry/CommonDetUnit/interface/GeomDet.h"
0014 #include "DataFormats/MuonDetId/interface/GEMDetId.h"
0015 #include "Geometry/GEMGeometry/interface/GEMRing.h"
0016 
0017 class GEMSuperChamber;
0018 
0019 class GEMStation {
0020 public:
0021   /// constructor
0022   GEMStation(int region, int station);
0023 
0024   /// destructor
0025   ~GEMStation();
0026 
0027   /// Return the vector of GEMDetIds in this station
0028   std::vector<GEMDetId> ids() const;
0029 
0030   /// equal if the id is the same
0031   bool operator==(const GEMStation& st) const;
0032 
0033   /// Add ring to the station which takes ownership
0034   void add(GEMRing* ring);
0035 
0036   /// Return the super chambers in the station
0037   std::vector<const GeomDet*> components() const;
0038 
0039   /// Return the sub-component (super chamber) with a given id in this station
0040   const GeomDet* component(DetId id) const;
0041 
0042   /// Return the 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   /// Get a ring
0049   const GEMRing* ring(int ring) const;
0050 
0051   /// Return the rings in the station
0052   const std::vector<const GEMRing*>& rings() const;
0053 
0054   /// Return numbers of rings for this station
0055   int nRings() const;
0056 
0057   /// Set the station name
0058   void setName(std::string name);
0059 
0060   /// Set the station name
0061   const std::string getName() const;
0062 
0063   /// Get the region
0064   int region() const;
0065 
0066   /// Get the station
0067   int station() const;
0068 
0069 private:
0070   int region_;
0071   int station_;
0072 
0073   // vector of rings for a station
0074   std::vector<const GEMRing*> rings_;
0075   std::string name_;
0076 };
0077 #endif