stablejet is hosted by Hepforge, IPPP Durham
StableJet
AbsSmearJet.hh
1 #ifndef AbsSmearJet_hh_
2 #define AbsSmearJet_hh_
3 
4 #include "JetStabilityDefs.h"
5 #include "StabilityUserInfo.h"
6 #include "AbsSmearingAgent.h"
7 
8 namespace stab {
9 
11  {
12  public:
13 
14  inline AbsSmearJet():AbsSmearingAgent() { }
15  inline virtual ~AbsSmearJet() {}
16 
17  inline virtual void initialize(const Event &ev, const StabilityEventInfo &info)
18  {
19  m_event = ev;
20  m_info = info;
21  }
22 
23  // The following function does not have to be overriden
24  // if the default behavior of simply dispatching each
25  // particle to the corresponding "process" member is adequate
26  //virtual void smear(const SimulatedJet& in, SimulatedJet* out) const;
27  virtual void smear(Event &);
28 
29  static double calorimeterEtUncertainty(
30  double S, double N, double C, double Et);
31 
32  static PseudoJet smear4Mom(const PseudoJet& p4, double sigmaPt,
33  double sigmaEtaPhi, bool makePtPositive=false);
34 
35  protected:
36  inline Event & getEvent() { return m_event; }
37  inline StabilityEventInfo & getInfo() { return m_info; }
38 
39 
40 
41  private:
42  // The following methods should not clear *out, just append to it
43  virtual void processPhoton(const PseudoJet& in, const StabilityUserInfo &info,
44  ParticleCollection* out
45  ) const = 0;
46  virtual void processTrack(const PseudoJet& in, const StabilityUserInfo &info,
47  ParticleCollection* out
48  ) const = 0;
49  virtual void processNeutralHadron(const PseudoJet& in, const StabilityUserInfo &info,
50  ParticleCollection* out
51  ) const = 0;
52 
53 
54  // the stored event
55  Event m_event;
56  StabilityEventInfo m_info;
57 
58  };
59 
60 }
61 
62 #endif // AbsSmearJet_hh_
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