CMS 3D CMS Logo

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

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 CaloCellGeometry::CCGFloat CCGFloat
 
typedef CaloCellGeometry::Pt3D Pt3D
 
typedef CaloCellGeometry::Pt3DVec Pt3DVec
 
typedef CaloCellGeometry::Tr3D Tr3D
 
- Public Types inherited from CaloCellGeometry
typedef float CCGFloat
 
typedef EZMgrFL< GlobalPointCornersMgr
 
typedef EZArrayFL< GlobalPointCornersVec
 
typedef EZMgrFL< CCGFloatParMgr
 
typedef EZArrayFL< CCGFloatParVec
 
typedef std::vector< ParVecParVecVec
 
typedef HepGeom::Point3D
< CCGFloat
Pt3D
 
typedef std::vector< Pt3DPt3DVec
 
using RepCorners = std::array< RhoEtaPhi, k_cornerSize >
 
typedef HepGeom::Transform3D Tr3D
 

Public Member Functions

const GlobalVectoraxis () const
 
CCGFloat getPhiAxis () const
 
GlobalPoint getPosition (CCGFloat depth) const override
 
CCGFloat getThetaAxis () const
 
void getTransform (Tr3D &tr, Pt3DVec *lptr) const override
 --------— only needed by specific utility; overloaded when needed -— More...
 
TruncatedPyramidoperator= (const TruncatedPyramid &tr)
 
 TruncatedPyramid (void)
 
 TruncatedPyramid (const TruncatedPyramid &tr)
 
 TruncatedPyramid (CornersMgr *cMgr, const GlobalPoint &fCtr, const GlobalPoint &bCtr, const GlobalPoint &cor1, const CCGFloat *parV)
 
 TruncatedPyramid (const CornersVec &corn, const CCGFloat *par)
 
void vocalCorners (Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref) const override
 
 ~TruncatedPyramid () override
 
- Public Member Functions inherited from CaloCellGeometry
bool emptyCorners () const
 
virtual float etaPos () const
 
virtual float etaSpan () const
 
GlobalPoint const & getBackPoint () const
 
CornersVec const & getCorners () const
 Returns the corner points of this cell's volume. More...
 
RepCorners const & getCornersREP () const
 
virtual const GlobalPointgetPosition () const
 Returns the position of reference for this cell. More...
 
virtual GlobalPoint getPosition (const Pt3D &) const
 
bool inside (const GlobalPoint &point) const
 Returns true if the specified point is inside this cell. More...
 
const CCGFloatparam () const
 
virtual float phiPos () const
 
virtual float phiSpan () const
 
RhoEtaPhi const & repPos () const
 
virtual float rhoPos () const
 
void setBackPoint (const GlobalPoint &pos)
 
virtual ~CaloCellGeometry ()
 

Static Public Member Functions

static void createCorners (const std::vector< CCGFloat > &pv, const Tr3D &tr, std::vector< GlobalPoint > &co)
 
static void localCorners (Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref)
 
static void localCornersReflection (Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref)
 
static void localCornersSwap (Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref)
 
- Static Public Member Functions inherited from CaloCellGeometry
static const CCGFloatcheckParmPtr (const std::vector< CCGFloat > &vd, ParVecVec &pvv)
 
static const CCGFloatgetParmPtr (const std::vector< CCGFloat > &vd, ParMgr *mgr, ParVecVec &pvv)
 

Static Public Attributes

static constexpr uint32_t k_Alp1 = 6
 
static constexpr uint32_t k_Alp2 = 10
 
static constexpr uint32_t k_Dx1 = 4
 
static constexpr uint32_t k_Dx2 = 5
 
static constexpr uint32_t k_Dx3 = 8
 
static constexpr uint32_t k_Dx4 = 9
 
static constexpr uint32_t k_Dy1 = 3
 
static constexpr uint32_t k_Dy2 = 7
 
static constexpr uint32_t k_Dz = 0
 
