#include <IdealZDCTrapezoid.h>
Public Types | |
typedef CaloCellGeometry::CCGFloat | CCGFloat |
typedef CaloCellGeometry::Pt3D | Pt3D |
typedef CaloCellGeometry::Pt3DVec | Pt3DVec |
typedef CaloCellGeometry::Tr3D | Tr3D |
Public Member Functions | |
const CCGFloat | an () const |
const CCGFloat | dt () const |
const CCGFloat | dx () const |
const CCGFloat | dy () const |
const CCGFloat | dz () const |
virtual const CornersVec & | getCorners () const |
IdealZDCTrapezoid (const GlobalPoint &faceCenter, const CornersMgr *mgr, const CCGFloat *parm) | |
IdealZDCTrapezoid (const IdealZDCTrapezoid &idzt) | |
IdealZDCTrapezoid () | |
IdealZDCTrapezoid & | operator= (const IdealZDCTrapezoid &idzt) |
const 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.
{
*this = idzt ;
}
IdealZDCTrapezoid::IdealZDCTrapezoid | ( | const GlobalPoint & | faceCenter, |
const CornersMgr * | mgr, | ||
const CCGFloat * | parm | ||
) |
Definition at line 25 of file IdealZDCTrapezoid.cc.
: CaloCellGeometry ( faceCenter, mgr, parm ) { }
IdealZDCTrapezoid::~IdealZDCTrapezoid | ( | ) | [virtual] |
Definition at line 32 of file IdealZDCTrapezoid.cc.
{}
const CCGFloat IdealZDCTrapezoid::an | ( | ) | const |
Definition at line 35 of file IdealZDCTrapezoid.cc.
References CaloCellGeometry::param().
Referenced by localCorners(), operator<<(), and ta().
{ return param()[0] ; }
const CCGFloat IdealZDCTrapezoid::dt | ( | ) | const |
Definition at line 62 of file IdealZDCTrapezoid.cc.
Referenced by localCorners().
const CCGFloat IdealZDCTrapezoid::dx | ( | ) | const |
Definition at line 38 of file IdealZDCTrapezoid.cc.
References CaloCellGeometry::param().
Referenced by getCorners(), localCorners(), and operator<<().
{ return param()[1] ; }
const CCGFloat IdealZDCTrapezoid::dy | ( | ) | const |
Definition at line 44 of file IdealZDCTrapezoid.cc.
References CaloCellGeometry::param().
Referenced by dt(), localCorners(), and operator<<().
{ return param()[2] ; }
const CCGFloat IdealZDCTrapezoid::dz | ( | ) | const |
Definition at line 50 of file IdealZDCTrapezoid.cc.
References CaloCellGeometry::param().
Referenced by getCorners(), localCorners(), and operator<<().
{ return param()[3] ; }
const CaloCellGeometry::CornersVec & IdealZDCTrapezoid::getCorners | ( | ) | const [virtual] |
Implements CaloCellGeometry.
Definition at line 103 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 76 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 19 of file IdealZDCTrapezoid.cc.
{ if( &idzt != this ) CaloCellGeometry::operator=( idzt ) ; return *this ; }
const CCGFloat IdealZDCTrapezoid::ta | ( | ) | const |
Definition at line 56 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 68 of file IdealZDCTrapezoid.cc.
References localCorners().
{ localCorners( vec, pv, ref ) ; }