CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
FlatTrd Class Reference

A base class to handle the particular shape of HGCal volumes. More...

#include <FlatTrd.h>

Inheritance diagram for FlatTrd:
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
 
virtual float etaPos () const
 
 FlatTrd (void)
 
 FlatTrd (const FlatTrd &tr)
 
 FlatTrd (CornersMgr *cMgr, const GlobalPoint &fCtr, const GlobalPoint &bCtr, const GlobalPoint &cor1, const CCGFloat *parV)
 
 FlatTrd (const CornersVec &corn, const CCGFloat *par)
 
 FlatTrd (const FlatTrd &tr, const Pt3D &local)
 
Pt3D getLocal (const GlobalPoint &global) const
 
CCGFloat getPhiAxis () const
 
GlobalPoint const & getPosition () const override
 Returns the position of reference for this cell. More...
 
GlobalPoint getPosition (const Pt3D &local) const override
 
CCGFloat getThetaAxis () const
 
void getTransform (Tr3D &tr, Pt3DVec *lptr) const override
 --------— only needed by specific utility; overloaded when needed -— More...
 
FlatTrdoperator= (const FlatTrd &tr)
 
virtual float phiPos () const
 
void setPosition (const GlobalPoint &p)
 
void vocalCorners (Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref) const override
 
 ~FlatTrd () override
 
- Public Member Functions inherited from CaloCellGeometry
bool emptyCorners () const
 
float etaPos () const
 
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 GlobalPoint getPosition (CCGFloat) const
 
bool inside (const GlobalPoint &point) const
 Returns true if the specified point is inside this cell. More...
 
const CCGFloatparam () const
 
float phiPos () const
 
float phiSpan () const
 
RhoEtaPhi const & repPos () const
 
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 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)
 

Private Member Functions

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

Private Attributes

GlobalVector m_axis
 
Pt3D m_corOne
 
GlobalPoint m_global
 
Pt3D m_local
 
Tr3D m_tr
 

Additional Inherited Members

- Static Public Attributes inherited from CaloCellGeometry
static constexpr unsigned int k_cornerSize = 8
 
static const CCGFloat k_ScaleFromDDDtoGeant
 
- 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 HGCal volumes.

Definition at line 19 of file FlatTrd.h.

Member Typedef Documentation

Definition at line 22 of file FlatTrd.h.

Definition at line 23 of file FlatTrd.h.

Definition at line 24 of file FlatTrd.h.

Definition at line 25 of file FlatTrd.h.

Constructor & Destructor Documentation

FlatTrd::FlatTrd ( void  )

Definition at line 22 of file FlatTrd.cc.

22  : CaloCellGeometry(), m_axis ( 0., 0., 0. ),
23  m_corOne ( 0., 0., 0. ), m_local (0., 0., 0.),
24  m_global ( 0., 0., 0. ) {
25 }
Pt3D m_local
Definition: FlatTrd.h:84
Pt3D m_corOne
Definition: FlatTrd.h:84
GlobalPoint m_global
Definition: FlatTrd.h:85
GlobalVector m_axis
Definition: FlatTrd.h:83
FlatTrd::FlatTrd ( const FlatTrd tr)

Definition at line 27 of file FlatTrd.cc.

27  : CaloCellGeometry( tr ) {
28  *this = tr ;
29 }
FlatTrd::FlatTrd ( CornersMgr cMgr,
const GlobalPoint fCtr,
const GlobalPoint bCtr,
const GlobalPoint cor1,
const CCGFloat parV 
)

Definition at line 48 of file FlatTrd.cc.

References gather_cfg::cout, etaPos(), getTransform(), glb, m_global, m_local, m_tr, and phiPos().

