2#ifndef RIVET_MomentumSmearingFunctions_HH
3#define RIVET_MomentumSmearingFunctions_HH
5#include "Rivet/Math/Vector4.hh"
6#include "Rivet/Tools/Random.hh"
37 double operator () (
const FourMomentum& )
const {
return _x; }
50 const double mass =
p.mass2() > 0 ?
p.mass() : 0;
57 const double smeared_pt =
max(
randnorm(
p.pT(), resolution), 0.);
58 const double mass =
p.mass2() > 0 ?
p.mass() : 0;
64 const double smeared_mass =
max(
randnorm(
p.mass(), resolution), 0.);
88 double operator () (
const Vector3& )
const {
return _x; }
100 const double smeared_mod =
max(
randnorm(
p.mod(), resolution), 0.);
101 return smeared_mod *
p.unit();
Specialized version of the FourVector with momentum/energy functionality.
Definition Vector4.hh:316
Three-dimensional specialisation of Vector.
Definition Vector3.hh:40
static FourMomentum mkEtaPhiME(double eta, double phi, double mass, double E)
Make a vector from (eta,phi,energy) coordinates and the mass.
Definition Vector4.hh:793
static FourMomentum mkEtaPhiMPt(double eta, double phi, double mass, double pt)
Make a vector from (eta,phi,pT) coordinates and the mass.
Definition Vector4.hh:798
double mass(const ParticleBase &p)
Unbound function access to mass.
Definition ParticleBaseUtils.hh:705
double p(const ParticleBase &p)
Unbound function access to p.
Definition ParticleBaseUtils.hh:684
std::function< double(const FourMomentum &)> P4EffFn
Typedef for FourMomentum efficiency functions/functors.
Definition MomentumSmearingFunctions.hh:21
double P4_EFF_ONE(const FourMomentum &)
Take a FourMomentum and return 1.
Definition MomentumSmearingFunctions.hh:30
FourMomentum P4_SMEAR_IDENTITY(const FourMomentum &p)
Take a FourMomentum and return it unmodified.
Definition MomentumSmearingFunctions.hh:43
FourMomentum P4_SMEAR_E_GAUSS(const FourMomentum &p, double resolution)
Definition MomentumSmearingFunctions.hh:49
Vector3 P3_SMEAR_PERFECT(const Vector3 &p)
Alias for P3_SMEAR_IDENTITY.
Definition MomentumSmearingFunctions.hh:96
FourMomentum P4_SMEAR_PERFECT(const FourMomentum &p)
Alias for P4_SMEAR_IDENTITY.
Definition MomentumSmearingFunctions.hh:45
double P3_EFF_ZERO(const Vector3 &p)
Take a Vector3 and return 0.
Definition MomentumSmearingFunctions.hh:76
Vector3 P3_SMEAR_IDENTITY(const Vector3 &p)
Take a Vector3 and return it unmodified.
Definition MomentumSmearingFunctions.hh:94
double P4_FN1(const FourMomentum &)
Definition MomentumSmearingFunctions.hh:32
double P3_FN0(const Vector3 &p)
Definition MomentumSmearingFunctions.hh:78
FourMomentum P4_SMEAR_MASS_GAUSS(const FourMomentum &p, double resolution)
Smear a FourMomentum's mass using a Gaussian of absolute width resolution.
Definition MomentumSmearingFunctions.hh:63
double P3_FN1(const Vector3 &p)
Definition MomentumSmearingFunctions.hh:83
std::function< FourMomentum(const FourMomentum &)> P4SmearFn
Typedef for FourMomentum smearing functions/functors.
Definition MomentumSmearingFunctions.hh:18
double P4_FN0(const FourMomentum &)
Definition MomentumSmearingFunctions.hh:27
double P4_EFF_ZERO(const FourMomentum &)
Take a FourMomentum and return 0.
Definition MomentumSmearingFunctions.hh:25
Vector3 P3_SMEAR_LEN_GAUSS(const Vector3 &p, double resolution)
Smear a Vector3's length using a Gaussian of absolute width resolution.
Definition MomentumSmearingFunctions.hh:99
double P3_EFF_ONE(const Vector3 &p)
Take a Vector3 and return 1.
Definition MomentumSmearingFunctions.hh:81
FourMomentum P4_SMEAR_PT_GAUSS(const FourMomentum &p, double resolution)
Smear a FourMomentum's transverse momentum using a Gaussian of absolute width resolution.
Definition MomentumSmearingFunctions.hh:56
Definition MC_Cent_pPb.hh:10
std::enable_if< std::is_arithmetic< N1 >::value &&std::is_arithmetic< N2 >::value, typenamestd::common_type< N1, N2 >::type >::type max(N1 a, N2 b)
Get the maximum of two numbers.
Definition MathUtils.hh:111
double randnorm(double loc, double scale)
Return a random number sampled from a Gaussian/normal distribution.
Take a Vector3 and return a constant number.
Definition MomentumSmearingFunctions.hh:86
Take a FourMomentum and return a constant number.
Definition MomentumSmearingFunctions.hh:35