CMS 3D CMS Logo

Cylinder.h

Go to the documentation of this file.
00001 #ifndef Geom_Cylinder_H
00002 #define Geom_Cylinder_H
00003 
00017 #include "DataFormats/GeometrySurface/interface/Surface.h"
00018 #include "boost/intrusive_ptr.hpp" 
00019 
00020 class Cylinder : public virtual Surface {
00021 public:
00022   typedef ReferenceCountingPointer<Cylinder> CylinderPointer;
00023   typedef ConstReferenceCountingPointer<Cylinder> ConstCylinderPointer;
00024 
00025 
00029   static CylinderPointer build(const PositionType& pos,
00030                                const RotationType& rot,
00031                                Scalar radius,
00032                                MediumProperties* mp=0) {
00033     return CylinderPointer(new Cylinder(pos, rot, radius, mp));
00034   }
00035 
00036 
00037   // -- DEPRECATED CONSTRUCTORS
00038 
00042   Cylinder( const PositionType& pos, const RotationType& rot, Scalar radius) :
00043     Surface( pos, rot), theRadius(radius) {}
00044 
00048   Cylinder( const PositionType& pos, const RotationType& rot, Scalar radius,
00049          MediumProperties* mp) : 
00050     Surface( pos, rot, mp), theRadius(radius) {}
00051 
00052   // -- Extension of Surface interface for cylinder
00053 
00055   Scalar radius() const {return theRadius;}
00056 
00057   // -- Implementation of Surface interface    
00058 
00059   using Surface::side;
00060   virtual Side side( const LocalPoint& p, Scalar toler) const;
00061 
00063   virtual ReferenceCountingPointer<TangentPlane> tangentPlane (const GlobalPoint&) const;
00065   virtual ReferenceCountingPointer<TangentPlane> tangentPlane (const LocalPoint&) const;
00066 
00067 
00068 private:
00069 
00070   Scalar theRadius;
00071 
00072 };
00073 
00074 #endif

Generated on Tue Jun 9 17:30:50 2009 for CMSSW by  doxygen 1.5.4