22 if( &idzt !=
this ) CaloCellGeometry::operator=( idzt ) ;
80 assert( 8 == lc.size() ) ;
90 lc[0] =
Pt3D ( -dx, -dy, +dz+dt ) ;
91 lc[1] =
Pt3D ( -dx, +dy, +dz-dt ) ;
92 lc[2] =
Pt3D ( +dx, +dy, +dz-dt ) ;
93 lc[3] =
Pt3D ( +dx, -dy, +dz+dt ) ;
94 lc[4] =
Pt3D ( -dx, -dy, -dz+dt ) ;
95 lc[5] =
Pt3D ( -dx, +dy, -dz-dt ) ;
96 lc[6] =
Pt3D ( +dx, +dy, -dz-dt ) ;
97 lc[7] =
Pt3D ( +dx, -dy, -dz+dt ) ;
99 ref = 0.25*( lc[0] + lc[1] + lc[2] + lc[3] ) ;
108 const CCGFloat zsign ( 0 < p.
z() ? 1. : -1. ) ;
114 const Pt3D lb ( lf.x() , lf.y() , lf.z() - 2.*
dz() ) ;
115 const Pt3D ls ( lf.x() -
dx(), lf.y(), lf.z() ) ;
117 const Pt3D gb (
gf.x() ,
gf.y() ,
gf.z() + 2.*zsign*
dz() ) ;
123 const HepGeom::Transform3D tr ( lf, lb,
ls,
126 for(
unsigned int i ( 0 ) ;
i != 8 ; ++
i )
128 const Pt3D gl ( tr*lc[
i] ) ;
136 s <<
"Center: " << cell.
getPosition() << std::endl ;
137 s <<
"TiltAngle = " << cell.
an()*180./
M_PI <<
" deg, dx = "
139 <<
", 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
IdealZDCTrapezoid & operator=(const IdealZDCTrapezoid &idzt)
const CCGFloat * param() const
void initCorners(CaloCellGeometry::CornersVec &)
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
bool uninitialized() const
const GlobalPoint & getPosition() const
Returns the position of reference for this cell.
CaloCellGeometry::Pt3D Pt3D