CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_13_patch3/src/Geometry/CaloGeometry/interface/PreshowerStrip.h

Go to the documentation of this file.
00001 #ifndef PreshowerStrip_h
00002 #define PreshowerStrip_h
00003 
00004 #include "Geometry/CaloGeometry/interface/CaloCellGeometry.h"
00005 #include <CLHEP/Geometry/Point3D.h>
00006 #include <CLHEP/Geometry/Plane3D.h>
00007 #include <CLHEP/Geometry/Vector3D.h>
00008 #include <CLHEP/Geometry/Transform3D.h>
00009 #include <vector>
00010 
00011 
00025 class PreshowerStrip : public CaloCellGeometry
00026 {
00027 public:
00028 
00029   typedef CaloCellGeometry::CCGFloat CCGFloat ;
00030   typedef CaloCellGeometry::Pt3D     Pt3D     ;
00031   typedef CaloCellGeometry::Pt3DVec  Pt3DVec  ;
00032   typedef CaloCellGeometry::Tr3D     Tr3D     ;
00033 
00034   PreshowerStrip() ;
00035 
00036   PreshowerStrip( const PreshowerStrip& tr ) ;
00037 
00038   PreshowerStrip& operator=( const PreshowerStrip& tr ) ;
00039 
00040   PreshowerStrip( const GlobalPoint& po   ,
00041                   const CornersMgr*  mgr  ,
00042                   const CCGFloat*    parm  ) :
00043     CaloCellGeometry ( po , mgr, parm ) {}
00044 
00045   virtual ~PreshowerStrip();
00046 
00047   virtual const CornersVec& getCorners() const ;
00048 
00049   CCGFloat dx() const { return param()[0] ; }
00050   CCGFloat dy() const { return param()[1] ; }
00051   CCGFloat dz() const { return param()[2] ; }
00052   CCGFloat tilt() const { return param()[3] ; }
00053 
00054   virtual void vocalCorners( Pt3DVec&        vec ,
00055                              const CCGFloat* pv  ,
00056                              Pt3D&           ref  ) const 
00057     { localCorners( vec, pv, ref ) ; }
00058 
00059   static void localCorners( Pt3DVec&        vec ,
00060                             const CCGFloat* pv  , 
00061                             Pt3D&           ref  ) ;
00062 
00063   virtual Tr3D getTransform( Pt3DVec* /*lptr*/ ) const
00064     { return Tr3D() ; }
00065 };
00066 
00067 std::ostream& operator<<( std::ostream& s , const PreshowerStrip& cell) ;
00068 
00069 #endif