52  :
53  CaloCellGeometry ( fCtr, cMgr, parV ) ,
54  m_axis ( ( bCtr - fCtr ).unit() ) ,
55  m_corOne ( cor1.x(), cor1.y(), cor1.z() ),
56  m_local (0., 0., 0.) {
57  getTransform(m_tr,nullptr);
58  Pt3D glb = m_tr*m_local;
59  m_global = GlobalPoint(glb.x(),glb.y(),glb.z());
60 #ifdef DebugLog
61  std::cout << "FlatTrd: Local " << m_local << " Global " << glb << " eta "
62  << etaPos() << " phi " << phiPos() << " Translation "
63  << m_tr.getTranslation() << " and rotation " << m_tr.getRotation();
64 #endif
65 }
double glb
Definition: hdecay.h:105
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
T y() const
Definition: PV3DBase.h:63
Tr3D m_tr
Definition: FlatTrd.h:86
Pt3D m_local
Definition: FlatTrd.h:84
T z() const
Definition: PV3DBase.h:64
Pt3D m_corOne
Definition: FlatTrd.h:84
void getTransform(Tr3D &tr, Pt3DVec *lptr) const override
--------— only needed by specific utility; overloaded when needed -—
Definition: FlatTrd.cc:193
CaloCellGeometry::Pt3D Pt3D
GlobalPoint m_global
Definition: FlatTrd.h:85
virtual float phiPos() const
Definition: FlatTrd.h:49
virtual float etaPos() const
Definition: FlatTrd.h:48
T x() const
Definition: PV3DBase.h:62
GlobalVector m_axis
Definition: FlatTrd.h:83
FlatTrd::FlatTrd ( const CornersVec corn,
const CCGFloat par 
)

Definition at line 67 of file FlatTrd.cc.

References gather_cfg::cout, etaPos(), getTransform(), glb, m_axis, m_global, m_local, m_tr, makeAxis(), and phiPos().

68  :
69  CaloCellGeometry ( corn, par ) ,
70  m_corOne ( corn[0].x(), corn[0].y(), corn[0].z() ),
71  m_local (0., 0., 0.) {
72  getTransform(m_tr,nullptr);
73  m_axis = makeAxis();
74  Pt3D glb = m_tr*m_local;
75  m_global = GlobalPoint(glb.x(),glb.y(),glb.z());
76 #ifdef DebugLog
77  std::cout << "FlatTrd: Local " << m_local << " Global " << glb << " eta "
78  << etaPos() << " phi " << phiPos() << " Translation "
79  << m_tr.getTranslation() << " and rotation " << m_tr.getRotation();
80 #endif
81 }
double glb
Definition: hdecay.h:105
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
Tr3D m_tr
Definition: FlatTrd.h:86
Pt3D m_local
Definition: FlatTrd.h:84
Pt3D m_corOne
Definition: FlatTrd.h:84
void getTransform(Tr3D &tr, Pt3DVec *lptr) const override
--------— only needed by specific utility; overloaded when needed -—
Definition: FlatTrd.cc:193
CaloCellGeometry::Pt3D Pt3D
GlobalVector makeAxis(void)
Definition: FlatTrd.cc:253
GlobalPoint m_global
Definition: FlatTrd.h:85
virtual float phiPos() const
Definition: FlatTrd.h:49
virtual float etaPos() const
Definition: FlatTrd.h:48
GlobalVector m_axis
Definition: FlatTrd.h:83
FlatTrd::FlatTrd ( const FlatTrd tr,
const Pt3D local 
)

Definition at line 83 of file FlatTrd.cc.

References gather_cfg::cout, etaPos(), glb, m_global, m_local, m_tr, and phiPos().

83  :
85  *this = tr;
86  Pt3D glb = m_tr*m_local;
87  m_global = GlobalPoint(glb.x(),glb.y(),glb.z());
88 #ifdef DebugLog
89  std::cout << "FlatTrd: Local " << m_local << " Global " << glb << " eta "
90  << etaPos() << " phi " << phiPos() << " Translation "
91  << m_tr.getTranslation() << " and rotation " << m_tr.getRotation();
92 #endif
93 }
double glb
Definition: hdecay.h:105
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
Tr3D m_tr
Definition: FlatTrd.h:86
Pt3D m_local
Definition: FlatTrd.h:84
CaloCellGeometry::Pt3D Pt3D
GlobalPoint m_global
Definition: FlatTrd.h:85
virtual float phiPos() const
Definition: FlatTrd.h:49
virtual float etaPos() const
Definition: FlatTrd.h:48
FlatTrd::~FlatTrd ( )
override

Definition at line 95 of file FlatTrd.cc.

95 {}

Member Function Documentation

const GlobalVector & FlatTrd::axis ( ) const

Definition at line 129 of file FlatTrd.cc.

References m_axis.

Referenced by getTransform(), and phiPos().

129  {
130  return m_axis ;
131 }
GlobalVector m_axis
Definition: FlatTrd.h:83
GlobalPoint FlatTrd::backCtr ( void  ) const
private

Definition at line 257 of file FlatTrd.cc.

References PVValHelper::dz, CaloCellGeometry::getCorners(), m_local, m_tr, and CaloCellGeometry::param().

