00001 #ifndef Geometry_ForwardGeometry_IdealCastorTrapezoid_H 00002 #define Geometry_ForwardGeometry_IdealCastorTrapezoid_H 1 00003 00004 #include "Geometry/CaloGeometry/interface/CaloCellGeometry.h" 00005 00033 class IdealCastorTrapezoid: public CaloCellGeometry 00034 { 00035 public: 00036 00037 typedef CaloCellGeometry::CCGFloat CCGFloat ; 00038 typedef CaloCellGeometry::Pt3D Pt3D ; 00039 typedef CaloCellGeometry::Pt3DVec Pt3DVec ; 00040 typedef CaloCellGeometry::Tr3D Tr3D ; 00041 00042 IdealCastorTrapezoid() ; 00043 00044 IdealCastorTrapezoid( const IdealCastorTrapezoid& idct ) ; 00045 00046 IdealCastorTrapezoid& operator=( const IdealCastorTrapezoid& idct ) ; 00047 00048 IdealCastorTrapezoid( const GlobalPoint& faceCenter, 00049 const CornersMgr* mgr , 00050 const CCGFloat* parm ) ; 00051 00052 virtual ~IdealCastorTrapezoid() ; 00053 00054 virtual const CornersVec& getCorners() const; 00055 00056 CCGFloat dxl() const ; 00057 CCGFloat dxh() const ; 00058 CCGFloat dx() const ; 00059 CCGFloat dh() const ; 00060 CCGFloat dy() const ; 00061 CCGFloat dz() const ; 00062 CCGFloat dhz() const ; 00063 CCGFloat dzb() const ; 00064 CCGFloat dzs() const ; 00065 CCGFloat an() const ; 00066 CCGFloat dR() const ; 00067 00068 virtual void vocalCorners( Pt3DVec& vec , 00069 const CCGFloat* pv , 00070 Pt3D& ref ) const ; 00071 00072 static void localCorners( Pt3DVec& vec , 00073 const CCGFloat* pv , 00074 Pt3D& ref ) ; 00075 private: 00076 }; 00077 00078 std::ostream& operator<<( std::ostream& s , const IdealCastorTrapezoid& cell ) ; 00079 00080 #endif