22 if( &idzt !=
this ) CaloCellGeometry::operator=( idzt ) ;
81 assert( 8 == lc.size() ) ;
91 lc[0] =
Pt3D ( -dx, -dy, +dz+dt ) ;
92 lc[1] =
Pt3D ( -dx, +dy, +dz-dt ) ;
93 lc[2] =
Pt3D ( +dx, +dy, +dz-dt ) ;
94 lc[3] =
Pt3D ( +dx, -dy, +dz+dt ) ;
95 lc[4] =
Pt3D ( -dx, -dy, -dz+dt ) ;
96 lc[5] =
Pt3D ( -dx, +dy, -dz-dt ) ;
97 lc[6] =
Pt3D ( +dx, +dy, -dz-dt ) ;
98 lc[7] =
Pt3D ( +dx, -dy, -dz+dt ) ;
100 ref = 0.25*( lc[0] + lc[1] + lc[2] + lc[3] ) ;
111 const CCGFloat zsign ( 0 < p.
z() ? 1. : -1. ) ;
117 const Pt3D lb ( lf.x() , lf.y() , lf.z() - 2.*
dz() ) ;
118 const Pt3D ls ( lf.x() -
dx(), lf.y(), lf.z() ) ;
120 const Pt3D gb (
gf.x() ,
gf.y() ,
gf.z() + 2.*zsign*
dz() ) ;
122 const Pt3D gs (
gf.x() - zsign*
dx(),
126 const HepGeom::Transform3D tr ( lf, lb,
ls,
129 for(
unsigned int i ( 0 ) ;
i != 8 ; ++
i )
131 const Pt3D gl ( tr*lc[
i] ) ;
140 s <<
"Center: " << cell.
getPosition() << std::endl ;
141 s <<
"TiltAngle = " << cell.
an()*180./
M_PI <<
" deg, dx = "
143 <<
", dy = " << cell.
dy() <<
", dz = " << cell.
dz() << std::endl ;
virtual ~IdealZDCTrapezoid()
Global3DPoint GlobalPoint
std::vector< Pt3D > Pt3DVec
std::ostream & operator<<(std::ostream &out, const ALILine &li)
virtual void vocalCorners(Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref) const
virtual const CornersVec & getCorners() const
Returns the corner points of this cell's volume.
IdealZDCTrapezoid & operator=(const IdealZDCTrapezoid &idzt)
const CCGFloat * param() const
Tan< T >::type tan(const T &t)
CaloCellGeometry::CCGFloat CCGFloat
CaloCellGeometry::Pt3D Pt3D
static void localCorners(Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref)
CaloCellGeometry::Pt3DVec Pt3DVec
HepGeom::Point3D< CCGFloat > Pt3D
CornersVec & setCorners() const
bool uninitialized() const
const GlobalPoint & getPosition() const
Returns the position of reference for this cell.
CaloCellGeometry::Pt3D Pt3D
virtual const CornersVec & getCorners() const =0
Returns the corner points of this cell's volume.