CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_0/src/Geometry/ForwardGeometry/interface/IdealCastorTrapezoid.h

Go to the documentation of this file.
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