static constexpr uint32_t k_Phi = 2
 
static constexpr uint32_t k_Theta = 1
 
- Static Public Attributes inherited from CaloCellGeometry
static constexpr unsigned int k_cornerSize = 8
 
static const CCGFloat k_ScaleFromDDDtoGeant
 

Private Member Functions

const GlobalPoint backCtr (void) const
 
void initCorners (CornersVec &) override
 
GlobalVector makeAxis (void)
 

Private Attributes

GlobalVector m_axis
 
Pt3D m_corOne
 

Additional Inherited Members

- Protected Member Functions inherited from CaloCellGeometry
 CaloCellGeometry (CornersVec::const_reference gp, CornersMgr *mgr, const CCGFloat *par)
 
 CaloCellGeometry (const CornersVec &cv, const CCGFloat *par)
 
 CaloCellGeometry (void)
 
void initSpan ()
 
void setCornerVec (const std::vector< GlobalPoint > &cor)
 
void setRefPoint (const GlobalPoint &pos)
 

Detailed Description

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

Definition at line 19 of file TruncatedPyramid.h.

Member Typedef Documentation

Definition at line 21 of file TruncatedPyramid.h.

Definition at line 22 of file TruncatedPyramid.h.

Definition at line 23 of file TruncatedPyramid.h.

Definition at line 24 of file TruncatedPyramid.h.

Constructor & Destructor Documentation

TruncatedPyramid::TruncatedPyramid ( void  )

Definition at line 19 of file TruncatedPyramid.cc.

19 : CaloCellGeometry(), m_axis(0., 0., 0.), m_corOne(0., 0., 0.) {}
GlobalVector m_axis
TruncatedPyramid::TruncatedPyramid ( const TruncatedPyramid tr)

Definition at line 21 of file TruncatedPyramid.cc.

21 : CaloCellGeometry(tr) { *this = tr; }
TruncatedPyramid::TruncatedPyramid ( CornersMgr cMgr,
const GlobalPoint fCtr,
const GlobalPoint bCtr,
const GlobalPoint cor1,
const CCGFloat parV 
)

Definition at line 32 of file TruncatedPyramid.cc.

References CaloCellGeometry::initSpan().

34  : CaloCellGeometry(fCtr, cMgr, parV), m_axis((bCtr - fCtr).unit()), m_corOne(cor1.x(), cor1.y(), cor1.z()) {
35  initSpan();
36 }
T y() const
Definition: PV3DBase.h:60
T z() const
Definition: PV3DBase.h:61
GlobalVector m_axis
T x() const
Definition: PV3DBase.h:59
Basic3DVector unit() const
TruncatedPyramid::TruncatedPyramid ( const CornersVec corn,
const CCGFloat par 
)

Definition at line 38 of file TruncatedPyramid.cc.

References CaloCellGeometry::initSpan().

39  : CaloCellGeometry(corn, par), m_axis(makeAxis()), m_corOne(corn[0].x(), corn[0].y(), corn[0].z()) {
40  initSpan();
41 }
GlobalVector makeAxis(void)
GlobalVector m_axis
TruncatedPyramid::~TruncatedPyramid ( )
override

Definition at line 43 of file TruncatedPyramid.cc.

43 {}

Member Function Documentation

const GlobalVector & TruncatedPyramid::axis ( ) const

Definition at line 53 of file TruncatedPyramid.cc.

References m_axis.

Referenced by getTransform().

53 { return m_axis; }
GlobalVector m_axis
const GlobalPoint TruncatedPyramid::backCtr ( void  ) const
private

Definition at line 59 of file TruncatedPyramid.cc.

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

Referenced by makeAxis().

