00001 #ifndef GEOMETRY_CALOGEOMETRY_IDEALOBLIQUEPRISM_H 00002 #define GEOMETRY_CALOGEOMETRY_IDEALOBLIQUEPRISM_H 1 00003 00004 #include "Geometry/CaloGeometry/interface/CaloCellGeometry.h" 00005 00006 namespace calogeom { 00031 class IdealObliquePrism : public CaloCellGeometry 00032 { 00033 public: 00034 00035 IdealObliquePrism( const GlobalPoint& faceCenter, 00036 const CornersMgr* mgr , 00037 const double* parm ) : 00038 CaloCellGeometry ( faceCenter, mgr, parm ) {} 00039 00040 virtual ~IdealObliquePrism() {} 00041 00042 virtual const CornersVec& getCorners() const ; 00043 00044 double dEta() const { return param()[0] ; } 00045 double dPhi() const { return param()[1] ; } 00046 double dz() const { return param()[2] ; } 00047 double eta() const { return param()[3] ; } 00048 double z() const { return param()[4] ; } 00049 00050 static std::vector<HepGeom::Point3D<double> > localCorners( const double* pv, 00051 HepGeom::Point3D<double> & ref ) ; 00052 00053 virtual std::vector<HepGeom::Point3D<double> > vocalCorners( const double* pv, 00054 HepGeom::Point3D<double> & ref ) const 00055 { return localCorners( pv, ref ) ; } 00056 00057 private: 00058 }; 00059 00060 std::ostream& operator<<( std::ostream& s , const IdealObliquePrism& cell ) ; 00061 } 00062 00063 00064 #endif