#include <JetSmearer.h>
Inheritance diagram for Atlfast::JetSmearer:
Public Methods | |
JetSmearer (const int aseed, const int lumi, const double rconeb, const double rconef, const double barrelForwardEta) | |
virtual | ~JetSmearer () |
virtual HepLorentzVector | smear (const HepLorentzVector &avec) |
Smear method decleration provided by ISmearer interface. | |
Private Attributes | |
int | m_lumi |
double | m_rconeb |
double | m_rconef |
double | m_BarrelForwardEta |
Jet Smearer honours the ISmearer interface and uses implementation of the DefaultSmearer class.
Definition at line 38 of file JetSmearer.h.
|
Definition at line 45 of file JetSmearer.h. References m_BarrelForwardEta, m_lumi, m_rconeb, and m_rconef.
00049 : 00050 ISmearer(), 00051 DefaultSmearer(aseed), 00052 m_lumi(lumi), 00053 m_rconeb(rconeb), 00054 m_rconef(rconef), 00055 m_BarrelForwardEta(barrelForwardEta) 00056 { } |
|
Definition at line 57 of file JetSmearer.h.
00057 { } |
|
Smear method decleration provided by ISmearer interface.
Reimplemented from Atlfast::DefaultSmearer. Definition at line 24 of file JetSmearer.cxx. References m_BarrelForwardEta, m_lumi, m_rconeb, m_rconef, and Atlfast::DefaultSmearer::randGauss().
00024 { 00025 // do the smearing, copied verbatim (except for ROOT dependencies) 00026 // from Jetmaker codein Atlfast++ 00027 // 00028 // This code has not otherwise been altered which is why it is all very 00029 // procedural 00030 // 00031 00032 //........................................................ 00033 //.....smear clusters energy 00034 //........................................................ 00035 float sigma=0.; 00036 HepLorentzVector smearedVec(vec); 00037 00038 00039 // parametrizes smearing for hadronic energy deposition 00040 // parametrization from L. Poggioli 00041 // pile-up added as in HADCALO 00042 00043 float epileup = 0; 00044 float aa, bb, cc, dd,pt; 00045 float sqrtene = sqrt(vec.e()); 00046 float abseta = fabs(vec.pseudoRapidity()); 00047 float rcone; 00048 pt = vec.perp(); 00049 if (fabs(vec.pseudoRapidity()) <= m_BarrelForwardEta) {rcone=m_rconeb;}else{rcone=m_rconef;} 00050 if(rcone <= 0.4) epileup = 0.4; 00051 if(rcone == 0.4) epileup = 7.5; 00052 if(rcone > 0.4 && rcone <= 0.5) epileup = 12.0; 00053 if(rcone > 0.5 && rcone <= 0.7) epileup = 18.0; 00054 if(rcone > 0.7) epileup = 20.0; 00055 00056 if(m_lumi <= 1) { 00057 while(1) { 00058 aa=randGauss()->fire(); 00059 bb=randGauss()->fire(); 00060 if(abseta < m_BarrelForwardEta) sigma = aa*0.5/sqrtene + bb*0.03; 00061 else sigma = aa*1.0/sqrtene + bb*0.07; 00062 if(1.+sigma > .0) break; 00063 } 00064 } else if(m_lumi == 2) { 00065 while(1) { 00066 aa=randGauss()->fire(); 00067 bb=randGauss()->fire(); 00068 cc=randGauss()->fire(); 00069 dd=randGauss()->fire(); 00070 if(abseta < m_BarrelForwardEta) sigma = aa*0.5/sqrtene + bb*0.03 + cc*epileup/pt; 00071 else sigma = aa*1.0/sqrtene + bb*0.07 + cc*epileup/pt; 00072 if(1.+sigma > .0) break; 00073 } 00074 00075 } 00076 smearedVec.setPx(vec.px()*(1.0+sigma)); 00077 smearedVec.setPy(vec.py()*(1.0+sigma)); 00078 smearedVec.setPz(vec.pz()*(1.0+sigma)); 00079 smearedVec.setE(vec.e()*(1.0+sigma)); 00080 00081 00082 return smearedVec; 00083 00084 } |
|
Definition at line 69 of file JetSmearer.h. Referenced by JetSmearer(), and smear(). |
|
Definition at line 70 of file JetSmearer.h. Referenced by JetSmearer(), and smear(). |
|
Definition at line 71 of file JetSmearer.h. Referenced by JetSmearer(), and smear(). |
|
Definition at line 72 of file JetSmearer.h. Referenced by JetSmearer(), and smear(). |