CMS 3D CMS Logo

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

#include <EcalTrapezoidParameters.h>

Public Types

typedef CaloCellGeometry::CCGFloat TPFloat
 
typedef CaloCellGeometry::Pt3DVec VertexList
 

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)
 
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
 
TPFloat phi () const
 
TPFloat theta () const
 
TPFloat tl1 () const
 
TPFloat tl2 () const
 
VertexList vertexList () const
 
TPFloat x15 () const
 
TPFloat y15 () const
 

Private Member Functions

 EcalTrapezoidParameters ()
 
 EcalTrapezoidParameters (const EcalTrapezoidParameters &)
 
const EcalTrapezoidParametersoperator= (const EcalTrapezoidParameters &)
 

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 68 of file EcalTrapezoidParameters.h.

Member Typedef Documentation

Definition at line 76 of file EcalTrapezoidParameters.h.

Definition at line 74 of file EcalTrapezoidParameters.h.

Constructor & Destructor Documentation

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

Definition at line 41 of file EcalTrapezoidParameters.cc.

References funct::cos(), benchmark_cfg::fc, 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().

52 {
53  m_dz = aHalfLengthZ ;
54  m_h1 = aHalfLengthYNegZ ;
55  m_bl1 = aHalfLengthXNegZLoY ;
56  m_h2 = aHalfLengthYPosZ ;
57  m_bl2 = aHalfLengthXPosZLoY ;
58  m_tl2 = aHalfLengthXPosZHiY ;
59 
60  m_a1 = aAngleAD ;
61  m_y15 = aCoord15Y ;
62  m_x15 = aCoord15X ;
63 
64  m_hAa = fabs( m_y15 ) ;
65 
66  m_L = 2*m_dz ;
67  m_h = 2*m_h2 ;
68  m_a = 2*m_bl2 ;
69  m_b = 2*m_tl2 ;
70  m_H = 2*m_h1 ;
71  m_A = 2*m_bl1 ;
72 
73  // derive everything else
74  const TPFloat sina1 ( sin( m_a1 ) ) ;
75  const TPFloat cosa1 ( cos( m_a1 ) ) ;
76  const TPFloat tana1 ( tan( m_a1 - M_PI_2 ) ) ;
77 
78  const TPFloat tana4 ( ( m_tl2 - m_bl2 - m_h2*tana1 )/m_h2 ) ;
79 
80  m_a4 = M_PI_2 + atan( tana4 ) ;
81 
82  m_tl1 = m_bl1 + m_h1*( tana1 + tana4 ) ;
83 
84  m_d = m_h/sina1 ;
85  m_D = m_H/sina1 ;
86 
87  const TPFloat tanalp1 ( ( m_D*cosa1 + m_tl1 - m_bl1 )/m_H ) ;
88  const TPFloat tanalp2 ( ( m_d*cosa1 + m_tl2 - m_bl2 )/m_h ) ;
89  m_alp1 = atan( tanalp1 ) ;
90  m_alp2 = atan( tanalp2 ) ;
91 
92  const TPFloat sina4 ( sin( m_a4 ) ) ;
93  m_c = m_h/sina4 ;
94  m_C = m_H/sina4 ;
95  m_B = 2*m_tl1 ; // same as m_A - m_D*cosa1 - m_C*cos( m_a4 ) ;
96 
97  m_hDd = fabs( m_x15 )*sina1 - m_hAa*cosa1 ;
98 
99  const TPFloat xd5 ( ( m_hAa + m_hDd*cosa1 )/sina1 ) ;
100  const TPFloat xd6 ( m_D - m_d - xd5 ) ;
101  const TPFloat z6 ( sqrt( m_hDd*m_hDd + xd6*xd6 ) ) ;
102  TPFloat gb6 ;
103  if( 0. == z6 || 1. < fabs( m_hDd/z6 ) )
104  {
105  gb6 = 0 ;
106  }
107  else
108  {
109  gb6 = M_PI - m_a1 - asin( m_hDd/z6 ) ;
110  }
111  m_hBb = z6*sin( gb6 ) ;
112 
113  const TPFloat xb6 ( z6*cos( gb6 ) ) ;
114  const TPFloat xb7 ( m_B - xb6 - m_b ) ;
115  const TPFloat z7 ( sqrt( m_hBb*m_hBb + xb7*xb7 ) ) ;
116  TPFloat gc7 ;
117  if( 0 == z7 || 1. < fabs( m_hBb/z7 ) )
118  {
119  gc7 = 0 ;
120  }
121  else
122  {
123  gc7 = M_PI - m_a4 - asin( m_hBb/z7 ) ;
124  }
125  m_hCc = z7*sin( gc7 ) ;
126 
127  const Pt3D fc ( m_bl2 + m_h2*tanalp2, m_h2, 0 ) ;
128  const Pt3D v5 ( m_x15 , m_y15 , -m_L ) ;
129  const Pt3D bc ( v5 + Pt3D ( m_bl1 + m_h1*tanalp1, m_h1, 0 ) ) ;
130  const Pt3D dc ( fc - bc ) ;
131 
132  m_th = dc.theta() ;
133  m_ph = dc.phi() ;
134 }
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
#define M_PI_2
T sqrt(T t)
Definition: SSEVec.h:18
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
EcalTrapezoidParameters::EcalTrapezoidParameters ( )
private
EcalTrapezoidParameters::EcalTrapezoidParameters ( const EcalTrapezoidParameters )
private

