CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/Geometry/DTGeometry/interface/DTSuperLayer.h

Go to the documentation of this file.
00001 #ifndef DTSUPERLAYER_H
00002 #define DTSUPERLAYER_H
00003 
00016 /* Base Class Headers */
00017 #include "Geometry/CommonDetUnit/interface/GeomDet.h"
00018 
00019 /* Collaborating Class Declarations */
00020 #include "DataFormats/MuonDetId/interface/DTSuperLayerId.h"
00021 #include "DataFormats/MuonDetId/interface/DTLayerId.h"
00022 
00023 class DTLayer;
00024 class DTChamber;
00025 
00026 
00027 class DTSuperLayer : public GeomDet {
00028 
00029   public:
00030 
00031 /* Constructor */ 
00032     DTSuperLayer(DTSuperLayerId id,
00033                  ReferenceCountingPointer<BoundPlane>& plane,
00034                  const DTChamber* ch=0);
00035 
00036 /* Destructor */ 
00037     virtual ~DTSuperLayer() ;
00038 
00039 /* Operations */ 
00041     DTSuperLayerId id() const;
00042 
00043     // Which subdetector
00044     virtual SubDetector subDetector() const {return GeomDetEnumerators::DT;}
00045 
00047     bool operator==(const DTSuperLayer& sl) const ;
00048 
00050     virtual std::vector< const GeomDet*> components() const;
00051 
00053     virtual const GeomDet* component(DetId id) const;
00054 
00056     const std::vector< const DTLayer*>& layers() const;
00057 
00059     void add(DTLayer* l);
00060 
00063     const DTChamber* chamber() const;
00064 
00066     const DTLayer* layer(DTLayerId id) const;
00067   
00070     const DTLayer* layer(int ilay) const;
00071 
00072 
00073   private:
00074     DTSuperLayerId theId;
00075     // The SL owns its Layer
00076     std::vector< const DTLayer*> theLayers;
00077     const DTChamber* theCh;
00078 
00079   protected:
00080 
00081 };
00082 #endif // DTSUPERLAYER_H
00083