CMS 3D CMS Logo

Public Types | Public Member Functions | Static Public Member Functions

IdealZDCTrapezoid Class Reference

#include <IdealZDCTrapezoid.h>

Inheritance diagram for IdealZDCTrapezoid:
CaloCellGeometry

List of all members.

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 CornersVecgetCorners () 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 ()
IdealZDCTrapezoidoperator= (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)

Detailed Description

Trapezoid class used for ZDC volumes.

Required parameters for an ideal zdc trapezoid:

Total: 7 parameters

Date:
2011/09/27 09:15:30
Revision:
1.10
Author:
E. Garcia - UIC

Definition at line 23 of file IdealZDCTrapezoid.h.


Member Typedef Documentation

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.


Constructor & Destructor Documentation

IdealZDCTrapezoid::IdealZDCTrapezoid ( )

Definition at line 8 of file IdealZDCTrapezoid.cc.

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.

{}

Member Function Documentation

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.

References dy(), and ta().

Referenced by localCorners().

{
   return dy()*ta() ; 
}
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 ;
}
void IdealZDCTrapezoid::localCorners ( Pt3DVec vec,
const CCGFloat pv,
Pt3D ref 
) [static]

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().

{
   return tan( an() ) ; 
}
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 ) ; 
}