#include <IdealZDCTrapezoid.h>
Public Types | |
typedef CaloCellGeometry::CCGFloat | CCGFloat |
typedef CaloCellGeometry::Pt3D | Pt3D |
typedef CaloCellGeometry::Pt3DVec | Pt3DVec |
typedef CaloCellGeometry::Tr3D | Tr3D |
Public Member Functions | |
CCGFloat | an () const |
CCGFloat | dt () const |
CCGFloat | dx () const |
CCGFloat | dy () const |
CCGFloat | dz () const |
virtual const CornersVec & | getCorners () const |
Returns the corner points of this cell's volume. | |
IdealZDCTrapezoid (const GlobalPoint &faceCenter, const CornersMgr *mgr, const CCGFloat *parm) | |
IdealZDCTrapezoid (const IdealZDCTrapezoid &idzt) | |
IdealZDCTrapezoid () | |
IdealZDCTrapezoid & | operator= (const IdealZDCTrapezoid &idzt) |
CCGFloat | ta () const |
virtual void | vocalCorners (Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref) const |
virtual | ~IdealZDCTrapezoid () |
Static Public Member Functions | |
static void | localCorners (Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref) |
Trapezoid class used for ZDC volumes.
Required parameters for an ideal zdc trapezoid:
Total: 7 parameters
Definition at line 23 of file IdealZDCTrapezoid.h.
Reimplemented from CaloCellGeometry.
Definition at line 27 of file IdealZDCTrapezoid.h.
Reimplemented from CaloCellGeometry.
Definition at line 28 of file IdealZDCTrapezoid.h.
Reimplemented from CaloCellGeometry.
Definition at line 29 of file IdealZDCTrapezoid.h.
Reimplemented from CaloCellGeometry.
Definition at line 30 of file IdealZDCTrapezoid.h.
IdealZDCTrapezoid::IdealZDCTrapezoid | ( | ) |
Definition at line 8 of file IdealZDCTrapezoid.cc.
: CaloCellGeometry() { }
IdealZDCTrapezoid::IdealZDCTrapezoid | ( | const IdealZDCTrapezoid & | idzt | ) |
Definition at line 13 of file IdealZDCTrapezoid.cc.
: CaloCellGeometry( idzt ) { *this = idzt ; }
IdealZDCTrapezoid::IdealZDCTrapezoid | ( | const GlobalPoint & | faceCenter, |
const CornersMgr * | mgr, | ||
const CCGFloat * | parm | ||
) |
Definition at line 26 of file IdealZDCTrapezoid.cc.
: CaloCellGeometry ( faceCenter, mgr, parm ) { }
IdealZDCTrapezoid::~IdealZDCTrapezoid | ( | ) | [virtual] |
Definition at line 33 of file IdealZDCTrapezoid.cc.
{}
CCGFloat IdealZDCTrapezoid::an | ( | ) | const |
Definition at line 36 of file IdealZDCTrapezoid.cc.
References CaloCellGeometry::param().
Referenced by localCorners(), operator<<(), and ta().
{ return param()[0] ; }
CCGFloat IdealZDCTrapezoid::dt | ( | ) | const |
Definition at line 63 of file IdealZDCTrapezoid.cc.
Referenced by localCorners().
CCGFloat IdealZDCTrapezoid::dx | ( | ) | const |
Definition at line 39 of file IdealZDCTrapezoid.cc.
References CaloCellGeometry::param().
Referenced by getCorners(), localCorners(), and operator<<().
{ return param()[1] ; }
CCGFloat IdealZDCTrapezoid::dy | ( | ) | const |
Definition at line 45 of file IdealZDCTrapezoid.cc.
References CaloCellGeometry::param().
Referenced by dt(), localCorners(), and operator<<().
{ return param()[2] ; }
CCGFloat IdealZDCTrapezoid::dz | ( | ) | const |
Definition at line 51 of file IdealZDCTrapezoid.cc.
References CaloCellGeometry::param().
Referenced by getCorners(), localCorners(), and operator<<().
{ return param()[3] ; }
const CaloCellGeometry::CornersVec & IdealZDCTrapezoid::getCorners | ( | ) | const [virtual] |
Returns the corner points of this cell's volume.
Implements CaloCellGeometry.
Definition at line 104 of file IdealZDCTrapezoid.cc.
References dx(), dz(), CaloCellGeometry::getCorners(), CaloCellGeometry::getPosition(), gf, i, localCorners(), python::rootplot::utilities::ls(), AlCaHLTBitMon_ParallelJobs::p, CaloCellGeometry::param(), CaloCellGeometry::setCorners(), EZArrayFL< T >::uninitialized(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
{ const CornersVec& co ( CaloCellGeometry::getCorners() ) ; if( co.uninitialized() ) { CaloCellGeometry::CornersVec& corners ( setCorners() ) ; const GlobalPoint& p ( getPosition() ) ; const CCGFloat zsign ( 0 < p.z() ? 1. : -1. ) ; const Pt3D gf ( p.x(), p.y(), p.z() ) ; Pt3D lf ; Pt3DVec lc ( 8, Pt3D(0,0,0) ) ; localCorners( lc, param(), lf ) ; const Pt3D lb ( lf.x() , lf.y() , lf.z() - 2.*dz() ) ; const Pt3D ls ( lf.x() - dx(), lf.y(), lf.z() ) ; const Pt3D gb ( gf.x() , gf.y() , gf.z() + 2.*zsign*dz() ) ; const Pt3D gs ( gf.x() - zsign*dx(), gf.y() , gf.z() ) ; const HepGeom::Transform3D tr ( lf, lb, ls, gf, gb, gs ) ; for( unsigned int i ( 0 ) ; i != 8 ; ++i ) { const Pt3D gl ( tr*lc[i] ) ; corners[i] = GlobalPoint( gl.x(), gl.y(), gl.z() ) ; } } return co ; }
Definition at line 77 of file IdealZDCTrapezoid.cc.
References an(), dt(), dx(), dy(), dz(), ta(), and funct::tan().
Referenced by getCorners(), and vocalCorners().
{ assert( 8 == lc.size() ) ; assert( 0 != pv ) ; const CCGFloat an ( pv[0] ) ; const CCGFloat dx ( pv[1] ) ; const CCGFloat dy ( pv[2] ) ; const CCGFloat dz ( pv[3] ) ; const CCGFloat ta ( tan( an ) ) ; const CCGFloat dt ( dy*ta ) ; lc[0] = Pt3D ( -dx, -dy, +dz+dt ) ; lc[1] = Pt3D ( -dx, +dy, +dz-dt ) ; lc[2] = Pt3D ( +dx, +dy, +dz-dt ) ; lc[3] = Pt3D ( +dx, -dy, +dz+dt ) ; lc[4] = Pt3D ( -dx, -dy, -dz+dt ) ; lc[5] = Pt3D ( -dx, +dy, -dz-dt ) ; lc[6] = Pt3D ( +dx, +dy, -dz-dt ) ; lc[7] = Pt3D ( +dx, -dy, -dz+dt ) ; ref = 0.25*( lc[0] + lc[1] + lc[2] + lc[3] ) ; }
IdealZDCTrapezoid & IdealZDCTrapezoid::operator= | ( | const IdealZDCTrapezoid & | idzt | ) |
Definition at line 20 of file IdealZDCTrapezoid.cc.
{ if( &idzt != this ) CaloCellGeometry::operator=( idzt ) ; return *this ; }
CCGFloat IdealZDCTrapezoid::ta | ( | ) | const |
Definition at line 57 of file IdealZDCTrapezoid.cc.
References an(), and funct::tan().
Referenced by dt(), and localCorners().
void IdealZDCTrapezoid::vocalCorners | ( | Pt3DVec & | vec, |
const CCGFloat * | pv, | ||
Pt3D & | ref | ||
) | const [virtual] |
Implements CaloCellGeometry.
Definition at line 69 of file IdealZDCTrapezoid.cc.
References localCorners().
{ localCorners( vec, pv, ref ) ; }