namespace Gambit::ColliderBit::CMS
CMS-specific efficiency and smearing functions for super fast detector simulation.
Functions
Name | |
---|---|
void | applyElectronTrackingEff(std::vector< const HEPUtils::Particle * > & electrons) Randomly filter the supplied particle list by parameterised electron tracking efficiency. |
void | applyElectronEff(std::vector< const HEPUtils::Particle * > & electrons) |
void | applyMuonTrackEff(std::vector< const HEPUtils::Particle * > & muons) |
void | applyMuonEff(std::vector< const HEPUtils::Particle * > & muons) Randomly filter the supplied particle list by parameterised muon efficiency. |
void | applyTauEfficiency(std::vector< const HEPUtils::Particle * > & taus) Randomly filter the supplied particle list by parameterised tau efficiency. |
void | smearElectronEnergy(std::vector< HEPUtils::Particle * > & electrons) Randomly smear the supplied electrons’ momenta by parameterised resolutions. |
void | smearMuonMomentum(std::vector< HEPUtils::Particle * > & muons) Randomly smear the supplied muons’ momenta by parameterised resolutions. |
void | smearJets(std::vector< HEPUtils::Jet * > & jets) Randomly smear the supplied jets’ momenta by parameterised resolutions. |
void | smearTaus(std::vector< HEPUtils::Particle * > & taus) Randomly smear the supplied hadronic taus’ momenta by parameterised resolutions. |
void | applyCSVv2MediumBtagEff(std::vector< const HEPUtils::Jet * > & bjets) |
void | applyCSVv2MediumBtagEff(std::vector< HEPUtils::Jet * > & bjets) |
void | applyCSVv2LooseBtagEff(std::vector< const HEPUtils::Jet * > & bjets) |
void | applyCSVv2LooseBtagEff(std::vector< HEPUtils::Jet * > & bjets) |
void | applyCSVv2TightBtagEff(std::vector< const HEPUtils::Jet * > & bjets) |
void | applyCSVv2TightBtagEff(std::vector< HEPUtils::Jet * > & bjets) |
void | applyBtagMisId(double mis_id_prob, std::vector< const HEPUtils::Jet * > & jets, std::vector< const HEPUtils::Jet * > & bjets) Apply user-specified b-tag misidentification rate (flat) |
void | applyBtagMisId(double mis_id_prob, std::vector< HEPUtils::Jet * > & jets, std::vector< HEPUtils::Jet * > & bjets) |
void | applyCSVv2LooseBtagMisId(std::vector< const HEPUtils::Jet * > & jets, std::vector< const HEPUtils::Jet * > & bjets) |
void | applyCSVv2LooseBtagMisId(std::vector< HEPUtils::Jet * > & jets, std::vector< HEPUtils::Jet * > & bjets) |
void | applyCSVv2LooseBtagEffAndMisId(std::vector< const HEPUtils::Jet * > & jets, std::vector< const HEPUtils::Jet * > & bjets) Apply both b-tag efficiency and misidentification rate for CSVv2 loose WP. |
void | applyCSVv2LooseBtagEffAndMisId(std::vector< HEPUtils::Jet * > & jets, std::vector< HEPUtils::Jet * > & bjets) |
void | applyCSVv2MediumBtagMisId(std::vector< const HEPUtils::Jet * > & jets, std::vector< const HEPUtils::Jet * > & bjets) |
void | applyCSVv2MediumBtagMisId(std::vector< HEPUtils::Jet * > & jets, std::vector< HEPUtils::Jet * > & bjets) |
void | applyCSVv2MediumBtagEffAndMisId(std::vector< const HEPUtils::Jet * > & jets, std::vector< const HEPUtils::Jet * > & bjets) Apply both b-tag efficiency and misidentification rate for CSVv2 medium WP. |
void | applyCSVv2MediumBtagEffAndMisId(std::vector< HEPUtils::Jet * > & jets, std::vector< HEPUtils::Jet * > & bjets) |
const HEPUtils::BinnedFn2D< double > | eff2DEl_SUS_16_039({0., 0.8, 1.442, 1.556, 2., 2.5, DBL_MAX} , {0., 10., 15., 20., 25., 30., 40., 50., DBL_MAX} , { 0.0, 0.95, 0.507, 0.619, 0.682, 0.742, 0.798, 0.863, 0.0, 0.95, 0.429, 0.546, 0.619, 0.710, 0.734, 0.833, 0.0, 0.95, 0.256, 0.221, 0.315, 0.351, 0.373, 0.437, 0.0, 0.85, 0.249, 0.404, 0.423, 0.561, 0.642, 0.749, 0.0, 0.85, 0.195, 0.245, 0.380, 0.441, 0.533, 0.644, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } ) |
const HEPUtils::BinnedFn2D< double > | eff2DMu_SUS_16_039({0., 0.9, 1.2, 2.1, 2.4, DBL_MAX} , {0., 10., 15., 20., 25., 30., 40., 50., DBL_MAX} , { 0.0, 0.704, 0.797, 0.855, 0.880, 0.906, 0.927, 0.931, 0.0, 0.639, 0.776, 0.836, 0.875, 0.898, 0.940, 0.930, 0.0, 0.596, 0.715, 0.840, 0.862, 0.891, 0.906, 0.925, 0.0, 0.522, 0.720, 0.764, 0.803, 0.807, 0.885, 0.877, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } ) |
const HEPUtils::BinnedFn2D< double > | eff2DTau_SUS_16_039({0., 2.3} , {0., 25., 30., 35., 40., 45., 50., 60., 70., 80., DBL_MAX} , {0.38 *0.95, 0.48 *0.95, 0.5 *0.95, 0.49 *0.95, 0.51 *0.95, 0.49 *0.95, 0.47 *0.95, 0.45 *0.95, 0.48 *0.95, 0.5 *0.95} ) |
const HEPUtils::BinnedFn2D< double > | eff2DEl_SUS_19_008({0., 0.8, 1.442, 1.556, 2., 2.5, DBL_MAX} , {0., 10., 15., 20., 25., 30., 40., 50., DBL_MAX} , { 0.0, 0.95, 0.330, 0.412, 0.487, 0.561, 0.615, 0.701, 0.0, 0.95, 0.276, 0.367, 0.434, 0.520, 0.575, 0.660, 0.0, 0.95, 0.202, 0.170, 0.224, 0.261, 0.275, 0.341, 0.0, 0.85, 0.210, 0.288, 0.358, 0.434, 0.493, 0.586, 0.0, 0.85, 0.146, 0.200, 0.246, 0.314, 0.382, 0.456, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } ) |
const HEPUtils::BinnedFn2D< double > | eff2DMu_SUS_19_008({0., 0.9, 1.2, 2.1, 2.4, DBL_MAX} , {0., 10., 15., 20., 25., 30., 40., 50., DBL_MAX} , { 0.0, 0.527, 0.639, 0.723, 0.801, 0.858, 0.887, 0.926, 0.0, 0.482, 0.596, 0.695, 0.755, 0.831, 0.870, 0.917, 0.0, 0.498, 0.585, 0.683, 0.743, 0.807, 0.851, 0.896, 0.0, 0.441, 0.522, 0.604, 0.677, 0.744, 0.793, 0.834, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } ) |
Attributes
Name | |
---|---|
const std::map< str, HEPUtils::BinnedFn2D< double > > | eff2DEl |
const std::map< str, HEPUtils::BinnedFn2D< double > > | eff2DMu |
const std::map< str, HEPUtils::BinnedFn2D< double > > | eff2DTau |
Functions Documentation
function applyElectronTrackingEff
inline void applyElectronTrackingEff(
std::vector< const HEPUtils::Particle * > & electrons
)
Randomly filter the supplied particle list by parameterised electron tracking efficiency.
function applyElectronEff
inline void applyElectronEff(
std::vector< const HEPUtils::Particle * > & electrons
)
Note:
- Should be applied after the electron energy smearing
- Eff values currently identical to those in ATLAS (AB, 2016-01-24)
Randomly filter the supplied particle list by parameterised electron efficiency
function applyMuonTrackEff
inline void applyMuonTrackEff(
std::vector< const HEPUtils::Particle * > & muons
)
Note: Eff values currently identical to those in ATLAS (AB, 2016-01-24)
Randomly filter the supplied particle list by parameterised muon tracking efficiency
function applyMuonEff
inline void applyMuonEff(
std::vector< const HEPUtils::Particle * > & muons
)
Randomly filter the supplied particle list by parameterised muon efficiency.
function applyTauEfficiency
inline void applyTauEfficiency(
std::vector< const HEPUtils::Particle * > & taus
)
Randomly filter the supplied particle list by parameterised tau efficiency.
Note: No delete, because this should only ever be applied to copies of the Event Particle* vectors in Analysis routines
function smearElectronEnergy
inline void smearElectronEnergy(
std::vector< HEPUtils::Particle * > & electrons
)
Randomly smear the supplied electrons’ momenta by parameterised resolutions.
Function that mimics the DELPHES electron energy resolution. We need to smear E, then recalculate pT, then reset the 4-vector.
function smearMuonMomentum
inline void smearMuonMomentum(
std::vector< HEPUtils::Particle * > & muons
)
Randomly smear the supplied muons’ momenta by parameterised resolutions.
Function that mimics the DELPHES muon momentum resolution. We need to smear pT, then recalculate E, then reset the 4-vector.
function smearJets
inline void smearJets(
std::vector< HEPUtils::Jet * > & jets
)
Randomly smear the supplied jets’ momenta by parameterised resolutions.
Todo: Update cf. Matthias study for ATLAS
Function that mimics the DELPHES jet momentum resolution. We need to smear pT, then recalculate E, then reset the 4-vector
TodoThis is the ATLAS number… I can’t find values for the CMS parameterisation, cf. https://cds.cern.ch/record/1339945/files/JME-10-014-pas.pdfhttps://twiki.cern.ch/twiki/bin/view/CMSPublic/SWGuideJetResolutionhttps://github.com/adrager/cmssw/blob/CMSSW_7_2_X/CondFormats/JetMETObjects/test/TestCorrections.C
function smearTaus
inline void smearTaus(
std::vector< HEPUtils::Particle * > & taus
)
Randomly smear the supplied hadronic taus’ momenta by parameterised resolutions.
Todo: Update cf. Matthias study for ATLAS
We need to smear pT, then recalculate E, then reset the 4-vector. Same as for jets, but on a vector of particles. (?)
TodoIs this the best way to smear? Should we preserve the mean jet energy, or pT, or direction?
function applyCSVv2MediumBtagEff
inline void applyCSVv2MediumBtagEff(
std::vector< const HEPUtils::Jet * > & bjets
)
Note: Numbers digitized from https://twiki.cern.ch/twiki/pub/CMSPublic/SUSMoriond2017ObjectsEfficiency/btag_eff_CSVv2_DeepCSV.pdf
Apply efficiency function to CSVv2 medium WP b-tagged jets
function applyCSVv2MediumBtagEff
inline void applyCSVv2MediumBtagEff(
std::vector< HEPUtils::Jet * > & bjets
)
function applyCSVv2LooseBtagEff
inline void applyCSVv2LooseBtagEff(
std::vector< const HEPUtils::Jet * > & bjets
)
Note: Numbers digitized from https://twiki.cern.ch/twiki/pub/CMSPublic/SUSMoriond2017ObjectsEfficiency/btag_eff_CSVv2_DeepCSV.pdf
Apply efficiency function to CSVv2 loose WP b-tagged jets
function applyCSVv2LooseBtagEff
inline void applyCSVv2LooseBtagEff(
std::vector< HEPUtils::Jet * > & bjets
)
function applyCSVv2TightBtagEff
inline void applyCSVv2TightBtagEff(
std::vector< const HEPUtils::Jet * > & bjets
)
Note: Numbers digitized from https://twiki.cern.ch/twiki/pub/CMSPublic/SUSMoriond2017ObjectsEfficiency/btag_eff_CSVv2_DeepCSV.pdf
Apply efficiency function to CSVv2 tight WP b-tagged jets
function applyCSVv2TightBtagEff
inline void applyCSVv2TightBtagEff(
std::vector< HEPUtils::Jet * > & bjets
)
function applyBtagMisId
inline void applyBtagMisId(
double mis_id_prob,
std::vector< const HEPUtils::Jet * > & jets,
std::vector< const HEPUtils::Jet * > & bjets
)
Apply user-specified b-tag misidentification rate (flat)
function applyBtagMisId
inline void applyBtagMisId(
double mis_id_prob,
std::vector< HEPUtils::Jet * > & jets,
std::vector< HEPUtils::Jet * > & bjets
)
function applyCSVv2LooseBtagMisId
inline void applyCSVv2LooseBtagMisId(
std::vector< const HEPUtils::Jet * > & jets,
std::vector< const HEPUtils::Jet * > & bjets
)
Note: Numbers from Table 2 in https://arxiv.org/pdf/1712.07158.pdf
Apply b-tag misidentification rate for CSVv2 loose WP
function applyCSVv2LooseBtagMisId
inline void applyCSVv2LooseBtagMisId(
std::vector< HEPUtils::Jet * > & jets,
std::vector< HEPUtils::Jet * > & bjets
)
function applyCSVv2LooseBtagEffAndMisId
inline void applyCSVv2LooseBtagEffAndMisId(
std::vector< const HEPUtils::Jet * > & jets,
std::vector< const HEPUtils::Jet * > & bjets
)
Apply both b-tag efficiency and misidentification rate for CSVv2 loose WP.
function applyCSVv2LooseBtagEffAndMisId
inline void applyCSVv2LooseBtagEffAndMisId(
std::vector< HEPUtils::Jet * > & jets,
std::vector< HEPUtils::Jet * > & bjets
)
function applyCSVv2MediumBtagMisId
inline void applyCSVv2MediumBtagMisId(
std::vector< const HEPUtils::Jet * > & jets,
std::vector< const HEPUtils::Jet * > & bjets
)
Note: Numbers from Table 2 in https://arxiv.org/pdf/1712.07158.pdf
Apply b-tag misidentification rate for CSVv2 medium WP
function applyCSVv2MediumBtagMisId
inline void applyCSVv2MediumBtagMisId(
std::vector< HEPUtils::Jet * > & jets,
std::vector< HEPUtils::Jet * > & bjets
)
function applyCSVv2MediumBtagEffAndMisId
inline void applyCSVv2MediumBtagEffAndMisId(
std::vector< const HEPUtils::Jet * > & jets,
std::vector< const HEPUtils::Jet * > & bjets
)
Apply both b-tag efficiency and misidentification rate for CSVv2 medium WP.
function applyCSVv2MediumBtagEffAndMisId
inline void applyCSVv2MediumBtagEffAndMisId(
std::vector< HEPUtils::Jet * > & jets,
std::vector< HEPUtils::Jet * > & bjets
)
function eff2DEl_SUS_16_039
static const HEPUtils::BinnedFn2D< double > eff2DEl_SUS_16_039(
{0., 0.8, 1.442, 1.556, 2., 2.5, DBL_MAX} ,
{0., 10., 15., 20., 25., 30., 40., 50., DBL_MAX} ,
{ 0.0, 0.95, 0.507, 0.619, 0.682, 0.742, 0.798, 0.863, 0.0, 0.95, 0.429, 0.546, 0.619, 0.710, 0.734, 0.833, 0.0, 0.95, 0.256, 0.221, 0.315, 0.351, 0.373, 0.437, 0.0, 0.85, 0.249, 0.404, 0.423, 0.561, 0.642, 0.749, 0.0, 0.85, 0.195, 0.245, 0.380, 0.441, 0.533, 0.644, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }
)
Representative Muon and Electron efficiencies for the WPs of the identification techniques used in SUSY analyses From https://twiki.cern.ch/twiki/bin/view/CMSPublic/SUSMoriond2017ObjectsEfficiency {@
function eff2DMu_SUS_16_039
static const HEPUtils::BinnedFn2D< double > eff2DMu_SUS_16_039(
{0., 0.9, 1.2, 2.1, 2.4, DBL_MAX} ,
{0., 10., 15., 20., 25., 30., 40., 50., DBL_MAX} ,
{ 0.0, 0.704, 0.797, 0.855, 0.880, 0.906, 0.927, 0.931, 0.0, 0.639, 0.776, 0.836, 0.875, 0.898, 0.940, 0.930, 0.0, 0.596, 0.715, 0.840, 0.862, 0.891, 0.906, 0.925, 0.0, 0.522, 0.720, 0.764, 0.803, 0.807, 0.885, 0.877, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }
)
function eff2DTau_SUS_16_039
static const HEPUtils::BinnedFn2D< double > eff2DTau_SUS_16_039(
{0., 2.3} ,
{0., 25., 30., 35., 40., 45., 50., 60., 70., 80., DBL_MAX} ,
{0.38 *0.95, 0.48 *0.95, 0.5 *0.95, 0.49 *0.95, 0.51 *0.95, 0.49 *0.95, 0.47 *0.95, 0.45 *0.95, 0.48 *0.95, 0.5 *0.95}
)
function eff2DEl_SUS_19_008
static const HEPUtils::BinnedFn2D< double > eff2DEl_SUS_19_008(
{0., 0.8, 1.442, 1.556, 2., 2.5, DBL_MAX} ,
{0., 10., 15., 20., 25., 30., 40., 50., DBL_MAX} ,
{ 0.0, 0.95, 0.330, 0.412, 0.487, 0.561, 0.615, 0.701, 0.0, 0.95, 0.276, 0.367, 0.434, 0.520, 0.575, 0.660, 0.0, 0.95, 0.202, 0.170, 0.224, 0.261, 0.275, 0.341, 0.0, 0.85, 0.210, 0.288, 0.358, 0.434, 0.493, 0.586, 0.0, 0.85, 0.146, 0.200, 0.246, 0.314, 0.382, 0.456, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }
)
function eff2DMu_SUS_19_008
static const HEPUtils::BinnedFn2D< double > eff2DMu_SUS_19_008(
{0., 0.9, 1.2, 2.1, 2.4, DBL_MAX} ,
{0., 10., 15., 20., 25., 30., 40., 50., DBL_MAX} ,
{ 0.0, 0.527, 0.639, 0.723, 0.801, 0.858, 0.887, 0.926, 0.0, 0.482, 0.596, 0.695, 0.755, 0.831, 0.870, 0.917, 0.0, 0.498, 0.585, 0.683, 0.743, 0.807, 0.851, 0.896, 0.0, 0.441, 0.522, 0.604, 0.677, 0.744, 0.793, 0.834, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }
)
Attributes Documentation
variable eff2DEl
static const std::map< str, HEPUtils::BinnedFn2D< double > > eff2DEl =
{
{"SUS_16_039", eff2DEl_SUS_16_039},
{"SUS_19_008", eff2DEl_SUS_19_008}
};
variable eff2DMu
static const std::map< str, HEPUtils::BinnedFn2D< double > > eff2DMu =
{
{"SUS_16_039", eff2DMu_SUS_16_039},
{"SUS_19_008", eff2DMu_SUS_19_008}
};
variable eff2DTau
static const std::map< str, HEPUtils::BinnedFn2D< double > > eff2DTau =
{
{"SUS_16_039", eff2DTau_SUS_16_039}
};
Updated on 2024-07-18 at 13:53:31 +0000