CMS 3D CMS Logo

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

#include <EcalTrapezoidParameters.h>

Public Types

using TPFloat = CaloCellGeometry::CCGFloat
 
using VertexList = CaloCellGeometry::Pt3DVec
 

Public Member Functions

TPFloat a () const
 
TPFloat A () const
 
TPFloat a1 () const
 
TPFloat a4 () const
 
TPFloat alp1 () const
 
TPFloat alp2 () const
 
TPFloat b () const
 
TPFloat B () const
 
TPFloat bl1 () const
 
TPFloat bl2 () const
 
TPFloat c () const
 
TPFloat C () const
 
TPFloat d () const
 
TPFloat D () const
 
TPFloat dz () const
 
 EcalTrapezoidParameters (TPFloat aHalfLengthXNegZLoY, TPFloat aHalfLengthXPosZLoY, TPFloat aHalfLengthXPosZHiY, TPFloat aHalfLengthYNegZ, TPFloat aHalfLengthYPosZ, TPFloat aHalfLengthZ, TPFloat aAngleAD, TPFloat aCoord15X, TPFloat aCoord15Y)
 
 EcalTrapezoidParameters ()=delete
 
 EcalTrapezoidParameters (const EcalTrapezoidParameters &)=delete
 
TPFloat h () const
 
TPFloat H () const
 
TPFloat h1 () const
 
TPFloat h2 () const
 
TPFloat hAa () const
 
TPFloat hBb () const
 
TPFloat hCc () const
 
TPFloat hDd () const
 
TPFloat L () const
 
const EcalTrapezoidParametersoperator= (const EcalTrapezoidParameters &)=delete
 
TPFloat phi () const
 
TPFloat theta () const
 
TPFloat tl1 () const
 
TPFloat tl2 () const
 
VertexList vertexList () const
 
TPFloat x15 () const
 
TPFloat y15 () const
 

Private Attributes

TPFloat m_a
 
TPFloat m_A
 
TPFloat m_a1
 
TPFloat m_a4
 
TPFloat m_alp1
 
TPFloat m_alp2
 
TPFloat m_b
 
TPFloat m_B
 
TPFloat m_bl1
 
TPFloat m_bl2
 
TPFloat m_c
 
TPFloat m_C
 
TPFloat m_d
 
TPFloat m_D
 
TPFloat m_dz
 
TPFloat m_h
 
TPFloat m_H
 
TPFloat m_h1
 
TPFloat m_h2
 
TPFloat m_hAa
 
TPFloat m_hBb
 
TPFloat m_hCc
 
TPFloat m_hDd
 
TPFloat m_L
 
TPFloat m_ph
 
TPFloat m_th
 
TPFloat m_tl1
 
TPFloat m_tl2
 
TPFloat m_x15
 
TPFloat m_y15
 

Detailed Description

Definition at line 62 of file EcalTrapezoidParameters.h.

Member Typedef Documentation

◆ TPFloat

Definition at line 65 of file EcalTrapezoidParameters.h.

◆ VertexList

Definition at line 64 of file EcalTrapezoidParameters.h.

Constructor & Destructor Documentation

◆ EcalTrapezoidParameters() [1/3]

EcalTrapezoidParameters::EcalTrapezoidParameters ( TPFloat  aHalfLengthXNegZLoY,
TPFloat  aHalfLengthXPosZLoY,
TPFloat  aHalfLengthXPosZHiY,
TPFloat  aHalfLengthYNegZ,
TPFloat  aHalfLengthYPosZ,
TPFloat  aHalfLengthZ,
TPFloat  aAngleAD,
TPFloat  aCoord15X,
TPFloat  aCoord15Y 
)

Definition at line 24 of file EcalTrapezoidParameters.cc.

References funct::cos(), m_a, m_A, m_a1, m_a4, m_alp1, m_alp2, m_b, m_B, m_bl1, m_bl2, m_c, m_C, m_d, m_D, m_dz, m_h, m_H, m_h1, m_h2, m_hAa, m_hBb, m_hCc, m_hDd, m_L, m_ph, M_PI, M_PI_2, m_th, m_tl1, m_tl2, m_x15, m_y15, funct::sin(), mathSSE::sqrt(), and funct::tan().

