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
void setName(const std::string &name)
Used by derived classes to set their name.
Definition: Projection.hh:120
const Particle & in() const
The incoming lepton.
Definition: DISLepton.hh:45
Representation of particles from a HepMC::GenEvent.
Definition: Particle.hh:16
Definition: Event.hh:22
virtual void project(const Event &e)
Perform the projection operation on the supplied event.
Definition: DISLepton.cc:17
virtual int compare(const Projection &p) const
Compare with other projections.
Definition: DISLepton.cc:9
virtual const Projection * clone() const
Clone on the heap.
Definition: DISLepton.hh:28
Project out all final-state particles in an event. Probably the most important projection in Rivet! ...
Definition: FinalState.hh:14
const PROJ & addProjection(const PROJ &proj, const std::string &name)
Definition: ProjectionApplier.hh:113
Project out the incoming beams.
Definition: Beam.hh:39
const Particle & out() const
The outgoing lepton.
Definition: DISLepton.hh:48
Get the incoming and outgoing leptons in a DIS event.
Definition: DISLepton.hh:14
Base class for all Rivet projections.
Definition: Projection.hh:28