Member Function Documentation

TPFloat EcalTrapezoidParameters::a ( ) const
TPFloat EcalTrapezoidParameters::A ( ) const
TPFloat EcalTrapezoidParameters::a1 ( ) const

Definition at line 186 of file EcalTrapezoidParameters.cc.

References m_a1.

Referenced by vertexList().

186 { return m_a1 ; }
TPFloat EcalTrapezoidParameters::a4 ( ) const

Definition at line 187 of file EcalTrapezoidParameters.cc.

References m_a4.

187 { return m_a4 ; }
TPFloat EcalTrapezoidParameters::alp1 ( ) const

Definition at line 174 of file EcalTrapezoidParameters.cc.

References m_alp1.

Referenced by DDEcalBarrelAlgo::mytrap(), DDEcalBarrelNewAlgo::mytrap(), and vertexList().

174 { return m_alp1 ; }
TPFloat EcalTrapezoidParameters::alp2 ( ) const

Definition at line 178 of file EcalTrapezoidParameters.cc.

References m_alp2.

Referenced by DDEcalBarrelAlgo::mytrap(), DDEcalBarrelNewAlgo::mytrap(), and vertexList().

178 { return m_alp2 ; }
TPFloat EcalTrapezoidParameters::b ( ) const
TPFloat EcalTrapezoidParameters::B ( ) const

Definition at line 195 of file EcalTrapezoidParameters.cc.

References m_B.

Referenced by vertexList(), DDEcalBarrelAlgo::web(), and DDEcalBarrelNewAlgo::web().

195 { return m_B ; }
TPFloat EcalTrapezoidParameters::bl1 ( ) const
TPFloat EcalTrapezoidParameters::bl2 ( ) const

Definition at line 176 of file EcalTrapezoidParameters.cc.

References m_bl2.

Referenced by DDEcalBarrelAlgo::mytrap(), DDEcalBarrelNewAlgo::mytrap(), and vertexList().

176 { return m_bl2 ; }
TPFloat EcalTrapezoidParameters::c ( ) const

Definition at line 191 of file EcalTrapezoidParameters.cc.

References m_c.

191 { return m_c ; }
TPFloat EcalTrapezoidParameters::C ( ) const

Definition at line 196 of file EcalTrapezoidParameters.cc.

References m_C.

196 { return m_C ; }
TPFloat EcalTrapezoidParameters::d ( ) const

