CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC4_patch1/src/Geometry/CaloGeometry/interface/IdealZPrism.h

Go to the documentation of this file.
00001 #ifndef GEOMETRY_CALOGEOMETRY_IDEALZPRISM_H
00002 #define GEOMETRY_CALOGEOMETRY_IDEALZPRISM_H 1
00003 
00004 #include "Geometry/CaloGeometry/interface/CaloCellGeometry.h"
00005 
00027 class IdealZPrism : public CaloCellGeometry 
00028 {
00029    public:
00030       
00031       typedef CaloCellGeometry::CCGFloat CCGFloat ;
00032       typedef CaloCellGeometry::Pt3D     Pt3D     ;
00033       typedef CaloCellGeometry::Pt3DVec  Pt3DVec  ;
00034       
00035       IdealZPrism() ;
00036       
00037       IdealZPrism( const IdealZPrism& idzp ) ;
00038       
00039       IdealZPrism& operator=( const IdealZPrism& idzp ) ;
00040       
00041       IdealZPrism( const GlobalPoint& faceCenter , 
00042                    const CornersMgr*  mgr        ,
00043                    const CCGFloat*    parm         ) ;
00044       
00045       virtual ~IdealZPrism() ;
00046       
00047       virtual const CornersVec& getCorners() const ;
00048       
00049       CCGFloat dEta() const ;
00050       CCGFloat dPhi() const ;
00051       CCGFloat dz()   const ;
00052       CCGFloat eta()  const ;
00053       CCGFloat z()    const ;
00054       
00055       static void localCorners( Pt3DVec&        vec ,
00056                                 const CCGFloat* pv  ,
00057                                 Pt3D&           ref   ) ;
00058       
00059       virtual void vocalCorners( Pt3DVec&        vec ,
00060                                  const CCGFloat* pv  ,
00061                                  Pt3D&           ref   ) const ;
00062       
00063    private:
00064 
00065       static GlobalPoint etaPhiR( float eta ,
00066                                   float phi ,
00067                                   float rad   ) ;
00068 
00069       static GlobalPoint etaPhiPerp( float eta , 
00070                                      float phi , 
00071                                      float perp  ) ;
00072 
00073       static GlobalPoint etaPhiZ( float eta , 
00074                                   float phi ,
00075                                   float z    ) ;
00076 };
00077 
00078 std::ostream& operator<<( std::ostream& s , const IdealZPrism& cell ) ;
00079 
00080 #endif