Rivet  1.8.3
DISLepton.hh
1 // -*- C++ -*-
2 #ifndef RIVET_DISLepton_HH
3 #define RIVET_DISLepton_HH
4 
5 #include "Rivet/Projections/Beam.hh"
6 #include "Rivet/Projections/FinalState.hh"
7 #include "Rivet/Particle.hh"
8 #include "Rivet/Event.hh"
9 
10 namespace Rivet {
11 
12 
14  class DISLepton : public Projection {
15 
16  public:
17 
19 
20 
21  DISLepton(){
22  setName("DISLepton");
23  addProjection(Beam(), "Beam");
24  addProjection(FinalState(), "FS");
25  }
26 
28  virtual const Projection* clone() const {
29  return new DISLepton(*this);
30  }
32 
33 
34  protected:
35 
37  virtual void project(const Event& e);
38 
40  virtual int compare(const Projection& p) const;
41 
42  public:
43 
45  const Particle& in() const { return _incoming; }
46 
48  const Particle& out() const { return _outgoing; }
49 
50  const double &pzSign() const { return _sign; }
51 
52  private:
53 
55  Particle _incoming;
56 
58  Particle _outgoing;
59 
61  double _sign;
62 
63  };
64 
65 }
66 
67 
68 #endif