00001 #ifndef Geometry_ForwardGeometry_IdealZDCTrapezoid_H 00002 #define Geometry_ForwardGeometry_IdealZDCTrapezoid_H 1 00003 00004 #include "Geometry/CaloGeometry/interface/CaloCellGeometry.h" 00005 00023 class IdealZDCTrapezoid: public CaloCellGeometry 00024 { 00025 public: 00026 00027 typedef CaloCellGeometry::CCGFloat CCGFloat ; 00028 typedef CaloCellGeometry::Pt3D Pt3D ; 00029 typedef CaloCellGeometry::Pt3DVec Pt3DVec ; 00030 typedef CaloCellGeometry::Tr3D Tr3D ; 00031 00032 IdealZDCTrapezoid() ; 00033 00034 IdealZDCTrapezoid( const IdealZDCTrapezoid& idzt ) ; 00035 00036 IdealZDCTrapezoid& operator=( const IdealZDCTrapezoid& idzt ) ; 00037 00038 IdealZDCTrapezoid( const GlobalPoint& faceCenter, 00039 const CornersMgr* mgr , 00040 const CCGFloat* parm ) ; 00041 00042 virtual ~IdealZDCTrapezoid() ; 00043 00044 virtual const CornersVec& getCorners() const ; 00045 00046 CCGFloat an() const ; 00047 CCGFloat dx() const ; 00048 CCGFloat dy() const ; 00049 CCGFloat dz() const ; 00050 CCGFloat ta() const ; 00051 CCGFloat dt() const ; 00052 00053 virtual void vocalCorners( Pt3DVec& vec , 00054 const CCGFloat* pv , 00055 Pt3D& ref ) const ; 00056 00057 static void localCorners( Pt3DVec& vec , 00058 const CCGFloat* pv , 00059 Pt3D& ref ) ; 00060 00061 private: 00062 }; 00063 00064 std::ostream& operator<<( std::ostream& s , const IdealZDCTrapezoid& cell ) ; 00065 00066 #endif