Referenced by makeAxis(), and setPosition().

257  {
258  float dz = (getCorners()[4].z() > getCorners()[0].z()) ?
259  param()[0] : -param()[0];
260  Pt3D local_b(m_local.x(),m_local.y(),m_local.z()+dz);
261  Pt3D global_b = m_tr*local_b;
262  GlobalPoint global(global_b.x(),global_b.y(),global_b.z());
263  return global;
264 }
Tr3D m_tr
Definition: FlatTrd.h:86
const CCGFloat * param() const
Pt3D m_local
Definition: FlatTrd.h:84
CaloCellGeometry::Pt3D Pt3D
CornersVec const & getCorners() const
Returns the corner points of this cell&#39;s volume.
void FlatTrd::createCorners ( const std::vector< CCGFloat > &  pv,
const Tr3D tr,
std::vector< GlobalPoint > &  co 
)
static

Definition at line 139 of file FlatTrd.cc.

References gather_cfg::cout, mps_fire::i, localCorners(), AlCaHLTBitMon_ParallelJobs::p, and tmp.

Referenced by FastTimeGeometryLoader::buildGeom(), HGCalGeometryLoader::buildGeom(), phiPos(), and CaloGeometryDBEP< T, U >::produceAligned().

141  {
142 
143  assert( 11 <= pv.size() ) ;
144  assert( 8 == co.size() ) ;
145 
146  Pt3DVec ko ( 8, Pt3D(0,0,0) ) ;
147 
148  Pt3D tmp ;
149  Pt3DVec to ( 8, Pt3D(0,0,0) ) ;
150  localCorners( to, &pv.front(), tmp ) ;
151 
152  for( unsigned int i ( 0 ) ; i != 8 ; ++i ) {
153  ko[i] = tr * to[i] ; // apply transformation
154  const Pt3D & p ( ko[i] ) ;
155  co[ i ] = GlobalPoint( p.x(), p.y(), p.z() ) ;
156 #ifdef DebugLog
157  std::cout << "Corner[" << i << "] = " << co[i] << std::endl;
158 #endif
159  }
160 }
CaloCellGeometry::Pt3D Pt3D
Definition: FlatTrd.h:23
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
def pv(vc)
Definition: MetAnalyzer.py:6
static void localCorners(Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref)
Definition: FlatTrd.cc:162
CaloCellGeometry::Pt3D Pt3D
CaloCellGeometry::Pt3DVec Pt3DVec
std::vector< std::vector< double > > tmp
Definition: MVATrainer.cc:100
virtual float FlatTrd::etaPos ( ) const
inlinevirtual

Definition at line 48 of file FlatTrd.h.

References PV3DBase< T, PVType, FrameType >::eta(), and m_global.

Referenced by FlatTrd(), operator<<(), and operator=().

48 { return m_global.eta(); }
T eta() const
Definition: PV3DBase.h:76
GlobalPoint m_global
Definition: FlatTrd.h:85
Pt3D FlatTrd::getLocal ( const GlobalPoint global) const

Definition at line 111 of file FlatTrd.cc.

References gather_cfg::cout, DTRecHitClients_cfi::local, m_tr, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by phiPos().

111  {
112  Pt3D local = m_tr.inverse()*Pt3D(global.x(),global.y(),global.z());
113 #ifdef DebugLog
114  std::cout << "FlatTrd::Global " << global.x() << ":" << global.y() << ":"
115  << global.z() << " Local " << local.x() << ":" << local.y() << ":"
116  << local.z() << std::endl;
117 #endif
118  return local;
119 }
CaloCellGeometry::Pt3D Pt3D
Definition: FlatTrd.h:23
T y() const
Definition: PV3DBase.h:63
Tr3D m_tr
Definition: FlatTrd.h:86
T z() const
Definition: PV3DBase.h:64
CaloCellGeometry::Pt3D Pt3D
T x() const
Definition: PV3DBase.h:62
CCGFloat FlatTrd::getPhiAxis ( ) const

Definition at line 125 of file FlatTrd.cc.

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

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

125  {
126  return m_axis.phi() ;
127 }
Geom::Phi< T > phi() const
Definition: PV3DBase.h:69
GlobalVector m_axis
Definition: FlatTrd.h:83
GlobalPoint const& FlatTrd::getPosition ( ) const
inlineoverridevirtual

Returns the position of reference for this cell.

