rivet is hosted by Hepforge, IPPP Durham
Rivet  2.7.0
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/VisibleFinalState.hh"
8 #include "Rivet/Particle.hh"
9 #include "Rivet/Event.hh"
10 
11 namespace Rivet {
12 
13 
19  class MissingMomentum : public Projection {
20  public:
21 
23  MissingMomentum(const Cut& c=Cuts::open()) {
24  setName("MissingMomentum");
25  FinalState fs(c);
26  addProjection(fs, "FS");
27  addProjection(VisibleFinalState(fs), "VisibleFS");
28  }
29 
30 
33  setName("MissingMomentum");
34  addProjection(fs, "FS");
35  addProjection(VisibleFinalState(fs), "VisibleFS");
36  }
37 
38 
41 
42 
44 
45 
53  const FourMomentum visibleMomentum(double mass=0*GeV) const;
55  const FourMomentum visibleMom(double mass=0*GeV) const { return visibleMomentum(mass); }
56 
62  const FourMomentum missingMomentum(double mass=0*GeV) const { return visibleMomentum(mass).reverse(); }
64  const FourMomentum missingMom(double mass=0*GeV) const { return missingMomentum(mass); }
65 
67 
68 
72 
73 
76  const Vector3& vectorPt() const { return _vpt; }
77 
79  const Vector3 vectorMissingPt() const { return -vectorPt(); }
80  // Alias
81  const Vector3 vectorMPT() const { return vectorMissingPt(); }
82 
84  double missingPt() const { return vectorPt().mod(); }
85  // /// Alias for missingPt
86  // double mpt() const { return missingPt(); }
87 
89  double scalarPt() const { return _spt; }
90  // /// Alias for scalarPt
91  // double spt() const { return scalarPt(); }
92 
94 
95 
99 
100 
103  const Vector3& vectorEt() const { return _vet; }
104 
106  const Vector3 vectorMissingEt() const { return -vectorEt(); }
107  // Alias
108  const Vector3 vectorMET() const { return vectorMissingEt(); }
109 
111  double missingEt() const { return vectorEt().mod(); }
113  double met() const { return missingEt(); }
114 
116  double scalarEt() const { return _set; }
118  double set() const { return scalarEt(); }
119 
121 
122 
123  public:
124 
126  void clear();
127 
128 
129  protected:
130 
132  void project(const Event& e);
133 
135  int compare(const Projection& p) const;
136 
137 
138  private:
139 
141  FourMomentum _momentum;
142 
144  double _set, _spt;
145 
147  Vector3 _vet, _vpt;
148 
149  };
150 
151 
152 }
153 
154 #endif
void setName(const std::string &name)
Used by derived classes to set their name.
Definition: Projection.hh:133
Definition: ALICE_2010_I880049.cc:13
const Vector3 vectorMissingEt() const
Convenience vector MET function.
Definition: MissingMomentum.hh:106
double scalarEt() const
The scalar-summed visible transverse energy in the event.
Definition: MissingMomentum.hh:116
double met() const
Alias for missingEt.
Definition: MissingMomentum.hh:113
const FourMomentum visibleMom(double mass=0 *GeV) const
Alias for visibleMomentum.
Definition: MissingMomentum.hh:55
const FourMomentum missingMomentum(double mass=0 *GeV) const
Definition: MissingMomentum.hh:62
const Vector3 & vectorPt() const
Definition: MissingMomentum.hh:76
MissingMomentum(const FinalState &fs)
Constructor.
Definition: MissingMomentum.hh:32
Definition: Event.hh:22
void clear()
Clear the projection results.
Definition: MissingMomentum.cc:12
const Cut & open()
Fully open cut singleton, accepts everything.
Definition: Cuts.cc:81
const FourMomentum visibleMomentum(double mass=0 *GeV) const
Definition: MissingMomentum.cc:38
int compare(const Projection &p) const
Compare projections.
Definition: MissingMomentum.cc:7
DEFAULT_RIVET_PROJ_CLONE(MissingMomentum)
Clone on the heap.
Calculate missing , etc.
Definition: MissingMomentum.hh:19
const Vector3 vectorMissingPt() const
Convenience vector MPT function.
Definition: MissingMomentum.hh:79
const Vector3 & vectorEt() const
Definition: MissingMomentum.hh:103
double scalarPt() const
The scalar-summed visible transverse momentum in the event.
Definition: MissingMomentum.hh:89
Project out all final-state particles in an event. Probably the most important projection in Rivet! ...
Definition: FinalState.hh:12
const FourMomentum missingMom(double mass=0 *GeV) const
Alias for missingMomentum.
Definition: MissingMomentum.hh:64
const PROJ & addProjection(const PROJ &proj, const std::string &name)
Register a contained projection (user-facing version)
Definition: ProjectionApplier.hh:170
double missingPt() const
The vector-summed missing transverse momentum in the event.
Definition: MissingMomentum.hh:84
void project(const Event &e)
Apply the projection to the event.
Definition: MissingMomentum.cc:21
Base class for all Rivet projections.
Definition: Projection.hh:29
Three-dimensional specialisation of Vector.
Definition: Vector3.hh:26
double missingEt() const
The vector-summed missing transverse energy in the event.
Definition: MissingMomentum.hh:111
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:755
double mod() const
Calculate the modulus of a vector. .
Definition: VectorN.hh:95
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:23