namespace Gambit::ColliderBit::CMS

CMS-specific efficiency and smearing functions for super fast detector simulation.

Functions

Name
voidapplyElectronTrackingEff(std::vector< const HEPUtils::Particle * > & electrons)
Randomly filter the supplied particle list by parameterised electron tracking efficiency.
voidapplyElectronEff(std::vector< const HEPUtils::Particle * > & electrons)
voidapplyMuonTrackEff(std::vector< const HEPUtils::Particle * > & muons)
voidapplyMuonEff(std::vector< const HEPUtils::Particle * > & muons)
Randomly filter the supplied particle list by parameterised muon efficiency.
voidapplyTauEfficiency(std::vector< const HEPUtils::Particle * > & taus)
Randomly filter the supplied particle list by parameterised tau efficiency.
voidsmearElectronEnergy(std::vector< HEPUtils::Particle * > & electrons)
Randomly smear the supplied electrons’ momenta by parameterised resolutions.
voidsmearMuonMomentum(std::vector< HEPUtils::Particle * > & muons)
Randomly smear the supplied muons’ momenta by parameterised resolutions.
voidsmearJets(std::vector< HEPUtils::Jet * > & jets)
Randomly smear the supplied jets’ momenta by parameterised resolutions.
voidsmearTaus(std::vector< HEPUtils::Particle * > & taus)
Randomly smear the supplied hadronic taus’ momenta by parameterised resolutions.
voidapplyCSVv2MediumBtagEff(std::vector< const HEPUtils::Jet * > & bjets)
voidapplyCSVv2MediumBtagEff(std::vector< HEPUtils::Jet * > & bjets)
voidapplyCSVv2LooseBtagEff(std::vector< const HEPUtils::Jet * > & bjets)
voidapplyCSVv2LooseBtagEff(std::vector< HEPUtils::Jet * > & bjets)
voidapplyBtagMisId(double mis_id_prob, std::vector< const HEPUtils::Jet * > & jets, std::vector< const HEPUtils::Jet * > & bjets)
Apply user-specified b-tag misidentification rate (flat)
voidapplyBtagMisId(double mis_id_prob, std::vector< HEPUtils::Jet * > & jets, std::vector< HEPUtils::Jet * > & bjets)
voidapplyCSVv2LooseBtagMisId(std::vector< const HEPUtils::Jet * > & jets, std::vector< const HEPUtils::Jet * > & bjets)
voidapplyCSVv2LooseBtagMisId(std::vector< HEPUtils::Jet * > & jets, std::vector< HEPUtils::Jet * > & bjets)
voidapplyCSVv2LooseBtagEffAndMisId(std::vector< const HEPUtils::Jet * > & jets, std::vector< const HEPUtils::Jet * > & bjets)
Apply both b-tag efficiency and misidentification rate for CSVv2 loose WP.
voidapplyCSVv2LooseBtagEffAndMisId(std::vector< HEPUtils::Jet * > & jets, std::vector< HEPUtils::Jet * > & bjets)
voidapplyCSVv2MediumBtagMisId(std::vector< const HEPUtils::Jet * > & jets, std::vector< const HEPUtils::Jet * > & bjets)
voidapplyCSVv2MediumBtagMisId(std::vector< HEPUtils::Jet * > & jets, std::vector< HEPUtils::Jet * > & bjets)
voidapplyCSVv2MediumBtagEffAndMisId(std::vector< const HEPUtils::Jet * > & jets, std::vector< const HEPUtils::Jet * > & bjets)
Apply both b-tag efficiency and misidentification rate for CSVv2 medium WP.
voidapplyCSVv2MediumBtagEffAndMisId(std::vector< HEPUtils::Jet * > & jets, std::vector< HEPUtils::Jet * > & bjets)

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 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
)

Updated on 2022-08-03 at 12:57:56 +0000