Definition at line 192 of file EcalTrapezoidParameters.cc.

References m_d.

192 { return m_d ; }
TPFloat EcalTrapezoidParameters::D ( ) const

Definition at line 197 of file EcalTrapezoidParameters.cc.

References m_D.

197 { return m_D ; }
TPFloat EcalTrapezoidParameters::dz ( ) const
TPFloat EcalTrapezoidParameters::h ( ) const
TPFloat EcalTrapezoidParameters::H ( ) const

Definition at line 198 of file EcalTrapezoidParameters.cc.

References m_H.

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

198 { return m_H ; }
TPFloat EcalTrapezoidParameters::h1 ( ) const
TPFloat EcalTrapezoidParameters::h2 ( ) const

Definition at line 175 of file EcalTrapezoidParameters.cc.

References m_h2.

Referenced by DDEcalBarrelAlgo::mytrap(), DDEcalBarrelNewAlgo::mytrap(), and vertexList().

175 { return m_h2 ; }
TPFloat EcalTrapezoidParameters::hAa ( ) const

Definition at line 182 of file EcalTrapezoidParameters.cc.

References m_hAa.

182 { return m_hAa ; }
TPFloat EcalTrapezoidParameters::hBb ( ) const

Definition at line 183 of file EcalTrapezoidParameters.cc.

References m_hBb.

183 { return m_hBb ; }
TPFloat EcalTrapezoidParameters::hCc ( ) const

Definition at line 184 of file EcalTrapezoidParameters.cc.

References m_hCc.

184 { return m_hCc ; }
TPFloat EcalTrapezoidParameters::hDd ( ) const

Definition at line 185 of file EcalTrapezoidParameters.cc.

References m_hDd.

185 { return m_hDd ; }
TPFloat EcalTrapezoidParameters::L ( ) const
const EcalTrapezoidParameters& EcalTrapezoidParameters::operator= ( const EcalTrapezoidParameters )
private
TPFloat EcalTrapezoidParameters::phi ( void  ) const
TPFloat EcalTrapezoidParameters::theta ( void  ) const
TPFloat EcalTrapezoidParameters::tl1 ( ) const

Definition at line 173 of file EcalTrapezoidParameters.cc.

References m_tl1.

Referenced by DDEcalBarrelAlgo::mytrap(), and DDEcalBarrelNewAlgo::mytrap().

173 { return m_tl1 ; }
TPFloat EcalTrapezoidParameters::tl2 ( ) const

Definition at line 177 of file EcalTrapezoidParameters.cc.

References m_tl2.

Referenced by DDEcalBarrelAlgo::mytrap(), and DDEcalBarrelNewAlgo::mytrap().

177 { return m_tl2 ; }
EcalTrapezoidParameters::VertexList EcalTrapezoidParameters::vertexList ( ) const

Definition at line 201 of file EcalTrapezoidParameters.cc.

References a(), A(), a1(), alp1(), alp2(), b(), B(), bl1(), bl2(), funct::cos(), dz(), connectstrParser::f1, connectstrParser::f2, connectstrParser::f3, connectstrParser::f4, connectstrParser::f5, connectstrParser::f6, benchmark_cfg::fc, h(), H(), h1(), h2(), M_PI_2, phi(), funct::sin(), funct::tan(), and theta().

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

