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