46 const double st (
sin(
tilt()) ) ;
47 const double ct (
cos(
tilt()) ) ;
49 for(
unsigned int ix ( 0 ) ; ix !=2 ; ++ix )
51 const double sx ( 0 == ix ? -1.0 : +1.0 ) ;
52 for(
unsigned int iy ( 0 ) ; iy !=2 ; ++iy )
54 const double sy ( 0 == iy ? -1.0 : +1.0 ) ;
55 for(
unsigned int iz ( 0 ) ; iz !=2 ; ++iz )
57 const double sz ( 0 == iz ? -1.0 : +1.0 ) ;
58 const unsigned int i ( 4*iz + 2*ix +
59 ( 1 == ix ? 1-iy : iy ) ) ;
64 x + sx*
dx()*ct - sz*
dz()*st ,
67 y + sy*
dy()*ct - sz*
dz()*st ,
69 z + sz*
dz()*ct + sy*
dy()*st :
70 z + sz*
dz()*ct + sx*
dx()*st ) ;
80 s <<
"Center: " << cell.
getPosition() << std::endl ;
81 if( cell.
param() != 0 )
83 s <<
"dx = " << cell.
dx() <<
", dy = " << cell.
dy() <<
", dz = " << cell.
dz() << std::endl ;
86 for(
unsigned int ci ( 0 ) ; ci != corners.size(); ci++ )
88 s <<
"Corner: " << corners[ci] << std::endl;
93 s <<
" with empty parameters." << std::endl;
104 assert( 8 == lc.size() ) ;
111 lc[0] =
Pt3D( -dx, -dy, -dz ) ;
112 lc[1] =
Pt3D( -dx, dy, -dz ) ;
113 lc[2] =
Pt3D( dx, dy, -dz ) ;
114 lc[3] =
Pt3D( dx, -dy, -dz ) ;
115 lc[4] =
Pt3D( -dx, -dy, dz ) ;
116 lc[5] =
Pt3D( -dx, dy, dz ) ;
117 lc[6] =
Pt3D( dx, dy, dz ) ;
118 lc[7] =
Pt3D( dx, -dy, dz ) ;
CaloCellGeometry::Pt3DVec Pt3DVec
static void localCorners(Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref)
CaloCellGeometry::Tr3D Tr3D
Sin< T >::type sin(const T &t)
virtual const CornersVec & getCorners() const
Returns the corner points of this cell's volume.
CaloCellGeometry::Pt3D Pt3D
Global3DPoint GlobalPoint
CaloCellGeometry::CCGFloat CCGFloat
std::vector< Pt3D > Pt3DVec
const GlobalPoint & getPosition() const
Returns the position of reference for this cell.
std::ostream & operator<<(std::ostream &out, const ALILine &li)
const CCGFloat * param() const
A base class to handle the shape of preshower strips.
Cos< T >::type cos(const T &t)
CaloCellGeometry::CCGFloat CCGFloat
CaloCellGeometry::Pt3D Pt3D
virtual ~PreshowerStrip()
CaloCellGeometry::Pt3DVec Pt3DVec
HepGeom::Point3D< CCGFloat > Pt3D
CaloCellGeometry::Tr3D Tr3D
CornersVec & setCorners() const
bool uninitialized() const
PreshowerStrip & operator=(const PreshowerStrip &tr)
virtual const CornersVec & getCorners() const =0
Returns the corner points of this cell's volume.
CaloCellGeometry & operator=(const CaloCellGeometry &cell)