33 CaloCellGeometry::operator=(idzp);
61 return GlobalPoint(rad * cosf(phi) / coshf(eta), rad * sinf(phi) / coshf(eta), rad * tanhf(eta));
65 return GlobalPoint(perp * cosf(phi), perp * sinf(phi), perp * sinhf(eta));
69 return GlobalPoint(z * cosf(phi) / sinhf(eta), z * sinf(phi) / sinhf(eta), z);
73 assert(8 == lc.size());
74 assert(
nullptr != pv);
82 std::vector<GlobalPoint> gc(8,
GlobalPoint(0, 0, 0));
86 const float z_near(z);
87 const float z_far(z * (1 - 2 * dz / p.
mag()));
88 gc[0] =
etaPhiZ(eta + dEta, +dPhi, z_near);
89 gc[1] =
etaPhiZ(eta + dEta, -dPhi, z_near);
90 gc[2] =
etaPhiZ(eta - dEta, -dPhi, z_near);
91 gc[3] =
etaPhiZ(eta - dEta, +dPhi, z_near);
97 for (
unsigned int i(0);
i != 8; ++
i) {
101 ref = 0.25 * (lc[0] + lc[1] + lc[2] + lc[3]);
110 const CCGFloat z_far(z_near + 2 *
dz() * p.
z() / fabs(p.
z()));
118 corners[4] =
GlobalPoint(corners[0].
x(), corners[0].
y(), z_far);
119 corners[5] =
GlobalPoint(corners[1].
x(), corners[1].
y(), z_far);
120 corners[6] =
GlobalPoint(corners[2].
x(), corners[2].
y(), z_far);
121 corners[7] =
GlobalPoint(corners[3].
x(), corners[3].
y(), z_far);
126 s <<
"Center: " << cell.
getPosition() << std::endl;
127 s <<
"dEta = " << cell.
dEta() <<
", dPhi = " << cell.
dPhi() <<
", dz = " << cell.
dz() << std::endl;
static constexpr uint32_t k_dEta
CaloCellGeometry::CCGFloat CCGFloat
virtual const GlobalPoint & getPosition() const
Returns the position of reference for this cell.
static GlobalPoint etaPhiZ(float eta, float phi, float z)
Geom::Phi< T > phi() const
Global3DPoint GlobalPoint
IdealZPrism::Pt3DVec Pt3DVec
void initCorners(CornersVec &) override
static constexpr uint32_t k_dZ
void vocalCorners(Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref) const override
std::shared_ptr< const IdealZPrism > forPF() const
static GlobalPoint etaPhiR(float eta, float phi, float rad)
std::vector< Pt3D > Pt3DVec
IdealZPrism::CCGFloat CCGFloat
const CCGFloat * param() const
std::unique_ptr< IdealZPrism > m_geoForPF
static constexpr uint32_t k_Z
static constexpr uint32_t k_Eta
IdealZPrism & operator=(const IdealZPrism &idzp)
static constexpr uint32_t k_dPhi
static void localCorners(Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref)
HepGeom::Point3D< CCGFloat > Pt3D
CaloCellGeometry::Pt3D Pt3D
CaloCellGeometry::Pt3DVec Pt3DVec
T perp() const
Magnitude of transverse component.
static GlobalPoint etaPhiPerp(float eta, float phi, float perp)
bool uninitialized() const
std::ostream & operator<<(std::ostream &s, const IdealZPrism &cell)
Global3DVector GlobalVector