59  {
60  return GlobalPoint(0.25 * (getCorners()[4].x() + getCorners()[5].x() + getCorners()[6].x() + getCorners()[7].x()),
61  0.25 * (getCorners()[4].y() + getCorners()[5].y() + getCorners()[6].y() + getCorners()[7].y()),
62  0.25 * (getCorners()[4].z() + getCorners()[5].z() + getCorners()[6].z() + getCorners()[7].z()));
63 }
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
CornersVec const & getCorners() const
Returns the corner points of this cell&#39;s volume.
void TruncatedPyramid::createCorners ( const std::vector< CCGFloat > &  pv,
const Tr3D tr,
std::vector< GlobalPoint > &  co 
)
static

Definition at line 237 of file TruncatedPyramid.cc.

References cms::cuda::assert(), filterCSVwithJSON::copy, cross(), dot(), PVValHelper::dz, mps_fire::i, localCorners(), AlCaHLTBitMon_ParallelJobs::p, truncPyr::refl(), createJobs::tmp, x, y, and z.

237  {
238  assert(11 == pv.size());
239  assert(8 == co.size());
240  // to get the ordering right for fast sim, we have to use their convention
241  // which were based on the old static geometry. Some gymnastics required here.
242 
243  const CCGFloat dz(pv[0]);
244  const CCGFloat h1(pv[3]);
245  const CCGFloat h2(pv[7]);
246  Pt3DVec ko(8, Pt3D(0, 0, 0));
247 
248  // if reflection, different things for barrel and endcap
249  static const FVec3D x(1, 0, 0);
250  static const FVec3D y(0, 1, 0);
251  static const FVec3D z(0, 0, 1);
252  const bool refl(((tr * x).cross(tr * y)).dot(tr * z) < 0); // has reflection!
253 
254  Pt3D tmp;
255  Pt3DVec to(8, Pt3D(0, 0, 0));
256  localCorners(to, &pv.front(), tmp);
257 
258  for (unsigned int i(0); i != 8; ++i) {
259  ko[i] = tr * to[i]; // apply transformation
260  }
261 
262  if (refl || h1 > h2) {
263  if (11.2 < dz) //barrel
264  {
265  if (!refl) {
266  to[0] = ko[3];
267  to[1] = ko[2];
268  to[2] = ko[1];
269  to[3] = ko[0];
270  to[4] = ko[7];
271  to[5] = ko[6];
272  to[6] = ko[5];
273  to[7] = ko[4];
274  } else {
275  to[0] = ko[0];
276  to[1] = ko[1];
277  to[2] = ko[2];
278  to[3] = ko[3];
279  to[4] = ko[4];
280  to[5] = ko[5];
281  to[6] = ko[6];
282  to[7] = ko[7];
283  }
284  } else //endcap
285  {
286  to[0] = ko[0];
287  to[1] = ko[3];
288  to[2] = ko[2];
289  to[3] = ko[1];
290  to[4] = ko[4];
291  to[5] = ko[7];
292  to[6] = ko[6];
293  to[7] = ko[5];
294  }
295  copy(to.begin(), to.end(), ko.begin()); // faster than ko = to ? maybe.
296  }
297  for (unsigned int i(0); i != 8; ++i) {
298  const Pt3D& p(ko[i]);
299  co[i] = GlobalPoint(p.x(), p.y(), p.z());
300  }
301 }
static void localCorners(Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref)
CaloCellGeometry::Pt3D Pt3D
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
assert(be >=bs)
__host__ __device__ VT * co
Definition: prefixScan.h:47
CaloCellGeometry::CCGFloat CCGFloat
CaloCellGeometry::Pt3D Pt3D
CaloCellGeometry::Pt3DVec Pt3DVec
T dot(const Basic3DVector &v) const
Scalar product, or &quot;dot&quot; product, with a vector of same type.
Pt3D refl(const Pt3D &p)
tmp
align.sh
Definition: createJobs.py:716
HepGeom::Vector3D< CCGFloat > FVec3D
Basic3DVector cross(const Basic3DVector &v) const
Vector product, or &quot;cross&quot; product, with a vector of same type.
CCGFloat TruncatedPyramid::getPhiAxis ( ) const

