CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
TruncatedPyramid Class Reference

A base class to handle the particular shape of Ecal Xtals. Taken from ORCA Calorimetry Code. More...

#include <TruncatedPyramid.h>

Inheritance diagram for TruncatedPyramid:
CaloCellGeometry

Public Types

typedef std::vector
< HepGeom::Plane3D< double > > 
BoundaryVec
 
- Public Types inherited from CaloCellGeometry
typedef EZMgrFL< GlobalPointCornersMgr
 
enum  CornersSize { k_cornerSize = 8 }
 
typedef EZArrayFL< GlobalPointCornersVec
 
typedef EZMgrFL< double > ParMgr
 
typedef EZArrayFL< double > ParVec
 
typedef std::vector< ParVecParVecVec
 

Public Member Functions

const GlobalVectoraxis () const
 
virtual const CornersVecgetCorners () const
 
float getPhiAxis () const
 
const GlobalPoint getPosition (float depth) const
 
float getThetaAxis () const
 
virtual HepGeom::Transform3D getTransform (std::vector< HepGeom::Point3D< double > > *lptr) const
 
 TruncatedPyramid (const CornersMgr *cMgr, const GlobalPoint &fCtr, const GlobalPoint &bCtr, const GlobalPoint &cor1, const double *parV)
 
 TruncatedPyramid (const CornersVec &corn, const double *par)
 
virtual std::vector
< HepGeom::Point3D< double > > 
vocalCorners (const double *pv, HepGeom::Point3D< double > &ref) const
 
virtual ~TruncatedPyramid ()
 
- Public Member Functions inherited from CaloCellGeometry
bool emptyCorners () const
 
const GlobalPointgetPosition () const
 
bool inside (const GlobalPoint &point) const
 
const double * param () const
 
virtual ~CaloCellGeometry ()
 

Static Public Member Functions

static void createCorners (const std::vector< double > &pv, const HepGeom::Transform3D &tr, CornersVec &co)
 
static std::vector
< HepGeom::Point3D< double > > 
localCorners (const double *pv, HepGeom::Point3D< double > &ref)
 
static std::vector
< HepGeom::Point3D< double > > 
localCornersReflection (const double *pv, HepGeom::Point3D< double > &ref)
 
static std::vector
< HepGeom::Point3D< double > > 
localCornersSwap (const double *pv, HepGeom::Point3D< double > &ref)
 
- Static Public Member Functions inherited from CaloCellGeometry
static const double * checkParmPtr (const std::vector< double > &vd, ParVecVec &pvv)
 
static const double * getParmPtr (const std::vector< double > &vd, ParMgr *mgr, ParVecVec &pvv)
 

Private Member Functions

const GlobalPoint backCtr () const
 
GlobalVector makeAxis ()
 

Private Attributes

GlobalVector m_axis
 
HepGeom::Point3D< double > * m_corOne
 

Additional Inherited Members

- Static Public Attributes inherited from CaloCellGeometry
static const float k_ScaleFromDDDtoGeant
 
- Protected Member Functions inherited from CaloCellGeometry
 CaloCellGeometry (CornersVec::const_reference gp, const CornersMgr *mgr, const double *par)
 
 CaloCellGeometry (const CornersVec &cv, const double *par)
 
CornersVecsetCorners () const
 

Detailed Description

A base class to handle the particular shape of Ecal Xtals. Taken from ORCA Calorimetry Code.

Definition at line 25 of file TruncatedPyramid.h.

Member Typedef Documentation

typedef std::vector< HepGeom::Plane3D<double> > TruncatedPyramid::BoundaryVec

Definition at line 29 of file TruncatedPyramid.h.

Constructor & Destructor Documentation

TruncatedPyramid::TruncatedPyramid ( const CornersMgr cMgr,
const GlobalPoint fCtr,
const GlobalPoint bCtr,
const GlobalPoint cor1,
const double *  parV 
)
inline

Definition at line 31 of file TruncatedPyramid.h.

