CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/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/Plane.h"
00005 #include "DataFormats/GeometrySurface/interface/SimpleDiskBounds.h"
00006 
00021 class Disk GCC11_FINAL : public Plane {
00022 public:
00023 
00024   /*
00025   template<typename... Args>
00026     Disk(Args&& ... args) :
00027     Plane(std::forward<Args>(args)...){}
00028   */
00029 
00030   Disk(const PositionType& pos, const RotationType& rot, SimpleDiskBounds * bounds) :
00031     Plane(pos,rot, bounds){}
00032 
00033   Disk(const PositionType& pos, const RotationType& rot, SimpleDiskBounds const & bounds) :
00034     Plane(pos,rot, bounds.clone()){}
00035 
00036   typedef ReferenceCountingPointer<Disk> DiskPointer;
00037   typedef ConstReferenceCountingPointer<Disk> ConstDiskPointer;
00038   typedef ReferenceCountingPointer<Disk> BoundDiskPointer;
00039   typedef ConstReferenceCountingPointer<Disk> ConstBoundDiskPointer;
00040 
00041  template<typename... Args>
00042   static DiskPointer build(Args&& ... args) {
00043     return DiskPointer(new Disk(std::forward<Args>(args)...));
00044   }
00045 
00046 
00047   virtual ~Disk() {}
00048 
00049 
00050   // -- DEPRECATED CONSTRUCTORS
00051 
00052 
00053 
00054   // -- Extension of the Surface interface for disk
00055 
00057   float innerRadius() const { return static_cast<const SimpleDiskBounds&>(bounds()).innerRadius();}
00058 
00060   float outerRadius() const  { return static_cast<const SimpleDiskBounds&>(bounds()).outerRadius();}
00061 
00062 
00063 };
00064 using BoundDisk=Disk;
00065 
00066 #endif // Geom_BoundDisk_H