Rivet  3.1.2
MissingMomentum.hh
1 // -*- C++ -*-
2 #ifndef RIVET_MissingMomentum_HH
3 #define RIVET_MissingMomentum_HH
4 
5 #include "Rivet/Config/RivetCommon.hh"
6 #include "Rivet/Projection.hh"
7 #include "Rivet/Projections/METFinder.hh"
8 #include "Rivet/Projections/VisibleFinalState.hh"
9 #include "Rivet/Particle.hh"
10 #include "Rivet/Event.hh"
11 
12 namespace Rivet {
13 
14 
20  class MissingMomentum : public METFinder {
21  public:
22 
24  MissingMomentum(const Cut& c=Cuts::open()) {
25  setName("MissingMomentum");
26  FinalState fs(c);
27  declare(fs, "FS");
28  declare(VisibleFinalState(fs), "VisibleFS");
29  }
30 
31 
34  setName("MissingMomentum");
35  declare(fs, "FS");
36  declare(VisibleFinalState(fs), "VisibleFS");
37  }
38 
39 
42 
43 
46 
54  const FourMomentum visibleMomentum(double mass=0*GeV) const;
56  const FourMomentum visibleMom(double mass=0*GeV) const { return visibleMomentum(mass); }
57 
63  const FourMomentum missingMomentum(double mass=0*GeV) const { return visibleMomentum(mass).reverse(); }
65  const FourMomentum missingMom(double mass=0*GeV) const { return missingMomentum(mass); }
66 
68 
69 
74 
77  const Vector3& vectorPt() const { return _vpt; }
78 
80  double scalarPt() const { return _spt; }
81  // /// Alias for scalarPt
82  // double spt() const { return scalarPt(); }
83 
85 
86 
91 
94  const Vector3& vectorEt() const { return _vet; }
95 
97  double scalarEt() const { return _set; }
99  double set() const { return scalarEt(); }
100 
102 
103 
105  void clear();
106 
107 
108  protected:
109 
111  void project(const Event& e);
112 
114  CmpState compare(const Projection& p) const;
115 
116 
117  private:
118 
120  FourMomentum _momentum;
121 
123  double _set, _spt;
124 
126  Vector3 _vet, _vpt;
127 
128  };
129 
130 
131 }
132 
133 #endif
void setName(const std::string &name)
Used by derived classes to set their name.
Definition: Projection.hh:142
Definition: MC_Cent_pPb.hh:10
double scalarEt() const
The scalar-summed visible transverse energy in the event.
Definition: MissingMomentum.hh:97
const FourMomentum visibleMom(double mass=0 *GeV) const
Alias for visibleMomentum.
Definition: MissingMomentum.hh:56
const FourMomentum missingMomentum(double mass=0 *GeV) const
Definition: MissingMomentum.hh:63
const Vector3 & vectorPt() const
Definition: MissingMomentum.hh:77
const Cut & open()
Fully open cut singleton, accepts everything.
Interface for projections that find missing transverse energy/momentum.
Definition: METFinder.hh:11
MissingMomentum(const FinalState &fs)
Constructor.
Definition: MissingMomentum.hh:33
Representation of a HepMC event, and enabler of Projection caching.
Definition: Event.hh:22
void clear()
Clear the projection results.
const FourMomentum visibleMomentum(double mass=0 *GeV) const
DEFAULT_RIVET_PROJ_CLONE(MissingMomentum)
Clone on the heap.
Calculate missing , etc.
Definition: MissingMomentum.hh:20
const Vector3 & vectorEt() const
Definition: MissingMomentum.hh:94
double scalarPt() const
The scalar-summed visible transverse momentum in the event.
Definition: MissingMomentum.hh:80
Project out all final-state particles in an event. Probably the most important projection in Rivet! ...
Definition: FinalState.hh:12
const PROJ & declare(const PROJ &proj, const std::string &name)
Register a contained projection (user-facing version)
Definition: ProjectionApplier.hh:170
const FourMomentum missingMom(double mass=0 *GeV) const
Alias for missingMomentum.
Definition: MissingMomentum.hh:65
CmpState compare(const Projection &p) const
Compare projections.
void project(const Event &e)
Apply the projection to the event.
Base class for all Rivet projections.
Definition: Projection.hh:29
Three-dimensional specialisation of Vector.
Definition: Vector3.hh:26
Specialized version of the FourVector with momentum/energy functionality.
Definition: Vector4.hh:301
FourMomentum reverse() const
Multiply space components only by -1.
Definition: Vector4.hh:752
Final state modifier excluding particles which are not experimentally visible.
Definition: VisibleFinalState.hh:16
MissingMomentum(const Cut &c=Cuts::open())
Default constructor with optional cut.
Definition: MissingMomentum.hh:24