2 #include "CLHEP/Geometry/Plane3D.h"
3 #include "CLHEP/Geometry/Transform3D.h"
25 if( &idct !=
this ) CaloCellGeometry::operator=( idct ) ;
55 return (
dxl()+
dxh() )/2. ;
119 assert( 8 == lc.size() ) ;
133 assert( 0 < (dxl*dxh) ) ;
135 lc[ 0 ] =
Pt3D ( -dx, -dy , dzb ) ;
136 lc[ 1 ] =
Pt3D ( -dx, +dy , dzs ) ;
137 lc[ 2 ] =
Pt3D ( +2*dxh -dx, +dy , dzs ) ;
138 lc[ 3 ] =
Pt3D ( +2*dxl -dx, -dy , dzb ) ;
139 lc[ 4 ] =
Pt3D ( -dx, -dy , -dzs ) ;
140 lc[ 5 ] =
Pt3D ( -dx, +dy , -dzb ) ;
141 lc[ 6 ] =
Pt3D ( +2*dxh -dx, +dy , -dzb ) ;
142 lc[ 7 ] =
Pt3D ( +2*dxl -dx, -dy , -dzs ) ;
144 ref = 0.25*( lc[0] + lc[1] + lc[2] + lc[3] ) ;
155 const CCGFloat zsign ( 0 < p.
z() ? 1. : -1. ) ;
161 const Pt3D lb ( lf.x() , lf.y() , lf.z() - 2.*
dz() ) ;
162 const Pt3D ls ( lf.x() -
dx(), lf.y(), lf.z() ) ;
166 const Pt3D gb (
gf.x() ,
gf.y() ,
gf.z() + 2.*zsign*
dz() ) ;
174 const Tr3D tr ( lf, lb,
ls,
177 for(
unsigned int i ( 0 ) ;
i != 8 ; ++
i )
179 const Pt3D gl ( tr*lc[
i] ) ;
188 s <<
"Center: " << cell.
getPosition() << std::endl ;
virtual ~IdealCastorTrapezoid()
CaloCellGeometry::Pt3D Pt3D
Sin< T >::type sin(const T &t)
Global3DPoint GlobalPoint
HepGeom::Transform3D Tr3D
std::vector< Pt3D > Pt3DVec
std::ostream & operator<<(std::ostream &out, const ALILine &li)
const CCGFloat * param() const
virtual void vocalCorners(Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref) const
Cos< T >::type cos(const T &t)
virtual const CornersVec & getCorners() const
Returns the corner points of this cell's volume.
IdealCastorTrapezoid & operator=(const IdealCastorTrapezoid &idct)
CaloCellGeometry::CCGFloat CCGFloat
CaloCellGeometry::Pt3D Pt3D
CaloCellGeometry::Pt3DVec Pt3DVec
HepGeom::Point3D< CCGFloat > Pt3D
CaloCellGeometry::Tr3D Tr3D
CornersVec & setCorners() const
bool uninitialized() const
static void localCorners(Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref)
const GlobalPoint & getPosition() const
Returns the position of reference for this cell.
virtual const CornersVec & getCorners() const =0
Returns the corner points of this cell's volume.