CMS 3D CMS Logo

EcalTrapezoidParameters Class Reference

#include <Geometry/CaloGeometry/interface/EcalTrapezoidParameters.h>

List of all members.

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 EcalTrapezoidParametersoperator= (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


Detailed Description

Definition at line 67 of file EcalTrapezoidParameters.h.


Member Typedef Documentation

typedef std::vector<HepPoint3D> EcalTrapezoidParameters::VertexList

Definition at line 73 of file EcalTrapezoidParameters.h.


Constructor & Destructor Documentation

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]


Member Function Documentation

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

Definition at line 184 of file EcalTrapezoidParameters.cc.

References m_a4.

00184 { return m_a4   ; }

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

Definition at line 193 of file EcalTrapezoidParameters.cc.

References m_C.

00193 { return m_C    ; }

double EcalTrapezoidParameters::c (  )  const

Definition at line 188 of file EcalTrapezoidParameters.cc.

References m_c.

00188 { return m_c    ; }

double EcalTrapezoidParameters::D (  )  const

Definition at line 194 of file EcalTrapezoidParameters.cc.

References m_D.

00194 { return m_D    ; }

double EcalTrapezoidParameters::d (  )  const

Definition at line 189 of file EcalTrapezoidParameters.cc.

References m_d.

00189 { return m_d    ; }

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  ; }


Member Data Documentation

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().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:20:01 2009 for CMSSW by  doxygen 1.5.4