Reimplemented from CaloCellGeometry.

Definition at line 46 of file FlatTrd.h.

References DTRecHitClients_cfi::local, and m_global.

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

46 { return m_global; }
GlobalPoint m_global
Definition: FlatTrd.h:85
GlobalPoint FlatTrd::getPosition ( const Pt3D local) const
overridevirtual

Reimplemented from CaloCellGeometry.

Definition at line 97 of file FlatTrd.cc.

References gather_cfg::cout, glb, DTRecHitClients_cfi::local, and m_tr.

97  {
98  Pt3D glb = m_tr*local;
99 #ifdef DebugLog
100  std::cout << "FlatTrd::Local " << local.x() << ":" << local.y() << ":"
101  << local.z() << " Global " << glb.x() << ":" << glb.y() << ":"
102  << glb.z() << " TR " << m_tr.xx() << ":" << m_tr.xy() << ":"
103  << m_tr.xz() << ":" << m_tr.yx() << ":" << m_tr.yy() << ":"
104  << m_tr.yz() << ":" << m_tr.zx() << ":" << m_tr.zy() << ":"
105  << m_tr.zz() << ":" << m_tr.dx() << ":" << m_tr.dy() << ":"
106  << m_tr.dz() << std::endl;
107 #endif
108  return GlobalPoint(glb.x(),glb.y(),glb.z());
109 }
double glb
Definition: hdecay.h:105
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
Tr3D m_tr
Definition: FlatTrd.h:86
CaloCellGeometry::Pt3D Pt3D
CCGFloat FlatTrd::getThetaAxis ( ) const

Definition at line 121 of file FlatTrd.cc.

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

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

121  {
122  return m_axis.theta() ;
123 }
Geom::Theta< T > theta() const
Definition: PV3DBase.h:75
GlobalVector m_axis
Definition: FlatTrd.h:83
void FlatTrd::getTransform ( Tr3D tr,
Pt3DVec lptr 
) const
overridevirtual

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

Reimplemented from CaloCellGeometry.

Definition at line 193 of file FlatTrd.cc.

References angle(), axis(), MillePedeFileConverter_cfg::e, CaloCellGeometry::getPosition(), localCorners(), m_corOne, mag(), AlCaHLTBitMon_ParallelJobs::p, CaloCellGeometry::param(), csvLumiCalc::unit, x, PV3DBase< T, PVType, FrameType >::x(), y, PV3DBase< T, PVType, FrameType >::y(), z, and PV3DBase< T, PVType, FrameType >::z().

Referenced by FlatTrd(), initCorners(), and phiPos().

193  {
195  const Pt3D gFront ( p.x(), p.y(), p.z() ) ;
196  const DPt3D dgFront ( p.x(), p.y(), p.z() ) ;
197 
198  Pt3D lFront ;
199  assert( nullptr != param() ) ;
200  std::vector<Pt3D > lc( 8, Pt3D(0,0,0) ) ;
201  localCorners( lc, param(), lFront ) ;
202 
203  // figure out if reflction volume or not
204 
205  Pt3D lBack ( 0.25*(lc[4]+lc[5]+lc[6]+lc[7]) ) ;
206 
207  const DPt3D dlFront ( lFront.x(), lFront.y(), lFront.z() ) ;
208  const DPt3D dlBack ( lBack.x() , lBack.y() , lBack.z() ) ;
209  const DPt3D dlOne ( lc[0].x() , lc[0].y() , lc[0].z() ) ;
210 
211  const FVec3D dgAxis ( axis().x(), axis().y(), axis().z() ) ;
212 
213  const DPt3D dmOne ( m_corOne.x(), m_corOne.y(), m_corOne.z() ) ;
214 
215  const DPt3D dgBack ( dgFront + ( dlBack - dlFront ).mag()*dgAxis ) ;
216  DPt3D dgOne ( dgFront + ( dlOne - dlFront ).mag()*( dmOne - dgFront ).unit() ) ;
217 
218  const double dlangle ( ( dlBack - dlFront).angle( dlOne - dlFront ) ) ;
219  const double dgangle ( ( dgBack - dgFront).angle( dgOne - dgFront ) ) ;
220  const double dangle ( dlangle - dgangle ) ;
221 
222  if( 1.e-6 < fabs(dangle) ) {//guard against precision problems
223  const DPlane3D dgPl ( dgFront, dgOne, dgBack ) ;
224  const DPt3D dp2 ( dgFront + dgPl.normal().unit() ) ;
225 
226  DPt3D dgOld ( dgOne ) ;
227 
228  dgOne = ( dgFront + HepGeom::Rotate3D( -dangle, dgFront, dp2 )*
229  DVec3D( dgOld - dgFront ) ) ;
230  }
231 
232  tr = Tr3D( dlFront , dlBack , dlOne ,
233  dgFront , dgBack , dgOne ) ;
234 
235  if( nullptr != lptr ) (*lptr) = lc ;
236 }
const GlobalVector & axis() const
Definition: FlatTrd.cc:129
CaloCellGeometry::Pt3D Pt3D
Definition: FlatTrd.h:23
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.
const CCGFloat * param() const
HepGeom::Vector3D< double > DVec3D
Definition: FlatTrd.cc:16
Pt3D m_corOne
Definition: FlatTrd.h:84
static void localCorners(Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref)
Definition: FlatTrd.cc:162
CaloCellGeometry::Pt3D Pt3D
HepGeom::Plane3D< double > DPlane3D
CaloCellGeometry::Tr3D Tr3D
Definition: FlatTrd.h:25
HepGeom::Vector3D< CCGFloat > FVec3D
T angle(T x1, T y1, T z1, T x2, T y2, T z2)
Definition: angle.h:11
void FlatTrd::initCorners ( CaloCellGeometry::CornersVec co)
overrideprivatevirtual

