CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_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       const CCGFloat dx() const { return param()[0] ; }
00050       const CCGFloat dy() const { return param()[1] ; }
00051       const CCGFloat dz() const { return param()[2] ; }
00052       const 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    private:
00067 };
00068 
00069 std::ostream& operator<<( std::ostream& s , const PreshowerStrip& cell) ;
00070 
00071 #endif