2#ifndef RIVET_JetSmearingFunctions_HH
3#define RIVET_JetSmearingFunctions_HH
6#include "Rivet/Tools/MomentumSmearingFunctions.hh"
7#include "Rivet/Tools/ParticleSmearingFunctions.hh"
8#include "Rivet/Tools/Random.hh"
46 double operator () (
const Jet& )
const {
return _eff; }
68 JET_BTAG_EFFS(
double eff_b,
double eff_light=0) : _eff_b(eff_b), _eff_c(-1), _eff_t(-1), _eff_l(eff_light) { }
69 JET_BTAG_EFFS(
double eff_b,
double eff_c,
double eff_light) : _eff_b(eff_b), _eff_c(eff_c), _eff_t(-1), _eff_l(eff_light) { }
70 JET_BTAG_EFFS(
double eff_b,
double eff_c,
double eff_tau,
double eff_light) : _eff_b(eff_b), _eff_c(eff_c), _eff_t(eff_tau), _eff_l(eff_light) { }
71 inline double operator () (
const Jet& j) {
73 if (_eff_c >= 0 && j.
cTagged())
return _eff_c;
74 if (_eff_t >= 0 && j.
tauTagged())
return _eff_t;
77 double _eff_b, _eff_c, _eff_t, _eff_l;
112 return make_pair(
sfn(j), efn(j));
137 template <
typename FN>
139 return rand01() < feff(j);
144 template <
typename FN>
147 bool operator () (
const Jet& j)
const {
return efffilt(j, _feff); }
Representation of a clustered jet of particles.
Definition Jet.hh:48
bool cTagged(const Cut &c=Cuts::open()) const
Does this jet have at least one c-tag (that passes an optional Cut)?
Definition Jet.hh:153
bool bTagged(const Cut &c=Cuts::open()) const
Does this jet have at least one b-tag (that passes an optional Cut)?
Definition Jet.hh:140
bool tauTagged(const Cut &c=Cuts::open()) const
Does this jet have at least one tau-tag (that passes an optional Cut)?
Definition Jet.hh:166
double p(const ParticleBase &p)
Unbound function access to p.
Definition ParticleBaseUtils.hh:684
double JET_CTAG_PERFECT(const Jet &j)
Return 1 if the given Jet contains a c, otherwise 0.
Definition JetSmearingFunctions.hh:57
double JET_EFF_ONE(const Jet &p)
Take a jet and return a constant 1.
Definition JetSmearingFunctions.hh:35
double JET_FN0(const Jet &p)
Alias for JET_EFF_ZERO.
Definition JetSmearingFunctions.hh:32
double JET_TAUTAG_PERFECT(const Jet &j)
Return 1 if the given Jet contains a c, otherwise 0.
Definition JetSmearingFunctions.hh:61
double JET_BTAG_PERFECT(const Jet &j)
Return 1 if the given Jet contains a b, otherwise 0.
Definition JetSmearingFunctions.hh:53
Jet JET_SMEAR_PERFECT(const Jet &j)
Alias for JET_SMEAR_IDENTITY.
Definition JetSmearingFunctions.hh:86
double JET_EFF_1(const Jet &p)
Alias for JET_EFF_ONE.
Definition JetSmearingFunctions.hh:37
double JET_EFF_0(const Jet &p)
Alias for JET_EFF_ZERO.
Definition JetSmearingFunctions.hh:30
double JET_FN1(const Jet &)
Alias for JET_EFF_ONE.
Definition JetSmearingFunctions.hh:41
double JET_EFF_ZERO(const Jet &p)
Take a jet and return a constant 0.
Definition JetSmearingFunctions.hh:28
Jet JET_SMEAR_IDENTITY(const Jet &j)
Definition JetSmearingFunctions.hh:84
function< Jet(const Jet &)> JetSmearFn
Typedef for Jet smearing functions/functors.
Definition JetSmearingFunctions.hh:20
bool efffilt(const Jet &j, FN &feff)
Return true if Jet j is chosen to survive a random efficiency selection.
Definition JetSmearingFunctions.hh:138
function< double(const Jet &)> JetEffFn
Typedef for Jet efficiency functions/functors.
Definition JetSmearingFunctions.hh:23
double JET_EFF_PERFECT(const Jet &)
Alias for JET_EFF_ONE.
Definition JetSmearingFunctions.hh:39
Definition MC_Cent_pPb.hh:10
double rand01()
Return a uniformly sampled random number between 0 and 1.
Cmp< T > cmp(const T &t1, const T &t2)
Global helper function for easy creation of Cmp objects.
Definition Cmp.hh:255
uintptr_t get_address(std::function< T(U...)> f)
Get a function pointer / hash integer from an std::function.
Definition RivetSTL.hh:193
b-tagging efficiency functor, for more readable b-tag effs and mistag rates
Definition JetSmearingFunctions.hh:67
Take a Jet and return a constant efficiency.
Definition JetSmearingFunctions.hh:44
A functor to return true if Jet j survives a random efficiency selection.
Definition JetSmearingFunctions.hh:143
Functor for simultaneous efficiency-filtering and smearing of Jets.
Definition JetSmearingFunctions.hh:94
CmpState cmp(const JetEffSmearFn &other) const
Compare to another, for use in the projection system.
Definition JetSmearingFunctions.hh:116
JetSmearFn sfn
Definition JetSmearingFunctions.hh:131
pair< Jet, double > operator()(const Jet &j) const
Smear and calculate an efficiency for the given jet.
Definition JetSmearingFunctions.hh:111