Definition at line 51 of file TruncatedPyramid.cc.

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

Referenced by egammaTools::localEcalClusterCoordsEB(), egammaTools::localEcalClusterCoordsEE(), and operator<<().

51 { return m_axis.phi(); }
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
GlobalVector m_axis
GlobalPoint TruncatedPyramid::getPosition ( CCGFloat  depth) const
overridevirtual

Reimplemented from CaloCellGeometry.

Definition at line 45 of file TruncatedPyramid.cc.

References CaloCellGeometry::getPosition(), and m_axis.

Referenced by egammaTools::localEcalClusterCoordsEB(), and egammaTools::localEcalClusterCoordsEE().

45  {
47 }
virtual const GlobalPoint & getPosition() const
Returns the position of reference for this cell.
GlobalVector m_axis
CCGFloat TruncatedPyramid::getThetaAxis ( ) const

Definition at line 49 of file TruncatedPyramid.cc.

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

Referenced by egammaTools::localEcalClusterCoordsEB(), egammaTools::localEcalClusterCoordsEE(), and operator<<().

49 { return m_axis.theta(); }
Geom::Theta< T > theta() const
Definition: PV3DBase.h:72
GlobalVector m_axis
void TruncatedPyramid::getTransform ( Tr3D tr,
Pt3DVec lptr 
) const
overridevirtual

--------— only needed by specific utility; overloaded when needed -—

Reimplemented from CaloCellGeometry.

Definition at line 65 of file TruncatedPyramid.cc.

References angle(), cms::cuda::assert(), axis(), PVValHelper::dz, alignCSCRings::e, CaloCellGeometry::getPosition(), localCorners(), localCornersReflection(), localCornersSwap(), m_corOne, mag(), AlCaHLTBitMon_ParallelJobs::p, CaloCellGeometry::param(), unit(), x, PV3DBase< T, PVType, FrameType >::x(), y, PV3DBase< T, PVType, FrameType >::y(), z, and PV3DBase< T, PVType, FrameType >::z().

Referenced by initCorners().

65  {
67  const Pt3D gFront(p.x(), p.y(), p.z());
68  const DPt3D dgFront(p.x(), p.y(), p.z());
69 
70  const double dz(param()[0]);
71 
72  Pt3D lFront;
73  assert(nullptr != param());
74  std::vector<Pt3D> lc(8, Pt3D(0, 0, 0));
75  if (11.2 > dz) {
76  localCorners(lc, param(), lFront);
77  } else {
78  localCornersSwap(lc, param(), lFront);
79  }
80 
81  // figure out if reflction volume or not
82 
83  Pt3D lBack(0.25 * (lc[4] + lc[5] + lc[6] + lc[7]));
84 
85  const double disl((lFront - lc[0]).mag());
86  const double disr((lFront - lc[3]).mag());
87  const double disg((gFront - m_corOne).mag());
88 
89  const double dell(fabs(disg - disl));
90  const double delr(fabs(disg - disr));
91 
92  if (11.2 < dz && delr < dell) // reflection volume if true
93  {
94  localCornersReflection(lc, param(), lFront);
95  lBack = 0.25 * (lc[4] + lc[5] + lc[6] + lc[7]);
96  }
97 
98  const DPt3D dlFront(lFront.x(), lFront.y(), lFront.z());
99  const DPt3D dlBack(lBack.x(), lBack.y(), lBack.z());
100  const DPt3D dlOne(lc[0].x(), lc[0].y(), lc[0].z());
101 
102  const FVec3D dgAxis(axis().x(), axis().y(), axis().z());
103 
104  const DPt3D dmOne(m_corOne.x(), m_corOne.y(), m_corOne.z());
105 
106  const DPt3D dgBack(dgFront + (dlBack - dlFront).mag() * dgAxis);
107  DPt3D dgOne(dgFront + (dlOne - dlFront).mag() * (dmOne - dgFront).unit());
108 
109  const double dlangle((dlBack - dlFront).angle(dlOne - dlFront));
110  const double dgangle((dgBack - dgFront).angle(dgOne - dgFront));
111  const double dangle(dlangle - dgangle);
112 
113  if (1.e-6 < fabs(dangle)) //guard against precision problems
114  {
115  const DPlane3D dgPl(dgFront, dgOne, dgBack);
116  const DPt3D dp2(dgFront + dgPl.normal().unit());
117 
118  DPt3D dgOld(dgOne);
119 
120  dgOne = (dgFront + HepGeom::Rotate3D(-dangle, dgFront, dp2) * DVec3D(dgOld - dgFront));
121  }
122 
123  tr = Tr3D(dlFront, dlBack, dlOne, dgFront, dgBack, dgOne);
124 
125  if (nullptr != lptr)
126  (*lptr) = lc;
127 }
static void localCorners(Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref)
CaloCellGeometry::Tr3D Tr3D
HepGeom::Point3D< double > DPt3D
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
virtual const GlobalPoint & getPosition() const
Returns the position of reference for this cell.
CaloCellGeometry::Pt3D Pt3D
assert(be >=bs)
static void localCornersSwap(Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref)
const CCGFloat * param() const
HepGeom::Vector3D< double > DVec3D
CaloCellGeometry::Pt3D Pt3D
HepGeom::Plane3D< double > DPlane3D
const GlobalVector & axis() const
static void localCornersReflection(Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref)
HepGeom::Vector3D< CCGFloat > FVec3D
Basic3DVector unit() const
T angle(T x1, T y1, T z1, T x2, T y2, T z2)
Definition: angle.h:11
void TruncatedPyramid::initCorners ( CaloCellGeometry::CornersVec corners)
overrideprivatevirtual

