CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch9/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       PreshowerStrip( const GlobalPoint& po ,
00030                       const CornersMgr*  mgr,
00031                       const double*      parm ) :
00032          CaloCellGeometry ( po , mgr, parm ) {}
00033 
00034       virtual ~PreshowerStrip() {}
00035 
00036       virtual const CornersVec& getCorners() const ;
00037 
00038       const double dx() const { return param()[0] ; }
00039       const double dy() const { return param()[1] ; }
00040       const double dz() const { return param()[2] ; }
00041 
00042       virtual std::vector<HepGeom::Point3D<double> > vocalCorners( const double* pv,
00043                                                     HepGeom::Point3D<double> &   ref ) const 
00044       { return localCorners( pv, ref ) ; }
00045 
00046       static std::vector<HepGeom::Point3D<double> > localCorners( const double* pv, 
00047                                                    HepGeom::Point3D<double> &   ref ) ;
00048       virtual HepGeom::Transform3D getTransform( std::vector<HepGeom::Point3D<double> >* lptr ) const
00049       { return HepGeom::Transform3D() ; }
00050 
00051    private:
00052 };
00053 
00054 std::ostream& operator<<( std::ostream& s , const PreshowerStrip& cell) ;
00055 
00056 #endif