rivet is hosted by Hepforge, IPPP Durham
Rivet 4.0.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/METFinder.hh"
8#include "Rivet/Projections/VisibleFinalState.hh"
9#include "Rivet/Particle.hh"
10#include "Rivet/Event.hh"
11
12namespace Rivet {
13
14
22 class MissingMomentum : public METFinder {
23 public:
24
25 using METFinder::operator=;
26
29 setName("MissingMomentum");
30 declare(fs, "FS");
31 declare(VisibleFinalState(fs), "VisibleFS");
32 }
33
37 { }
38
39
42
44 using Projection::operator =;
45
46
49
59 const FourMomentum visibleMomentum(double mass=0*GeV) const;
61 const FourMomentum visibleMom(double mass=0*GeV) const { return visibleMomentum(mass); }
62
70 const FourMomentum missingMomentum(double mass=0*GeV) const { return visibleMomentum(mass).reverse(); }
72 const FourMomentum missingMom(double mass=0*GeV) const { return missingMomentum(mass); }
73
75
76
81
85 const ThreeMomentum& vectorPt() const { return _vpt; }
86
88 const ThreeMomentum vectorPtMiss() const { return -vectorPt(); }
89
91 double scalarPtMiss() const { return vectorPtMiss().pT(); }
92
94 double scalarPt() const { return _spt; }
95 // /// Alias for scalarPt
96 // double spt() const { return scalarPt(); }
97
99
100
105
109 const Vector3& vectorEt() const { return _vet; }
110
112 const Vector3 vectorEtMiss() const { return -vectorEt(); }
113
115 double scalarEtMiss() const { return vectorEtMiss().perp(); }
116
118 double scalarEt() const { return _set; }
119
121
122
124 void clear();
125
126
127 protected:
128
130 void project(const Event& e);
131
133 CmpState compare(const Projection& p) const;
134
135
136 protected:
137
139 FourMomentum _momentum;
140
142 double _set, _spt;
143
145 Vector3 _vet;
146 ThreeMomentum _vpt;
147
148 };
149
150
151
154
155
156}
157
158#endif
Representation of a HepMC event, and enabler of Projection caching.
Definition Event.hh:22
Project out all final-state particles in an event. Probably the most important projection in Rivet!
Definition FinalState.hh:12
Specialized version of the FourVector with momentum/energy functionality.
Definition Vector4.hh:316
FourMomentum reverse() const
Multiply space components only by -1.
Definition Vector4.hh:731
Interface for projections that find missing transverse energy/momentum.
Definition METFinder.hh:11
Calculate missing , etc. as complements to the total visible momentum.
Definition MissingMomentum.hh:22
double scalarEt() const
The scalar-summed visible transverse energy in the event.
Definition MissingMomentum.hh:118
double scalarEtMiss() const
The scalar value of missing transverse energy in the event.
Definition MissingMomentum.hh:115
void clear()
Clear the projection results.
double scalarPt() const
The scalar-summed visible transverse momentum in the event.
Definition MissingMomentum.hh:94
RIVET_DEFAULT_PROJ_CLONE(MissingMomentum)
Clone on the heap.
const ThreeMomentum vectorPtMiss() const
The vector missing transverse momentum in the event, as a 3-vector with z=0.
Definition MissingMomentum.hh:88
double scalarPtMiss() const
The scalar value of missing transverse momentum in the event.
Definition MissingMomentum.hh:91
CmpState compare(const Projection &p) const
Compare projections.
void project(const Event &e)
Apply the projection to the event.
const Vector3 & vectorEt() const
The vector-summed visible transverse energy in the event, as a 3-vector with z=0.
Definition MissingMomentum.hh:109
MissingMomentum(const FinalState &fs)
Canonical constructor taking a FinalState as argument.
Definition MissingMomentum.hh:28
const FourMomentum missingMomentum(double mass=0 *GeV) const
The missing four-momentum in the event, required to balance the final state.
Definition MissingMomentum.hh:70
const ThreeMomentum & vectorPt() const
The vector-summed visible transverse momentum in the event, as a 3-vector with z=0.
Definition MissingMomentum.hh:85
const Vector3 vectorEtMiss() const
The vector missing transverse energy in the event, as a 3-vector with z=0.
Definition MissingMomentum.hh:112
const FourMomentum missingMom(double mass=0 *GeV) const
Alias for missingMomentum.
Definition MissingMomentum.hh:72
const FourMomentum visibleMom(double mass=0 *GeV) const
Alias for visibleMomentum.
Definition MissingMomentum.hh:61
const FourMomentum visibleMomentum(double mass=0 *GeV) const
The vector-summed visible four-momentum in the event.
MissingMomentum(const Cut &c=Cuts::open())
Default constructor with optional cut.
Definition MissingMomentum.hh:35
const PROJ & declare(const PROJ &proj, const std::string &name) const
Register a contained projection (user-facing version)
Definition ProjectionApplier.hh:175
Base class for all Rivet projections.
Definition Projection.hh:29
void setName(const std::string &name)
Used by derived classes to set their name.
Definition Projection.hh:148
Specialized version of the ThreeVector with momentum functionality.
Definition Vector3.hh:339
double pT() const
Calculate the transverse momentum .
Definition Vector3.hh:432
Three-dimensional specialisation of Vector.
Definition Vector3.hh:40
double perp() const
Synonym for polarRadius.
Definition Vector3.hh:162
Final state modifier excluding particles which are not experimentally visible.
Definition VisibleFinalState.hh:16
double mass(const FourMomentum &a, const FourMomentum &b)
Calculate mass of two 4-vectors.
Definition Vector4.hh:1461
const Cut & open()
Fully open cut singleton, accepts everything.
Definition MC_CENT_PPB_Projections.hh:10