Implements CaloCellGeometry.

Definition at line 238 of file FlatTrd.cc.

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

Referenced by setPosition().

238  {
239 
240  if( co.uninitialized() ) {
241  CornersVec& corners ( co ) ;
242  Pt3DVec lc ;
243  Tr3D tr ;
244  getTransform( tr, &lc ) ;
245 
246  for (unsigned int i ( 0 ) ; i != 8 ; ++i ) {
247  const Pt3D corn ( tr*lc[i] ) ;
248  corners[i] = GlobalPoint( corn.x(), corn.y(), corn.z() ) ;
249  }
250  }
251 }
EZArrayFL< GlobalPoint > CornersVec
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
void getTransform(Tr3D &tr, Pt3DVec *lptr) const override
--------— only needed by specific utility; overloaded when needed -—
Definition: FlatTrd.cc:193
CaloCellGeometry::Pt3D Pt3D
CaloCellGeometry::Pt3DVec Pt3DVec
CaloCellGeometry::Tr3D Tr3D
bool uninitialized() const
Definition: EZArrayFL.h:77
void FlatTrd::localCorners ( Pt3DVec vec,
const CCGFloat pv,
Pt3D ref 
)
static

Definition at line 162 of file FlatTrd.cc.

References gather_cfg::cout, PVValHelper::dz, h, and funct::tan().

Referenced by createCorners(), getTransform(), FastTimeGeometry::localCorners(), HGCalGeometry::localCorners(), phiPos(), and vocalCorners().

164  {
165  assert( nullptr != pv ) ;
166  assert( 8 == lc.size() ) ;
167 
168  const CCGFloat dz ( pv[0] ) ;
169  const CCGFloat h ( pv[3] ) ;
170  const CCGFloat bl ( pv[4] ) ;
171  const CCGFloat tl ( pv[5] ) ;
172  const CCGFloat a1 ( pv[6] ) ;
173 
174  const CCGFloat ta1 ( tan( a1 ) ) ;
175 
176  lc[0] = Pt3D ( - h*ta1 - bl, - h , -dz ); // (-,-,-)
177  lc[1] = Pt3D ( + h*ta1 - tl, + h , -dz ); // (-,+,-)
178  lc[2] = Pt3D ( + h*ta1 + tl, + h , -dz ); // (+,+,-)
179  lc[3] = Pt3D ( - h*ta1 + bl, - h , -dz ); // (+,-,-)
180  lc[4] = Pt3D ( - h*ta1 - bl, - h , dz ); // (-,-,+)
181  lc[5] = Pt3D ( + h*ta1 - tl, + h , dz ); // (-,+,+)
182  lc[6] = Pt3D ( + h*ta1 + tl, + h , dz ); // (+,+,+)
183  lc[7] = Pt3D ( - h*ta1 + bl, - h , dz ); // (+,-,+)
184 
185  ref = 0.25*( lc[0] + lc[1] + lc[2] + lc[3] ) ;
186 #ifdef DebugLog
187  std::cout << "Ref " << ref << " Local Corners " << lc[0] << "|" << lc[1]
188  << "|" << lc[2] << "|" << lc[3] << "|" << lc[4] << "|" << lc[5]
189  << "|" << lc[6] << "|" << lc[7] << std::endl;
190 #endif
191 }
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
CaloCellGeometry::Pt3D Pt3D
Definition: FlatTrd.h:23
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
def pv(vc)
Definition: MetAnalyzer.py:6
CaloCellGeometry::CCGFloat CCGFloat
GlobalVector FlatTrd::makeAxis ( void  )
private