35  :
36  CaloCellGeometry ( fCtr, cMgr, parV ) ,
37  m_axis ( ( bCtr - fCtr ).unit() ) ,
38  m_corOne ( new HepGeom::Point3D<double> ( cor1.x(), cor1.y(), cor1.z() ) )
39  {}
T y() const
Definition: PV3DBase.h:57
CaloCellGeometry(CornersVec::const_reference gp, const CornersMgr *mgr, const double *par)
string unit
Definition: csvLumiCalc.py:46
T z() const
Definition: PV3DBase.h:58
HepGeom::Point3D< double > * m_corOne
GlobalVector m_axis
T x() const
Definition: PV3DBase.h:56
TruncatedPyramid::TruncatedPyramid ( const CornersVec corn,
const double *  par 
)
inline

Definition at line 41 of file TruncatedPyramid.h.

42  :
43  CaloCellGeometry ( corn, par ) ,
44  m_axis ( makeAxis() ) ,
45  m_corOne ( new HepGeom::Point3D<double> ( corn[0].x(),
46  corn[0].y(),
47  corn[0].z() ) ) {}
double double double z
CaloCellGeometry(CornersVec::const_reference gp, const CornersMgr *mgr, const double *par)
HepGeom::Point3D< double > * m_corOne
GlobalVector m_axis
Definition: DDAxes.h:10
GlobalVector makeAxis()
const double par[8 *NPar][4]
virtual TruncatedPyramid::~TruncatedPyramid ( )
inlinevirtual

Definition at line 49 of file TruncatedPyramid.h.

References m_corOne.

49 { delete m_corOne ; }
HepGeom::Point3D< double > * m_corOne

Member Function Documentation

const GlobalVector& TruncatedPyramid::axis ( ) const
inline

Definition at line 67 of file TruncatedPyramid.h.

References m_axis.

Referenced by getTransform().

67 { return m_axis ; }
GlobalVector m_axis
const GlobalPoint TruncatedPyramid::backCtr ( ) const
inlineprivate

Definition at line 98 of file TruncatedPyramid.h.

References getCorners(), x, detailsBasic3DVector::y, and detailsBasic3DVector::z.

Referenced by makeAxis().

99  {
100  return GlobalPoint( 0.25*( getCorners()[4].x() + getCorners()[5].x() +
101  getCorners()[6].x() + getCorners()[7].x() ),
102  0.25*( getCorners()[4].y() + getCorners()[5].y() +
103  getCorners()[6].y() + getCorners()[7].y() ),
104  0.25*( getCorners()[4].z() + getCorners()[5].z() +
105  getCorners()[6].z() + getCorners()[7].z() ) ) ;
106  }
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
double double double z
virtual const CornersVec & getCorners() const
Definition: DDAxes.h:10
void TruncatedPyramid::createCorners ( const std::vector< double > &  pv,
const HepGeom::Transform3D &  tr,
CaloCellGeometry::CornersVec co 
)
static

Definition at line 209 of file TruncatedPyramid.cc.

References filterCSVwithJSON::copy, cross(), dot(), i, localCorners(), L1TEmulatorMonitor_cff::p, truncPyr::refl(), tmp, x, detailsBasic3DVector::y, and detailsBasic3DVector::z.

