CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_13_patch3/src/Geometry/DTGeometry/interface/DTLayer.h

Go to the documentation of this file.
00001 #ifndef DTLAYER_H
00002 #define DTLAYER_H
00003 
00017 /* Base Class Headers */
00018 #include "Geometry/CommonDetUnit/interface/GeomDetUnit.h"
00019 
00020 /* Collaborating Class Declarations */
00021 #include "DataFormats/MuonDetId/interface/DTLayerId.h"
00022 #include "Geometry/DTGeometry/interface/DTTopology.h"
00023 #include "Geometry/DTGeometry/interface/DTLayerType.h"
00024 class DTSuperLayer;
00025 class DTChamber;
00026 
00027 
00028 class DTLayer : public GeomDetUnit {
00029 
00030   public:
00031 
00032 /* Constructor */ 
00033     DTLayer(DTLayerId id,
00034             ReferenceCountingPointer<BoundPlane>& plane,
00035             const DTTopology& topo,
00036             const DTLayerType& type,
00037             const DTSuperLayer* sl=0) ;
00038 
00039 /* Destructor */ 
00040     virtual ~DTLayer() ;
00041 
00042 /* Operations */ 
00043     const Topology& topology() const;
00044 
00045     const GeomDetType& type() const;
00046 
00047     const DTTopology& specificTopology() const;
00048 
00050     DTLayerId id() const;
00051 
00054     const DTSuperLayer* superLayer() const ;
00055 
00058     const DTChamber* chamber() const;
00059 
00061     bool operator==(const DTLayer& l) const;
00062 
00064     virtual std::vector< const GeomDet*> components() const;
00065 
00066   private:
00067     DTLayerId   theId;
00068     DTTopology  theTopo;
00069     DTLayerType theType;
00070 
00071     const DTSuperLayer*   theSL;
00072   protected:
00073 
00074 };
00075 #endif // DTLAYER_H
00076