21 if( &idzp !=
this ) CaloCellGeometry::operator=( idzp ) ;
78 rad*sinf( phi )/coshf( eta ) ,
98 z*sinf( phi )/sinhf( eta ) ,
107 assert( 8 == lc.size() ) ;
121 std::vector<GlobalPoint> gc ( 8,
GlobalPoint(0,0,0) ) ;
125 const float z_near ( z ) ;
126 const float z_far ( z*( 1 - 2*dz/p.
mag() ) ) ;
127 gc[ 0 ] =
etaPhiZ( eta + dEta , +dPhi , z_near ) ;
128 gc[ 1 ] =
etaPhiZ( eta + dEta , -dPhi , z_near ) ;
129 gc[ 2 ] =
etaPhiZ( eta - dEta , -dPhi , z_near ) ;
130 gc[ 3 ] =
etaPhiZ( eta - dEta , +dPhi , z_near ) ;
136 for(
unsigned int i ( 0 ) ;
i != 8 ; ++
i )
141 ref = 0.25*( lc[0] + lc[1] + lc[2] + lc[3] ) ;
154 const CCGFloat z_far ( z_near + 2*
dz()*p.
z()/fabs( p.
z() ) ) ;
162 corners[ 4 ] =
GlobalPoint( corners[0].
x(), corners[0].
y(), z_far );
163 corners[ 5 ] =
GlobalPoint( corners[1].
x(), corners[1].
y(), z_far );
164 corners[ 6 ] =
GlobalPoint( corners[2].
x(), corners[2].
y(), z_far );
165 corners[ 7 ] =
GlobalPoint( corners[3].
x(), corners[3].
y(), z_far );
172 s <<
"Center: " << cell.
getPosition() << std::endl ;
173 s <<
"dEta = " << cell.
dEta() <<
", dPhi = " << cell.
dPhi() <<
", dz = " << cell.
dz() << std::endl ;
virtual const CornersVec & getCorners() const
Returns the corner points of this cell's volume.
CaloCellGeometry::CCGFloat CCGFloat
static GlobalPoint etaPhiZ(float eta, float phi, float z)
Geom::Phi< T > phi() const
Global3DPoint GlobalPoint
virtual void vocalCorners(Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref) const
static GlobalPoint etaPhiR(float eta, float phi, float rad)
std::vector< Pt3D > Pt3DVec
std::ostream & operator<<(std::ostream &out, const ALILine &li)
const CCGFloat * param() const
CaloCellGeometry::CCGFloat CCGFloat
IdealZPrism & operator=(const IdealZPrism &idzp)
CaloCellGeometry::Pt3D Pt3D
static void localCorners(Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref)
CaloCellGeometry::Pt3DVec Pt3DVec
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)
CornersVec & setCorners() const
bool uninitialized() const
const GlobalPoint & getPosition() const
Returns the position of reference for this cell.
virtual const CornersVec & getCorners() const =0
Returns the corner points of this cell's volume.