202 {
203  VertexList vtx ;
204  vtx.reserve( 8 ) ;
205 
206  const TPFloat dztanth ( dz()*tan( theta() ) ) ;
207 
208  const TPFloat ph ( phi() ) ;
209  const Pt3D fc ( dztanth*cos(ph), dztanth*sin(ph), dz() ) ;
210 
211  const TPFloat h_ ( h() ) ;
212  const TPFloat H_ ( H() ) ;
213  const TPFloat b_ ( b() ) ;
214  const TPFloat B_ ( B() ) ;
215  const TPFloat a_ ( a() ) ;
216  const TPFloat A_ ( A() ) ;
217 
218 // const TPFloat tl1 ( tl1() ) ;
219 
220  const TPFloat tanalp1 ( tan(alp1()) ) ;
221 
222  const TPFloat tanalp2 ( tan(alp2()) ) ;
223 
224  const TPFloat tana1 ( tan( a1() - M_PI_2 ) ) ;
225 
226  const Pt3D f1 ( -Pt3D( bl2() + h2()*tanalp2, h2(), 0 ) ) ;
227 
228  const Pt3D f2 ( Pt3D( -h_*tana1, h_, 0 ) + f1 ) ;
229 
230  const Pt3D f3 ( f2 + Pt3D( b_,0,0 ) ) ;
231 
232  const Pt3D f4 ( Pt3D( a_,0,0 ) + f1 ) ;
233 
234 
235  const Pt3D f5 ( -Pt3D( bl1() + h1()*tanalp1, h1(), 0 ) ) ;
236 
237  const Pt3D f6 ( Pt3D( -H_*tana1, H_, 0 ) + f5 ) ;
238 
239  const Pt3D f7 ( f6 + Pt3D( B_,0,0 ) ) ;
240 
241  const Pt3D f8 ( Pt3D( A_,0,0 ) + f5 ) ;
242 
243  vtx.push_back( fc + f1 ) ;
244  vtx.push_back( fc + f2 ) ;
245  vtx.push_back( fc + f3 ) ;
246  vtx.push_back( fc + f4 ) ;
247  vtx.push_back( -fc + f5 ) ;
248  vtx.push_back( -fc + f6 ) ;
249  vtx.push_back( -fc + f7 ) ;
250  vtx.push_back( -fc + f8 ) ;
251 
252  return vtx ;
253 }
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
TPFloat EcalTrapezoidParameters::x15 ( ) const

Definition at line 180 of file EcalTrapezoidParameters.cc.

References m_x15.

180 { return m_x15 ; }
TPFloat EcalTrapezoidParameters::y15 ( ) const

Definition at line 181 of file EcalTrapezoidParameters.cc.

References m_y15.

181 { return m_y15 ; }

Member Data Documentation

TPFloat EcalTrapezoidParameters::m_a
private

Definition at line 152 of file EcalTrapezoidParameters.h.

Referenced by a(), and EcalTrapezoidParameters().

TPFloat EcalTrapezoidParameters::m_A
private

Definition at line 152 of file EcalTrapezoidParameters.h.

Referenced by A(), and EcalTrapezoidParameters().

TPFloat EcalTrapezoidParameters::m_a1
private

Definition at line 150 of file EcalTrapezoidParameters.h.

Referenced by a1(), and EcalTrapezoidParameters().

TPFloat EcalTrapezoidParameters::m_a4
private

Definition at line 151 of file EcalTrapezoidParameters.h.

Referenced by a4(), and EcalTrapezoidParameters().

TPFloat EcalTrapezoidParameters::m_alp1
private

Definition at line 149 of file EcalTrapezoidParameters.h.

Referenced by alp1(), and EcalTrapezoidParameters().

TPFloat EcalTrapezoidParameters::m_alp2
private

Definition at line 149 of file EcalTrapezoidParameters.h.

Referenced by alp2(), and EcalTrapezoidParameters().

TPFloat EcalTrapezoidParameters::m_b
private

Definition at line 152 of file EcalTrapezoidParameters.h.

Referenced by b(), and EcalTrapezoidParameters().

TPFloat EcalTrapezoidParameters::m_B
private

Definition at line 152 of file EcalTrapezoidParameters.h.

Referenced by B(), and EcalTrapezoidParameters().

TPFloat EcalTrapezoidParameters::m_bl1
private

Definition at line 149 of file EcalTrapezoidParameters.h.

Referenced by bl1(), and EcalTrapezoidParameters().

TPFloat EcalTrapezoidParameters::m_bl2
private