Implements CaloCellGeometry.

Definition at line 129 of file TruncatedPyramid.cc.

References getTransform(), mps_fire::i, and EZArrayFL< T >::uninitialized().

129  {
130  if (corners.uninitialized()) {
131  Pt3DVec lc;
132 
133  Tr3D tr;
134  getTransform(tr, &lc);
135 
136  for (unsigned int i(0); i != 8; ++i) {
137  const Pt3D corn(tr * lc[i]);
138  corners[i] = GlobalPoint(corn.x(), corn.y(), corn.z());
139  }
140  }
141 }
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
void getTransform(Tr3D &tr, Pt3DVec *lptr) const override
--------— only needed by specific utility; overloaded when needed -—
CaloCellGeometry::Pt3D Pt3D
CaloCellGeometry::Pt3DVec Pt3DVec
CaloCellGeometry::Tr3D Tr3D
bool uninitialized() const
Definition: EZArrayFL.h:63
void TruncatedPyramid::localCorners ( Pt3DVec vec,
const CCGFloat pv,
Pt3D ref 
)
static

Definition at line 177 of file TruncatedPyramid.cc.

References isotrackTrainRegressor::a1, isotrackTrainRegressor::a2, cms::cuda::assert(), b1, b2, funct::cos(), PVValHelper::dz, k_Alp1, k_Alp2, k_Dx1, k_Dx2, k_Dx3, k_Dx4, k_Dy1, k_Dy2, k_Dz, k_Phi, k_Theta, funct::sin(), and funct::tan().

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