33  {
34  m_dz = aHalfLengthZ;
35  m_h1 = aHalfLengthYNegZ;
36  m_bl1 = aHalfLengthXNegZLoY;
37  m_h2 = aHalfLengthYPosZ;
38  m_bl2 = aHalfLengthXPosZLoY;
39  m_tl2 = aHalfLengthXPosZHiY;
40 
41  m_a1 = aAngleAD;
42  m_y15 = aCoord15Y;
43  m_x15 = aCoord15X;
44 
45  m_hAa = fabs(m_y15);
46 
47  m_L = 2 * m_dz;
48  m_h = 2 * m_h2;
49  m_a = 2 * m_bl2;
50  m_b = 2 * m_tl2;
51  m_H = 2 * m_h1;
52  m_A = 2 * m_bl1;
53 
54  // derive everything else
55  const TPFloat sina1(sin(m_a1));
56  const TPFloat cosa1(cos(m_a1));
57  const TPFloat tana1(tan(m_a1 - M_PI_2));
58 
59  const TPFloat tana4((m_tl2 - m_bl2 - m_h2 * tana1) / m_h2);
60 
61  m_a4 = M_PI_2 + atan(tana4);
62 
63  m_tl1 = m_bl1 + m_h1 * (tana1 + tana4);
64 
65  m_d = m_h / sina1;
66  m_D = m_H / sina1;
67 
68  const TPFloat tanalp1((m_D * cosa1 + m_tl1 - m_bl1) / m_H);
69  const TPFloat tanalp2((m_d * cosa1 + m_tl2 - m_bl2) / m_h);
70  m_alp1 = atan(tanalp1);
71  m_alp2 = atan(tanalp2);
72 
73  const TPFloat sina4(sin(m_a4));
74  m_c = m_h / sina4;
75  m_C = m_H / sina4;
76  m_B = 2 * m_tl1; // same as m_A - m_D*cosa1 - m_C*cos( m_a4 ) ;
77 
78  m_hDd = fabs(m_x15) * sina1 - m_hAa * cosa1;
79 
80  const TPFloat xd5((m_hAa + m_hDd * cosa1) / sina1);
81  const TPFloat xd6(m_D - m_d - xd5);
82  const TPFloat z6(sqrt(m_hDd * m_hDd + xd6 * xd6));
83  TPFloat gb6;
84  if (0. == z6 || 1. < fabs(m_hDd / z6)) {
85  gb6 = 0;
86  } else {
87  gb6 = M_PI - m_a1 - asin(m_hDd / z6);
88  }
89  m_hBb = z6 * sin(gb6);
90 
91  const TPFloat xb6(z6 * cos(gb6));
92  const TPFloat xb7(m_B - xb6 - m_b);
93  const TPFloat z7(sqrt(m_hBb * m_hBb + xb7 * xb7));
94  TPFloat gc7;
95  if (0 == z7 || 1. < fabs(m_hBb / z7)) {
96  gc7 = 0;
97  } else {
98  gc7 = M_PI - m_a4 - asin(m_hBb / z7);
99  }
100  m_hCc = z7 * sin(gc7);
101 
102  const Pt3D fc(m_bl2 + m_h2 * tanalp2, m_h2, 0);
103  const Pt3D v5(m_x15, m_y15, -m_L);
104  const Pt3D bc(v5 + Pt3D(m_bl1 + m_h1 * tanalp1, m_h1, 0));
105  const Pt3D dc(fc - bc);
106 
107  m_th = dc.theta();
108  m_ph = dc.phi();
109 }
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
#define M_PI_2
T sqrt(T t)
Definition: SSEVec.h:23
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
EcalTrapezoidParameters::TPFloat TPFloat
#define M_PI
CaloCellGeometry::Pt3D Pt3D
CaloCellGeometry::Pt3D Pt3D

◆ EcalTrapezoidParameters() [2/3]

EcalTrapezoidParameters::EcalTrapezoidParameters ( )
delete

◆ EcalTrapezoidParameters() [3/3]

EcalTrapezoidParameters::EcalTrapezoidParameters ( const EcalTrapezoidParameters )
delete

Member Function Documentation

◆ a()

TPFloat EcalTrapezoidParameters::a ( ) const

◆ A()

TPFloat EcalTrapezoidParameters::A ( ) const

◆ a1()

TPFloat EcalTrapezoidParameters::a1 ( ) const

Definition at line 161 of file EcalTrapezoidParameters.cc.

References m_a1.

Referenced by DDEcalBarrelAlgo::execute(), and vertexList().

161 { return m_a1; }

◆ a4()

TPFloat EcalTrapezoidParameters::a4 ( ) const

Definition at line 162 of file EcalTrapezoidParameters.cc.

References m_a4.

Referenced by DDEcalBarrelAlgo::execute().

162 { return m_a4; }

◆ alp1()

TPFloat EcalTrapezoidParameters::alp1 ( ) const

