CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
IdealCastorTrapezoid.h
Go to the documentation of this file.
1 #ifndef Geometry_ForwardGeometry_IdealCastorTrapezoid_H
2 #define Geometry_ForwardGeometry_IdealCastorTrapezoid_H 1
3 
5 
6 namespace calogeom {
35  {
36  public:
37 
38  IdealCastorTrapezoid( const GlobalPoint& faceCenter,
39  const CornersMgr* mgr ,
40  const double* parm ) :
41  CaloCellGeometry ( faceCenter, mgr, parm ) {}
42 
43  virtual ~IdealCastorTrapezoid() {}
44 
45  virtual const CornersVec& getCorners() const;
46 
47  const double dxl() const { return param()[0] ; }
48  const double dxh() const { return param()[1] ; }
49  const double dx() const { return ( dxl()+dxh() )/2. ; }
50  const double dh() const { return param()[2] ; }
51  const double dy() const { return dh()*sin(an()) ; }
52  const double dz() const { return param()[3] ; }
53  const double dhz() const { return dh()*cos(an()) ; }
54  const double dzb() const { return dz() + dhz() ; }
55  const double dzs() const { return dz() - dhz() ; }
56  const double an() const { return param()[4] ; }
57  const double dR() const { return param()[5] ; }
58 
59  virtual std::vector<HepGeom::Point3D<double> > vocalCorners( const double* pv,
60  HepGeom::Point3D<double> & ref ) const
61  { return localCorners( pv, ref ) ; }
62 
63  static std::vector<HepGeom::Point3D<double> > localCorners( const double* pv,
64  HepGeom::Point3D<double> & ref ) ;
65  private:
66  };
67 
68  std::ostream& operator<<( std::ostream& s , const IdealCastorTrapezoid& cell ) ;
69 }
70 
71 #endif
EZArrayFL< GlobalPoint > CornersVec
static std::vector< HepGeom::Point3D< double > > localCorners(const double *pv, HepGeom::Point3D< double > &ref)
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
virtual const CornersVec & getCorners() const
const double * param() const
IdealCastorTrapezoid(const GlobalPoint &faceCenter, const CornersMgr *mgr, const double *parm)
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
virtual std::vector< HepGeom::Point3D< double > > vocalCorners(const double *pv, HepGeom::Point3D< double > &ref) const
Definition: EZMgrFL.h:8
std::ostream & operator<<(std::ostream &s, const IdealObliquePrism &cell)
string s
Definition: asciidump.py:422