Rivet  3.1.4
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 
22  class MissingMomentum : public METFinder {
23  public:
24 
27  setName("MissingMomentum");
28  declare(fs, "FS");
29  declare(VisibleFinalState(fs), "VisibleFS");
30  }
31 
33  MissingMomentum(const Cut& c=Cuts::open())
35  { }
36 
37 
40 
41 
44 
52  const FourMomentum visibleMomentum(double mass=0*GeV) const;
54  const FourMomentum visibleMom(double mass=0*GeV) const { return visibleMomentum(mass); }
55 
61  const FourMomentum missingMomentum(double mass=0*GeV) const { return visibleMomentum(mass).reverse(); }
63  const FourMomentum missingMom(double mass=0*GeV) const { return missingMomentum(mass); }
64 
66 
67 
72 
76  const Vector3& vectorPt() const { return _vpt; }
77 
79  double scalarPt() const { return _spt; }
80  // /// Alias for scalarPt
81  // double spt() const { return scalarPt(); }
82 
84 
85 
90 
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:54
const FourMomentum missingMomentum(double mass=0 *GeV) const
The missing four-momentum in the event, required to balance the final state.
Definition: MissingMomentum.hh:61
const Vector3 & vectorPt() const
The vector-summed visible transverse momentum in the event, as a 3-vector with z=0.
Definition: MissingMomentum.hh:76
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)
Canonical constructor taking a FinalState as argument.
Definition: MissingMomentum.hh:26
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
The vector-summed visible four-momentum in the event.
DEFAULT_RIVET_PROJ_CLONE(MissingMomentum)
Clone on the heap.
Calculate missing , etc. as complements to the total visible momentum.
Definition: MissingMomentum.hh:22
const Vector3 & vectorEt() const
The vector-summed visible transverse energy in the event, as a 3-vector with z=0. ...
Definition: MissingMomentum.hh:94
double scalarPt() const
The scalar-summed visible transverse momentum in the event.
Definition: MissingMomentum.hh:79
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:63
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:33