Definition at line 149 of file EcalTrapezoidParameters.cc.

References m_alp1.

Referenced by vertexList().

149 { return m_alp1; }

◆ alp2()

TPFloat EcalTrapezoidParameters::alp2 ( ) const

Definition at line 153 of file EcalTrapezoidParameters.cc.

References m_alp2.

Referenced by vertexList().

153 { return m_alp2; }

◆ b()

TPFloat EcalTrapezoidParameters::b ( ) const

◆ B()

TPFloat EcalTrapezoidParameters::B ( ) const

◆ bl1()

TPFloat EcalTrapezoidParameters::bl1 ( ) const

◆ bl2()

TPFloat EcalTrapezoidParameters::bl2 ( ) const

Definition at line 151 of file EcalTrapezoidParameters.cc.

References m_bl2.

Referenced by vertexList().

151 { return m_bl2; }

◆ c()

TPFloat EcalTrapezoidParameters::c ( ) const

Definition at line 166 of file EcalTrapezoidParameters.cc.

References m_c.

166 { return m_c; }

◆ C()

TPFloat EcalTrapezoidParameters::C ( ) const

Definition at line 171 of file EcalTrapezoidParameters.cc.

References m_C.

171 { return m_C; }

◆ d()

TPFloat EcalTrapezoidParameters::d ( ) const

Definition at line 167 of file EcalTrapezoidParameters.cc.

References m_d.

167 { return m_d; }

◆ D()

TPFloat EcalTrapezoidParameters::D ( ) const

Definition at line 172 of file EcalTrapezoidParameters.cc.

References m_D.

172 { return m_D; }

◆ dz()

TPFloat EcalTrapezoidParameters::dz ( ) const

◆ h()

TPFloat EcalTrapezoidParameters::h ( ) const

◆ H()

TPFloat EcalTrapezoidParameters::H ( ) const

◆ h1()

TPFloat EcalTrapezoidParameters::h1 ( ) const

◆ h2()

TPFloat EcalTrapezoidParameters::h2 ( ) const

Definition at line 150 of file EcalTrapezoidParameters.cc.

References m_h2.

Referenced by vertexList().

150 { return m_h2; }

◆ hAa()

TPFloat EcalTrapezoidParameters::hAa ( ) const

Definition at line 157 of file EcalTrapezoidParameters.cc.

References m_hAa.

157 { return m_hAa; }

◆ hBb()

TPFloat EcalTrapezoidParameters::hBb ( ) const

Definition at line 158 of file EcalTrapezoidParameters.cc.

References m_hBb.

158 { return m_hBb; }

◆ hCc()

TPFloat EcalTrapezoidParameters::hCc ( ) const

Definition at line 159 of file EcalTrapezoidParameters.cc.

References m_hCc.

159 { return m_hCc; }

◆ hDd()

TPFloat EcalTrapezoidParameters::hDd ( ) const

Definition at line 160 of file EcalTrapezoidParameters.cc.

References m_hDd.

160 { return m_hDd; }

◆ L()

TPFloat EcalTrapezoidParameters::L ( ) const

◆ operator=()

const EcalTrapezoidParameters& EcalTrapezoidParameters::operator= ( const EcalTrapezoidParameters )
delete

◆ phi()

TPFloat EcalTrapezoidParameters::phi ( void  ) const

◆ theta()

TPFloat EcalTrapezoidParameters::theta ( void  ) const

Definition at line 144 of file EcalTrapezoidParameters.cc.

References m_th.

Referenced by vertexList(), and Tau.Tau::zImpact().

144 { return m_th; }

◆ tl1()

TPFloat EcalTrapezoidParameters::tl1 ( ) const

Definition at line 148 of file EcalTrapezoidParameters.cc.

References m_tl1.

148 { return m_tl1; }

◆ tl2()

TPFloat EcalTrapezoidParameters::tl2 ( ) const

Definition at line 152 of file EcalTrapezoidParameters.cc.

References m_tl2.

152 { return m_tl2; }

◆ vertexList()

EcalTrapezoidParameters::VertexList EcalTrapezoidParameters::vertexList ( ) const

Definition at line 175 of file EcalTrapezoidParameters.cc.

References a(), A(), a1(), alp1(), alp2(), b(), B(), bl1(), bl2(), funct::cos(), dz(), validate-o2o-wbm::f1, validate-o2o-wbm::f2, h(), H(), h1(), h2(), M_PI_2, phi(), funct::sin(), funct::tan(), theta(), and L1BJetProducer_cff::vtx.