177  {
178  assert(nullptr != pv);
179  assert(8 == lc.size());
180 
192 
193  const CCGFloat ta1(tan(a1)); // lower plane
194  const CCGFloat ta2(tan(a2)); // upper plane
195 
196  const CCGFloat tth(tan(th));
197  const CCGFloat tthcp(tth * cos(ph));
198  const CCGFloat tthsp(tth * sin(ph));
199 
200  const unsigned int off(h1 < h2 ? 0 : 4);
201 
202  lc[0 + off] = Pt3D(-dz * tthcp - h1 * ta1 - b1, -dz * tthsp - h1, -dz); // (-,-,-)
203  lc[1 + off] = Pt3D(-dz * tthcp + h1 * ta1 - t1, -dz * tthsp + h1, -dz); // (-,+,-)
204  lc[2 + off] = Pt3D(-dz * tthcp + h1 * ta1 + t1, -dz * tthsp + h1, -dz); // (+,+,-)
205  lc[3 + off] = Pt3D(-dz * tthcp - h1 * ta1 + b1, -dz * tthsp - h1, -dz); // (+,-,-)
206  lc[4 - off] = Pt3D(dz * tthcp - h2 * ta2 - b2, dz * tthsp - h2, dz); // (-,-,+)
207  lc[5 - off] = Pt3D(dz * tthcp + h2 * ta2 - t2, dz * tthsp + h2, dz); // (-,+,+)
208  lc[6 - off] = Pt3D(dz * tthcp + h2 * ta2 + t2, dz * tthsp + h2, dz); // (+,+,+)
209  lc[7 - off] = Pt3D(dz * tthcp - h2 * ta2 + b2, dz * tthsp - h2, dz); // (+,-,+)
210 
211  ref = 0.25 * (lc[0] + lc[1] + lc[2] + lc[3]);
212 }
static constexpr uint32_t k_Dx4
static constexpr uint32_t k_Alp2
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
CaloCellGeometry::Pt3D Pt3D
assert(be >=bs)
static constexpr uint32_t k_Dy2
static constexpr uint32_t k_Phi
static constexpr uint32_t k_Alp1
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
static constexpr uint32_t k_Dx3
CaloCellGeometry::CCGFloat CCGFloat
static constexpr uint32_t k_Dx2
static constexpr uint32_t k_Theta
static constexpr uint32_t k_Dy1
static constexpr uint32_t k_Dz
static constexpr float b2
static constexpr uint32_t k_Dx1
static constexpr float b1
void TruncatedPyramid::localCornersReflection ( Pt3DVec vec,
const CCGFloat pv,
Pt3D ref 
)
static

Definition at line 147 of file TruncatedPyramid.cc.

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

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

147  {
148  // using namespace truncPyr ;
149  localCorners(lc, pv, ref);
150  Pt3D tmp;
151  /*
152  tmp = lc[0] ;
153  lc[0] = refl( lc[2] ) ;
154  lc[2] = refl( tmp ) ;
155  tmp = lc[1] ;
156  lc[1] = refl( lc[3] ) ;
157  lc[3] = refl( tmp ) ;
158  tmp = lc[4] ;
159  lc[4] = refl( lc[6] ) ;
160  lc[6] = refl( tmp ) ;
161  tmp = lc[5] ;
162  lc[5] = refl( lc[7] ) ;
163  lc[7] = refl( tmp ) ;
164 */
165  lc[0] = truncPyr::refl(lc[0]);
166  lc[1] = truncPyr::refl(lc[1]);
167  lc[2] = truncPyr::refl(lc[2]);
168  lc[3] = truncPyr::refl(lc[3]);
169  lc[4] = truncPyr::refl(lc[4]);
170  lc[5] = truncPyr::refl(lc[5]);
171  lc[6] = truncPyr::refl(lc[6]);
172  lc[7] = truncPyr::refl(lc[7]);
173 
174  ref = 0.25 * (lc[0] + lc[1] + lc[2] + lc[3]);
175 }
static void localCorners(Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref)
CaloCellGeometry::Pt3D Pt3D
Pt3D refl(const Pt3D &p)
tmp
align.sh
Definition: createJobs.py:716
void TruncatedPyramid::localCornersSwap ( Pt3DVec vec,
const CCGFloat pv,
Pt3D ref 
)
static

Definition at line 214 of file TruncatedPyramid.cc.

References localCorners(), and createJobs::tmp.

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

214  {
215  localCorners(lc, pv, ref);
216 
217  Pt3D tmp;
218  tmp = lc[0];
219  lc[0] = lc[3];
220  lc[3] = tmp;
221  tmp = lc[1];
222  lc[1] = lc[2];
223  lc[2] = tmp;
224  tmp = lc[4];
225  lc[4] = lc[7];
226  lc[7] = tmp;
227  tmp = lc[5];
228  lc[5] = lc[6];
229  lc[6] = tmp;
230 
231  ref = 0.25 * (lc[0] + lc[1] + lc[2] + lc[3]);
232 }
static void localCorners(Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref)
CaloCellGeometry::Pt3D Pt3D
tmp
align.sh
Definition: createJobs.py:716
GlobalVector TruncatedPyramid::makeAxis ( void  )
private

Definition at line 57 of file TruncatedPyramid.cc.

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

virtual const GlobalPoint & getPosition() const
Returns the position of reference for this cell.
Vector3DBase unit() const
Definition: Vector3DBase.h:54
const GlobalPoint backCtr(void) const
Global3DVector GlobalVector
Definition: GlobalVector.h:10
TruncatedPyramid & TruncatedPyramid::operator= ( const TruncatedPyramid tr)

Definition at line 23 of file TruncatedPyramid.cc.

References m_axis, and m_corOne.

23  {
24  CaloCellGeometry::operator=(tr);
25  if (this != &tr) {
26  m_axis = tr.m_axis;
27  m_corOne = tr.m_corOne;
28  }
29  return *this;
30 }
GlobalVector m_axis
void TruncatedPyramid::vocalCorners ( Pt3DVec vec,
const CCGFloat pv,
Pt3D ref 
) const
overridevirtual

Implements CaloCellGeometry.

Definition at line 55 of file TruncatedPyramid.cc.

References localCorners().

55 { localCorners(vec, pv, ref); }
static void localCorners(Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref)

Member Data Documentation

constexpr uint32_t TruncatedPyramid::k_Alp1 = 6
static

Definition at line 36 of file TruncatedPyramid.h.

Referenced by localCorners().

constexpr uint32_t TruncatedPyramid::k_Alp2 = 10
static

Definition at line 43 of file TruncatedPyramid.h.

Referenced by localCorners().

constexpr uint32_t TruncatedPyramid::k_Dx1 = 4
static

Definition at line 32 of file TruncatedPyramid.h.

Referenced by localCorners().

constexpr uint32_t TruncatedPyramid::k_Dx2 = 5
static

Definition at line 34 of file TruncatedPyramid.h.

Referenced by localCorners().

constexpr uint32_t TruncatedPyramid::k_Dx3 = 8
static

Definition at line 39 of file TruncatedPyramid.h.

Referenced by localCorners().

constexpr uint32_t TruncatedPyramid::k_Dx4 = 9
static

Definition at line 41 of file TruncatedPyramid.h.

Referenced by localCorners().

constexpr uint32_t TruncatedPyramid::k_Dy1 = 3
static

Definition at line 31 of file TruncatedPyramid.h.

Referenced by localCorners().

constexpr uint32_t TruncatedPyramid::k_Dy2 = 7
static

Definition at line 38 of file TruncatedPyramid.h.

Referenced by localCorners().

constexpr uint32_t TruncatedPyramid::k_Dz = 0
static

Definition at line 26 of file TruncatedPyramid.h.

Referenced by localCorners().

constexpr uint32_t TruncatedPyramid::k_Phi = 2
static

Definition at line 29 of file TruncatedPyramid.h.

Referenced by localCorners().

constexpr uint32_t TruncatedPyramid::k_Theta = 1
static

Definition at line 27 of file TruncatedPyramid.h.

Referenced by localCorners().

GlobalVector TruncatedPyramid::m_axis
private

Definition at line 91 of file TruncatedPyramid.h.

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

Pt3D TruncatedPyramid::m_corOne
private

Definition at line 92 of file TruncatedPyramid.h.

Referenced by getTransform(), and operator=().