212 {
213  assert( 11 == pv.size() ) ;
214 
215  // to get the ordering right for fast sim, we have to use their convention
216  // which were based on the old static geometry. Some gymnastics required here.
217 
218  const double dz ( pv[0] ) ;
219  const double h1 ( pv[3] ) ;
220  const double h2 ( pv[7] ) ;
221  std::vector<HepGeom::Point3D<double> > ko ( 8, HepGeom::Point3D<double> (0,0,0) ) ;
222 
223  // if reflection, different things for barrel and endcap
224  static const HepGeom::Vector3D<double> x ( 1, 0, 0 ) ;
225  static const HepGeom::Vector3D<double> y ( 0, 1, 0 ) ;
226  static const HepGeom::Vector3D<double> z ( 0, 0, 1 ) ;
227  const bool refl ( ( ( tr*x ).cross( tr*y ) ).dot( tr*z ) < 0 ) ; // has reflection!
228 
229 
230  HepGeom::Point3D<double> tmp ;
231  std::vector<HepGeom::Point3D<double> > to ( localCorners( &pv.front(), tmp ) ) ;
232 
233  for( unsigned int i ( 0 ) ; i != 8 ; ++i )
234  {
235  ko[i] = tr * to[i] ; // apply transformation
236  }
237 
238  if( refl ||
239  h1>h2 )
240  {
241  if( 11.2 < dz ) //barrel
242  {
243  if( !refl )
244  {
245  to[0] = ko[3] ;
246  to[1] = ko[2] ;
247  to[2] = ko[1] ;
248  to[3] = ko[0] ;
249  to[4] = ko[7] ;
250  to[5] = ko[6] ;
251  to[6] = ko[5] ;
252  to[7] = ko[4] ;
253  }
254  else
255  {
256  to[0] = ko[0] ;
257  to[1] = ko[1] ;
258  to[2] = ko[2] ;
259  to[3] = ko[3] ;
260  to[4] = ko[4] ;
261  to[5] = ko[5] ;
262  to[6] = ko[6] ;
263  to[7] = ko[7] ;
264  }
265  }
266  else //endcap
267  {
268  to[0] = ko[0] ;
269  to[1] = ko[3] ;
270  to[2] = ko[2] ;
271  to[3] = ko[1] ;
272  to[4] = ko[4] ;
273  to[5] = ko[7] ;
274  to[6] = ko[6] ;
275  to[7] = ko[5] ;
276  }
277  copy( to.begin(), to.end(), ko.begin() ) ; // faster than ko = to ? maybe.
278  }
279  for( unsigned int i ( 0 ) ; i != 8 ; ++i )
280  {
281  const HepGeom::Point3D<double> & p ( ko[i] ) ;
282  co[ i ] = GlobalPoint( p.x(), p.y(), p.z() ) ;
283  }
284 }
HepGeom::Point3D< double > refl(const HepGeom::Point3D< double > &p)
int i
Definition: DBlmapReader.cc:9
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
double double double z
std::vector< std::vector< double > > tmp
Definition: MVATrainer.cc:100
T dot(const Basic3DVector &v) const
Scalar product, or &quot;dot&quot; product, with a vector of same type.
static std::vector< HepGeom::Point3D< double > > localCorners(const double *pv, HepGeom::Point3D< double > &ref)
Definition: DDAxes.h:10
Basic3DVector cross(const Basic3DVector &v) const
Vector product, or &quot;cross&quot; product, with a vector of same type.
const CaloCellGeometry::CornersVec & TruncatedPyramid::getCorners ( ) const
virtual

Implements CaloCellGeometry.

Definition at line 69 of file TruncatedPyramid.cc.

References CaloCellGeometry::getCorners(), getTransform(), i, m_corOne, CaloCellGeometry::setCorners(), and EZArrayFL< T >::uninitialized().

Referenced by backCtr(), and operator<<().

70 {
72  if( co.uninitialized() )
73  {
74  CornersVec& corners ( setCorners() ) ;
75 
76  std::vector<HepGeom::Point3D<double> > lc ;
77 
78  const HepGeom::Transform3D tr ( getTransform( &lc ) ) ;
79 
80  for( unsigned int i ( 0 ) ; i != 8 ; ++i )
81  {
82  const HepGeom::Point3D<double> corn ( tr*lc[i] ) ;
83  corners[i] = GlobalPoint( corn.x(), corn.y(), corn.z() ) ;
84  }
85 
86  delete m_corOne ; // no longer needed
87  m_corOne = 0 ;
88  }
89  return co ;
90 }
EZArrayFL< GlobalPoint > CornersVec
int i
Definition: DBlmapReader.cc:9
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
virtual HepGeom::Transform3D getTransform(std::vector< HepGeom::Point3D< double > > *lptr) const
HepGeom::Point3D< double > * m_corOne
CornersVec & setCorners() const
virtual const CornersVec & getCorners() const =0
float TruncatedPyramid::getPhiAxis ( ) const
inline

Definition at line 65 of file TruncatedPyramid.h.

References m_axis, and PV3DBase< T, PVType, FrameType >::phi().

Referenced by operator<<().

65 { return m_axis.phi() ; }
Geom::Phi< T > phi() const
Definition: PV3DBase.h:63
GlobalVector m_axis
const GlobalPoint TruncatedPyramid::getPosition ( float  depth) const
inline
Position corresponding to the center of the front face at a certain

depth (default is zero) along the crystal axis. If "depth" is <=0, the nomial position of the cell is returned (center of the front face).

Definition at line 56 of file TruncatedPyramid.h.

References CaloCellGeometry::getPosition(), and m_axis.

Referenced by EcalSimple2007H4TBAnalyzer::analyze(), PFRecHitProducerECAL::createEcalRecHit(), and PFRecHitProducerECAL::findEcalRecHitGeometry().

