Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

Atlfast::JetSmearer Class Reference

Provides parameterised jet smearing. More...

#include <JetSmearer.h>

Inheritance diagram for Atlfast::JetSmearer:

Inheritance graph
[legend]
Collaboration diagram for Atlfast::JetSmearer:

Collaboration graph
[legend]
List of all members.

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

Detailed Description

Provides parameterised jet smearing.

Jet Smearer honours the ISmearer interface and uses implementation of the DefaultSmearer class.

Definition at line 38 of file JetSmearer.h.


Constructor & Destructor Documentation

Atlfast::JetSmearer::JetSmearer const int    aseed,
const int    lumi,
const double    rconeb,
const double    rconef,
const double    barrelForwardEta
[inline]
 

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

virtual Atlfast::JetSmearer::~JetSmearer   [inline, virtual]
 

Definition at line 57 of file JetSmearer.h.

00057 { }

Member Function Documentation

HepLorentzVector Atlfast::JetSmearer::smear const HepLorentzVector &    avec [virtual]
 

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   }

Member Data Documentation

int Atlfast::JetSmearer::m_lumi [private]
 

Definition at line 69 of file JetSmearer.h.

Referenced by JetSmearer(), and smear().

double Atlfast::JetSmearer::m_rconeb [private]
 

Definition at line 70 of file JetSmearer.h.

Referenced by JetSmearer(), and smear().

double Atlfast::JetSmearer::m_rconef [private]
 

Definition at line 71 of file JetSmearer.h.

Referenced by JetSmearer(), and smear().

double Atlfast::JetSmearer::m_BarrelForwardEta [private]
 

Definition at line 72 of file JetSmearer.h.

Referenced by JetSmearer(), and smear().


The documentation for this class was generated from the following files:
Generated on Tue Mar 18 11:18:57 2003 for AtlfastAlgs by doxygen1.3-rc1