stablejet is hosted by Hepforge, IPPP Durham
StableJet
CmsLikeJetSmear.cc
1 #include <cmath>
2 #include <cassert>
3 
4 #include "generator/pythia6.h"
5 
6 #include "CmsLikeJetSmear.h"
7 
8 namespace stab {
9 
10  CmsLikeJetSmear::CmsLikeJetSmear(const bool makePtPositive,const bool runEfficiency)
11  : m_ecalStochasticTerm(0.028),
12  m_ecalNoiseTerm(0.125),
13  m_ecalConstantTerm(0.003),
14  m_hcalStochasticTerm(0.85),
15  m_hcalNoiseTerm(0.0),
16  m_hcalConstantTerm(0.075),
17  m_trackPtResolution(0.02),
18  m_angularResolutionPhoton(0.005),
19  m_angularResolutionNeutralHadron(0.025),
20  m_angularResolutionTrack(0.0015),
21  m_onlyPositivePt(makePtPositive),
22  m_runEfficiency(runEfficiency),
23  m_eff(0.25)
24  {
25  }
26 
27  void CmsLikeJetSmear::processPhoton(const PseudoJet& in, const StabilityUserInfo &info,
28  ParticleCollection* out
29  ) const
30  {
31  const double sigmaPt = ecalEtUncertainty(in.pt());
32  PseudoJet newP4 = smear4Mom(in, sigmaPt, m_angularResolutionPhoton,
33  m_onlyPositivePt);
34 
35  //StabilityUserInfo *info = new StabilityUserInfo( in.user_info<StabilityUserInfo>() );
36  //newP4.set_user_info(info);
37  out->push_back( newP4 );
38  }
39 
40  void CmsLikeJetSmear::processTrack(const PseudoJet& in, const StabilityUserInfo &info,
41  ParticleCollection* out
42  ) const
43  {
44  const double sigmaPt = m_trackPtResolution*in.pt();
45  PseudoJet newP4 = smear4Mom(in, sigmaPt, m_angularResolutionTrack,
46  m_onlyPositivePt);
47 
48  //StabilityUserInfo *info = new StabilityUserInfo( in.user_info<StabilityUserInfo>() );
49  //newP4.set_user_info(info);
50  out->push_back( newP4 );
51  }
52 
53  void CmsLikeJetSmear::processNeutralHadron(const PseudoJet& in, const StabilityUserInfo &info,
54  ParticleCollection* out
55  ) const
56  {
57  const double sigmaPt = hcalEtUncertainty(in.pt());
58  PseudoJet newP4 = smear4Mom(in, sigmaPt,
59  m_angularResolutionNeutralHadron,
60  m_onlyPositivePt);
61 
62  //StabilityUserInfo *info = new StabilityUserInfo( in.user_info<StabilityUserInfo>() );
63  //newP4.set_user_info( info );
64  out->push_back( newP4 );
65  }
66 
67 
68 } // end stab namespace