CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch13/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 
00006 namespace calogeom 
00007 {
00029    class IdealZPrism : public CaloCellGeometry 
00030    {
00031       public:
00032 
00033          IdealZPrism( const GlobalPoint& faceCenter , 
00034                       const CornersMgr*  mgr ,
00035                       const double*      parm          )  : 
00036             CaloCellGeometry ( faceCenter, mgr, parm )   {}
00037 
00038          virtual ~IdealZPrism() {}
00039 
00040          virtual const CornersVec& getCorners()           const ;
00041 
00042          double dEta() const { return param()[0] ; }
00043          double dPhi() const { return param()[1] ; }
00044          double dz()   const { return param()[2] ; }
00045          double eta()  const { return param()[3] ; }
00046          double z()    const { return param()[4] ; }
00047 
00048          static std::vector<HepGeom::Point3D<double> > localCorners( const double* pv,
00049                                                       HepGeom::Point3D<double> &   ref ) ;
00050 
00051          virtual std::vector<HepGeom::Point3D<double> > vocalCorners( const double* pv,
00052                                                        HepGeom::Point3D<double> &   ref ) const 
00053          { return localCorners( pv, ref ) ; }
00054 
00055       private:
00056    };
00057 
00058    std::ostream& operator<<( std::ostream& s , const IdealZPrism& cell ) ;
00059 }
00060 
00061 
00062 #endif