14 CaloCellGeometry::operator=(idzt);
40 assert(8 == lc.size());
41 assert(
nullptr != pv);
50 lc[0] =
Pt3D(-dx, -dy, +dz + dt);
51 lc[1] =
Pt3D(-dx, +dy, +dz - dt);
52 lc[2] =
Pt3D(+dx, +dy, +dz - dt);
53 lc[3] =
Pt3D(+dx, -dy, +dz + dt);
54 lc[4] =
Pt3D(-dx, -dy, -dz + dt);
55 lc[5] =
Pt3D(-dx, +dy, -dz - dt);
56 lc[6] =
Pt3D(+dx, +dy, -dz - dt);
57 lc[7] =
Pt3D(+dx, -dy, -dz + dt);
59 ref = 0.25 * (lc[0] + lc[1] + lc[2] + lc[3]);
65 const CCGFloat zsign(0 < p.
z() ? 1. : -1.);
71 const Pt3D lb(lf.x(), lf.y(), lf.z() - 2. *
dz());
72 const Pt3D ls(lf.x() -
dx(), lf.y(), lf.z());
74 const Pt3D gb(
gf.x(),
gf.y(),
gf.z() + 2. * zsign *
dz());
78 const HepGeom::Transform3D tr(lf, lb,
ls,
gf, gb,
gs);
80 for (
unsigned int i(0);
i != 8; ++
i) {
81 const Pt3D gl(tr * lc[
i]);
89 s <<
"TiltAngle = " << cell.
an() * 180. /
M_PI <<
" deg, dx = " << cell.
dx() <<
", dy = " << cell.
dy()
90 <<
", dz = " << cell.
dz() << std::endl;
CaloCellGeometry::CCGFloat CCGFloat
virtual const GlobalPoint & getPosition() const
Returns the position of reference for this cell.
Global3DPoint GlobalPoint
void initCorners(CaloCellGeometry::CornersVec &) override
std::vector< Pt3D > Pt3DVec
std::ostream & operator<<(std::ostream &s, const IdealZDCTrapezoid &cell)
IdealZDCTrapezoid & operator=(const IdealZDCTrapezoid &idzt)
const CCGFloat * param() const
Tan< T >::type tan(const T &t)
CaloCellGeometry::Pt3D Pt3D
static void localCorners(Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref)
HepGeom::Point3D< CCGFloat > Pt3D
void vocalCorners(Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref) const override
~IdealZDCTrapezoid() override
bool uninitialized() const
CaloCellGeometry::Pt3DVec Pt3DVec
CaloCellGeometry::Pt3D Pt3D