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* ) const
00064 { return Tr3D() ; }
00065 };
00066
00067 std::ostream& operator<<( std::ostream& s , const PreshowerStrip& cell) ;
00068
00069 #endif