57  { return CaloCellGeometry::getPosition() + depth*m_axis ; }
GlobalVector m_axis
const GlobalPoint & getPosition() const
float TruncatedPyramid::getThetaAxis ( ) const
inline

Definition at line 62 of file TruncatedPyramid.h.

References m_axis, and PV3DBase< T, PVType, FrameType >::theta().

Referenced by operator<<().

62 { return m_axis.theta() ; }
Geom::Theta< T > theta() const
Definition: PV3DBase.h:69
GlobalVector m_axis
HepGeom::Transform3D TruncatedPyramid::getTransform ( std::vector< HepGeom::Point3D< double > > *  lptr) const
virtual

Reimplemented from CaloCellGeometry.

Definition at line 9 of file TruncatedPyramid.cc.

References angle(), axis(), CaloCellGeometry::getPosition(), localCorners(), localCornersReflection(), localCornersSwap(), m_corOne, mag(), L1TEmulatorMonitor_cff::p, p2, CaloCellGeometry::param(), csvLumiCalc::unit, x, PV3DBase< T, PVType, FrameType >::x(), detailsBasic3DVector::y, PV3DBase< T, PVType, FrameType >::y(), detailsBasic3DVector::z, and PV3DBase< T, PVType, FrameType >::z().

Referenced by getCorners().

10 {
12  const HepGeom::Point3D<double> gFront ( p.x(), p.y(), p.z() ) ;
13 
14  const double dz ( param()[0] ) ;
15 
16  HepGeom::Point3D<double> lFront ;
17  assert( 0 != param() ) ;
18  std::vector<HepGeom::Point3D<double> > lc ( 11.2 > dz ?
19  localCorners( param(), lFront ) :
20  localCornersSwap( param(), lFront ) ) ;
21 
22  // figure out if reflction volume or not
23 
24  HepGeom::Point3D<double> lBack ( 0.25*(lc[4]+lc[5]+lc[6]+lc[7]) ) ;
25 
26  assert( 0 != m_corOne ) ;
27 
28  const double disl ( ( lFront - lc[0] ).mag() ) ;
29  const double disr ( ( lFront - lc[3] ).mag() ) ;
30  const double disg ( ( gFront - (*m_corOne) ).mag() ) ;
31 
32  const double dell ( fabs( disg - disl ) ) ;
33  const double delr ( fabs( disg - disr ) ) ;
34 
35  if( 11.2<dz &&
36  delr < dell ) // reflection volume if true
37  {
38  lc = localCornersReflection( param(), lFront ) ;
39  lBack = 0.25*( lc[4] + lc[5] + lc[6] + lc[7] ) ;
40  }
41 
42  const HepGeom::Point3D<double> lOne ( lc[0] ) ;
43 
44  const HepGeom::Vector3D<double> gAxis ( axis().x(), axis().y(), axis().z() ) ;
45 
46 
47  const HepGeom::Point3D<double> gBack ( gFront + (lBack-lFront).mag()*gAxis ) ;
48  const HepGeom::Point3D<double> gOneT ( gFront + ( lOne - lFront ).mag()*( (*m_corOne) - gFront ).unit() ) ;
49 
50  const double langle ( ( lBack - lFront).angle( lOne - lFront ) ) ;
51  const double gangle ( ( gBack - gFront).angle( gOneT- gFront ) ) ;
52  const double dangle ( langle - gangle ) ;
53 
54  const HepGeom::Plane3D<double> gPl ( gFront, gOneT, gBack ) ;
55  const HepGeom::Point3D<double> p2 ( gFront + gPl.normal().unit() ) ;
56 
57  const HepGeom::Point3D<double> gOne ( gFront + HepGeom::Rotate3D( -dangle, gFront, p2 )*
58  HepGeom::Vector3D<double> ( gOneT - gFront ) ) ;
59 
60  const HepGeom::Transform3D tr ( lFront , lBack , lOne ,
61  gFront , gBack , gOne ) ;
62 
63  if( 0 != lptr ) (*lptr) = lc ;
64 
65  return tr ;
66 }
static std::vector< HepGeom::Point3D< double > > localCornersSwap(const double *pv, HepGeom::Point3D< double > &ref)
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
static std::vector< HepGeom::Point3D< double > > localCornersReflection(const double *pv, HepGeom::Point3D< double > &ref)
const double * param() const
double double double z
const GlobalVector & axis() const
string unit
Definition: csvLumiCalc.py:46
HepGeom::Point3D< double > * m_corOne
double p2[4]
Definition: TauolaWrapper.h:90
static std::vector< HepGeom::Point3D< double > > localCorners(const double *pv, HepGeom::Point3D< double > &ref)
Definition: DDAxes.h:10
const GlobalPoint & getPosition() const
T angle(T x1, T y1, T z1, T x2, T y2, T z2)
Definition: angle.h:11
std::vector< HepGeom::Point3D< double > > TruncatedPyramid::localCorners ( const double *  pv,
HepGeom::Point3D< double > &  ref 
)
static