Definition at line 149 of file EcalTrapezoidParameters.h.

Referenced by bl2(), and EcalTrapezoidParameters().

TPFloat EcalTrapezoidParameters::m_c
private

Definition at line 152 of file EcalTrapezoidParameters.h.

Referenced by c(), and EcalTrapezoidParameters().

TPFloat EcalTrapezoidParameters::m_C
private

Definition at line 152 of file EcalTrapezoidParameters.h.

Referenced by C(), and EcalTrapezoidParameters().

TPFloat EcalTrapezoidParameters::m_d
private

Definition at line 152 of file EcalTrapezoidParameters.h.

Referenced by d(), and EcalTrapezoidParameters().

TPFloat EcalTrapezoidParameters::m_D
private

Definition at line 152 of file EcalTrapezoidParameters.h.

Referenced by D(), and EcalTrapezoidParameters().

TPFloat EcalTrapezoidParameters::m_dz
private

Definition at line 149 of file EcalTrapezoidParameters.h.

Referenced by dz(), and EcalTrapezoidParameters().

TPFloat EcalTrapezoidParameters::m_h
private

Definition at line 152 of file EcalTrapezoidParameters.h.

Referenced by EcalTrapezoidParameters(), and h().

TPFloat EcalTrapezoidParameters::m_H
private

Definition at line 152 of file EcalTrapezoidParameters.h.

Referenced by EcalTrapezoidParameters(), and H().

TPFloat EcalTrapezoidParameters::m_h1
private

Definition at line 149 of file EcalTrapezoidParameters.h.

Referenced by EcalTrapezoidParameters(), and h1().

TPFloat EcalTrapezoidParameters::m_h2
private

Definition at line 149 of file EcalTrapezoidParameters.h.

Referenced by EcalTrapezoidParameters(), and h2().

TPFloat EcalTrapezoidParameters::m_hAa
private

Definition at line 150 of file EcalTrapezoidParameters.h.

Referenced by EcalTrapezoidParameters(), and hAa().

TPFloat EcalTrapezoidParameters::m_hBb
private

Definition at line 151 of file EcalTrapezoidParameters.h.

Referenced by EcalTrapezoidParameters(), and hBb().

TPFloat EcalTrapezoidParameters::m_hCc
private

Definition at line 151 of file EcalTrapezoidParameters.h.

Referenced by EcalTrapezoidParameters(), and hCc().

TPFloat EcalTrapezoidParameters::m_hDd
private

Definition at line 151 of file EcalTrapezoidParameters.h.

Referenced by EcalTrapezoidParameters(), and hDd().

TPFloat EcalTrapezoidParameters::m_L
private

Definition at line 152 of file EcalTrapezoidParameters.h.

Referenced by EcalTrapezoidParameters(), and L().

TPFloat EcalTrapezoidParameters::m_ph
private

Definition at line 149 of file EcalTrapezoidParameters.h.

Referenced by EcalTrapezoidParameters(), and phi().

TPFloat EcalTrapezoidParameters::m_th
private

Definition at line 149 of file EcalTrapezoidParameters.h.

Referenced by EcalTrapezoidParameters(), and theta().

TPFloat EcalTrapezoidParameters::m_tl1
private

Definition at line 149 of file EcalTrapezoidParameters.h.

Referenced by EcalTrapezoidParameters(), and tl1().

TPFloat EcalTrapezoidParameters::m_tl2
private

Definition at line 149 of file EcalTrapezoidParameters.h.

Referenced by EcalTrapezoidParameters(), and tl2().

TPFloat EcalTrapezoidParameters::m_x15
private

Definition at line 150 of file EcalTrapezoidParameters.h.

Referenced by EcalTrapezoidParameters(), and x15().

TPFloat EcalTrapezoidParameters::m_y15
private

Definition at line 150 of file EcalTrapezoidParameters.h.

Referenced by EcalTrapezoidParameters(), and y15().