CMS 3D CMS Logo

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< CCGFloatPt3D
 
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 ()
 
 CaloCellGeometry (CaloCellGeometry &&)=default
 
 CaloCellGeometry (CaloCellGeometry const &)=default
 
void initSpan ()
 
CaloCellGeometryoperator= (CaloCellGeometry &&)=default
 
CaloCellGeometryoperator= (CaloCellGeometry const &)=default
 
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 20 of file TruncatedPyramid.h.

Member Typedef Documentation

◆ CCGFloat

Definition at line 22 of file TruncatedPyramid.h.

◆ Pt3D

Definition at line 23 of file TruncatedPyramid.h.

◆ Pt3DVec

Definition at line 24 of file TruncatedPyramid.h.

◆ Tr3D

Definition at line 25 of file TruncatedPyramid.h.

Constructor & Destructor Documentation

◆ TruncatedPyramid() [1/4]

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() [2/4]

TruncatedPyramid::TruncatedPyramid ( const TruncatedPyramid tr)

Definition at line 21 of file TruncatedPyramid.cc.

21 : CaloCellGeometry(tr) { *this = tr; }

◆ TruncatedPyramid() [3/4]

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 z() const
Definition: PV3DBase.h:61
T x() const
Definition: PV3DBase.h:59
T y() const
Definition: PV3DBase.h:60
Basic3DVector unit() const
GlobalVector m_axis

◆ TruncatedPyramid() [4/4]

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::~TruncatedPyramid ( )
override

Definition at line 43 of file TruncatedPyramid.cc.

43 {}

Member Function Documentation

◆ axis()

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

◆ backCtr()

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.

◆ createCorners()

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(), cms::cuda::co, 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)
Basic3DVector cross(const Basic3DVector &v) const
Vector product, or "cross" product, with a vector of same type.
CaloCellGeometry::Pt3D Pt3D
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
assert(be >=bs)
__host__ __device__ VT * co
Definition: prefixScan.h:47
T dot(const Basic3DVector &v) const
Scalar product, or "dot" product, with a vector of same type.
CaloCellGeometry::CCGFloat CCGFloat
CaloCellGeometry::Pt3D Pt3D
CaloCellGeometry::Pt3DVec Pt3DVec
Pt3D refl(const Pt3D &p)
tmp
align.sh
Definition: createJobs.py:716
HepGeom::Vector3D< CCGFloat > FVec3D

◆ getPhiAxis()

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

◆ getPosition()

GlobalPoint TruncatedPyramid::getPosition ( CCGFloat  depth) const
overridevirtual

Reimplemented from CaloCellGeometry.

Definition at line 45 of file TruncatedPyramid.cc.

References hcalRecHitTable_cff::depth, 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

◆ getThetaAxis()

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(); }
GlobalVector m_axis
Geom::Theta< T > theta() const
Definition: PV3DBase.h:72

◆ getTransform()

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, MillePedeFileConverter_cfg::e, CaloCellGeometry::getPosition(), localCorners(), localCornersReflection(), localCornersSwap(), m_corOne, mag(), AlCaHLTBitMon_ParallelJobs::p, CaloCellGeometry::param(), unit(), x, y, and 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
CaloCellGeometry::Pt3D Pt3D
assert(be >=bs)
static void localCornersSwap(Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref)
HepGeom::Vector3D< double > DVec3D
const GlobalVector & axis() const
Basic3DVector unit() const
CaloCellGeometry::Pt3D Pt3D
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
HepGeom::Plane3D< double > DPlane3D
virtual const GlobalPoint & getPosition() const
Returns the position of reference for this cell.
static void localCornersReflection(Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref)
HepGeom::Vector3D< CCGFloat > FVec3D
const CCGFloat * param() const
T angle(T x1, T y1, T z1, T x2, T y2, T z2)
Definition: angle.h:11

◆ initCorners()

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:61

◆ localCorners()

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(), RandomServiceHelper::t1, RandomServiceHelper::t2, 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
bias2_t b2[25]
Definition: b2.h:9
static constexpr uint32_t k_Theta
static constexpr uint32_t k_Dy1
static constexpr uint32_t k_Dz
static constexpr uint32_t k_Dx1
static constexpr float b1

◆ localCornersReflection()

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

◆ localCornersSwap()

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

◆ makeAxis()

GlobalVector TruncatedPyramid::makeAxis ( void  )
private

Definition at line 57 of file TruncatedPyramid.cc.

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

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

◆ operator=()

TruncatedPyramid & TruncatedPyramid::operator= ( const TruncatedPyramid tr)

Definition at line 23 of file TruncatedPyramid.cc.

References m_axis, m_corOne, and CaloCellGeometry::operator=().

23  {
25  if (this != &tr) {
26  m_axis = tr.m_axis;
27  m_corOne = tr.m_corOne;
28  }
29  return *this;
30 }
CaloCellGeometry & operator=(CaloCellGeometry &&)=default
GlobalVector m_axis

◆ vocalCorners()

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

◆ k_Alp1

constexpr uint32_t TruncatedPyramid::k_Alp1 = 6
static

Definition at line 37 of file TruncatedPyramid.h.

Referenced by localCorners().

◆ k_Alp2

constexpr uint32_t TruncatedPyramid::k_Alp2 = 10
static

Definition at line 44 of file TruncatedPyramid.h.

Referenced by localCorners().

◆ k_Dx1

constexpr uint32_t TruncatedPyramid::k_Dx1 = 4
static

Definition at line 33 of file TruncatedPyramid.h.

Referenced by localCorners().

◆ k_Dx2

constexpr uint32_t TruncatedPyramid::k_Dx2 = 5
static

Definition at line 35 of file TruncatedPyramid.h.

Referenced by localCorners().

◆ k_Dx3

constexpr uint32_t TruncatedPyramid::k_Dx3 = 8
static

Definition at line 40 of file TruncatedPyramid.h.

Referenced by localCorners().

◆ k_Dx4

constexpr uint32_t TruncatedPyramid::k_Dx4 = 9
static

Definition at line 42 of file TruncatedPyramid.h.

Referenced by localCorners().

◆ k_Dy1

constexpr uint32_t TruncatedPyramid::k_Dy1 = 3
static

Definition at line 32 of file TruncatedPyramid.h.

Referenced by localCorners().

◆ k_Dy2

constexpr uint32_t TruncatedPyramid::k_Dy2 = 7
static

Definition at line 39 of file TruncatedPyramid.h.

Referenced by localCorners().

◆ k_Dz

constexpr uint32_t TruncatedPyramid::k_Dz = 0
static

Definition at line 27 of file TruncatedPyramid.h.

Referenced by localCorners().

◆ k_Phi

constexpr uint32_t TruncatedPyramid::k_Phi = 2
static

Definition at line 30 of file TruncatedPyramid.h.

Referenced by localCorners().

◆ k_Theta

constexpr uint32_t TruncatedPyramid::k_Theta = 1
static

Definition at line 28 of file TruncatedPyramid.h.

Referenced by localCorners().

◆ m_axis

GlobalVector TruncatedPyramid::m_axis
private

Definition at line 92 of file TruncatedPyramid.h.

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

◆ m_corOne

Pt3D TruncatedPyramid::m_corOne
private

Definition at line 93 of file TruncatedPyramid.h.

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