2 #include "CLHEP/Geometry/Plane3D.h"
3 #include "CLHEP/Geometry/Transform3D.h"
17 CaloCellGeometry::operator=(idct);
71 lc[0] =
Pt3D(-dx, -dy, dzb);
72 lc[1] =
Pt3D(-dx, +dy, dzs);
73 lc[2] =
Pt3D(+2 * dxh - dx, +dy, dzs);
74 lc[3] =
Pt3D(+2 * dxl - dx, -dy, dzb);
75 lc[4] =
Pt3D(-dx, -dy, -dzs);
76 lc[5] =
Pt3D(-dx, +dy, -dzb);
77 lc[6] =
Pt3D(+2 * dxh - dx, +dy, -dzb);
78 lc[7] =
Pt3D(+2 * dxl - dx, -dy, -dzs);
80 ref = 0.25 * (lc[0] + lc[1] + lc[2] + lc[3]);
86 const CCGFloat zsign(0 < p.
z() ? 1. : -1.);
92 const Pt3D lb(lf.x(), lf.y(), lf.z() - 2. *
dz());
93 const Pt3D ls(lf.x() -
dx(), lf.y(), lf.z());
96 const Pt3D gb(
gf.x(),
gf.y(),
gf.z() + 2. * zsign *
dz());
102 const Tr3D tr(lf, lb,
ls,
gf, gb, gs);
104 for (
unsigned int i(0);
i != 8; ++
i) {
105 const Pt3D gl(tr * lc[
i]);
112 s <<
"Center: " << cell.
getPosition() << std::endl;
CaloCellGeometry::Pt3D Pt3D
~IdealCastorTrapezoid() override
virtual const GlobalPoint & getPosition() const
Returns the position of reference for this cell.
Sin< T >::type sin(const T &t)
void vocalCorners(Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref) const override
Global3DPoint GlobalPoint
HepGeom::Transform3D Tr3D
std::vector< Pt3D > Pt3DVec
std::ostream & operator<<(std::ostream &out, const ALILine &li)
const CCGFloat * param() const
Cos< T >::type cos(const T &t)
IdealCastorTrapezoid & operator=(const IdealCastorTrapezoid &idct)
void initCorners(CornersVec &) override
CaloCellGeometry::CCGFloat CCGFloat
CaloCellGeometry::Pt3D Pt3D
CaloCellGeometry::Pt3DVec Pt3DVec
HepGeom::Point3D< CCGFloat > Pt3D
CaloCellGeometry::Tr3D Tr3D
bool uninitialized() const
static void localCorners(Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref)