CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch9/src/Geometry/CaloGeometry/interface/IdealObliquePrism.h

Go to the documentation of this file.
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