CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_1/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 
00030 class IdealObliquePrism : public CaloCellGeometry 
00031 {
00032 public:
00033 
00034   typedef CaloCellGeometry::CCGFloat CCGFloat ;
00035   typedef CaloCellGeometry::Pt3D     Pt3D     ;
00036   typedef CaloCellGeometry::Pt3DVec  Pt3DVec  ;
00037 
00038   IdealObliquePrism() ;
00039   IdealObliquePrism( const IdealObliquePrism& idop ) ;
00040 
00041   IdealObliquePrism& operator=( const IdealObliquePrism& idop ) ;
00042          
00043   IdealObliquePrism( const GlobalPoint& faceCenter, 
00044                      const CornersMgr*  mgr       ,
00045                      const CCGFloat*    parm       ) ;
00046 
00047   virtual ~IdealObliquePrism() ;
00048 
00049   virtual const CornersVec& getCorners() const ;
00050 
00051   CCGFloat dEta() const ;
00052   CCGFloat dPhi() const ;
00053   CCGFloat dz()   const ;
00054   CCGFloat eta()  const ;
00055   CCGFloat z()    const ;
00056 
00057   static void localCorners( Pt3DVec&        vec ,
00058                             const CCGFloat* pv  ,
00059                             Pt3D&           ref  ) ;
00060 
00061   virtual void vocalCorners( Pt3DVec&        vec ,
00062                              const CCGFloat* pv  ,
00063                              Pt3D&           ref  ) const ;
00064 
00065 private:
00066 
00067   static GlobalPoint etaPhiPerp( float eta, float phi, float perp ) ;
00068   static GlobalPoint etaPhiZ(float eta, float phi, float z) ;
00069 };
00070 
00071 std::ostream& operator<<( std::ostream& s , const IdealObliquePrism& cell ) ;
00072 
00073 #endif