Definition at line 137 of file TruncatedPyramid.cc.

References funct::cos(), funct::sin(), and funct::tan().

Referenced by createCorners(), getTransform(), EcalEndcapGeometry::localCorners(), localCornersReflection(), localCornersSwap(), and vocalCorners().

139 {
140  assert( 0 != pv ) ;
141 
142  const double dz ( pv[0] ) ;
143  const double th ( pv[1] ) ;
144  const double ph ( pv[2] ) ;
145  const double h1 ( pv[3] ) ;
146  const double b1 ( pv[4] ) ;
147  const double t1 ( pv[5] ) ;
148  const double a1 ( pv[6] ) ;
149  const double h2 ( pv[7] ) ;
150  const double b2 ( pv[8] ) ;
151  const double t2 ( pv[9] ) ;
152  const double a2 ( pv[10]) ;
153 
154  const double ta1 ( tan( a1 ) ) ; // lower plane
155  const double ta2 ( tan( a2 ) ) ; // upper plane
156 
157  const double tth ( tan( th ) ) ;
158  const double tthcp ( tth * cos( ph ) ) ;
159  const double tthsp ( tth * sin( ph ) ) ;
160 
161  const unsigned int off ( h1<h2 ? 0 : 4 ) ;
162 
163  std::vector<HepGeom::Point3D<double> > lc ( 8, HepGeom::Point3D<double> (0,0,0) ) ;
164 
165  lc[0+off] = HepGeom::Point3D<double> ( -dz*tthcp - h1*ta1 - b1, -dz*tthsp - h1 , -dz ); // (-,-,-)
166  lc[1+off] = HepGeom::Point3D<double> ( -dz*tthcp + h1*ta1 - t1, -dz*tthsp + h1 , -dz ); // (-,+,-)
167  lc[2+off] = HepGeom::Point3D<double> ( -dz*tthcp + h1*ta1 + t1, -dz*tthsp + h1 , -dz ); // (+,+,-)
168  lc[3+off] = HepGeom::Point3D<double> ( -dz*tthcp - h1*ta1 + b1, -dz*tthsp - h1 , -dz ); // (+,-,-)
169  lc[4-off] = HepGeom::Point3D<double> ( dz*tthcp - h2*ta2 - b2, dz*tthsp - h2 , dz ); // (-,-,+)
170  lc[5-off] = HepGeom::Point3D<double> ( dz*tthcp + h2*ta2 - t2, dz*tthsp + h2 , dz ); // (-,+,+)
171  lc[6-off] = HepGeom::Point3D<double> ( dz*tthcp + h2*ta2 + t2, dz*tthsp + h2 , dz ); // (+,+,+)
172  lc[7-off] = HepGeom::Point3D<double> ( dz*tthcp - h2*ta2 + b2, dz*tthsp - h2 , dz ); // (+,-,+)
173 
174  ref = 0.25*( lc[0] + lc[1] + lc[2] + lc[3] ) ;
175 
176  return lc ;
177 }
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
std::vector< HepGeom::Point3D< double > > TruncatedPyramid::localCornersReflection ( const double *  pv,
HepGeom::Point3D< double > &  ref 
)
static

Definition at line 101 of file TruncatedPyramid.cc.

References localCorners(), truncPyr::refl(), and tmp.

Referenced by getTransform(), and EcalBarrelGeometry::localCorners().