Referenced by algorithm(), DDEcalBarrelNewAlgo::execute(), DDEcalBarrelAlgo::execute(), DDEcalBarrelAlgo::web(), and DDEcalBarrelNewAlgo::web().

175  {
176  VertexList vtx;
177  vtx.reserve(8);
178 
179  const TPFloat dztanth(dz() * tan(theta()));
180 
181  const TPFloat ph(phi());
182  const Pt3D fc(dztanth * cos(ph), dztanth * sin(ph), dz());
183 
184  const TPFloat h_(h());
185  const TPFloat H_(H());
186  const TPFloat b_(b());
187  const TPFloat B_(B());
188  const TPFloat a_(a());
189  const TPFloat A_(A());
190 
191  // const TPFloat tl1 ( tl1() ) ;
192 
193  const TPFloat tanalp1(tan(alp1()));
194 
195  const TPFloat tanalp2(tan(alp2()));
196 
197  const TPFloat tana1(tan(a1() - M_PI_2));
198 
199  const Pt3D f1(-Pt3D(bl2() + h2() * tanalp2, h2(), 0));
200 
201  const Pt3D f2(Pt3D(-h_ * tana1, h_, 0) + f1);
202 
203  const Pt3D f3(f2 + Pt3D(b_, 0, 0));
204 
205  const Pt3D f4(Pt3D(a_, 0, 0) + f1);
206 
207  const Pt3D f5(-Pt3D(bl1() + h1() * tanalp1, h1(), 0));
208 
209  const Pt3D f6(Pt3D(-H_ * tana1, H_, 0) + f5);
210 
211  const Pt3D f7(f6 + Pt3D(B_, 0, 0));
212 
213  const Pt3D f8(Pt3D(A_, 0, 0) + f5);
214 
215  vtx.emplace_back(fc + f1);
216  vtx.emplace_back(fc + f2);
217  vtx.emplace_back(fc + f3);
218  vtx.emplace_back(fc + f4);
219  vtx.emplace_back(-fc + f5);
220  vtx.emplace_back(-fc + f6);
221  vtx.emplace_back(-fc + f7);
222  vtx.emplace_back(-fc + f8);
223 
224  return vtx;
225 }
EcalTrapezoidParameters::VertexList VertexList
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
#define M_PI_2
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
EcalTrapezoidParameters::TPFloat TPFloat
CaloCellGeometry::Pt3D Pt3D
CaloCellGeometry::Pt3D Pt3D

◆ x15()

TPFloat EcalTrapezoidParameters::x15 ( ) const

Definition at line 155 of file EcalTrapezoidParameters.cc.

References m_x15.

Referenced by DDEcalBarrelAlgo::execute().

155 { return m_x15; }

◆ y15()

TPFloat EcalTrapezoidParameters::y15 ( ) const

Definition at line 156 of file EcalTrapezoidParameters.cc.

References m_y15.

Referenced by DDEcalBarrelAlgo::execute().

156 { return m_y15; }

Member Data Documentation

◆ m_a

TPFloat EcalTrapezoidParameters::m_a
private

Definition at line 123 of file EcalTrapezoidParameters.h.

Referenced by a(), and EcalTrapezoidParameters().

◆ m_A

TPFloat EcalTrapezoidParameters::m_A
private

Definition at line 123 of file EcalTrapezoidParameters.h.

Referenced by A(), and EcalTrapezoidParameters().

◆ m_a1

TPFloat EcalTrapezoidParameters::m_a1
private

Definition at line 121 of file EcalTrapezoidParameters.h.

Referenced by a1(), and EcalTrapezoidParameters().

◆ m_a4

TPFloat EcalTrapezoidParameters::m_a4
private

Definition at line 122 of file EcalTrapezoidParameters.h.

Referenced by a4(), and EcalTrapezoidParameters().

◆ m_alp1

TPFloat EcalTrapezoidParameters::m_alp1
private

Definition at line 120 of file EcalTrapezoidParameters.h.

Referenced by alp1(), and EcalTrapezoidParameters().

◆ m_alp2

TPFloat EcalTrapezoidParameters::m_alp2
private

Definition at line 120 of file EcalTrapezoidParameters.h.

Referenced by alp2(), and EcalTrapezoidParameters().

◆ m_b

TPFloat EcalTrapezoidParameters::m_b
private

Definition at line 123 of file EcalTrapezoidParameters.h.

Referenced by b(), and EcalTrapezoidParameters().

◆ m_B

TPFloat EcalTrapezoidParameters::m_B
private

Definition at line 123 of file EcalTrapezoidParameters.h.

Referenced by B(), and EcalTrapezoidParameters().

◆ m_bl1

