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