stablejet is hosted by Hepforge, IPPP Durham
StableJet
SimpleSmear.cc
1 
2 #include "SimpleSmear.h"
3 
4 #include "PythiaJetGun.hh"
5 
6 namespace stab {
7 
8 void SimpleSmear::smear(Event &smearEvent)
9 {
10 
11  const unsigned nParts = m_event.size();
12  smearEvent.resize(nParts);
13 
14  for ( unsigned i=0; i != nParts; i++ ) {
15  const PseudoJet & part = m_event[i];
16  const double m = part.m();
17 
18  const double mass = m==m ? m : 0.;
19  const double p2 = part.modp2();
20  const double etmp = sqrt(p2+mass*mass);
21 
22  const double eta = part.eta()+PythiaJetGun::gaussRandom(0.,m_sigmaEtaPhi);
23  const double phi = part.phi()+PythiaJetGun::gaussRandom(0.,m_sigmaEtaPhi);
24  double eShift = -1.;
25  while ( eShift <= mass ) {
26  eShift = etmp+PythiaJetGun::gaussRandom(0.,m_sigmaE);
27  }
28  const double e = eShift;
29 
30  const double mom = e > mass ? sqrt(e*e-mass*mass) : 0.;
31  const double pt = mom/cosh(eta);
32  const double px = pt*cos(phi);
33  const double py = pt*sin(phi);
34  const double pz = pt*sinh(eta);
35 
36  smearEvent[i] = PseudoJet(px,py,pz,e);
37 
38  }
39 
40 }
41 
42 }
virtual void smear(Event &smearEvent)
smear the event
Definition: SimpleSmear.cc:8