CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch13/src/DataFormats/GeometrySurface/interface/BoundDisk.h

Go to the documentation of this file.
00001 #ifndef Geom_BoundDisk_H
00002 #define Geom_BoundDisk_H
00003 
00004 #include "DataFormats/GeometrySurface/interface/BoundPlane.h"
00005 
00020 class BoundDisk : public BoundPlane {
00021 public:
00022 
00023   typedef ReferenceCountingPointer<BoundDisk> BoundDiskPointer;
00024   typedef ConstReferenceCountingPointer<BoundDisk> ConstBoundDiskPointer;
00025 
00026 
00029   static BoundDiskPointer build(const PositionType& pos, 
00030                                 const RotationType& rot, 
00031                                 Bounds* bounds,
00032                                 MediumProperties* mp=0) {
00033     return BoundDiskPointer(new BoundDisk(pos, rot, bounds, mp));
00034   }
00035   
00036 
00039   static BoundDiskPointer build(const PositionType& pos, 
00040                                 const RotationType& rot, 
00041                                 Bounds& bounds,
00042                                 MediumProperties* mp=0) {
00043     return BoundDiskPointer(new BoundDisk(pos, rot, &bounds, mp));
00044   }
00045 
00046   virtual ~BoundDisk() {}
00047 
00048 
00049   // -- DEPRECATED CONSTRUCTORS
00050 
00054   BoundDisk(const PositionType& pos, 
00055             const RotationType& rot, 
00056             Bounds* bounds) :
00057     Surface(pos,rot), BoundPlane( pos, rot, bounds) {}
00058 
00062   BoundDisk(const PositionType& pos, 
00063             const RotationType& rot, 
00064             const Bounds& bounds) :
00065     Surface(pos,rot), BoundPlane( pos, rot, bounds) {}
00066 
00067 
00068   // -- Extension of the Surface interface for disk
00069 
00071   float innerRadius() const;
00072 
00074   float outerRadius() const;
00075 
00076  protected:
00077   // Private constructor - use build() instead
00078   BoundDisk(const PositionType& pos, 
00079             const RotationType& rot, 
00080             Bounds* bounds,
00081             MediumProperties* mp=0) :
00082     Surface(pos, rot, mp), BoundPlane(pos, rot, bounds, mp) {}
00083 
00084 };
00085 
00086 
00087 #endif // Geom_BoundDisk_H