TPFloat EcalTrapezoidParameters::m_bl1
private

Definition at line 120 of file EcalTrapezoidParameters.h.

Referenced by bl1(), and EcalTrapezoidParameters().

◆ m_bl2

TPFloat EcalTrapezoidParameters::m_bl2
private

Definition at line 120 of file EcalTrapezoidParameters.h.

Referenced by bl2(), and EcalTrapezoidParameters().

◆ m_c

TPFloat EcalTrapezoidParameters::m_c
private

Definition at line 123 of file EcalTrapezoidParameters.h.

Referenced by c(), and EcalTrapezoidParameters().

◆ m_C

TPFloat EcalTrapezoidParameters::m_C
private

Definition at line 123 of file EcalTrapezoidParameters.h.

Referenced by C(), and EcalTrapezoidParameters().

◆ m_d

TPFloat EcalTrapezoidParameters::m_d
private

Definition at line 123 of file EcalTrapezoidParameters.h.

Referenced by d(), and EcalTrapezoidParameters().

◆ m_D

TPFloat EcalTrapezoidParameters::m_D
private

Definition at line 123 of file EcalTrapezoidParameters.h.

Referenced by D(), and EcalTrapezoidParameters().

◆ m_dz

TPFloat EcalTrapezoidParameters::m_dz
private

Definition at line 120 of file EcalTrapezoidParameters.h.

Referenced by dz(), and EcalTrapezoidParameters().

◆ m_h

TPFloat EcalTrapezoidParameters::m_h
private

Definition at line 123 of file EcalTrapezoidParameters.h.

Referenced by EcalTrapezoidParameters(), and h().

◆ m_H

TPFloat EcalTrapezoidParameters::m_H
private

Definition at line 123 of file EcalTrapezoidParameters.h.

Referenced by EcalTrapezoidParameters(), and H().

◆ m_h1

TPFloat EcalTrapezoidParameters::m_h1
private

Definition at line 120 of file EcalTrapezoidParameters.h.

Referenced by EcalTrapezoidParameters(), and h1().

◆ m_h2

TPFloat EcalTrapezoidParameters::m_h2
private

Definition at line 120 of file EcalTrapezoidParameters.h.

Referenced by EcalTrapezoidParameters(), and h2().

◆ m_hAa

TPFloat EcalTrapezoidParameters::m_hAa
private

Definition at line 121 of file EcalTrapezoidParameters.h.

Referenced by EcalTrapezoidParameters(), and hAa().

◆ m_hBb

TPFloat EcalTrapezoidParameters::m_hBb
private

Definition at line 122 of file EcalTrapezoidParameters.h.

Referenced by EcalTrapezoidParameters(), and hBb().

◆ m_hCc

TPFloat EcalTrapezoidParameters::m_hCc
private

Definition at line 122 of file EcalTrapezoidParameters.h.

Referenced by EcalTrapezoidParameters(), and hCc().

◆ m_hDd

TPFloat EcalTrapezoidParameters::m_hDd
private

Definition at line 122 of file EcalTrapezoidParameters.h.

Referenced by EcalTrapezoidParameters(), and hDd().

◆ m_L

TPFloat EcalTrapezoidParameters::m_L
private

Definition at line 123 of file EcalTrapezoidParameters.h.

Referenced by EcalTrapezoidParameters(), and L().

◆ m_ph

TPFloat EcalTrapezoidParameters::m_ph
private

Definition at line 120 of file EcalTrapezoidParameters.h.

Referenced by EcalTrapezoidParameters(), and phi().

◆ m_th

TPFloat EcalTrapezoidParameters::m_th
private

Definition at line 120 of file EcalTrapezoidParameters.h.

Referenced by EcalTrapezoidParameters(), and theta().

◆ m_tl1

TPFloat EcalTrapezoidParameters::m_tl1
private

Definition at line 120 of file EcalTrapezoidParameters.h.

Referenced by EcalTrapezoidParameters(), and tl1().

◆ m_tl2

TPFloat EcalTrapezoidParameters::m_tl2
private

Definition at line 120 of file EcalTrapezoidParameters.h.

Referenced by EcalTrapezoidParameters(), and tl2().

◆ m_x15

TPFloat EcalTrapezoidParameters::m_x15
private

Definition at line 121 of file EcalTrapezoidParameters.h.

Referenced by EcalTrapezoidParameters(), and x15().

◆ m_y15

TPFloat EcalTrapezoidParameters::m_y15
private

Definition at line 121 of file EcalTrapezoidParameters.h.

Referenced by EcalTrapezoidParameters(), and y15().