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 float* parm ) : 00036 CaloCellGeometry ( faceCenter, mgr ), 00037 m_parms ( parm ) {} 00038 00039 virtual ~IdealZPrism() {} 00040 00041 virtual bool inside( const GlobalPoint & point ) const ; 00042 00043 virtual const CornersVec& getCorners() const ; 00044 00045 float dEta() const { return param()[0] ; } 00046 float dPhi() const { return param()[1] ; } 00047 float dz() const { return param()[2] ; } 00048 00049 private: 00050 00051 const float* param() const { return m_parms ; } 00052 00053 const float* m_parms ; 00054 }; 00055 00056 std::ostream& operator<<( std::ostream& s , const IdealZPrism& cell ) ; 00057 } 00058 00059 00060 #endif