#include <Geometry/CaloGeometry/interface/EcalTrapezoidParameters.h>
Public Types | |
typedef std::vector< HepPoint3D > | VertexList |
Public Member Functions | |
double | A () const |
double | a () const |
double | a1 () const |
double | a4 () const |
double | alp1 () const |
double | alp2 () const |
double | B () const |
double | b () const |
double | bl1 () const |
double | bl2 () const |
double | C () const |
double | c () const |
double | D () const |
double | d () const |
double | dz () const |
EcalTrapezoidParameters (double aHalfLengthXNegZLoY, double aHalfLengthXPosZLoY, double aHalfLengthXPosZHiY, double aHalfLengthYNegZ, double aHalfLengthYPosZ, double aHalfLengthZ, double aAngleAD, double aCoord15X, double aCoord15Y) | |
double | H () const |
double | h () const |
double | h1 () const |
double | h2 () const |
double | hAa () const |
double | hBb () const |
double | hCc () const |
double | hDd () const |
double | L () const |
double | phi () const |
double | theta () const |
double | tl1 () const |
double | tl2 () const |
VertexList | vertexList () const |
double | x15 () const |
double | y15 () const |
Private Member Functions | |
EcalTrapezoidParameters (const EcalTrapezoidParameters &) | |
EcalTrapezoidParameters () | |
const EcalTrapezoidParameters & | operator= (const EcalTrapezoidParameters &) |
Private Attributes | |
double | m_A |
double | m_a |
double | m_a1 |
double | m_a4 |
double | m_alp1 |
double | m_alp2 |
double | m_B |
double | m_b |
double | m_bl1 |
double | m_bl2 |
double | m_C |
double | m_c |
double | m_D |
double | m_d |
double | m_dz |
double | m_H |
double | m_h |
double | m_h1 |
double | m_h2 |
double | m_hAa |
double | m_hBb |
double | m_hCc |
double | m_hDd |
double | m_L |
double | m_ph |
double | m_th |
double | m_tl1 |
double | m_tl2 |
double | m_x15 |
double | m_y15 |
Definition at line 67 of file EcalTrapezoidParameters.h.
typedef std::vector<HepPoint3D> EcalTrapezoidParameters::VertexList |
Definition at line 73 of file EcalTrapezoidParameters.h.
EcalTrapezoidParameters::EcalTrapezoidParameters | ( | double | aHalfLengthXNegZLoY, | |
double | aHalfLengthXPosZLoY, | |||
double | aHalfLengthXPosZHiY, | |||
double | aHalfLengthYNegZ, | |||
double | aHalfLengthYPosZ, | |||
double | aHalfLengthZ, | |||
double | aAngleAD, | |||
double | aCoord15X, | |||
double | aCoord15Y | |||
) |
Definition at line 37 of file EcalTrapezoidParameters.cc.
References funct::cos(), dc, 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_2, m_th, m_tl1, m_tl2, m_x15, m_y15, funct::sin(), funct::sqrt(), funct::tan(), and v5.
00048 { 00049 m_dz = aHalfLengthZ ; 00050 m_h1 = aHalfLengthYNegZ ; 00051 m_bl1 = aHalfLengthXNegZLoY ; 00052 m_h2 = aHalfLengthYPosZ ; 00053 m_bl2 = aHalfLengthXPosZLoY ; 00054 m_tl2 = aHalfLengthXPosZHiY ; 00055 00056 m_a1 = aAngleAD ; 00057 m_y15 = aCoord15Y ; 00058 m_x15 = aCoord15X ; 00059 00060 m_hAa = fabs( m_y15 ) ; 00061 00062 m_L = 2*m_dz ; 00063 m_h = 2*m_h2 ; 00064 m_a = 2*m_bl2 ; 00065 m_b = 2*m_tl2 ; 00066 m_H = 2*m_h1 ; 00067 m_A = 2*m_bl1 ; 00068 00069 // derive everything else 00070 const double sina1 ( sin( m_a1 ) ) ; 00071 const double cosa1 ( cos( m_a1 ) ) ; 00072 const double tana1 ( tan( m_a1 - M_PI_2 ) ) ; 00073 00074 const double tana4 ( ( m_tl2 - m_bl2 - m_h2*tana1 )/m_h2 ) ; 00075 00076 m_a4 = M_PI_2 + atan( tana4 ) ; 00077 00078 m_tl1 = m_bl1 + m_h1*( tana1 + tana4 ) ; 00079 00080 m_d = m_h/sina1 ; 00081 m_D = m_H/sina1 ; 00082 00083 const double tanalp1 ( ( m_D*cosa1 + m_tl1 - m_bl1 )/m_H ) ; 00084 const double tanalp2 ( ( m_d*cosa1 + m_tl2 - m_bl2 )/m_h ) ; 00085 m_alp1 = atan( tanalp1 ) ; 00086 m_alp2 = atan( tanalp2 ) ; 00087 00088 const double sina4 ( sin( m_a4 ) ) ; 00089 m_c = m_h/sina4 ; 00090 m_C = m_H/sina4 ; 00091 m_B = 2*m_tl1 ; // same as m_A - m_D*cosa1 - m_C*cos( m_a4 ) ; 00092 00093 m_hDd = fabs( m_x15 )*sina1 - m_hAa*cosa1 ; 00094 00095 const double xd5 ( ( m_hAa + m_hDd*cosa1 )/sina1 ) ; 00096 const double xd6 ( m_D - m_d - xd5 ) ; 00097 const double z6 ( sqrt( m_hDd*m_hDd + xd6*xd6 ) ) ; 00098 double gb6 ; 00099 if( 0. == z6 || 1. < fabs( m_hDd/z6 ) ) 00100 { 00101 gb6 = 0 ; 00102 } 00103 else 00104 { 00105 gb6 = M_PI - m_a1 - asin( m_hDd/z6 ) ; 00106 } 00107 m_hBb = z6*sin( gb6 ) ; 00108 00109 const double xb6 ( z6*cos( gb6 ) ) ; 00110 const double xb7 ( m_B - xb6 - m_b ) ; 00111 const double z7 ( sqrt( m_hBb*m_hBb + xb7*xb7 ) ) ; 00112 double gc7 ; 00113 if( 0 == z7 || 1. < fabs( m_hBb/z7 ) ) 00114 { 00115 gc7 = 0 ; 00116 } 00117 else 00118 { 00119 gc7 = M_PI - m_a4 - asin( m_hBb/z7 ) ; 00120 } 00121 m_hCc = z7*sin( gc7 ) ; 00122 00123 const HepPoint3D fc ( m_bl2 + m_h2*tanalp2, m_h2, 0 ) ; 00124 const HepPoint3D v5 ( m_x15 , m_y15 , -m_L ) ; 00125 const HepPoint3D bc ( v5 + 00126 HepPoint3D( m_bl1 + m_h1*tanalp1, m_h1, 0 ) ) ; 00127 const HepPoint3D dc ( fc - bc ) ; 00128 00129 m_th = dc.theta() ; 00130 m_ph = dc.phi() ; 00131 }
EcalTrapezoidParameters::EcalTrapezoidParameters | ( | ) | [private] |
EcalTrapezoidParameters::EcalTrapezoidParameters | ( | const EcalTrapezoidParameters & | ) | [private] |
double EcalTrapezoidParameters::A | ( | ) | const |
Definition at line 191 of file EcalTrapezoidParameters.cc.
References m_A.
Referenced by DDEcalBarrelAlgo::execute(), vertexList(), and DDEcalBarrelAlgo::web().
00191 { return m_A ; }
double EcalTrapezoidParameters::a | ( | ) | const |
Definition at line 186 of file EcalTrapezoidParameters.cc.
References m_a.
Referenced by DDEcalBarrelAlgo::execute(), vertexList(), and DDEcalBarrelAlgo::web().
00186 { return m_a ; }
double EcalTrapezoidParameters::a1 | ( | ) | const |
Definition at line 183 of file EcalTrapezoidParameters.cc.
References m_a1.
Referenced by vertexList().
00183 { return m_a1 ; }
double EcalTrapezoidParameters::a4 | ( | ) | const |
double EcalTrapezoidParameters::alp1 | ( | ) | const |
Definition at line 171 of file EcalTrapezoidParameters.cc.
References m_alp1.
Referenced by DDEcalBarrelAlgo::mytrap(), and vertexList().
00171 { return m_alp1 ; }
double EcalTrapezoidParameters::alp2 | ( | ) | const |
Definition at line 175 of file EcalTrapezoidParameters.cc.
References m_alp2.
Referenced by DDEcalBarrelAlgo::mytrap(), and vertexList().
00175 { return m_alp2 ; }
double EcalTrapezoidParameters::B | ( | ) | const |
Definition at line 192 of file EcalTrapezoidParameters.cc.
References m_B.
Referenced by vertexList(), and DDEcalBarrelAlgo::web().
00192 { return m_B ; }
double EcalTrapezoidParameters::b | ( | ) | const |
Definition at line 187 of file EcalTrapezoidParameters.cc.
References m_b.
Referenced by DDEcalBarrelAlgo::execute(), vertexList(), and DDEcalBarrelAlgo::web().
00187 { return m_b ; }
double EcalTrapezoidParameters::bl1 | ( | ) | const |
Definition at line 169 of file EcalTrapezoidParameters.cc.
References m_bl1.
Referenced by DDEcalBarrelAlgo::execute(), DDEcalBarrelAlgo::mytrap(), and vertexList().
00169 { return m_bl1 ; }
double EcalTrapezoidParameters::bl2 | ( | ) | const |
Definition at line 173 of file EcalTrapezoidParameters.cc.
References m_bl2.
Referenced by DDEcalBarrelAlgo::mytrap(), and vertexList().
00173 { return m_bl2 ; }
double EcalTrapezoidParameters::C | ( | ) | const |
double EcalTrapezoidParameters::c | ( | ) | const |
double EcalTrapezoidParameters::D | ( | ) | const |
double EcalTrapezoidParameters::d | ( | ) | const |
double EcalTrapezoidParameters::dz | ( | ) | const |
Definition at line 165 of file EcalTrapezoidParameters.cc.
References m_dz.
Referenced by DDEcalBarrelAlgo::execute(), DDEcalBarrelAlgo::mytrap(), and vertexList().
00165 { return m_dz ; }
double EcalTrapezoidParameters::H | ( | ) | const |
Definition at line 195 of file EcalTrapezoidParameters.cc.
References m_H.
Referenced by DDEcalBarrelAlgo::execute(), and vertexList().
00195 { return m_H ; }
double EcalTrapezoidParameters::h | ( | ) | const |
Definition at line 190 of file EcalTrapezoidParameters.cc.
References m_h.
Referenced by DDEcalBarrelAlgo::execute(), vertexList(), and DDEcalBarrelAlgo::web().
00190 { return m_h ; }
double EcalTrapezoidParameters::h1 | ( | ) | const |
Definition at line 168 of file EcalTrapezoidParameters.cc.
References m_h1.
Referenced by DDEcalBarrelAlgo::execute(), DDEcalBarrelAlgo::mytrap(), and vertexList().
00168 { return m_h1 ; }
double EcalTrapezoidParameters::h2 | ( | ) | const |
Definition at line 172 of file EcalTrapezoidParameters.cc.
References m_h2.
Referenced by DDEcalBarrelAlgo::mytrap(), and vertexList().
00172 { return m_h2 ; }
double EcalTrapezoidParameters::hAa | ( | ) | const |
Definition at line 179 of file EcalTrapezoidParameters.cc.
References m_hAa.
00179 { return m_hAa ; }
double EcalTrapezoidParameters::hBb | ( | ) | const |
Definition at line 180 of file EcalTrapezoidParameters.cc.
References m_hBb.
00180 { return m_hBb ; }
double EcalTrapezoidParameters::hCc | ( | ) | const |
Definition at line 181 of file EcalTrapezoidParameters.cc.
References m_hCc.
00181 { return m_hCc ; }
double EcalTrapezoidParameters::hDd | ( | ) | const |
Definition at line 182 of file EcalTrapezoidParameters.cc.
References m_hDd.
00182 { return m_hDd ; }
double EcalTrapezoidParameters::L | ( | ) | const |
Definition at line 185 of file EcalTrapezoidParameters.cc.
References m_L.
Referenced by DDEcalBarrelAlgo::execute(), and DDEcalBarrelAlgo::web().
00185 { return m_L ; }
const EcalTrapezoidParameters& EcalTrapezoidParameters::operator= | ( | const EcalTrapezoidParameters & | ) | [private] |
double EcalTrapezoidParameters::phi | ( | void | ) | const |
Definition at line 167 of file EcalTrapezoidParameters.cc.
References m_ph.
Referenced by DDEcalBarrelAlgo::mytrap(), and vertexList().
00167 { return m_ph ; }
double EcalTrapezoidParameters::theta | ( | ) | const |
Definition at line 166 of file EcalTrapezoidParameters.cc.
References m_th.
Referenced by DDEcalBarrelAlgo::mytrap(), and vertexList().
00166 { return m_th ; }
double EcalTrapezoidParameters::tl1 | ( | ) | const |
Definition at line 170 of file EcalTrapezoidParameters.cc.
References m_tl1.
Referenced by DDEcalBarrelAlgo::mytrap().
00170 { return m_tl1 ; }
double EcalTrapezoidParameters::tl2 | ( | ) | const |
Definition at line 174 of file EcalTrapezoidParameters.cc.
References m_tl2.
Referenced by DDEcalBarrelAlgo::mytrap().
00174 { return m_tl2 ; }
EcalTrapezoidParameters::VertexList EcalTrapezoidParameters::vertexList | ( | ) | const |
Definition at line 198 of file EcalTrapezoidParameters.cc.
References A(), a(), a1(), a_, alp1(), alp2(), b(), B(), bl1(), bl2(), funct::cos(), dz(), f1, f2, h(), H(), h1(), h2(), M_PI_2, phi(), funct::sin(), funct::tan(), and theta().
Referenced by DDEcalBarrelAlgo::execute(), and DDEcalBarrelAlgo::web().
00199 { 00200 VertexList vtx ; 00201 vtx.reserve( 8 ) ; 00202 00203 const double dztanth ( dz()*tan( theta() ) ) ; 00204 00205 const double ph ( phi() ) ; 00206 const HepPoint3D fc ( dztanth*cos(ph), dztanth*sin(ph), dz() ) ; 00207 00208 const double h_ ( h() ) ; 00209 const double H_ ( H() ) ; 00210 const double b_ ( b() ) ; 00211 const double B_ ( B() ) ; 00212 const double a_ ( a() ) ; 00213 const double A_ ( A() ) ; 00214 00215 // const double tl1 ( tl1() ) ; 00216 00217 const double tanalp1 ( tan(alp1()) ) ; 00218 00219 const double tanalp2 ( tan(alp2()) ) ; 00220 00221 const double tana1 ( tan( a1() - M_PI_2 ) ) ; 00222 00223 const HepPoint3D f1 ( -HepPoint3D( bl2() + h2()*tanalp2, h2(), 0 ) ) ; 00224 00225 const HepPoint3D f2 ( HepPoint3D( -h_*tana1, h_, 0 ) + f1 ) ; 00226 00227 const HepPoint3D f3 ( f2 + HepPoint3D( b_,0,0 ) ) ; 00228 00229 const HepPoint3D f4 ( HepPoint3D( a_,0,0 ) + f1 ) ; 00230 00231 00232 const HepPoint3D f5 ( -HepPoint3D( bl1() + h1()*tanalp1, h1(), 0 ) ) ; 00233 00234 const HepPoint3D f6 ( HepPoint3D( -H_*tana1, H_, 0 ) + f5 ) ; 00235 00236 const HepPoint3D f7 ( f6 + HepPoint3D( B_,0,0 ) ) ; 00237 00238 const HepPoint3D f8 ( HepPoint3D( A_,0,0 ) + f5 ) ; 00239 00240 vtx.push_back( fc + f1 ) ; 00241 vtx.push_back( fc + f2 ) ; 00242 vtx.push_back( fc + f3 ) ; 00243 vtx.push_back( fc + f4 ) ; 00244 vtx.push_back( -fc + f5 ) ; 00245 vtx.push_back( -fc + f6 ) ; 00246 vtx.push_back( -fc + f7 ) ; 00247 vtx.push_back( -fc + f8 ) ; 00248 00249 return vtx ; 00250 }
double EcalTrapezoidParameters::x15 | ( | ) | const |
Definition at line 177 of file EcalTrapezoidParameters.cc.
References m_x15.
00177 { return m_x15 ; }
double EcalTrapezoidParameters::y15 | ( | ) | const |
Definition at line 178 of file EcalTrapezoidParameters.cc.
References m_y15.
00178 { return m_y15 ; }
double EcalTrapezoidParameters::m_A [private] |
Definition at line 150 of file EcalTrapezoidParameters.h.
Referenced by A(), and EcalTrapezoidParameters().
double EcalTrapezoidParameters::m_a [private] |
Definition at line 150 of file EcalTrapezoidParameters.h.
Referenced by a(), and EcalTrapezoidParameters().
double EcalTrapezoidParameters::m_a1 [private] |
Definition at line 148 of file EcalTrapezoidParameters.h.
Referenced by a1(), and EcalTrapezoidParameters().
double EcalTrapezoidParameters::m_a4 [private] |
Definition at line 149 of file EcalTrapezoidParameters.h.
Referenced by a4(), and EcalTrapezoidParameters().
double EcalTrapezoidParameters::m_alp1 [private] |
Definition at line 146 of file EcalTrapezoidParameters.h.
Referenced by alp1(), and EcalTrapezoidParameters().
double EcalTrapezoidParameters::m_alp2 [private] |
Definition at line 146 of file EcalTrapezoidParameters.h.
Referenced by alp2(), and EcalTrapezoidParameters().
double EcalTrapezoidParameters::m_B [private] |
Definition at line 150 of file EcalTrapezoidParameters.h.
Referenced by B(), and EcalTrapezoidParameters().
double EcalTrapezoidParameters::m_b [private] |
Definition at line 150 of file EcalTrapezoidParameters.h.
Referenced by b(), and EcalTrapezoidParameters().
double EcalTrapezoidParameters::m_bl1 [private] |
Definition at line 146 of file EcalTrapezoidParameters.h.
Referenced by bl1(), and EcalTrapezoidParameters().
double EcalTrapezoidParameters::m_bl2 [private] |
Definition at line 146 of file EcalTrapezoidParameters.h.
Referenced by bl2(), and EcalTrapezoidParameters().
double EcalTrapezoidParameters::m_C [private] |
Definition at line 150 of file EcalTrapezoidParameters.h.
Referenced by C(), and EcalTrapezoidParameters().
double EcalTrapezoidParameters::m_c [private] |
Definition at line 150 of file EcalTrapezoidParameters.h.
Referenced by c(), and EcalTrapezoidParameters().
double EcalTrapezoidParameters::m_D [private] |
Definition at line 150 of file EcalTrapezoidParameters.h.
Referenced by D(), and EcalTrapezoidParameters().
double EcalTrapezoidParameters::m_d [private] |
Definition at line 150 of file EcalTrapezoidParameters.h.
Referenced by d(), and EcalTrapezoidParameters().
double EcalTrapezoidParameters::m_dz [private] |
Definition at line 146 of file EcalTrapezoidParameters.h.
Referenced by dz(), and EcalTrapezoidParameters().
double EcalTrapezoidParameters::m_H [private] |
Definition at line 150 of file EcalTrapezoidParameters.h.
Referenced by EcalTrapezoidParameters(), and H().
double EcalTrapezoidParameters::m_h [private] |
Definition at line 150 of file EcalTrapezoidParameters.h.
Referenced by EcalTrapezoidParameters(), and h().
double EcalTrapezoidParameters::m_h1 [private] |
Definition at line 146 of file EcalTrapezoidParameters.h.
Referenced by EcalTrapezoidParameters(), and h1().
double EcalTrapezoidParameters::m_h2 [private] |
Definition at line 146 of file EcalTrapezoidParameters.h.
Referenced by EcalTrapezoidParameters(), and h2().
double EcalTrapezoidParameters::m_hAa [private] |
Definition at line 148 of file EcalTrapezoidParameters.h.
Referenced by EcalTrapezoidParameters(), and hAa().
double EcalTrapezoidParameters::m_hBb [private] |
Definition at line 149 of file EcalTrapezoidParameters.h.
Referenced by EcalTrapezoidParameters(), and hBb().
double EcalTrapezoidParameters::m_hCc [private] |
Definition at line 149 of file EcalTrapezoidParameters.h.
Referenced by EcalTrapezoidParameters(), and hCc().
double EcalTrapezoidParameters::m_hDd [private] |
Definition at line 149 of file EcalTrapezoidParameters.h.
Referenced by EcalTrapezoidParameters(), and hDd().
double EcalTrapezoidParameters::m_L [private] |
Definition at line 150 of file EcalTrapezoidParameters.h.
Referenced by EcalTrapezoidParameters(), and L().
double EcalTrapezoidParameters::m_ph [private] |
Definition at line 146 of file EcalTrapezoidParameters.h.
Referenced by EcalTrapezoidParameters(), and phi().
double EcalTrapezoidParameters::m_th [private] |
Definition at line 146 of file EcalTrapezoidParameters.h.
Referenced by EcalTrapezoidParameters(), and theta().
double EcalTrapezoidParameters::m_tl1 [private] |
Definition at line 146 of file EcalTrapezoidParameters.h.
Referenced by EcalTrapezoidParameters(), and tl1().
double EcalTrapezoidParameters::m_tl2 [private] |
Definition at line 146 of file EcalTrapezoidParameters.h.
Referenced by EcalTrapezoidParameters(), and tl2().
double EcalTrapezoidParameters::m_x15 [private] |
Definition at line 148 of file EcalTrapezoidParameters.h.
Referenced by EcalTrapezoidParameters(), and x15().
double EcalTrapezoidParameters::m_y15 [private] |
Definition at line 148 of file EcalTrapezoidParameters.h.
Referenced by EcalTrapezoidParameters(), and y15().