Definition at line 253 of file FlatTrd.cc.

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

Referenced by FlatTrd(), and setPosition().

253  {
254  return GlobalVector( backCtr() - getPosition() ).unit() ;
255 }
GlobalPoint const & getPosition() const override
Returns the position of reference for this cell.
Definition: FlatTrd.h:46
GlobalPoint backCtr(void) const
Definition: FlatTrd.cc:257
Vector3DBase unit() const
Definition: Vector3DBase.h:57
Global3DVector GlobalVector
Definition: GlobalVector.h:10
FlatTrd & FlatTrd::operator= ( const FlatTrd tr)

Definition at line 31 of file FlatTrd.cc.

References gather_cfg::cout, etaPos(), m_axis, m_corOne, m_global, m_local, m_tr, and phiPos().

31  {
32  CaloCellGeometry::operator=( tr ) ;
33  if ( this != &tr ) {
34  m_axis = tr.m_axis ;
35  m_corOne = tr.m_corOne ;
36  m_local = tr.m_local;
37  m_global = tr.m_global;
38  m_tr = tr.m_tr;
39  }
40 #ifdef DebugLog
41  std::cout << "FlatTrd(Copy): Local " << m_local << " Global " << m_global
42  << " eta " << etaPos() << " phi " << phiPos() << " Translation "
43  << m_tr.getTranslation() << " and rotation " << m_tr.getRotation();
44 #endif
45  return *this ;
46 }
Tr3D m_tr
Definition: FlatTrd.h:86
Pt3D m_local
Definition: FlatTrd.h:84
Pt3D m_corOne
Definition: FlatTrd.h:84
GlobalPoint m_global
Definition: FlatTrd.h:85
virtual float phiPos() const
Definition: FlatTrd.h:49
virtual float etaPos() const
Definition: FlatTrd.h:48
GlobalVector m_axis
Definition: FlatTrd.h:83
virtual float FlatTrd::phiPos ( ) const
inlinevirtual

Definition at line 49 of file FlatTrd.h.

References axis(), createCorners(), getLocal(), getPhiAxis(), getThetaAxis(), getTransform(), localCorners(), m_global, PV3DBase< T, PVType, FrameType >::phi(), MetAnalyzer::pv(), and vocalCorners().

Referenced by FlatTrd(), operator<<(), and operator=().

49 { return m_global.phi(); }
Geom::Phi< T > phi() const
Definition: PV3DBase.h:69
GlobalPoint m_global
Definition: FlatTrd.h:85
void FlatTrd::setPosition ( const GlobalPoint p)
inline
void FlatTrd::vocalCorners ( Pt3DVec vec,
const CCGFloat pv,
Pt3D ref 
) const
overridevirtual

Implements CaloCellGeometry.

Definition at line 133 of file FlatTrd.cc.

References localCorners().

Referenced by phiPos().

135  {
136  localCorners( vec, pv, ref ) ;
137 }
def pv(vc)
Definition: MetAnalyzer.py:6
static void localCorners(Pt3DVec &vec, const CCGFloat *pv, Pt3D &ref)
Definition: FlatTrd.cc:162

Member Data Documentation

GlobalVector FlatTrd::m_axis
private

Definition at line 83 of file FlatTrd.h.

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

Pt3D FlatTrd::m_corOne
private

Definition at line 84 of file FlatTrd.h.

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

GlobalPoint FlatTrd::m_global
private

Definition at line 85 of file FlatTrd.h.

Referenced by etaPos(), FlatTrd(), getPosition(), operator=(), phiPos(), and setPosition().

Pt3D FlatTrd::m_local
private

Definition at line 84 of file FlatTrd.h.

Referenced by backCtr(), FlatTrd(), and operator=().

Tr3D FlatTrd::m_tr
private

Definition at line 86 of file FlatTrd.h.

Referenced by backCtr(), FlatTrd(), getLocal(), getPosition(), and operator=().