stablejet is hosted by Hepforge, IPPP Durham
StableJet
CmsLikeJetEfficiency.cc
1 #include "CmsLikeJetEfficiency.h"
2 #include "generator/pythia6.h"
3 
4 #include "PythiaJetGun.hh"
5 
6 #define CODE_KLONG 130
7 
8 namespace stab {
9 
10  CmsLikeJetEfficiency::CmsLikeJetEfficiency(
11  const double i_minTrackPt,
12  const double i_minNeutralHadronPt,
13  const double i_minPhotonPt ,
14  const double i_trackingEfficiencyInJets)
15  : m_minTrackPt(i_minTrackPt),
16  m_trackRap(5.5),
17  m_minNeutralHadronPt(i_minNeutralHadronPt),
18  m_hadRap(5.5),
19  m_minPhotonPt(i_minPhotonPt),
20  m_photoRap(5.5),
21  m_trackingEfficiencyInJets(i_trackingEfficiencyInJets),
22  m_friendInfo(NULL)
23  {
24  m_klong_mass = pymass(CODE_KLONG);
25  }
26 
27  void CmsLikeJetEfficiency::processPhoton(
28  const PseudoJet& in, const StabilityUserInfo &info, ParticleCollection* out
29  ) const
30  {
31  if ( in.pt() >= m_minPhotonPt && fabs(in.eta()) < m_photoRap ) {
32  out->push_back(in);
33  m_friendInfo->push_back( info );
34  }
35  }
36 
37  void CmsLikeJetEfficiency::processTrack(
38  const PseudoJet& in, const StabilityUserInfo &info, ParticleCollection* out
39  ) const
40  {
41  if ( in.pt() >= m_minTrackPt && fabs(in.eta()) < m_trackRap )
42  {
43  // Emulate tracking inefficiency
44  const double rnd = PythiaJetGun::pyrandom();
45  if (rnd > m_trackingEfficiencyInJets) {
46  // Replace the input particle by K_L
47  PseudoJet part(in.px(),in.py(),in.pz(),in.E());
48  //StabilityUserInfo *info = new StabilityUserInfo(CODE_KLONG,m_klong_mass);
49  //part.set_user_info( info );
50  out->push_back( part );
51  m_friendInfo->push_back( StabilityUserInfo(CODE_KLONG,m_klong_mass) );
52  }
53  else
54  out->push_back(in);
55  m_friendInfo->push_back( info );
56  }
57  }
58 
59  void CmsLikeJetEfficiency::processNeutralHadron(
60  const PseudoJet& in, const StabilityUserInfo &info, ParticleCollection* out
61  ) const
62  {
63  if ( in.pt() >= m_minNeutralHadronPt && fabs(in.eta()) < m_hadRap )
64  out->push_back(in);
65  m_friendInfo->push_back(info);
66  }
67 
68 
69 } // end stab namespace
70