103 {
104 // using namespace truncPyr ;
105 
106  std::vector<HepGeom::Point3D<double> > lc ( localCorners( pv, ref ) ) ;
107  HepGeom::Point3D<double> tmp ;
108 /*
109  tmp = lc[0] ;
110  lc[0] = refl( lc[2] ) ;
111  lc[2] = refl( tmp ) ;
112  tmp = lc[1] ;
113  lc[1] = refl( lc[3] ) ;
114  lc[3] = refl( tmp ) ;
115  tmp = lc[4] ;
116  lc[4] = refl( lc[6] ) ;
117  lc[6] = refl( tmp ) ;
118  tmp = lc[5] ;
119  lc[5] = refl( lc[7] ) ;
120  lc[7] = refl( tmp ) ;
121 */
122  lc[0] = truncPyr::refl( lc[0] ) ;
123  lc[1] = truncPyr::refl( lc[1] ) ;
124  lc[2] = truncPyr::refl( lc[2] ) ;
125  lc[3] = truncPyr::refl( lc[3] ) ;
126  lc[4] = truncPyr::refl( lc[4] ) ;
127  lc[5] = truncPyr::refl( lc[5] ) ;
128  lc[6] = truncPyr::refl( lc[6] ) ;
129  lc[7] = truncPyr::refl( lc[7] ) ;
130 
131 
132  ref = 0.25*( lc[0] + lc[1] + lc[2] + lc[3] ) ;
133  return lc ;
134 }
HepGeom::Point3D< double > refl(const HepGeom::Point3D< double > &p)
std::vector< std::vector< double > > tmp
Definition: MVATrainer.cc:100
static std::vector< HepGeom::Point3D< double > > localCorners(const double *pv, HepGeom::Point3D< double > &ref)
std::vector< HepGeom::Point3D< double > > TruncatedPyramid::localCornersSwap ( const double *  pv,
HepGeom::Point3D< double > &  ref 
)
static

Definition at line 180 of file TruncatedPyramid.cc.

References localCorners(), and tmp.

Referenced by getTransform(), and EcalBarrelGeometry::localCorners().

182 {
183  std::vector<HepGeom::Point3D<double> > lc ( localCorners( pv, ref ) ) ;
184 
185  HepGeom::Point3D<double> tmp ;
186  tmp = lc[0] ;
187  lc[0] = lc[3] ;
188  lc[3] = tmp ;
189  tmp = lc[1] ;
190  lc[1] = lc[2] ;
191  lc[2] = tmp ;
192  tmp = lc[4] ;
193  lc[4] = lc[7] ;
194  lc[7] = tmp ;
195  tmp = lc[5] ;
196  lc[5] = lc[6] ;
197  lc[6] = tmp ;
198 
199  ref = 0.25*( lc[0] + lc[1] + lc[2] + lc[3] ) ;
200 
201  return lc ;
202 }
std::vector< std::vector< double > > tmp
Definition: MVATrainer.cc:100
static std::vector< HepGeom::Point3D< double > > localCorners(const double *pv, HepGeom::Point3D< double > &ref)
GlobalVector TruncatedPyramid::makeAxis ( )
inlineprivate

Definition at line 92 of file TruncatedPyramid.h.

References backCtr(), CaloCellGeometry::getPosition(), and Vector3DBase< T, FrameTag >::unit().

93  {
94  return GlobalVector( backCtr() -
96  }
const GlobalPoint backCtr() const
Vector3DBase unit() const
Definition: Vector3DBase.h:57
const GlobalPoint & getPosition() const
Global3DVector GlobalVector
Definition: GlobalVector.h:10
virtual std::vector<HepGeom::Point3D<double> > TruncatedPyramid::vocalCorners ( const double *  pv,
HepGeom::Point3D< double > &  ref 
) const
inlinevirtual

Implements CaloCellGeometry.

Definition at line 75 of file TruncatedPyramid.h.

References localCorners().

77  { return localCorners( pv, ref ) ; }
static std::vector< HepGeom::Point3D< double > > localCorners(const double *pv, HepGeom::Point3D< double > &ref)

Member Data Documentation

GlobalVector TruncatedPyramid::m_axis
private

Definition at line 108 of file TruncatedPyramid.h.

Referenced by axis(), getPhiAxis(), getPosition(), and getThetaAxis().

HepGeom::Point3D<double>* TruncatedPyramid::m_corOne
mutableprivate

Definition at line 110 of file TruncatedPyramid.h.

Referenced by getCorners(), getTransform(), and ~TruncatedPyramid().