CMS 3D CMS Logo

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 */ 
00040     // Return the DetId of this SL
00041     virtual DetId geographicalId() const;
00042 
00044     DTSuperLayerId id() const;
00045 
00046     // Which subdetector
00047     virtual SubDetector subDetector() const {return GeomDetEnumerators::DT;}
00048 
00050     bool operator==(const DTSuperLayer& sl) const ;
00051 
00053     virtual std::vector< const GeomDet*> components() const;
00054 
00056     virtual const GeomDet* component(DetId id) const;
00057 
00059     const std::vector< const DTLayer*>& layers() const;
00060 
00062     void add(DTLayer* l);
00063 
00066     const DTChamber* chamber() const;
00067 
00069     const DTLayer* layer(DTLayerId id) const;
00070   
00073     const DTLayer* layer(int ilay) const;
00074 
00075 
00076   private:
00077     DTSuperLayerId theId;
00078     // The SL owns its Layer
00079     std::vector< const DTLayer*> theLayers;
00080     const DTChamber* theCh;
00081 
00082   protected:
00083 
00084 };
00085 #endif // DTSUPERLAYER_H
00086 

Generated on Tue Jun 9 17:37:20 2009 for CMSSW by  doxygen 1.5.4