stablejet is hosted by Hepforge, IPPP Durham
StableJet
CmsLikeJetSmear.h
1 #ifndef FastJetStability_CmsLikeJetSmear_h
2 #define FastJetStability_CmsLikeJetSmear_h
3 
4 #include "AbsSmearJet.hh"
5 #include "CmsLikeJetEfficiency.h"
6 
7 namespace stab {
8 
14 
15 public:
16  CmsLikeJetSmear(bool makePtPositive=false,bool runEfficiency=true);
17  inline virtual ~CmsLikeJetSmear() {}
18 
20  inline virtual void initialize(const Event &ev,const StabilityEventInfo &info)
21  {
22  this->getEvent().clear();
23  this->getInfo().clear();
24  if ( m_runEfficiency ) {
25  m_eff.initialize(ev,info);
26  m_eff.setFriendlyInfo( this->getInfo() );
27  m_eff.smear(this->getEvent());
28  } else {
29  this->getEvent() = ev;
30  this->getInfo() = info;
31  }
32  }
33 
34 
35  // be friends with QCDandCmsLikeSmear
36  friend class QCDandCmsLikeSmear;
37 
38 private:
39 
40  inline double ecalEtUncertainty(const double Et) const
41  {
42  return calorimeterEtUncertainty(m_ecalStochasticTerm, m_ecalNoiseTerm,
43  m_ecalConstantTerm, Et);
44  }
45 
46  inline double hcalEtUncertainty(const double Et) const
47  {
48  return calorimeterEtUncertainty(m_hcalStochasticTerm, m_hcalNoiseTerm,
49  m_hcalConstantTerm, Et);
50  }
51 
52  // Pure virtual methods from the base class
53  virtual void processPhoton(const PseudoJet& in, const StabilityUserInfo &info,
54  ParticleCollection* out
55  ) const;
56  virtual void processTrack(const PseudoJet& in, const StabilityUserInfo &info,
57  ParticleCollection* out
58  ) const;
59  virtual void processNeutralHadron(const PseudoJet& in, const StabilityUserInfo &info,
60  ParticleCollection* out
61  ) const;
62 
63 
64  // ----------------------- member data --------------------------
65  // ECAL resolution parameters (photons)
66  double m_ecalStochasticTerm;
67  double m_ecalNoiseTerm;
68  double m_ecalConstantTerm;
69 
70  // HCAL resolution parameters (neutral hadrons, missed tracks)
71  double m_hcalStochasticTerm;
72  double m_hcalNoiseTerm;
73  double m_hcalConstantTerm;
74 
75  // Track Pt resolution
76  double m_trackPtResolution;
77 
78  // Angular resolutions
79  double m_angularResolutionPhoton;
80  double m_angularResolutionNeutralHadron;
81  double m_angularResolutionTrack;
82 
83  bool m_onlyPositivePt;
84  bool m_runEfficiency;
85 
86  CmsLikeJetEfficiency m_eff;
87 
88 
89 }; // end CmsLikeJetSmear class declaration
90 
91 } // end stab namespace
92 
93 #endif
virtual void initialize(const Event &ev, const StabilityEventInfo &info)
override derived initialze to run the efficiency on the event first
virtual void smear(Event &)
smear the event, return the smeared event via the function argument.
Definition: AbsSmearJet.cc:43
virtual void initialize(const Event &ev, const StabilityEventInfo &info)
initialize the smearing agent with the initial event
Definition: AbsSmearJet.hh:17