ATLAS Offline Software
Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
top::MuonScaleFactorCalculator Class Referencefinal

#include <MuonScaleFactorCalculator.h>

Inheritance diagram for top::MuonScaleFactorCalculator:
Collaboration diagram for top::MuonScaleFactorCalculator:

Public Member Functions

 MuonScaleFactorCalculator (const std::string &name)
 
virtual ~MuonScaleFactorCalculator ()
 
 MuonScaleFactorCalculator (const MuonScaleFactorCalculator &rhs)=delete
 
 MuonScaleFactorCalculator (MuonScaleFactorCalculator &&rhs)=delete
 
MuonScaleFactorCalculatoroperator= (const MuonScaleFactorCalculator &rhs)=delete
 
StatusCode initialize ()
 Dummy implementation of the initialisation function. More...
 
StatusCode execute ()
 
virtual void print () const
 Print the state of the tool. More...
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
 
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed. More...
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

template<typename T >
void retrieveSystematicTool (const ToolHandle< T > &tool, std::set< std::string > &recommended_systematics)
 
template<typename T >
void applySystematicVariation (ToolHandle< T > &tool, const CP::SystematicSet &systematic)
 
StatusCode checkSystematicsImplemented (const std::set< std::string > &recommended, const std::set< std::string > &implemented)
 
void decorateTriggerEfficiency (ToolHandle< CP::IMuonTriggerScaleFactors > &tool, const xAOD::Muon &muon, const SG::AuxElement::Decorator< float > &decor)
 
void decorateTriggerSF (ToolHandle< CP::IMuonTriggerScaleFactors > &tool, const ConstDataVector< xAOD::MuonContainer > &muon_cont, const SG::AuxElement::Decorator< float > &decor)
 
void decorateTrigSFandEff (ToolHandle< CP::IMuonTriggerScaleFactors > &tool, const CP::SystematicSet &systematic, const ConstDataVector< xAOD::MuonContainer > &muon_cont, const SG::AuxElement::Decorator< float > &sf_decor, const SG::AuxElement::Decorator< float > &eff_decor)
 
void decorateTriggerSystematics (const ConstDataVector< xAOD::MuonContainer > &trigger_SF_muon)
 
void decorateEfficiencySF (ToolHandle< CP::IMuonEfficiencyScaleFactors > &tool, const CP::SystematicSet &systematic, const xAOD::Muon &muon, const SG::AuxElement::Decorator< float > &decor)
 
void decorateIsolationSystematics (const xAOD::Muon &muon)
 
void decorateTTVASystematics (const xAOD::Muon &muon)
 
void decorateIDSFandRecoEff (ToolHandle< CP::IMuonEfficiencyScaleFactors > &tool, const CP::SystematicSet &systematic, const xAOD::Muon &muon, const SG::AuxElement::Decorator< float > &id_sf_decor)
 
void decorateIDSFandRecoEffSystematics (const xAOD::Muon &muon)
 
void decorateIDSFandRecoEffSystematicsSoftMuon (const xAOD::Muon &muon)
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

std::shared_ptr< top::TopConfigm_config
 
CP::SystematicSet m_systNominal
 
ToolHandle< CP::IMuonTriggerScaleFactorsm_muonTriggerScaleFactors
 
ToolHandle< CP::IMuonTriggerScaleFactorsm_muonTriggerScaleFactorsLoose
 
ToolHandle< CP::IMuonTriggerScaleFactorsm_muonTriggerScaleFactors_2015
 
ToolHandle< CP::IMuonTriggerScaleFactorsm_muonTriggerScaleFactorsLoose_2015
 
ToolHandle< CP::IMuonTriggerScaleFactorsm_muonTriggerScaleFactors_2016
 
ToolHandle< CP::IMuonTriggerScaleFactorsm_muonTriggerScaleFactorsLoose_2016
 
ToolHandle< CP::IMuonTriggerScaleFactorsm_muonTriggerScaleFactors_R21
 
ToolHandle< CP::IMuonTriggerScaleFactorsm_muonTriggerScaleFactorsLoose_R21
 
ToolHandle< CP::IMuonEfficiencyScaleFactorsm_muonEfficiencyCorrectionsTool
 
ToolHandle< CP::IMuonEfficiencyScaleFactorsm_softmuonEfficiencyCorrectionsTool
 
ToolHandle< CP::IMuonEfficiencyScaleFactorsm_muonEfficiencyCorrectionsToolLoose
 
ToolHandle< CP::IMuonEfficiencyScaleFactorsm_muonEfficiencyCorrectionsToolIso
 
ToolHandle< CP::IMuonEfficiencyScaleFactorsm_muonEfficiencyCorrectionsToolLooseIso
 
ToolHandle< CP::IMuonEfficiencyScaleFactorsm_muonEfficiencyCorrectionsToolTTVA
 
ToolHandle< CP::IMuonEfficiencyScaleFactorsm_muonEfficiencyCorrectionsToolBadMuonVeto
 
std::string m_decor_triggerEff
 
std::string m_decor_triggerEff_loose
 
std::string m_decor_triggerSF
 
std::string m_decor_triggerSF_loose
 
std::string m_decor_idSF
 
std::string m_decor_idSF_loose
 
std::string m_decor_isoSF
 
std::string m_decor_isoSF_loose
 
std::string m_decor_TTVA
 
std::string m_decor_softmuon_idSF
 
bool m_do_muon_isolation_SFs
 
bool m_do_muon_isolation_SFs_loose
 
CP::SystematicSet m_trig_sf_stat_UP
 
CP::SystematicSet m_trig_sf_stat_DOWN
 
CP::SystematicSet m_trig_sf_syst_UP
 
CP::SystematicSet m_trig_sf_syst_DOWN
 
CP::SystematicSet m_reco_stat_UP
 
CP::SystematicSet m_reco_stat_DOWN
 
CP::SystematicSet m_reco_syst_UP
 
CP::SystematicSet m_reco_syst_DOWN
 
CP::SystematicSet m_reco_bkg_fraction_UP
 
CP::SystematicSet m_reco_bkg_fraction_DOWN
 
CP::SystematicSet m_reco_fit_model_lowpt_UP
 
CP::SystematicSet m_reco_fit_model_lowpt_DOWN
 
CP::SystematicSet m_reco_lumi_uncert_UP
 
CP::SystematicSet m_reco_lumi_uncert_DOWN
 
CP::SystematicSet m_reco_matching_UP
 
CP::SystematicSet m_reco_matching_DOWN
 
CP::SystematicSet m_reco_matching_lowpt_UP
 
CP::SystematicSet m_reco_matching_lowpt_DOWN
 
CP::SystematicSet m_reco_mc_xsec_UP
 
CP::SystematicSet m_reco_mc_xsec_DOWN
 
CP::SystematicSet m_reco_pt_dependency_UP
 
CP::SystematicSet m_reco_pt_dependency_DOWN
 
CP::SystematicSet m_reco_qcd_template_UP
 
CP::SystematicSet m_reco_qcd_template_DOWN
 
CP::SystematicSet m_reco_supression_scale_UP
 
CP::SystematicSet m_reco_supression_scale_DOWN
 
CP::SystematicSet m_reco_truth_UP
 
CP::SystematicSet m_reco_truth_DOWN
 
CP::SystematicSet m_reco_truth_lowpt_UP
 
CP::SystematicSet m_reco_truth_lowpt_DOWN
 
CP::SystematicSet m_reco_cr1_UP
 
CP::SystematicSet m_reco_cr1_DOWN
 
CP::SystematicSet m_reco_cr2_UP
 
CP::SystematicSet m_reco_cr2_DOWN
 
CP::SystematicSet m_reco_cr3_UP
 
CP::SystematicSet m_reco_cr3_DOWN
 
CP::SystematicSet m_reco_higheta_probeip_UP
 
CP::SystematicSet m_reco_higheta_probeip_DOWN
 
CP::SystematicSet m_reco_higheta_probeiso_UP
 
CP::SystematicSet m_reco_higheta_probeiso_DOWN
 
CP::SystematicSet m_reco_tagpt_UP
 
CP::SystematicSet m_reco_tagpt_DOWN
 
CP::SystematicSet m_reco_extrapolation_UP
 
CP::SystematicSet m_reco_extrapolation_DOWN
 
CP::SystematicSet m_reco_extrapolation_lowpt_UP
 
CP::SystematicSet m_reco_extrapolation_lowpt_DOWN
 
CP::SystematicSet m_reco_stat_lowpt_UP
 
CP::SystematicSet m_reco_stat_lowpt_DOWN
 
CP::SystematicSet m_reco_syst_lowpt_UP
 
CP::SystematicSet m_reco_syst_lowpt_DOWN
 
CP::SystematicSet m_reco_bad_muon_veto_UP
 
CP::SystematicSet m_reco_bad_muon_veto_DOWN
 
CP::SystematicSet m_iso_stat_UP
 
CP::SystematicSet m_iso_stat_DOWN
 
CP::SystematicSet m_iso_syst_UP
 
CP::SystematicSet m_iso_syst_DOWN
 
CP::SystematicSet m_iso_bkg_fraction_UP
 
CP::SystematicSet m_iso_bkg_fraction_DOWN
 
CP::SystematicSet m_iso_drmuj_UP
 
CP::SystematicSet m_iso_drmuj_DOWN
 
CP::SystematicSet m_iso_lumi_uncert_UP
 
CP::SystematicSet m_iso_lumi_uncert_DOWN
 
CP::SystematicSet m_iso_mc_xsec_UP
 
CP::SystematicSet m_iso_mc_xsec_DOWN
 
CP::SystematicSet m_iso_mllwindow_UP
 
CP::SystematicSet m_iso_mllwindow_DOWN
 
CP::SystematicSet m_iso_qcd_template_UP
 
CP::SystematicSet m_iso_qcd_template_DOWN
 
CP::SystematicSet m_iso_sherpa_powheg_UP
 
CP::SystematicSet m_iso_sherpa_powheg_DOWN
 
CP::SystematicSet m_iso_supression_scale_UP
 
CP::SystematicSet m_iso_supression_scale_DOWN
 
CP::SystematicSet m_iso_extrapolation_UP
 
CP::SystematicSet m_iso_extrapolation_DOWN
 
CP::SystematicSet m_TTVA_stat_UP
 
CP::SystematicSet m_TTVA_stat_DOWN
 
CP::SystematicSet m_TTVA_syst_UP
 
CP::SystematicSet m_TTVA_syst_DOWN
 
CP::SystematicSet m_TTVA_bkg_fraction_UP
 
CP::SystematicSet m_TTVA_bkg_fraction_DOWN
 
CP::SystematicSet m_TTVA_lumi_uncert_UP
 
CP::SystematicSet m_TTVA_lumi_uncert_DOWN
 
CP::SystematicSet m_TTVA_mc_xsec_UP
 
CP::SystematicSet m_TTVA_mc_xsec_DOWN
 
CP::SystematicSet m_TTVA_qcd_template_UP
 
CP::SystematicSet m_TTVA_qcd_template_DOWN
 
CP::SystematicSet m_TTVA_supression_scale_UP
 
CP::SystematicSet m_TTVA_supression_scale_DOWN
 
CP::SystematicSet m_TTVA_extrapolation_UP
 
CP::SystematicSet m_TTVA_extrapolation_DOWN
 
std::string m_muon_trigger_sf_config = ""
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

Definition at line 42 of file MuonScaleFactorCalculator.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ MuonScaleFactorCalculator() [1/3]

top::MuonScaleFactorCalculator::MuonScaleFactorCalculator ( const std::string &  name)
explicit

Definition at line 19 of file MuonScaleFactorCalculator.cxx.

19  :
21  m_config(nullptr),
23 
24  m_muonEfficiencyCorrectionsTool("MuonEfficiencyScaleFactorsTool"),
25  m_softmuonEfficiencyCorrectionsTool("SoftMuonEfficiencyScaleFactorsTool"),
26  m_muonEfficiencyCorrectionsToolLoose("MuonEfficiencyScaleFactorsToolLoose"),
27  m_muonEfficiencyCorrectionsToolIso("MuonEfficiencyScaleFactorsToolIso"),
28  m_muonEfficiencyCorrectionsToolLooseIso("MuonEfficiencyScaleFactorsToolLooseIso"),
29  m_muonEfficiencyCorrectionsToolTTVA("MuonEfficiencyScaleFactorsToolTTVA"),
30  m_muonEfficiencyCorrectionsToolBadMuonVeto("MuonEfficiencyScaleFactorsToolBadMuonVeto"),
31 
33  m_decor_triggerSF("SetMe"), m_decor_triggerSF_loose("SetMe"),
34  m_decor_idSF("SetMe"), m_decor_idSF_loose("SetMe"),
35  m_decor_isoSF("SetMe"), m_decor_isoSF_loose("SetMe"),
36  m_decor_TTVA("MU_SF_TTVA"),
37 
38  m_decor_softmuon_idSF("SetMe"),
39 
42  // The systematics are defined here...
43  m_trig_sf_stat_UP("MUON_EFF_TrigStatUncertainty__1up"),
44  m_trig_sf_stat_DOWN("MUON_EFF_TrigStatUncertainty__1down"),
45  m_trig_sf_syst_UP("MUON_EFF_TrigSystUncertainty__1up"),
46  m_trig_sf_syst_DOWN("MUON_EFF_TrigSystUncertainty__1down"),
47 
48  m_reco_stat_UP("MUON_EFF_RECO_STAT__1up"),
49  m_reco_stat_DOWN("MUON_EFF_RECO_STAT__1down"),
50  m_reco_syst_UP("MUON_EFF_RECO_SYS__1up"),
51  m_reco_syst_DOWN("MUON_EFF_RECO_SYS__1down"),
52 
53  m_reco_bkg_fraction_UP("MUON_EFF_RECO_BKGFRACTION__1up"),
54  m_reco_bkg_fraction_DOWN("MUON_EFF_RECO_BKGFRACTION__1down"),
55  m_reco_fit_model_lowpt_UP("MUON_EFF_RECO_FITMODEL_LOWPT__1up"),
56  m_reco_fit_model_lowpt_DOWN("MUON_EFF_RECO_FITMODEL_LOWPT__1down"),
57  m_reco_lumi_uncert_UP("MUON_EFF_RECO_LUMIUNCERT__1up"),
58  m_reco_lumi_uncert_DOWN("MUON_EFF_RECO_LUMIUNCERT__1down"),
59  m_reco_matching_UP("MUON_EFF_RECO_MATCHING__1up"),
60  m_reco_matching_DOWN("MUON_EFF_RECO_MATCHING__1down"),
61  m_reco_matching_lowpt_UP("MUON_EFF_RECO_MATCHING_LOWPT__1up"),
62  m_reco_matching_lowpt_DOWN("MUON_EFF_RECO_MATCHING_LOWPT__1down"),
63  m_reco_mc_xsec_UP("MUON_EFF_RECO_MCXSEC__1up"),
64  m_reco_mc_xsec_DOWN("MUON_EFF_RECO_MCXSEC__1down"),
65  m_reco_pt_dependency_UP("MUON_EFF_RECO_PTDEPENDENCY__1up"),
66  m_reco_pt_dependency_DOWN("MUON_EFF_RECO_PTDEPENDENCY__1down"),
67  m_reco_qcd_template_UP("MUON_EFF_RECO_QCDTEMPLATE__1up"),
68  m_reco_qcd_template_DOWN("MUON_EFF_RECO_QCDTEMPLATE__1down"),
69  m_reco_supression_scale_UP("MUON_EFF_RECO_SUPRESSIONSCALE__1up"),
70  m_reco_supression_scale_DOWN("MUON_EFF_RECO_SUPRESSIONSCALE__1down"),
71  m_reco_truth_UP("MUON_EFF_RECO_TRUTH__1up"),
72  m_reco_truth_DOWN("MUON_EFF_RECO_TRUTH__1down"),
73  m_reco_truth_lowpt_UP("MUON_EFF_RECO_TRUTH_LOWPT__1up"),
74  m_reco_truth_lowpt_DOWN("MUON_EFF_RECO_TRUTH_LOWPT__1down"),
75  m_reco_cr1_UP("MUON_EFF_RECO_CR1__1up"),
76  m_reco_cr1_DOWN("MUON_EFF_RECO_CR1__1down"),
77  m_reco_cr2_UP("MUON_EFF_RECO_CR2__1up"),
78  m_reco_cr2_DOWN("MUON_EFF_RECO_CR2__1down"),
79  m_reco_cr3_UP("MUON_EFF_RECO_CR3__1up"),
80  m_reco_cr3_DOWN("MUON_EFF_RECO_CR3__1down"),
81  m_reco_higheta_probeip_UP("MUON_EFF_RECO_HIGHETA_PROBEIP__1up"),
82  m_reco_higheta_probeip_DOWN("MUON_EFF_RECO_HIGHETA_PROBEIP__1down"),
83  m_reco_higheta_probeiso_UP("MUON_EFF_RECO_HIGHETA_PROBEISO__1up"),
84  m_reco_higheta_probeiso_DOWN("MUON_EFF_RECO_HIGHETA_PROBEISO__1down"),
85  m_reco_tagpt_UP("MUON_EFF_RECO_TAGPT__1up"),
86  m_reco_tagpt_DOWN("MUON_EFF_RECO_TAGPT__1down"),
87  m_reco_extrapolation_UP("MUON_EFF_RECO_EXTRAPOLATION__1up"),
88  m_reco_extrapolation_DOWN("MUON_EFF_RECO_EXTRAPOLATION__1down"),
89  m_reco_extrapolation_lowpt_UP("MUON_EFF_RECO_EXTRAPOLATION_LOWPT__1up"),
90  m_reco_extrapolation_lowpt_DOWN("MUON_EFF_RECO_EXTRAPOLATION_LOWPT__1down"),
91 
92  m_reco_stat_lowpt_UP("MUON_EFF_RECO_STAT_LOWPT__1up"),
93  m_reco_stat_lowpt_DOWN("MUON_EFF_RECO_STAT_LOWPT__1down"),
94  m_reco_syst_lowpt_UP("MUON_EFF_RECO_SYS_LOWPT__1up"),
95  m_reco_syst_lowpt_DOWN("MUON_EFF_RECO_SYS_LOWPT__1down"),
96  m_reco_bad_muon_veto_UP("MUON_EFF_BADMUON_SYS__1up"),
97  m_reco_bad_muon_veto_DOWN("MUON_EFF_BADMUON_SYS__1down"),
98 
99  m_iso_stat_UP("MUON_EFF_ISO_STAT__1up"),
100  m_iso_stat_DOWN("MUON_EFF_ISO_STAT__1down"),
101  m_iso_syst_UP("MUON_EFF_ISO_SYS__1up"),
102  m_iso_syst_DOWN("MUON_EFF_ISO_SYS__1down"),
103 
104  m_iso_bkg_fraction_UP("MUON_EFF_ISO_BKGFRACTION__1up"),
105  m_iso_bkg_fraction_DOWN("MUON_EFF_ISO_BKGFRACTION__1down"),
106  m_iso_drmuj_UP("MUON_EFF_ISO_DRMUJ__1up"),
107  m_iso_drmuj_DOWN("MUON_EFF_ISO_DRMUJ__1down"),
108  m_iso_lumi_uncert_UP("MUON_EFF_ISO_LUMIUNCERT__1up"),
109  m_iso_lumi_uncert_DOWN("MUON_EFF_ISO_LUMIUNCERT__1down"),
110  m_iso_mc_xsec_UP("MUON_EFF_ISO_MCXSEC__1up"),
111  m_iso_mc_xsec_DOWN("MUON_EFF_ISO_MCXSEC__1down"),
112  m_iso_mllwindow_UP("MUON_EFF_ISO_MLLWINDOW__1up"),
113  m_iso_mllwindow_DOWN("MUON_EFF_ISO_MLLWINDOW__1down"),
114  m_iso_qcd_template_UP("MUON_EFF_ISO_QCDTEMPLATE__1up"),
115  m_iso_qcd_template_DOWN("MUON_EFF_ISO_QCDTEMPLATE__1down"),
116  m_iso_sherpa_powheg_UP("MUON_EFF_ISO_SHERPA_POWHEG__1up"),
117  m_iso_sherpa_powheg_DOWN("MUON_EFF_ISO_SHERPA_POWHEG__1down"),
118  m_iso_supression_scale_UP("MUON_EFF_ISO_SUPRESSIONSCALE__1up"),
119  m_iso_supression_scale_DOWN("MUON_EFF_ISO_SUPRESSIONSCALE__1down"),
120  m_iso_extrapolation_UP("MUON_EFF_ISO_EXTRAPOLATION__1up"),
121  m_iso_extrapolation_DOWN("MUON_EFF_ISO_EXTRAPOLATION__1down"),
122 
123  m_TTVA_stat_UP("MUON_EFF_TTVA_STAT__1up"),
124  m_TTVA_stat_DOWN("MUON_EFF_TTVA_STAT__1down"),
125  m_TTVA_syst_UP("MUON_EFF_TTVA_SYS__1up"),
126  m_TTVA_syst_DOWN("MUON_EFF_TTVA_SYS__1down"),
127 
128  m_TTVA_bkg_fraction_UP("MUON_EFF_TTVA_BKGFRACTION__1up"),
129  m_TTVA_bkg_fraction_DOWN("MUON_EFF_TTVA_BKGFRACTION__1down"),
130  m_TTVA_lumi_uncert_UP("MUON_EFF_TTVA_LUMIUNCERT__1up"),
131  m_TTVA_lumi_uncert_DOWN("MUON_EFF_TTVA_LUMIUNCERT__1down"),
132  m_TTVA_mc_xsec_UP("MUON_EFF_TTVA_MCXSEC__1up"),
133  m_TTVA_mc_xsec_DOWN("MUON_EFF_TTVA_MCXSEC__1down"),
134  m_TTVA_qcd_template_UP("MUON_EFF_TTVA_QCDTEMPLATE__1up"),
135  m_TTVA_qcd_template_DOWN("MUON_EFF_TTVA_QCDTEMPLATE__1down"),
136  m_TTVA_supression_scale_UP("MUON_EFF_TTVA_SUPRESSIONSCALE__1up"),
137  m_TTVA_supression_scale_DOWN("MUON_EFF_TTVA_SUPRESSIONSCALE__1down"),
138  m_TTVA_extrapolation_UP("MUON_EFF_TTVA_EXTRAPOLATION__1up"),
139  m_TTVA_extrapolation_DOWN("MUON_EFF_TTVA_EXTRAPOLATION__1down"){
140  declareProperty("config", m_config);
141  }

◆ ~MuonScaleFactorCalculator()

virtual top::MuonScaleFactorCalculator::~MuonScaleFactorCalculator ( )
inlinevirtual

Definition at line 45 of file MuonScaleFactorCalculator.h.

45 {}

◆ MuonScaleFactorCalculator() [2/3]

top::MuonScaleFactorCalculator::MuonScaleFactorCalculator ( const MuonScaleFactorCalculator rhs)
delete

◆ MuonScaleFactorCalculator() [3/3]

top::MuonScaleFactorCalculator::MuonScaleFactorCalculator ( MuonScaleFactorCalculator &&  rhs)
delete

Member Function Documentation

◆ applySystematicVariation()

template<typename T >
void top::MuonScaleFactorCalculator::applySystematicVariation ( ToolHandle< T > &  tool,
const CP::SystematicSet systematic 
)
private

Definition at line 529 of file MuonScaleFactorCalculator.cxx.

530  {
531  top::check(tool->applySystematicVariation(systematic),
532  "Failed to set " + tool.name()
533  + " to " + (systematic.empty()
534  ? "Nominal" : systematic.name()));
535  }

◆ checkSystematicsImplemented()

StatusCode top::MuonScaleFactorCalculator::checkSystematicsImplemented ( const std::set< std::string > &  recommended,
const std::set< std::string > &  implemented 
)
private

Definition at line 537 of file MuonScaleFactorCalculator.cxx.

538  {
539  std::vector<std::string> different_systematics = {};
540  std::set_difference(recommended.begin(),
541  recommended.end(),
542  implemented.begin(),
543  implemented.end(),
544  std::back_inserter(different_systematics));
545  if (different_systematics.size()) {
546  ATH_MSG_WARNING("WE ARE EXPECTING THE FOLLOWING SYSTEMATICS:");
547  for (auto syst : recommended)
548  ATH_MSG_WARNING("\t" << syst);
549  ATH_MSG_WARNING("WE HAVE THE FOLLOWING SYSTEMATICS:");
550  for (auto syst : implemented)
551  ATH_MSG_WARNING("\t" << syst);
552  ATH_MSG_WARNING("WE ARE MISSING THE FOLLOWING SYSTEMATICS:");
553  for (const auto& syst : different_systematics)
554  ATH_MSG_WARNING("\t" << syst);
555  return StatusCode::FAILURE;
556  }
557  return StatusCode::SUCCESS;
558  }

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyArrayType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKeyArray>

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleBase>

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleBase. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 245 of file AthCommonDataStore.h.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleKey. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 221 of file AthCommonDataStore.h.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This is the generic version, for types that do not derive from SG::VarHandleKey. It just forwards to the base class version of declareProperty.

Definition at line 333 of file AthCommonDataStore.h.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This dispatches to either the generic declareProperty or the one for VarHandle/Key/KeyArray.

Definition at line 352 of file AthCommonDataStore.h.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T > &  t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ decorateEfficiencySF()

void top::MuonScaleFactorCalculator::decorateEfficiencySF ( ToolHandle< CP::IMuonEfficiencyScaleFactors > &  tool,
const CP::SystematicSet systematic,
const xAOD::Muon muon,
const SG::AuxElement::Decorator< float > &  decor 
)
private

Definition at line 667 of file MuonScaleFactorCalculator.cxx.

670  {
671  // 1. Set tool to systematic
672  this->applySystematicVariation(tool, systematic);
673 
674  float efficiency_SF = 1.0;
675  // 2. Decorate muon with efficiency SF
676  top::check(tool->getEfficiencyScaleFactor(muon, efficiency_SF),
677  "Failed to get " + tool.name()
678  + " efficiency SF for " + (systematic.empty()
679  ? "Nominal" : systematic.name()));
680  decor(muon) = efficiency_SF;
681  }

◆ decorateIDSFandRecoEff()

void top::MuonScaleFactorCalculator::decorateIDSFandRecoEff ( ToolHandle< CP::IMuonEfficiencyScaleFactors > &  tool,
const CP::SystematicSet systematic,
const xAOD::Muon muon,
const SG::AuxElement::Decorator< float > &  id_sf_decor 
)
private

Definition at line 918 of file MuonScaleFactorCalculator.cxx.

921  {
922  // 1. Set the tool to apply systematic and
923  // decorate the ID efficiency using decorateEfficiencySF()
924  this->decorateEfficiencySF(tool, systematic, muon, id_sf_decor);
925  // 2. No reco Eff since 2.4.22
926  }

◆ decorateIDSFandRecoEffSystematics()

void top::MuonScaleFactorCalculator::decorateIDSFandRecoEffSystematics ( const xAOD::Muon muon)
private

– Syst UP –///

– Syst DOWN –///

– Syst UP –///

– Syst DOWN –///

Definition at line 928 of file MuonScaleFactorCalculator.cxx.

928  {
929  const static SG::AuxElement::Decorator<float> id_sf_decor_stat_up(m_decor_idSF + "_STAT_UP");
930  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_stat_up(m_decor_idSF_loose + "_STAT_UP");
931 
932  const static SG::AuxElement::Decorator<float> id_sf_decor_stat_down(m_decor_idSF + "_STAT_DOWN");
933  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_stat_down(m_decor_idSF_loose + "_STAT_DOWN");
934 
935  const static SG::AuxElement::Decorator<float> id_sf_decor_syst_up(m_decor_idSF + "_SYST_UP");
936  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_syst_up(m_decor_idSF_loose + "_SYST_UP");
937 
938  const static SG::AuxElement::Decorator<float> id_sf_decor_syst_down(m_decor_idSF + "_SYST_DOWN");
939  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_syst_down(m_decor_idSF_loose + "_SYST_DOWN");
940 
941  const static SG::AuxElement::Decorator<float> id_sf_decor_stat_lowpt_up(m_decor_idSF + "_STAT_LOWPT_UP");
942  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_stat_lowpt_up(m_decor_idSF_loose + "_STAT_LOWPT_UP");
943 
944  const static SG::AuxElement::Decorator<float> id_sf_decor_stat_lowpt_down(m_decor_idSF + "_STAT_LOWPT_DOWN");
945  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_stat_lowpt_down(m_decor_idSF_loose + "_STAT_LOWPT_DOWN");
946 
947  const static SG::AuxElement::Decorator<float> id_sf_decor_syst_lowpt_up(m_decor_idSF + "_SYST_LOWPT_UP");
948  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_syst_lowpt_up(m_decor_idSF_loose + "_SYST_LOWPT_UP");
949 
950  const static SG::AuxElement::Decorator<float> id_sf_decor_syst_lowpt_down(m_decor_idSF + "_SYST_LOWPT_DOWN");
951  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_syst_lowpt_down(m_decor_idSF_loose + "_SYST_LOWPT_DOWN");
952 
953  const static SG::AuxElement::Decorator<float> id_sf_decor_bkg_fraction_up(m_decor_idSF + "_BKG_FRACTION_UP");
954  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_bkg_fraction_up(m_decor_idSF_loose + "_BKG_FRACTION_UP");
955  const static SG::AuxElement::Decorator<float> id_sf_decor_bkg_fraction_down(m_decor_idSF + "_BKG_FRACTION_DOWN");
956  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_bkg_fraction_down(m_decor_idSF_loose + "_BKG_FRACTION_DOWN");
957 
958  const static SG::AuxElement::Decorator<float> id_sf_decor_fit_model_lowpt_up(m_decor_idSF + "_FIT_MODEL_LOWPT_UP");
959  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_fit_model_lowpt_up(m_decor_idSF_loose + "_FIT_MODEL_LOWPT_UP");
960  const static SG::AuxElement::Decorator<float> id_sf_decor_fit_model_lowpt_down(m_decor_idSF + "_FIT_MODEL_LOWPT_DOWN");
961  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_fit_model_lowpt_down(m_decor_idSF_loose + "_FIT_MODEL_LOWPT_DOWN");
962 
963  const static SG::AuxElement::Decorator<float> id_sf_decor_lumi_uncert_up(m_decor_idSF + "_LUMI_UNCERT_UP");
964  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_lumi_uncert_up(m_decor_idSF_loose + "_LUMI_UNCERT_UP");
965  const static SG::AuxElement::Decorator<float> id_sf_decor_lumi_uncert_down(m_decor_idSF + "_LUMI_UNCERT_DOWN");
966  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_lumi_uncert_down(m_decor_idSF_loose + "_LUMI_UNCERT_DOWN");
967 
968  const static SG::AuxElement::Decorator<float> id_sf_decor_matching_up(m_decor_idSF + "_MATCHING_UP");
969  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_matching_up(m_decor_idSF_loose + "_MATCHING_UP");
970  const static SG::AuxElement::Decorator<float> id_sf_decor_matching_down(m_decor_idSF + "_MATCHING_DOWN");
971  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_matching_down(m_decor_idSF_loose + "_MATCHING_DOWN");
972 
973  const static SG::AuxElement::Decorator<float> id_sf_decor_matching_lowpt_up(m_decor_idSF + "_MATCHING_LOWPT_UP");
974  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_matching_lowpt_up(m_decor_idSF_loose + "_MATCHING_LOWPT_UP");
975  const static SG::AuxElement::Decorator<float> id_sf_decor_matching_lowpt_down(m_decor_idSF + "_MATCHING_LOWPT_DOWN");
976  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_matching_lowpt_down(m_decor_idSF_loose + "_MATCHING_LOWPT_DOWN");
977 
978  const static SG::AuxElement::Decorator<float> id_sf_decor_mc_xsec_up(m_decor_idSF + "_MC_XSEC_UP");
979  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_mc_xsec_up(m_decor_idSF_loose + "_MC_XSEC_UP");
980  const static SG::AuxElement::Decorator<float> id_sf_decor_mc_xsec_down(m_decor_idSF + "_MC_XSEC_DOWN");
981  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_mc_xsec_down(m_decor_idSF_loose + "_MC_XSEC_DOWN");
982 
983  const static SG::AuxElement::Decorator<float> id_sf_decor_pt_dependency_up(m_decor_idSF + "_PT_DEPENDENCY_UP");
984  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_pt_dependency_up(m_decor_idSF_loose + "_PT_DEPENDENCY_UP");
985  const static SG::AuxElement::Decorator<float> id_sf_decor_pt_dependency_down(m_decor_idSF + "_PT_DEPENDENCY_DOWN");
986  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_pt_dependency_down(m_decor_idSF_loose + "_PT_DEPENDENCY_DOWN");
987 
988  const static SG::AuxElement::Decorator<float> id_sf_decor_qcd_template_up(m_decor_idSF + "_QCD_TEMPLATE_UP");
989  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_qcd_template_up(m_decor_idSF_loose + "_QCD_TEMPLATE_UP");
990  const static SG::AuxElement::Decorator<float> id_sf_decor_qcd_template_down(m_decor_idSF + "_QCD_TEMPLATE_DOWN");
991  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_qcd_template_down(m_decor_idSF_loose + "_QCD_TEMPLATE_DOWN");
992 
993  const static SG::AuxElement::Decorator<float> id_sf_decor_supression_scale_up(m_decor_idSF + "_SUPRESSION_SCALE_UP");
994  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_supression_scale_up(m_decor_idSF_loose + "_SUPRESSION_SCALE_UP");
995  const static SG::AuxElement::Decorator<float> id_sf_decor_supression_scale_down(m_decor_idSF + "_SUPRESSION_SCALE_DOWN");
996  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_supression_scale_down(m_decor_idSF_loose + "_SUPRESSION_SCALE_DOWN");
997 
998  const static SG::AuxElement::Decorator<float> id_sf_decor_truth_up(m_decor_idSF + "_TRUTH_UP");
999  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_truth_up(m_decor_idSF_loose + "_TRUTH_UP");
1000  const static SG::AuxElement::Decorator<float> id_sf_decor_truth_down(m_decor_idSF + "_TRUTH_DOWN");
1001  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_truth_down(m_decor_idSF_loose + "_TRUTH_DOWN");
1002 
1003  const static SG::AuxElement::Decorator<float> id_sf_decor_truth_lowpt_up(m_decor_idSF + "_TRUTH_LOWPT_UP");
1004  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_truth_lowpt_up(m_decor_idSF_loose + "_TRUTH_LOWPT_UP");
1005  const static SG::AuxElement::Decorator<float> id_sf_decor_truth_lowpt_down(m_decor_idSF + "_TRUTH_LOWPT_DOWN");
1006  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_truth_lowpt_down(m_decor_idSF_loose + "_TRUTH_LOWPT_DOWN");
1007 
1008  const static SG::AuxElement::Decorator<float> id_sf_decor_bad_muon_veto_up(m_decor_idSF + "_BAD_MUON_VETO_UP");
1009  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_bad_muon_veto_up(m_decor_idSF_loose + "_BAD_MUON_VETO_UP");
1010  const static SG::AuxElement::Decorator<float> id_sf_decor_bad_muon_veto_down(m_decor_idSF + "_BAD_MUON_VETO_DOWN");
1011  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_bad_muon_veto_down(m_decor_idSF_loose + "_BAD_MUON_VETO_DOWN");
1012 
1013  const static SG::AuxElement::Decorator<float> id_sf_decor_cr1_up(m_decor_idSF + "_CR1_UP");
1014  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_cr1_up(m_decor_idSF_loose + "_CR1_UP");
1015  const static SG::AuxElement::Decorator<float> id_sf_decor_cr1_down(m_decor_idSF + "_CR1_DOWN");
1016  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_cr1_down(m_decor_idSF_loose + "_CR1_DOWN");
1017 
1018  const static SG::AuxElement::Decorator<float> id_sf_decor_cr2_up(m_decor_idSF + "_CR2_UP");
1019  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_cr2_up(m_decor_idSF_loose + "_CR2_UP");
1020  const static SG::AuxElement::Decorator<float> id_sf_decor_cr2_down(m_decor_idSF + "_CR2_DOWN");
1021  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_cr2_down(m_decor_idSF_loose + "_CR2_DOWN");
1022 
1023  const static SG::AuxElement::Decorator<float> id_sf_decor_cr3_up(m_decor_idSF + "_CR3_UP");
1024  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_cr3_up(m_decor_idSF_loose + "_CR3_UP");
1025  const static SG::AuxElement::Decorator<float> id_sf_decor_cr3_down(m_decor_idSF + "_CR3_DOWN");
1026  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_cr3_down(m_decor_idSF_loose + "_CR3_DOWN");
1027 
1028  const static SG::AuxElement::Decorator<float> id_sf_decor_higheta_probeip_up(m_decor_idSF + "_HIGHETA_PROBEIP_UP");
1029  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_higheta_probeip_up(m_decor_idSF_loose + "_HIGHETA_PROBEIP_UP");
1030  const static SG::AuxElement::Decorator<float> id_sf_decor_higheta_probeip_down(m_decor_idSF + "_HIGHETA_PROBEIP_DOWN");
1031  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_higheta_probeip_down(m_decor_idSF_loose + "_HIGHETA_PROBEIP_DOWN");
1032 
1033  const static SG::AuxElement::Decorator<float> id_sf_decor_higheta_probeiso_up(m_decor_idSF + "_HIGHETA_PROBEISO_UP");
1034  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_higheta_probeiso_up(m_decor_idSF_loose + "_HIGHETA_PROBEISO_UP");
1035  const static SG::AuxElement::Decorator<float> id_sf_decor_higheta_probeiso_down(m_decor_idSF + "_HIGHETA_PROBEISO_DOWN");
1036  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_higheta_probeiso_down(m_decor_idSF_loose + "_HIGHETA_PROBEISO_DOWN");
1037 
1038  const static SG::AuxElement::Decorator<float> id_sf_decor_tagpt_up(m_decor_idSF + "_TAGPT_UP");
1039  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_tagpt_up(m_decor_idSF_loose + "_TAGPT_UP");
1040  const static SG::AuxElement::Decorator<float> id_sf_decor_tagpt_down(m_decor_idSF + "_TAGPT_DOWN");
1041  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_tagpt_down(m_decor_idSF_loose + "_TAGPT_DOWN");
1042 
1043  const static SG::AuxElement::Decorator<float> id_sf_decor_extrapolation_up(m_decor_idSF + "_EXTRAPOLATION_UP");
1044  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_extrapolation_up(m_decor_idSF_loose + "_EXTRAPOLATION_UP");
1045  const static SG::AuxElement::Decorator<float> id_sf_decor_extrapolation_down(m_decor_idSF + "_EXTRAPOLATION_DOWN");
1046  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_extrapolation_down(m_decor_idSF_loose + "_EXTRAPOLATION_DOWN");
1047 
1048  const static SG::AuxElement::Decorator<float> id_sf_decor_extrapolation_lowpt_up(m_decor_idSF + "_EXTRAPOLATION_LOWPT_UP");
1049  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_extrapolation_lowpt_up(m_decor_idSF_loose + "_EXTRAPOLATION_LOWPT_UP");
1050  const static SG::AuxElement::Decorator<float> id_sf_decor_extrapolation_lowpt_down(m_decor_idSF + "_EXTRAPOLATION_LOWPT_DOWN");
1051  const static SG::AuxElement::Decorator<float> id_sf_loose_decor_extrapolation_lowpt_down(m_decor_idSF_loose + "_EXTRAPOLATION_LOWPT_DOWN");
1052 
1054  m_reco_stat_UP, muon,
1055  id_sf_decor_stat_up);
1057  m_reco_stat_UP, muon,
1058  id_sf_loose_decor_stat_up);
1060  m_reco_stat_DOWN, muon,
1061  id_sf_decor_stat_down);
1063  m_reco_stat_DOWN, muon,
1064  id_sf_loose_decor_stat_down);
1065 
1067  m_reco_stat_lowpt_UP, muon,
1068  id_sf_decor_stat_lowpt_up);
1070  m_reco_stat_lowpt_UP, muon,
1071  id_sf_loose_decor_stat_lowpt_up);
1073  m_reco_stat_lowpt_DOWN, muon,
1074  id_sf_decor_stat_lowpt_down);
1076  m_reco_stat_lowpt_DOWN, muon,
1077  id_sf_loose_decor_stat_lowpt_down);
1078 
1079  if (m_config->muonBreakDownSystematics()) {
1080 
1082  m_reco_bkg_fraction_UP, muon,
1083  id_sf_decor_bkg_fraction_up);
1085  m_reco_bkg_fraction_UP, muon,
1086  id_sf_loose_decor_bkg_fraction_up);
1089  id_sf_decor_bkg_fraction_down);
1092  id_sf_loose_decor_bkg_fraction_down);
1093 
1096  id_sf_decor_fit_model_lowpt_up);
1099  id_sf_loose_decor_fit_model_lowpt_up);
1102  id_sf_decor_fit_model_lowpt_down);
1105  id_sf_loose_decor_fit_model_lowpt_down);
1106 
1108  m_reco_lumi_uncert_UP, muon,
1109  id_sf_decor_lumi_uncert_up);
1111  m_reco_lumi_uncert_UP, muon,
1112  id_sf_loose_decor_lumi_uncert_up);
1115  id_sf_decor_lumi_uncert_down);
1118  id_sf_loose_decor_lumi_uncert_down);
1119 
1121  m_reco_matching_UP, muon,
1122  id_sf_decor_matching_up);
1124  m_reco_matching_UP, muon,
1125  id_sf_loose_decor_matching_up);
1127  m_reco_matching_DOWN, muon,
1128  id_sf_decor_matching_down);
1130  m_reco_matching_DOWN, muon,
1131  id_sf_loose_decor_matching_down);
1132 
1135  id_sf_decor_matching_lowpt_up);
1138  id_sf_loose_decor_matching_lowpt_up);
1141  id_sf_decor_matching_lowpt_down);
1144  id_sf_loose_decor_matching_lowpt_down);
1145 
1147  m_reco_mc_xsec_UP, muon,
1148  id_sf_decor_mc_xsec_up);
1150  m_reco_mc_xsec_UP, muon,
1151  id_sf_loose_decor_mc_xsec_up);
1153  m_reco_mc_xsec_DOWN, muon,
1154  id_sf_decor_mc_xsec_down);
1156  m_reco_mc_xsec_DOWN, muon,
1157  id_sf_loose_decor_mc_xsec_down);
1158 
1161  id_sf_decor_pt_dependency_up);
1164  id_sf_loose_decor_pt_dependency_up);
1167  id_sf_decor_pt_dependency_down);
1170  id_sf_loose_decor_pt_dependency_down);
1171 
1173  m_reco_qcd_template_UP, muon,
1174  id_sf_decor_qcd_template_up);
1176  m_reco_qcd_template_UP, muon,
1177  id_sf_loose_decor_qcd_template_up);
1180  id_sf_decor_qcd_template_down);
1183  id_sf_loose_decor_qcd_template_down);
1184 
1187  id_sf_decor_supression_scale_up);
1190  id_sf_loose_decor_supression_scale_up);
1193  id_sf_decor_supression_scale_down);
1196  id_sf_loose_decor_supression_scale_down);
1197 
1199  m_reco_truth_UP, muon,
1200  id_sf_decor_truth_up);
1202  m_reco_truth_UP, muon,
1203  id_sf_loose_decor_truth_up);
1205  m_reco_truth_DOWN, muon,
1206  id_sf_decor_truth_down);
1208  m_reco_truth_DOWN, muon,
1209  id_sf_loose_decor_truth_down);
1210 
1212  m_reco_truth_lowpt_UP, muon,
1213  id_sf_decor_truth_lowpt_up);
1215  m_reco_truth_lowpt_UP, muon,
1216  id_sf_loose_decor_truth_lowpt_up);
1219  id_sf_decor_truth_lowpt_down);
1222  id_sf_loose_decor_truth_lowpt_down);
1223 
1225  m_reco_cr1_UP, muon,
1226  id_sf_decor_cr1_up);
1228  m_reco_cr1_UP, muon,
1229  id_sf_loose_decor_cr1_up);
1231  m_reco_cr1_DOWN, muon,
1232  id_sf_decor_cr1_down);
1234  m_reco_cr1_DOWN, muon,
1235  id_sf_loose_decor_cr1_down);
1236 
1238  m_reco_cr2_UP, muon,
1239  id_sf_decor_cr2_up);
1241  m_reco_cr2_UP, muon,
1242  id_sf_loose_decor_cr2_up);
1244  m_reco_cr2_DOWN, muon,
1245  id_sf_decor_cr2_down);
1247  m_reco_cr2_DOWN, muon,
1248  id_sf_loose_decor_cr2_down);
1249 
1251  m_reco_cr3_UP, muon,
1252  id_sf_decor_cr3_up);
1254  m_reco_cr3_UP, muon,
1255  id_sf_loose_decor_cr3_up);
1257  m_reco_cr3_DOWN, muon,
1258  id_sf_decor_cr3_down);
1260  m_reco_cr3_DOWN, muon,
1261  id_sf_loose_decor_cr3_down);
1262 
1265  id_sf_decor_higheta_probeip_up);
1268  id_sf_loose_decor_higheta_probeip_up);
1271  id_sf_decor_higheta_probeip_down);
1274  id_sf_loose_decor_higheta_probeip_down);
1275 
1278  id_sf_decor_higheta_probeiso_up);
1281  id_sf_loose_decor_higheta_probeiso_up);
1284  id_sf_decor_higheta_probeiso_down);
1287  id_sf_loose_decor_higheta_probeiso_down);
1288 
1290  m_reco_tagpt_UP, muon,
1291  id_sf_decor_tagpt_up);
1293  m_reco_tagpt_UP, muon,
1294  id_sf_loose_decor_tagpt_up);
1296  m_reco_tagpt_DOWN, muon,
1297  id_sf_decor_tagpt_down);
1299  m_reco_tagpt_DOWN, muon,
1300  id_sf_loose_decor_tagpt_down);
1301 
1304  id_sf_decor_extrapolation_up);
1307  id_sf_loose_decor_extrapolation_up);
1310  id_sf_decor_extrapolation_lowpt_up);
1313  id_sf_loose_decor_extrapolation_lowpt_up);
1316  id_sf_decor_extrapolation_down);
1319  id_sf_loose_decor_extrapolation_down);
1322  id_sf_decor_extrapolation_lowpt_down);
1325  id_sf_loose_decor_extrapolation_down);
1326  } else {
1329  m_reco_syst_UP, muon,
1330  id_sf_decor_syst_up);
1332  m_reco_syst_UP, muon,
1333  id_sf_loose_decor_syst_up);
1334 
1337  m_reco_syst_DOWN, muon,
1338  id_sf_decor_syst_down);
1340  m_reco_syst_DOWN, muon,
1341  id_sf_loose_decor_syst_down);
1344  m_reco_syst_lowpt_UP, muon,
1345  id_sf_decor_syst_lowpt_up);
1347  m_reco_syst_lowpt_UP, muon,
1348  id_sf_loose_decor_syst_lowpt_up);
1349 
1352  m_reco_syst_lowpt_DOWN, muon,
1353  id_sf_decor_syst_lowpt_down);
1355  m_reco_syst_lowpt_DOWN, muon,
1356  id_sf_loose_decor_syst_lowpt_down);
1357  }
1358  if (m_config->muonQuality() == "HighPt" || m_config->muonQualityLoose() == "HighPt") {
1361  id_sf_decor_bad_muon_veto_up);
1364  id_sf_decor_bad_muon_veto_down);
1367  id_sf_loose_decor_bad_muon_veto_up);
1370  id_sf_loose_decor_bad_muon_veto_down);
1371  }
1372  }

◆ decorateIDSFandRecoEffSystematicsSoftMuon()

void top::MuonScaleFactorCalculator::decorateIDSFandRecoEffSystematicsSoftMuon ( const xAOD::Muon muon)
private

– Stat UP –///

– Stat DOWN –///

– Syst UP –///

– Syst DOWN –///

– Stat UP –///

– Stat DOWN –///

– Syst UP –///

– Syst DOWN –///

Definition at line 1374 of file MuonScaleFactorCalculator.cxx.

1374  {
1375  static SG::AuxElement::Decorator<float> id_sf_decor_stat_up(m_decor_softmuon_idSF + "_STAT_UP");
1376 
1377  static SG::AuxElement::Decorator<float> id_sf_decor_stat_down(m_decor_softmuon_idSF + "_STAT_DOWN");
1378 
1379  static SG::AuxElement::Decorator<float> id_sf_decor_syst_up(m_decor_softmuon_idSF + "_SYST_UP");
1380 
1381  static SG::AuxElement::Decorator<float> id_sf_decor_syst_down(m_decor_softmuon_idSF + "_SYST_DOWN");
1382 
1383 
1386  m_reco_stat_UP, muon,
1387  id_sf_decor_stat_up);
1388 
1391  m_reco_stat_DOWN, muon,
1392  id_sf_decor_stat_down);
1393 
1396  m_reco_syst_UP, muon,
1397  id_sf_decor_syst_up);
1398 
1401  m_reco_syst_DOWN, muon,
1402  id_sf_decor_syst_down);
1403 
1404  static SG::AuxElement::Decorator<float> id_sf_decor_stat_lowpt_up(m_decor_softmuon_idSF + "_STAT_LOWPT_UP");
1405 
1406  static SG::AuxElement::Decorator<float> id_sf_decor_stat_lowpt_down(m_decor_softmuon_idSF + "_STAT_LOWPT_DOWN");
1407 
1408  static SG::AuxElement::Decorator<float> id_sf_decor_syst_lowpt_up(m_decor_softmuon_idSF + "_SYST_LOWPT_UP");
1409 
1410  static SG::AuxElement::Decorator<float> id_sf_decor_syst_lowpt_down(m_decor_softmuon_idSF + "_SYST_LOWPT_DOWN");
1411 
1414  m_reco_stat_lowpt_UP, muon,
1415  id_sf_decor_stat_lowpt_up);
1416 
1419  m_reco_stat_lowpt_DOWN, muon,
1420  id_sf_decor_stat_lowpt_down);
1421 
1424  m_reco_syst_lowpt_UP, muon,
1425  id_sf_decor_syst_lowpt_up);
1426 
1429  m_reco_syst_lowpt_DOWN, muon,
1430  id_sf_decor_syst_lowpt_down);
1431  }

◆ decorateIsolationSystematics()

void top::MuonScaleFactorCalculator::decorateIsolationSystematics ( const xAOD::Muon muon)
private

– Stat UP –///

– Stat DOWN –///

– Syst UP –///

– Syst DOWN –///

– Stat UP –///

– Stat DOWN –///

– Syst UP –///

– Syst DOWN –///

Definition at line 683 of file MuonScaleFactorCalculator.cxx.

683  {
684  // Decorate 'tight' isolation SFs
685  static SG::AuxElement::Decorator<float> iso_sf_decor_stat_up(m_decor_isoSF + "_STAT_UP");
686  static SG::AuxElement::Decorator<float> iso_sf_decor_stat_down(m_decor_isoSF + "_STAT_DOWN");
687  static SG::AuxElement::Decorator<float> iso_sf_decor_syst_up(m_decor_isoSF + "_SYST_UP");
688  static SG::AuxElement::Decorator<float> iso_sf_decor_syst_down(m_decor_isoSF + "_SYST_DOWN");
689 
690  // Decorate 'loose' isolation SFs
691  static SG::AuxElement::Decorator<float> iso_sf_loose_decor_stat_up(m_decor_isoSF_loose + "_STAT_UP");
692  static SG::AuxElement::Decorator<float> iso_sf_loose_decor_stat_down(m_decor_isoSF_loose + "_STAT_DOWN");
693  static SG::AuxElement::Decorator<float> iso_sf_loose_decor_syst_up(m_decor_isoSF_loose + "_SYST_UP");
694  static SG::AuxElement::Decorator<float> iso_sf_loose_decor_syst_down(m_decor_isoSF_loose + "_SYST_DOWN");
695 
696  //breakdown
697  static SG::AuxElement::Decorator<float> iso_sf_decor_bkg_fraction_up(m_decor_isoSF + "_BKG_FRACTION_UP");
698  static SG::AuxElement::Decorator<float> iso_sf_decor_bkg_fraction_down(m_decor_isoSF + "_BKG_FRACTION_DOWN");
699  static SG::AuxElement::Decorator<float> iso_sf_decor_drmuj_up(m_decor_isoSF + "_DRMUJ_UP");
700  static SG::AuxElement::Decorator<float> iso_sf_decor_drmuj_down(m_decor_isoSF + "_DRMUJ_DOWN");
701  static SG::AuxElement::Decorator<float> iso_sf_decor_lumi_uncert_up(m_decor_isoSF + "_LUMI_UNCERT_UP");
702  static SG::AuxElement::Decorator<float> iso_sf_decor_lumi_uncert_down(m_decor_isoSF + "_LUMI_UNCERT_DOWN");
703  static SG::AuxElement::Decorator<float> iso_sf_decor_mc_xsec_up(m_decor_isoSF + "_MC_XSEC_UP");
704  static SG::AuxElement::Decorator<float> iso_sf_decor_mc_xsec_down(m_decor_isoSF + "_MC_XSEC_DOWN");
705  static SG::AuxElement::Decorator<float> iso_sf_decor_mllwindow_up(m_decor_isoSF + "_MLLWINDOW_UP");
706  static SG::AuxElement::Decorator<float> iso_sf_decor_mllwindow_down(m_decor_isoSF + "_MLLWINDOW_DOWN");
707  static SG::AuxElement::Decorator<float> iso_sf_decor_qcd_template_up(m_decor_isoSF + "_QCD_TEMPLATE_UP");
708  static SG::AuxElement::Decorator<float> iso_sf_decor_qcd_template_down(m_decor_isoSF + "_QCD_TEMPLATE_DOWN");
709  static SG::AuxElement::Decorator<float> iso_sf_decor_sherpa_powheg_up(m_decor_isoSF + "_SHERPA_POWHEG_UP");
710  static SG::AuxElement::Decorator<float> iso_sf_decor_sherpa_powheg_down(m_decor_isoSF + "_SHERPA_POWHEG_DOWN");
711  static SG::AuxElement::Decorator<float> iso_sf_decor_supression_scale_up(m_decor_isoSF + "_SUPRESSION_SCALE_UP");
712  static SG::AuxElement::Decorator<float> iso_sf_decor_supression_scale_down(m_decor_isoSF + "_SUPRESSION_SCALE_DOWN");
713  static SG::AuxElement::Decorator<float> iso_sf_decor_extrapolation_up(m_decor_isoSF + "_EXTRAPOLATION_UP");
714  static SG::AuxElement::Decorator<float> iso_sf_decor_extrapolation_down(m_decor_isoSF + "_EXTRAPOLATION_DOWN");
715 
716  static SG::AuxElement::Decorator<float> iso_sf_loose_decor_bkg_fraction_up(m_decor_isoSF_loose + "_BKG_FRACTION_UP");
717  static SG::AuxElement::Decorator<float> iso_sf_loose_decor_bkg_fraction_down(m_decor_isoSF_loose + "_BKG_FRACTION_DOWN");
718  static SG::AuxElement::Decorator<float> iso_sf_loose_decor_drmuj_up(m_decor_isoSF_loose + "_DRMUJ_UP");
719  static SG::AuxElement::Decorator<float> iso_sf_loose_decor_drmuj_down(m_decor_isoSF_loose + "_DRMUJ_DOWN");
720  static SG::AuxElement::Decorator<float> iso_sf_loose_decor_lumi_uncert_up(m_decor_isoSF_loose + "_LUMI_UNCERT_UP");
721  static SG::AuxElement::Decorator<float> iso_sf_loose_decor_lumi_uncert_down(m_decor_isoSF_loose + "_LUMI_UNCERT_DOWN");
722  static SG::AuxElement::Decorator<float> iso_sf_loose_decor_mc_xsec_up(m_decor_isoSF_loose + "_MC_XSEC_UP");
723  static SG::AuxElement::Decorator<float> iso_sf_loose_decor_mc_xsec_down(m_decor_isoSF_loose + "_MC_XSEC_DOWN");
724  static SG::AuxElement::Decorator<float> iso_sf_loose_decor_mllwindow_up(m_decor_isoSF_loose + "_MLLWINDOW_UP");
725  static SG::AuxElement::Decorator<float> iso_sf_loose_decor_mllwindow_down(m_decor_isoSF_loose + "_MLLWINDOW_DOWN");
726  static SG::AuxElement::Decorator<float> iso_sf_loose_decor_qcd_template_up(m_decor_isoSF_loose + "_QCD_TEMPLATE_UP");
727  static SG::AuxElement::Decorator<float> iso_sf_loose_decor_qcd_template_down(m_decor_isoSF_loose + "_QCD_TEMPLATE_DOWN");
728  static SG::AuxElement::Decorator<float> iso_sf_loose_decor_sherpa_powheg_up(m_decor_isoSF_loose + "_SHERPA_POWHEG_UP");
729  static SG::AuxElement::Decorator<float> iso_sf_loose_decor_sherpa_powheg_down(m_decor_isoSF_loose + "_SHERPA_POWHEG_DOWN");
730  static SG::AuxElement::Decorator<float> iso_sf_loose_decor_supression_scale_up(m_decor_isoSF_loose + "_SUPRESSION_SCALE_UP");
731  static SG::AuxElement::Decorator<float> iso_sf_loose_decor_supression_scale_down(m_decor_isoSF_loose + "_SUPRESSION_SCALE_DOWN");
732  static SG::AuxElement::Decorator<float> iso_sf_loose_decor_extrapolation_up(m_decor_isoSF_loose + "_EXTRAPOLATION_UP");
733  static SG::AuxElement::Decorator<float> iso_sf_loose_decor_extrapolation_down(m_decor_isoSF_loose + "_EXTRAPOLATION_DOWN");
734 
735 
737 
740  m_iso_stat_UP, muon,
741  iso_sf_decor_stat_up);
744  m_iso_stat_DOWN, muon,
745  iso_sf_decor_stat_down);
746 
747  if (m_config->muonBreakDownSystematics())
748  {
749  this->decorateEfficiencySF(m_muonEfficiencyCorrectionsToolIso,m_iso_bkg_fraction_UP,muon,iso_sf_decor_bkg_fraction_up);
750  this->decorateEfficiencySF(m_muonEfficiencyCorrectionsToolIso,m_iso_bkg_fraction_DOWN,muon,iso_sf_decor_bkg_fraction_down);
751 
754 
755  this->decorateEfficiencySF(m_muonEfficiencyCorrectionsToolIso,m_iso_lumi_uncert_UP,muon,iso_sf_decor_lumi_uncert_up);
756  this->decorateEfficiencySF(m_muonEfficiencyCorrectionsToolIso,m_iso_lumi_uncert_DOWN,muon,iso_sf_decor_lumi_uncert_down);
757 
759  this->decorateEfficiencySF(m_muonEfficiencyCorrectionsToolIso,m_iso_mc_xsec_DOWN,muon,iso_sf_decor_mc_xsec_down);
760 
761  this->decorateEfficiencySF(m_muonEfficiencyCorrectionsToolIso,m_iso_mllwindow_UP,muon,iso_sf_decor_mllwindow_up);
762  this->decorateEfficiencySF(m_muonEfficiencyCorrectionsToolIso,m_iso_mllwindow_DOWN,muon,iso_sf_decor_mllwindow_down);
763 
764  this->decorateEfficiencySF(m_muonEfficiencyCorrectionsToolIso,m_iso_qcd_template_UP,muon,iso_sf_decor_qcd_template_up);
765  this->decorateEfficiencySF(m_muonEfficiencyCorrectionsToolIso,m_iso_qcd_template_DOWN,muon,iso_sf_decor_qcd_template_down);
766 
767  this->decorateEfficiencySF(m_muonEfficiencyCorrectionsToolIso,m_iso_sherpa_powheg_UP,muon,iso_sf_decor_sherpa_powheg_up);
768  this->decorateEfficiencySF(m_muonEfficiencyCorrectionsToolIso,m_iso_sherpa_powheg_DOWN,muon,iso_sf_decor_sherpa_powheg_down);
769 
770  this->decorateEfficiencySF(m_muonEfficiencyCorrectionsToolIso,m_iso_supression_scale_UP,muon,iso_sf_decor_supression_scale_up);
771  this->decorateEfficiencySF(m_muonEfficiencyCorrectionsToolIso,m_iso_supression_scale_DOWN,muon,iso_sf_decor_supression_scale_down);
772 
773  this->decorateEfficiencySF(m_muonEfficiencyCorrectionsToolIso,m_iso_extrapolation_UP,muon,iso_sf_decor_extrapolation_up);
774  this->decorateEfficiencySF(m_muonEfficiencyCorrectionsToolIso,m_iso_extrapolation_DOWN,muon,iso_sf_decor_extrapolation_down);
775  }
776  else
777  {
780  m_iso_syst_UP, muon,
781  iso_sf_decor_syst_up);
784  m_iso_syst_DOWN, muon,
785  iso_sf_decor_syst_down);
786  }
787 
788 
789  } else {
790  // If we aren't using muon isolation then still
791  // decorate with isolation SFs of 1.0
792  iso_sf_decor_stat_up(muon) = 1.0;
793  iso_sf_decor_stat_down(muon) = 1.0;
794  iso_sf_decor_syst_up(muon) = 1.0;
795  iso_sf_decor_syst_down(muon) = 1.0;
796  }
797 
801  m_iso_stat_UP, muon,
802  iso_sf_loose_decor_stat_up);
805  m_iso_stat_DOWN, muon,
806  iso_sf_loose_decor_stat_down);
807 
808  if (m_config->muonBreakDownSystematics())
809  {
810  this->decorateEfficiencySF(m_muonEfficiencyCorrectionsToolLooseIso,m_iso_bkg_fraction_UP,muon,iso_sf_loose_decor_bkg_fraction_up);
811  this->decorateEfficiencySF(m_muonEfficiencyCorrectionsToolLooseIso,m_iso_bkg_fraction_DOWN,muon,iso_sf_loose_decor_bkg_fraction_down);
812 
813  this->decorateEfficiencySF(m_muonEfficiencyCorrectionsToolLooseIso,m_iso_drmuj_UP,muon,iso_sf_loose_decor_drmuj_up);
814  this->decorateEfficiencySF(m_muonEfficiencyCorrectionsToolLooseIso,m_iso_drmuj_DOWN,muon,iso_sf_loose_decor_drmuj_down);
815 
816  this->decorateEfficiencySF(m_muonEfficiencyCorrectionsToolLooseIso,m_iso_lumi_uncert_UP,muon,iso_sf_loose_decor_lumi_uncert_up);
817  this->decorateEfficiencySF(m_muonEfficiencyCorrectionsToolLooseIso,m_iso_lumi_uncert_DOWN,muon,iso_sf_loose_decor_lumi_uncert_down);
818 
819  this->decorateEfficiencySF(m_muonEfficiencyCorrectionsToolLooseIso,m_iso_mc_xsec_UP,muon,iso_sf_loose_decor_mc_xsec_up);
820  this->decorateEfficiencySF(m_muonEfficiencyCorrectionsToolLooseIso,m_iso_mc_xsec_DOWN,muon,iso_sf_loose_decor_mc_xsec_down);
821 
822  this->decorateEfficiencySF(m_muonEfficiencyCorrectionsToolLooseIso,m_iso_mllwindow_UP,muon,iso_sf_loose_decor_mllwindow_up);
823  this->decorateEfficiencySF(m_muonEfficiencyCorrectionsToolLooseIso,m_iso_mllwindow_DOWN,muon,iso_sf_loose_decor_mllwindow_down);
824 
825  this->decorateEfficiencySF(m_muonEfficiencyCorrectionsToolLooseIso,m_iso_qcd_template_UP,muon,iso_sf_loose_decor_qcd_template_up);
826  this->decorateEfficiencySF(m_muonEfficiencyCorrectionsToolLooseIso,m_iso_qcd_template_DOWN,muon,iso_sf_loose_decor_qcd_template_down);
827 
828  this->decorateEfficiencySF(m_muonEfficiencyCorrectionsToolLooseIso,m_iso_sherpa_powheg_UP,muon,iso_sf_loose_decor_sherpa_powheg_up);
829  this->decorateEfficiencySF(m_muonEfficiencyCorrectionsToolLooseIso,m_iso_sherpa_powheg_DOWN,muon,iso_sf_loose_decor_sherpa_powheg_down);
830 
831  this->decorateEfficiencySF(m_muonEfficiencyCorrectionsToolLooseIso,m_iso_supression_scale_UP,muon,iso_sf_loose_decor_supression_scale_up);
832  this->decorateEfficiencySF(m_muonEfficiencyCorrectionsToolLooseIso,m_iso_supression_scale_DOWN,muon,iso_sf_loose_decor_supression_scale_down);
833 
834  this->decorateEfficiencySF(m_muonEfficiencyCorrectionsToolLooseIso,m_iso_extrapolation_UP,muon,iso_sf_loose_decor_extrapolation_up);
835  this->decorateEfficiencySF(m_muonEfficiencyCorrectionsToolLooseIso,m_iso_extrapolation_DOWN,muon,iso_sf_loose_decor_extrapolation_down);
836  }
837  else
838  {
841  m_iso_syst_UP, muon,
842  iso_sf_loose_decor_syst_up);
845  m_iso_syst_DOWN, muon,
846  iso_sf_loose_decor_syst_down);
847  }
848  } else {
849  // If we aren't using muon isolation then still
850  // decorate with isolation SFs of 1.0
851  iso_sf_loose_decor_stat_up(muon) = 1.0;
852  iso_sf_loose_decor_stat_down(muon) = 1.0;
853  iso_sf_loose_decor_syst_up(muon) = 1.0;
854  iso_sf_loose_decor_syst_down(muon) = 1.0;
855  }
856  }

◆ decorateTriggerEfficiency()

void top::MuonScaleFactorCalculator::decorateTriggerEfficiency ( ToolHandle< CP::IMuonTriggerScaleFactors > &  tool,
const xAOD::Muon muon,
const SG::AuxElement::Decorator< float > &  decor 
)
private

Definition at line 560 of file MuonScaleFactorCalculator.cxx.

562  {
563  double trigEff = 1.0;
564 
565  top::check(tool->getTriggerEfficiency(muon, trigEff,
567  !m_config->isMC()),
568  "Failed to get muon trigger efficiency");
569  decor(muon) = trigEff;
570  }

◆ decorateTriggerSF()

void top::MuonScaleFactorCalculator::decorateTriggerSF ( ToolHandle< CP::IMuonTriggerScaleFactors > &  tool,
const ConstDataVector< xAOD::MuonContainer > &  muon_cont,
const SG::AuxElement::Decorator< float > &  decor 
)
private

Definition at line 572 of file MuonScaleFactorCalculator.cxx.

574  {
575  double trigSF = 1.0;
576 
577  top::check(tool->getTriggerScaleFactor(*muon_cont.asDataVector(), trigSF,
579  "Failed to get muon trigger scale factor");
580  decor(*muon_cont[0]) = trigSF;
581  }

◆ decorateTriggerSystematics()

void top::MuonScaleFactorCalculator::decorateTriggerSystematics ( const ConstDataVector< xAOD::MuonContainer > &  trigger_SF_muon)
private

Definition at line 596 of file MuonScaleFactorCalculator.cxx.

597  {
598  // Perform all trigger systematic variations, for loose and tight,
599  // (stat/syst up/down)
600  static SG::AuxElement::Decorator<float> trig_eff_decor_stat_up(m_decor_triggerEff + "_STAT_UP");
601  static SG::AuxElement::Decorator<float> trig_eff_loose_decor_stat_up(m_decor_triggerEff_loose + "_STAT_UP");
602  static SG::AuxElement::Decorator<float> trig_sf_decor_stat_up(m_decor_triggerSF + "_STAT_UP");
603  static SG::AuxElement::Decorator<float> trig_sf_loose_decor_stat_up(m_decor_triggerSF_loose + "_STAT_UP");
604 
605  static SG::AuxElement::Decorator<float> trig_eff_decor_stat_down(m_decor_triggerEff + "_STAT_DOWN");
606  static SG::AuxElement::Decorator<float> trig_eff_loose_decor_stat_down(m_decor_triggerEff_loose + "_STAT_DOWN");
607  static SG::AuxElement::Decorator<float> trig_sf_decor_stat_down(m_decor_triggerSF + "_STAT_DOWN");
608  static SG::AuxElement::Decorator<float> trig_sf_loose_decor_stat_down(m_decor_triggerSF_loose + "_STAT_DOWN");
609 
610  static SG::AuxElement::Decorator<float> trig_eff_decor_syst_up(m_decor_triggerEff + "_SYST_UP");
611  static SG::AuxElement::Decorator<float> trig_eff_loose_decor_syst_up(m_decor_triggerEff_loose + "_SYST_UP");
612  static SG::AuxElement::Decorator<float> trig_sf_decor_syst_up(m_decor_triggerSF + "_SYST_UP");
613  static SG::AuxElement::Decorator<float> trig_sf_loose_decor_syst_up(m_decor_triggerSF_loose + "_SYST_UP");
614 
615  static SG::AuxElement::Decorator<float> trig_eff_decor_syst_down(m_decor_triggerEff + "_SYST_DOWN");
616  static SG::AuxElement::Decorator<float> trig_eff_loose_decor_syst_down(m_decor_triggerEff_loose + "_SYST_DOWN");
617  static SG::AuxElement::Decorator<float> trig_sf_decor_syst_down(m_decor_triggerSF + "_SYST_DOWN");
618  static SG::AuxElement::Decorator<float> trig_sf_loose_decor_syst_down(m_decor_triggerSF_loose + "_SYST_DOWN");
619 
620  // Trigger variations
621  //
622  // Stat UP
624  m_trig_sf_stat_UP, trigger_SF_muon,
625  trig_sf_decor_stat_up,
626  trig_eff_decor_stat_up);
627 
629  m_trig_sf_stat_UP, trigger_SF_muon,
630  trig_sf_loose_decor_stat_up,
631  trig_eff_loose_decor_stat_up);
632 
633  // Stat DOWN
635  m_trig_sf_stat_DOWN, trigger_SF_muon,
636  trig_sf_decor_stat_down,
637  trig_eff_decor_stat_down);
638 
640  m_trig_sf_stat_DOWN, trigger_SF_muon,
641  trig_sf_loose_decor_stat_down,
642  trig_eff_loose_decor_stat_down);
643 
644  // Syst UP
646  m_trig_sf_syst_UP, trigger_SF_muon,
647  trig_sf_decor_syst_up,
648  trig_eff_decor_syst_up);
649 
651  m_trig_sf_syst_UP, trigger_SF_muon,
652  trig_sf_loose_decor_syst_up,
653  trig_eff_loose_decor_syst_up);
654 
655  // Syst DOWN
657  m_trig_sf_syst_DOWN, trigger_SF_muon,
658  trig_sf_decor_syst_down,
659  trig_eff_decor_syst_down);
660 
662  m_trig_sf_syst_DOWN, trigger_SF_muon,
663  trig_sf_loose_decor_syst_down,
664  trig_eff_loose_decor_syst_down);
665  }

◆ decorateTrigSFandEff()

void top::MuonScaleFactorCalculator::decorateTrigSFandEff ( ToolHandle< CP::IMuonTriggerScaleFactors > &  tool,
const CP::SystematicSet systematic,
const ConstDataVector< xAOD::MuonContainer > &  muon_cont,
const SG::AuxElement::Decorator< float > &  sf_decor,
const SG::AuxElement::Decorator< float > &  eff_decor 
)
private

Definition at line 583 of file MuonScaleFactorCalculator.cxx.

587  {
588  // Set tool to systematic
589  this->applySystematicVariation(tool, systematic);
590  // Decorate with Trigger SF
591  this->decorateTriggerSF(tool, muon_cont, sf_decor);
592  // Decorate with Trigger Efficiency
593  this->decorateTriggerEfficiency(tool, *muon_cont[0], eff_decor);
594  }

◆ decorateTTVASystematics()

void top::MuonScaleFactorCalculator::decorateTTVASystematics ( const xAOD::Muon muon)
private

Definition at line 858 of file MuonScaleFactorCalculator.cxx.

858  {
859  static SG::AuxElement::Decorator<float> TTVA_decor_stat_up(m_decor_TTVA + "_STAT_UP");
860  static SG::AuxElement::Decorator<float> TTVA_decor_stat_down(m_decor_TTVA + "_STAT_DOWN");
861  static SG::AuxElement::Decorator<float> TTVA_decor_syst_up(m_decor_TTVA + "_SYST_UP");
862  static SG::AuxElement::Decorator<float> TTVA_decor_syst_down(m_decor_TTVA + "_SYST_DOWN");
863  static SG::AuxElement::Decorator<float> TTVA_decor_lumi_uncert_up(m_decor_TTVA + "_LUMI_UNCERT_UP");
864  static SG::AuxElement::Decorator<float> TTVA_decor_lumi_uncert_down(m_decor_TTVA + "_LUMI_UNCERT_DOWN");
865  static SG::AuxElement::Decorator<float> TTVA_decor_bkg_fraction_up(m_decor_TTVA + "_BKG_FRACTION_UP");
866  static SG::AuxElement::Decorator<float> TTVA_decor_bkg_fraction_down(m_decor_TTVA + "_BKG_FRACTION_DOWN");
867  static SG::AuxElement::Decorator<float> TTVA_decor_mc_xsec_up(m_decor_TTVA + "_MC_XSEC_UP");
868  static SG::AuxElement::Decorator<float> TTVA_decor_mc_xsec_down(m_decor_TTVA + "_MC_XSEC_DOWN");
869  static SG::AuxElement::Decorator<float> TTVA_decor_qcd_template_up(m_decor_TTVA + "_QCD_TEMPLATE_UP");
870  static SG::AuxElement::Decorator<float> TTVA_decor_qcd_template_down(m_decor_TTVA + "_QCD_TEMPLATE_DOWN");
871  static SG::AuxElement::Decorator<float> TTVA_decor_supression_scale_up(m_decor_TTVA + "_SUPRESSION_SCALE_UP");
872  static SG::AuxElement::Decorator<float> TTVA_decor_supression_scale_down(m_decor_TTVA + "_SUPRESSION_SCALE_DOWN");
873  static SG::AuxElement::Decorator<float> TTVA_decor_extrapolation_up(m_decor_TTVA + "_EXTRAPOLATION_UP");
874  static SG::AuxElement::Decorator<float> TTVA_decor_extrapolation_down(m_decor_TTVA + "_EXTRAPOLATION_DOWN");
875 
877  m_TTVA_stat_UP, muon, TTVA_decor_stat_up);
879  m_TTVA_stat_DOWN, muon, TTVA_decor_stat_down);
880 
881  if (m_config->muonBreakDownSystematics()) {
883  m_TTVA_stat_UP, muon, TTVA_decor_stat_up);
885  m_TTVA_stat_DOWN, muon, TTVA_decor_stat_down);
887  m_TTVA_bkg_fraction_UP, muon, TTVA_decor_bkg_fraction_up);
889  m_TTVA_bkg_fraction_DOWN, muon, TTVA_decor_bkg_fraction_down);
891  m_TTVA_lumi_uncert_UP, muon, TTVA_decor_lumi_uncert_up);
893  m_TTVA_lumi_uncert_DOWN, muon, TTVA_decor_lumi_uncert_down);
895  m_TTVA_mc_xsec_UP, muon, TTVA_decor_mc_xsec_up);
897  m_TTVA_mc_xsec_DOWN, muon, TTVA_decor_mc_xsec_down);
899  m_TTVA_qcd_template_UP, muon, TTVA_decor_qcd_template_up);
901  m_TTVA_qcd_template_DOWN, muon, TTVA_decor_qcd_template_down);
903  m_TTVA_supression_scale_UP, muon, TTVA_decor_supression_scale_up);
905  m_TTVA_supression_scale_DOWN, muon, TTVA_decor_supression_scale_down);
907  m_TTVA_extrapolation_UP, muon, TTVA_decor_extrapolation_up);
909  m_TTVA_extrapolation_DOWN, muon, TTVA_decor_extrapolation_down);
910  } else {
912  m_TTVA_syst_UP, muon, TTVA_decor_syst_up);
914  m_TTVA_syst_DOWN, muon, TTVA_decor_syst_down);
915  }
916  }

◆ detStore()

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

◆ evtStore() [1/2]

ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( ) const
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ execute()

StatusCode top::MuonScaleFactorCalculator::execute ( )

– Loop over all muon collections –///

– Loop over all muons in each collection –///

– Does the muon pass object selection? –///

– Loop over all soft muon collections –///

– Loop over all soft muons in each collection –///

– Does the soft muon pass object selection? –///

Definition at line 292 of file MuonScaleFactorCalculator.cxx.

292  {
293  /*************************************************************
294  *
295  * The muon trigger SF tool wants a random run number,
296  * which we can get from the PRW tool.
297  *
298  *************************************************************/
299 
300  if (m_config->isMC()) {
301  const xAOD::EventInfo* eventInfo(nullptr);
302  top::check(evtStore()->retrieve(eventInfo, m_config->sgKeyEventInfo()),
303  "Failed to retrieve EventInfo");
304 
305  // This is the default value in the MuonTriggerScaleFactors tool
306  unsigned int runNumber = 267639;
307  if (eventInfo->isAvailable<unsigned int>("RandomRunNumber")) runNumber = eventInfo->auxdataConst<unsigned int>(
308  "RandomRunNumber");
309  else ATH_MSG_WARNING("Event has not been decorated with RandomRunNumber");
310 
311  // Keep an eye here for trigger strings
315 
316  if (runNumber == 0) {
317  m_muon_trigger_sf_config = "HLT_mu26_ivarmedium_OR_HLT_mu50";
318  }
319  // 2015
320  else if (runNumber > 0 && runNumber <= 284484) {
321  m_muon_trigger_sf_config = "HLT_mu20_iloose_L1MU15_OR_HLT_mu40";
322  }
323  // 2016 (set to a large value but split as we may need to have strings for 2016 -> certain 2017 run)
324  else if (runNumber > 284484 && runNumber < 324320) {
325  m_muon_trigger_sf_config = "HLT_mu26_ivarmedium_OR_HLT_mu50";
326  }
327  // 2017+18
328  else if (runNumber >= 324320 && runNumber < 364485) {
329  m_muon_trigger_sf_config = "HLT_mu26_ivarmedium_OR_HLT_mu50";
330  } else if (runNumber >= 410000) { // 2022+
331  m_muon_trigger_sf_config = "HLT_mu24_ivarmedium_L1MU14FCH_OR_HLT_mu50_L1MU14FCH";
332  }
333 
334  if (m_config->muonForceTrigger() != " "){
335  m_muon_trigger_sf_config = m_config->muonForceTrigger();
336  }
337 
338  ATH_MSG_DEBUG("Muon trigger scale factor config is : " + m_muon_trigger_sf_config);
339  ATH_MSG_DEBUG("RunNumber (0 < 2015 < 284484 < 2016 < 324320 < 2017) : ");
341  }
342 
344  for (auto currentSystematic : *m_config->systSgKeyMapMuons()) {
345  const xAOD::MuonContainer* muons(nullptr);
346  top::check(evtStore()->retrieve(muons, currentSystematic.second),
347  "Failed to retrieve muons");
348 
350  for (auto muonPtr : *muons) {
352  bool passSelection(false);
353  if (muonPtr->isAvailable<char>("passPreORSelection")) {
354  if (muonPtr->auxdataConst<char>("passPreORSelection") == 1) {
355  passSelection = true;
356  }
357  }
358  if (muonPtr->isAvailable<char>("passPreORSelectionLoose")) {
359  if (muonPtr->auxdataConst<char>("passPreORSelectionLoose") == 1) {
360  passSelection = true;
361  }
362  }
363 
364  if (!passSelection) continue;
365 
366  // Tell the SF tools to use the nominal systematic
367  // To be extra sure we do this when we try and get a SF too!
373  if (m_config->muonQuality() == "HighPt" || m_config->muonQualityLoose() == "HighPt") {
375  }
376 
377  //-- Only do isolation if we actually get the tools --//
380  m_systNominal);
381 
382  // The nominal SFs/efficiencies.
383  // Include are::
384  // 1. ID SF (no reco Eff since 2.4.22)
385  // 2. Isolation SF
386  // 3. TTVA SF
387  // 4. Trigger SF and efficiency
388 
389  // Reco efficiency and ID SF decorations
391  static SG::AuxElement::Decorator<float> id_sf_loose_decor(m_decor_idSF_loose);
392 
394  m_systNominal, *muonPtr,
395  id_sf_decor);
397  m_systNominal, *muonPtr,
398  id_sf_loose_decor);
399 
400  // Isolation SF decorations. If we aren't using isolation for
401  // either tight or loose muons then decorate anyway with 1.0.
402  static SG::AuxElement::Decorator<float> iso_sf_decor(m_decor_isoSF);
403  static SG::AuxElement::Decorator<float> iso_sf_loose_decor(m_decor_isoSF_loose);
404 
407  m_systNominal, *muonPtr,
408  iso_sf_decor);
409  } else {
410  iso_sf_decor(*muonPtr) = 1.0;
411  }
414  m_systNominal, *muonPtr,
415  iso_sf_loose_decor);
416  } else {
417  iso_sf_loose_decor(*muonPtr) = 1.0;
418  }
419 
420  // TTVA decoration
423  m_systNominal, *muonPtr, TTVA_decor);
424 
425  /**********************************************************************
426  * Muon Trigger Scale Factors
427  * TOM : The MCP tool takes a container of muons. The examples seem to
428  * suggest these should somehow be selected muons but it isn't clear
429  * to me what level of selection should be applied.
430  *
431  * *** To be followed up with MCP people by Jay ***
432  *
433  * TOM : We trick it by creating a view container
434  * with a single muon in.
435  * NOTE: This also happens later on for the systematics so if we ever
436  * get a nice function make sure we change it there too!
437  *
438  **********************************************************************/
439 
441  trigger_SF_muon.push_back(muonPtr);
442 
444  static SG::AuxElement::Decorator<float> trig_sf_loose_decor(m_decor_triggerSF_loose);
446  static SG::AuxElement::Decorator<float> trig_eff_loose_decor(m_decor_triggerEff_loose);
447 
449  m_systNominal, trigger_SF_muon,
450  trig_sf_decor, trig_eff_decor);
452  m_systNominal, trigger_SF_muon,
453  trig_sf_loose_decor, trig_eff_loose_decor);
454 
455  // If we are running on the nominal tree, then do the
456  // SF systematic variations too.
457  // Otherwise just move onto the next muon...
458  if (currentSystematic.first != m_config->nominalHashValue()) continue;
459 
460  // Trigger systematics
461  this->decorateTriggerSystematics(trigger_SF_muon);
462  // ID systematics
463  this->decorateIDSFandRecoEffSystematics(*muonPtr);
464  // Isolation systematics
465  this->decorateIsolationSystematics(*muonPtr);
466  // TTVA muon SFs- track-to-vertex association
467  this->decorateTTVASystematics(*muonPtr);
468  }
469  }
470 
472  for (const auto& currentSystematic : *m_config->systSgKeyMapSoftMuons()) {
473  const xAOD::MuonContainer* softmuons(nullptr);
474  top::check(evtStore()->retrieve(softmuons, currentSystematic.second),
475  "Failed to retrieve softmuons");
476 
478  for (const xAOD::Muon* muonPtr : *softmuons) {
480  bool passSelection(false);
481  if (muonPtr->isAvailable<char>("passPreORSelection")) {
482  if (muonPtr->auxdataConst<char>("passPreORSelection") == 1) {
483  passSelection = true;
484  }
485  }
486 
487  if (!passSelection) continue;
488 
489  // Tell the SF tools to use the nominal systematic
490  // To be extra sure we do this when we try and get a SF too!
492 
493  // Reco efficiency and ID SF decorations
495 
497  m_systNominal, *muonPtr,
498  id_sf_decor);
499 
500  // If we are running on the nominal tree, then do the
501  // SF systematic variations too.
502  // Otherwise just move onto the next muon...
503  if (currentSystematic.first != m_config->nominalHashValue()) continue;
504 
505  // ID systematics
507  }//end of loop on soft muons
508  }
509 
510  return StatusCode::SUCCESS;
511  }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase &  ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ getKey()

SG::sgkey_t asg::AsgTool::getKey ( const void *  ptr) const
inherited

Get the (hashed) key of an object that is in the event store.

This is a bit of a special one. StoreGateSvc and xAOD::TEvent both provide ways for getting the SG::sgkey_t key for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.

In order to allow tools to efficiently perform this operation, they can use this helper function.

See also
asg::AsgTool::getName
Parameters
ptrThe bare pointer to the object that the event store should know about
Returns
The hashed key of the object in the store. If not found, an invalid (zero) key.

Definition at line 119 of file AsgTool.cxx.

119  {
120 
121 #ifdef XAOD_STANDALONE
122  // In case we use @c xAOD::TEvent, we have a direct function call
123  // for this.
124  return evtStore()->event()->getKey( ptr );
125 #else
126  const SG::DataProxy* proxy = evtStore()->proxy( ptr );
127  return ( proxy == nullptr ? 0 : proxy->sgkey() );
128 #endif // XAOD_STANDALONE
129  }

◆ getName()

const std::string & asg::AsgTool::getName ( const void *  ptr) const
inherited

Get the name of an object that is / should be in the event store.

This is a bit of a special one. StoreGateSvc and xAOD::TEvent both provide ways for getting the std::string name for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.

In order to allow tools to efficiently perform this operation, they can use this helper function.

See also
asg::AsgTool::getKey
Parameters
ptrThe bare pointer to the object that the event store should know about
Returns
The string name of the object in the store. If not found, an empty string.

Definition at line 106 of file AsgTool.cxx.

106  {
107 
108 #ifdef XAOD_STANDALONE
109  // In case we use @c xAOD::TEvent, we have a direct function call
110  // for this.
111  return evtStore()->event()->getName( ptr );
112 #else
113  const SG::DataProxy* proxy = evtStore()->proxy( ptr );
114  static const std::string dummy = "";
115  return ( proxy == nullptr ? dummy : proxy->name() );
116 #endif // XAOD_STANDALONE
117  }

◆ getProperty()

template<class T >
const T* asg::AsgTool::getProperty ( const std::string &  name) const
inherited

Get one of the tool's properties.

◆ initialize()

StatusCode top::MuonScaleFactorCalculator::initialize ( )
virtual

Dummy implementation of the initialisation function.

It's here to allow the dual-use tools to skip defining an initialisation function. Since many are doing so...

– Not a good reason for this happening at the moment –///

– Not a good reason for this happening at the moment –///

Reimplemented from asg::AsgTool.

Definition at line 143 of file MuonScaleFactorCalculator.cxx.

143  {
144  ATH_MSG_INFO(" top::MuonScaleFactorCalculator initialize");
145 
146  m_muonTriggerScaleFactors_R21 = ToolHandle<CP::IMuonTriggerScaleFactors>("MuonTriggerScaleFactors_R21");
148  ToolHandle<CP::IMuonTriggerScaleFactors>("MuonTriggerScaleFactorsLoose_R21");
149 
150  std::set<std::string> implemented_systematics;
151  if (m_config->muonBreakDownSystematics()) {
152  implemented_systematics = {
153  "MUON_EFF_ISO_STAT",
154  "MUON_EFF_ISO_BKGFRACTION",
155  "MUON_EFF_ISO_DRMUJ",
156  "MUON_EFF_ISO_LUMIUNCERT",
157  "MUON_EFF_ISO_MCXSEC",
158  "MUON_EFF_ISO_MLLWINDOW",
159  "MUON_EFF_ISO_QCDTEMPLATE",
160  "MUON_EFF_ISO_SHERPA_POWHEG",
161  "MUON_EFF_ISO_SUPRESSIONSCALE",
162  "MUON_EFF_ISO_EXTRAPOLATION",
163  "MUON_EFF_RECO_BKGFRACTION",
164  "MUON_EFF_RECO_FITMODEL_LOWPT",
165  "MUON_EFF_RECO_LUMIUNCERT",
166  "MUON_EFF_RECO_MATCHING",
167  "MUON_EFF_RECO_MATCHING_LOWPT",
168  "MUON_EFF_RECO_MCXSEC",
169  "MUON_EFF_RECO_PTDEPENDENCY",
170  "MUON_EFF_RECO_QCDTEMPLATE",
171  "MUON_EFF_RECO_STAT",
172  "MUON_EFF_RECO_STAT_LOWPT",
173  "MUON_EFF_RECO_SUPRESSIONSCALE",
174  "MUON_EFF_RECO_TRUTH",
175  "MUON_EFF_RECO_TRUTH_LOWPT",
176  "MUON_EFF_RECO_CR1",
177  "MUON_EFF_RECO_CR2",
178  "MUON_EFF_RECO_CR3",
179  "MUON_EFF_RECO_HIGHETA_PROBEIP",
180  "MUON_EFF_RECO_HIGHETA_PROBEISO",
181  "MUON_EFF_RECO_TAGPT",
182  "MUON_EFF_RECO_EXTRAPOLATION",
183  "MUON_EFF_TTVA_BKGFRACTION",
184  "MUON_EFF_TTVA_LUMIUNCERT",
185  "MUON_EFF_TTVA_MCXSEC",
186  "MUON_EFF_TTVA_QCDTEMPLATE",
187  "MUON_EFF_TTVA_STAT",
188  "MUON_EFF_TTVA_SUPRESSIONSCALE",
189  "MUON_EFF_TTVA_EXTRAPOLATION",
190  "MUON_EFF_TrigStatUncertainty",
191  "MUON_EFF_TrigSystUncertainty",
192  "MUON_EFF_RECO_EXTRAPOLATION_LOWPT",
193  };
194  if (m_config->muonQuality() == "HighPt" || m_config->muonQualityLoose() == "HighPt") {
195  implemented_systematics.insert("MUON_EFF_BADMUON_PTDEPENDENCY");
196  m_reco_bad_muon_veto_UP = CP::SystematicSet("MUON_EFF_BADMUON_PTDEPENDENCY__1up");
197  m_reco_bad_muon_veto_DOWN = CP::SystematicSet("MUON_EFF_BADMUON_PTDEPENDENCY__1down");
198  }
199  } else {
200  implemented_systematics = {
201  "MUON_EFF_RECO_STAT",
202  "MUON_EFF_RECO_STAT_LOWPT",
203  "MUON_EFF_RECO_SYS",
204  "MUON_EFF_RECO_SYS_LOWPT",
205  "MUON_EFF_TrigStatUncertainty",
206  "MUON_EFF_TrigSystUncertainty",
207  "MUON_EFF_ISO_STAT",
208  "MUON_EFF_ISO_SYS",
209  "MUON_EFF_TTVA_STAT",
210  "MUON_EFF_TTVA_SYS"
211  };
212  if (m_config->muonQuality() == "HighPt" || m_config->muonQualityLoose() == "HighPt") {
213  implemented_systematics.insert("MUON_EFF_BADMUON_SYS");
214  }
215  }
216 
217  std::set<std::string> recommended_systematics;
218 
219  // For R21, a single tool
221  recommended_systematics);
223  recommended_systematics);
224 
226  recommended_systematics);
227 
228  if (m_config->useSoftMuons()) {
230  recommended_systematics);
231  }
232 
234  recommended_systematics);
235 
236  if (m_config->muonQuality() == "HighPt" || m_config->muonQualityLoose() == "HighPt") {
238  recommended_systematics);
239  }
240 
241  if (asg::ToolStore::contains<CP::IMuonEfficiencyScaleFactors>("MuonEfficiencyScaleFactorsToolIso")) {
243  recommended_systematics);
244  } else {
245  m_do_muon_isolation_SFs = false;
246  }
247  if (asg::ToolStore::contains<CP::IMuonEfficiencyScaleFactors>("MuonEfficiencyScaleFactorsToolLooseIso")) {
249  recommended_systematics);
250  } else {
252  }
253 
255  if (m_config->muonIsolationSF() != "None" && !m_do_muon_isolation_SFs) {
256  ATH_MSG_WARNING("No muon isolation SFs available."
257  " You can run with MuonIsolation set to"
258  " None if you don't want isolation.");
259  return StatusCode::FAILURE;
260  }
262  if (m_config->muonIsolationSFLoose() != "None" && !m_do_muon_isolation_SFs_loose) {
263  ATH_MSG_WARNING("No loose muon isolation SFs available."
264  " You can run with MuonIsolationLoose set to"
265  " None if you don't want isolation.");
266  return StatusCode::FAILURE;
267  }
268 
270  recommended_systematics);
271 
272  top::check(this->checkSystematicsImplemented(recommended_systematics,
273  implemented_systematics),
274  "There are differences between the recommended and implemented"
275  " muon SF systematic uncertainties");
276 
277 
278  m_decor_triggerEff = "MU_EFF_Trigger_" + m_config->muonQuality();
279  m_decor_triggerEff_loose = "MU_LOOSE_EFF_Trigger_" + m_config->muonQualityLoose();
280  m_decor_triggerSF = "MU_SF_Trigger_" + m_config->muonQuality();
281  m_decor_triggerSF_loose = "MU_LOOSE_SF_Trigger_" + m_config->muonQualityLoose();
282  m_decor_idSF = "MU_SF_ID_" + m_config->muonQuality();
283  m_decor_idSF_loose = "MU_LOOSE_SF_ID_" + m_config->muonQualityLoose();
284  m_decor_isoSF = "MU_SF_Isol_" + m_config->muonIsolationSF();
285  m_decor_isoSF_loose = "MU_LOOSE_SF_Isol_" + m_config->muonIsolationSFLoose();
286 
287  m_decor_softmuon_idSF = "SOFTMU_SF_ID_" + m_config->softmuonQuality();
288 
289  return StatusCode::SUCCESS;
290  }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ msg() [1/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24  {
25  return this->msgStream();
26  }

◆ msg() [2/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( const MSG::Level  lvl) const
inlineinherited

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ msg_level_name()

const std::string & asg::AsgTool::msg_level_name ( ) const
inherited

A deprecated function for getting the message level's name.

Instead of using this, weirdly named function, user code should get the string name of the current minimum message level (in case they really need it...), with:

MSG::name( msg().level() )

This function's name doesn't follow the ATLAS coding rules, and as such will be removed in the not too distant future.

Returns
The string name of the current minimum message level that's printed

Definition at line 101 of file AsgTool.cxx.

101  {
102 
103  return MSG::name( msg().level() );
104  }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30  {
31  return this->msgLevel(lvl);
32  }

◆ operator=()

MuonScaleFactorCalculator& top::MuonScaleFactorCalculator::operator= ( const MuonScaleFactorCalculator rhs)
delete

◆ outputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ print()

void asg::AsgTool::print ( ) const
virtualinherited

◆ renounce()

std::enable_if_t<std::is_void_v<std::result_of_t<decltype(&T::renounce)(T)> > && !std::is_base_of_v<SG::VarHandleKeyArray, T> && std::is_base_of_v<Gaudi::DataHandle, T>, void> AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T &  h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381  {
382  h.renounce();
383  PBASE::renounce (h);
384  }

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ retrieveSystematicTool()

template<typename T >
void top::MuonScaleFactorCalculator::retrieveSystematicTool ( const ToolHandle< T > &  tool,
std::set< std::string > &  recommended_systematics 
)
private

Definition at line 516 of file MuonScaleFactorCalculator.cxx.

517  {
518  top::check(tool.retrieve(), "Failed to retrieve " + tool.name());
519  // Add all recommended systematics to set
520  ATH_MSG_INFO("retrieved systematics from tool "<<tool.name());
521  for (auto s : tool->recommendedSystematics().getBaseNames())
522  {
523  ATH_MSG_INFO("---> "<<std::string(s));
524  recommended_systematics.insert(std::string(s));
525  }
526  }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase &  )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308  {
309  // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310  // << " size: " << m_vhka.size() << endmsg;
311  for (auto &a : m_vhka) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

Member Data Documentation

◆ m_config

std::shared_ptr<top::TopConfig> top::MuonScaleFactorCalculator::m_config
private

Definition at line 146 of file MuonScaleFactorCalculator.h.

◆ m_decor_idSF

std::string top::MuonScaleFactorCalculator::m_decor_idSF
private

Definition at line 174 of file MuonScaleFactorCalculator.h.

◆ m_decor_idSF_loose

std::string top::MuonScaleFactorCalculator::m_decor_idSF_loose
private

Definition at line 175 of file MuonScaleFactorCalculator.h.

◆ m_decor_isoSF

std::string top::MuonScaleFactorCalculator::m_decor_isoSF
private

Definition at line 176 of file MuonScaleFactorCalculator.h.

◆ m_decor_isoSF_loose

std::string top::MuonScaleFactorCalculator::m_decor_isoSF_loose
private

Definition at line 177 of file MuonScaleFactorCalculator.h.

◆ m_decor_softmuon_idSF

std::string top::MuonScaleFactorCalculator::m_decor_softmuon_idSF
private

Definition at line 180 of file MuonScaleFactorCalculator.h.

◆ m_decor_triggerEff

std::string top::MuonScaleFactorCalculator::m_decor_triggerEff
private

Definition at line 170 of file MuonScaleFactorCalculator.h.

◆ m_decor_triggerEff_loose

std::string top::MuonScaleFactorCalculator::m_decor_triggerEff_loose
private

Definition at line 171 of file MuonScaleFactorCalculator.h.

◆ m_decor_triggerSF

std::string top::MuonScaleFactorCalculator::m_decor_triggerSF
private

Definition at line 172 of file MuonScaleFactorCalculator.h.

◆ m_decor_triggerSF_loose

std::string top::MuonScaleFactorCalculator::m_decor_triggerSF_loose
private

Definition at line 173 of file MuonScaleFactorCalculator.h.

◆ m_decor_TTVA

std::string top::MuonScaleFactorCalculator::m_decor_TTVA
private

Definition at line 178 of file MuonScaleFactorCalculator.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_do_muon_isolation_SFs

bool top::MuonScaleFactorCalculator::m_do_muon_isolation_SFs
private

Definition at line 182 of file MuonScaleFactorCalculator.h.

◆ m_do_muon_isolation_SFs_loose

bool top::MuonScaleFactorCalculator::m_do_muon_isolation_SFs_loose
private

Definition at line 183 of file MuonScaleFactorCalculator.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_iso_bkg_fraction_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_iso_bkg_fraction_DOWN
private

Definition at line 247 of file MuonScaleFactorCalculator.h.

◆ m_iso_bkg_fraction_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_iso_bkg_fraction_UP
private

Definition at line 246 of file MuonScaleFactorCalculator.h.

◆ m_iso_drmuj_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_iso_drmuj_DOWN
private

Definition at line 249 of file MuonScaleFactorCalculator.h.

◆ m_iso_drmuj_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_iso_drmuj_UP
private

Definition at line 248 of file MuonScaleFactorCalculator.h.

◆ m_iso_extrapolation_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_iso_extrapolation_DOWN
private

Definition at line 263 of file MuonScaleFactorCalculator.h.

◆ m_iso_extrapolation_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_iso_extrapolation_UP
private

Definition at line 262 of file MuonScaleFactorCalculator.h.

◆ m_iso_lumi_uncert_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_iso_lumi_uncert_DOWN
private

Definition at line 251 of file MuonScaleFactorCalculator.h.

◆ m_iso_lumi_uncert_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_iso_lumi_uncert_UP
private

Definition at line 250 of file MuonScaleFactorCalculator.h.

◆ m_iso_mc_xsec_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_iso_mc_xsec_DOWN
private

Definition at line 253 of file MuonScaleFactorCalculator.h.

◆ m_iso_mc_xsec_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_iso_mc_xsec_UP
private

Definition at line 252 of file MuonScaleFactorCalculator.h.

◆ m_iso_mllwindow_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_iso_mllwindow_DOWN
private

Definition at line 255 of file MuonScaleFactorCalculator.h.

◆ m_iso_mllwindow_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_iso_mllwindow_UP
private

Definition at line 254 of file MuonScaleFactorCalculator.h.

◆ m_iso_qcd_template_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_iso_qcd_template_DOWN
private

Definition at line 257 of file MuonScaleFactorCalculator.h.

◆ m_iso_qcd_template_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_iso_qcd_template_UP
private

Definition at line 256 of file MuonScaleFactorCalculator.h.

◆ m_iso_sherpa_powheg_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_iso_sherpa_powheg_DOWN
private

Definition at line 259 of file MuonScaleFactorCalculator.h.

◆ m_iso_sherpa_powheg_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_iso_sherpa_powheg_UP
private

Definition at line 258 of file MuonScaleFactorCalculator.h.

◆ m_iso_stat_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_iso_stat_DOWN
private

Definition at line 242 of file MuonScaleFactorCalculator.h.

◆ m_iso_stat_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_iso_stat_UP
private

Definition at line 241 of file MuonScaleFactorCalculator.h.

◆ m_iso_supression_scale_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_iso_supression_scale_DOWN
private

Definition at line 261 of file MuonScaleFactorCalculator.h.

◆ m_iso_supression_scale_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_iso_supression_scale_UP
private

Definition at line 260 of file MuonScaleFactorCalculator.h.

◆ m_iso_syst_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_iso_syst_DOWN
private

Definition at line 244 of file MuonScaleFactorCalculator.h.

◆ m_iso_syst_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_iso_syst_UP
private

Definition at line 243 of file MuonScaleFactorCalculator.h.

◆ m_muon_trigger_sf_config

std::string top::MuonScaleFactorCalculator::m_muon_trigger_sf_config = ""
private

Definition at line 283 of file MuonScaleFactorCalculator.h.

◆ m_muonEfficiencyCorrectionsTool

ToolHandle<CP::IMuonEfficiencyScaleFactors> top::MuonScaleFactorCalculator::m_muonEfficiencyCorrectionsTool
private

Definition at line 162 of file MuonScaleFactorCalculator.h.

◆ m_muonEfficiencyCorrectionsToolBadMuonVeto

ToolHandle<CP::IMuonEfficiencyScaleFactors> top::MuonScaleFactorCalculator::m_muonEfficiencyCorrectionsToolBadMuonVeto
private

Definition at line 168 of file MuonScaleFactorCalculator.h.

◆ m_muonEfficiencyCorrectionsToolIso

ToolHandle<CP::IMuonEfficiencyScaleFactors> top::MuonScaleFactorCalculator::m_muonEfficiencyCorrectionsToolIso
private

Definition at line 165 of file MuonScaleFactorCalculator.h.

◆ m_muonEfficiencyCorrectionsToolLoose

ToolHandle<CP::IMuonEfficiencyScaleFactors> top::MuonScaleFactorCalculator::m_muonEfficiencyCorrectionsToolLoose
private

Definition at line 164 of file MuonScaleFactorCalculator.h.

◆ m_muonEfficiencyCorrectionsToolLooseIso

ToolHandle<CP::IMuonEfficiencyScaleFactors> top::MuonScaleFactorCalculator::m_muonEfficiencyCorrectionsToolLooseIso
private

Definition at line 166 of file MuonScaleFactorCalculator.h.

◆ m_muonEfficiencyCorrectionsToolTTVA

ToolHandle<CP::IMuonEfficiencyScaleFactors> top::MuonScaleFactorCalculator::m_muonEfficiencyCorrectionsToolTTVA
private

Definition at line 167 of file MuonScaleFactorCalculator.h.

◆ m_muonTriggerScaleFactors

ToolHandle<CP::IMuonTriggerScaleFactors> top::MuonScaleFactorCalculator::m_muonTriggerScaleFactors
private

Definition at line 150 of file MuonScaleFactorCalculator.h.

◆ m_muonTriggerScaleFactors_2015

ToolHandle<CP::IMuonTriggerScaleFactors> top::MuonScaleFactorCalculator::m_muonTriggerScaleFactors_2015
private

Definition at line 153 of file MuonScaleFactorCalculator.h.

◆ m_muonTriggerScaleFactors_2016

ToolHandle<CP::IMuonTriggerScaleFactors> top::MuonScaleFactorCalculator::m_muonTriggerScaleFactors_2016
private

Definition at line 156 of file MuonScaleFactorCalculator.h.

◆ m_muonTriggerScaleFactors_R21

ToolHandle<CP::IMuonTriggerScaleFactors> top::MuonScaleFactorCalculator::m_muonTriggerScaleFactors_R21
private

Definition at line 159 of file MuonScaleFactorCalculator.h.

◆ m_muonTriggerScaleFactorsLoose

ToolHandle<CP::IMuonTriggerScaleFactors> top::MuonScaleFactorCalculator::m_muonTriggerScaleFactorsLoose
private

Definition at line 151 of file MuonScaleFactorCalculator.h.

◆ m_muonTriggerScaleFactorsLoose_2015

ToolHandle<CP::IMuonTriggerScaleFactors> top::MuonScaleFactorCalculator::m_muonTriggerScaleFactorsLoose_2015
private

Definition at line 154 of file MuonScaleFactorCalculator.h.

◆ m_muonTriggerScaleFactorsLoose_2016

ToolHandle<CP::IMuonTriggerScaleFactors> top::MuonScaleFactorCalculator::m_muonTriggerScaleFactorsLoose_2016
private

Definition at line 157 of file MuonScaleFactorCalculator.h.

◆ m_muonTriggerScaleFactorsLoose_R21

ToolHandle<CP::IMuonTriggerScaleFactors> top::MuonScaleFactorCalculator::m_muonTriggerScaleFactorsLoose_R21
private

Definition at line 160 of file MuonScaleFactorCalculator.h.

◆ m_reco_bad_muon_veto_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_bad_muon_veto_DOWN
private

Definition at line 239 of file MuonScaleFactorCalculator.h.

◆ m_reco_bad_muon_veto_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_bad_muon_veto_UP
private

Definition at line 238 of file MuonScaleFactorCalculator.h.

◆ m_reco_bkg_fraction_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_bkg_fraction_DOWN
private

Definition at line 196 of file MuonScaleFactorCalculator.h.

◆ m_reco_bkg_fraction_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_bkg_fraction_UP
private

Definition at line 195 of file MuonScaleFactorCalculator.h.

◆ m_reco_cr1_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_cr1_DOWN
private

Definition at line 218 of file MuonScaleFactorCalculator.h.

◆ m_reco_cr1_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_cr1_UP
private

Definition at line 217 of file MuonScaleFactorCalculator.h.

◆ m_reco_cr2_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_cr2_DOWN
private

Definition at line 220 of file MuonScaleFactorCalculator.h.

◆ m_reco_cr2_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_cr2_UP
private

Definition at line 219 of file MuonScaleFactorCalculator.h.

◆ m_reco_cr3_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_cr3_DOWN
private

Definition at line 222 of file MuonScaleFactorCalculator.h.

◆ m_reco_cr3_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_cr3_UP
private

Definition at line 221 of file MuonScaleFactorCalculator.h.

◆ m_reco_extrapolation_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_extrapolation_DOWN
private

Definition at line 230 of file MuonScaleFactorCalculator.h.

◆ m_reco_extrapolation_lowpt_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_extrapolation_lowpt_DOWN
private

Definition at line 232 of file MuonScaleFactorCalculator.h.

◆ m_reco_extrapolation_lowpt_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_extrapolation_lowpt_UP
private

Definition at line 231 of file MuonScaleFactorCalculator.h.

◆ m_reco_extrapolation_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_extrapolation_UP
private

Definition at line 229 of file MuonScaleFactorCalculator.h.

◆ m_reco_fit_model_lowpt_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_fit_model_lowpt_DOWN
private

Definition at line 198 of file MuonScaleFactorCalculator.h.

◆ m_reco_fit_model_lowpt_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_fit_model_lowpt_UP
private

Definition at line 197 of file MuonScaleFactorCalculator.h.

◆ m_reco_higheta_probeip_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_higheta_probeip_DOWN
private

Definition at line 224 of file MuonScaleFactorCalculator.h.

◆ m_reco_higheta_probeip_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_higheta_probeip_UP
private

Definition at line 223 of file MuonScaleFactorCalculator.h.

◆ m_reco_higheta_probeiso_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_higheta_probeiso_DOWN
private

Definition at line 226 of file MuonScaleFactorCalculator.h.

◆ m_reco_higheta_probeiso_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_higheta_probeiso_UP
private

Definition at line 225 of file MuonScaleFactorCalculator.h.

◆ m_reco_lumi_uncert_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_lumi_uncert_DOWN
private

Definition at line 200 of file MuonScaleFactorCalculator.h.

◆ m_reco_lumi_uncert_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_lumi_uncert_UP
private

Definition at line 199 of file MuonScaleFactorCalculator.h.

◆ m_reco_matching_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_matching_DOWN
private

Definition at line 202 of file MuonScaleFactorCalculator.h.

◆ m_reco_matching_lowpt_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_matching_lowpt_DOWN
private

Definition at line 204 of file MuonScaleFactorCalculator.h.

◆ m_reco_matching_lowpt_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_matching_lowpt_UP
private

Definition at line 203 of file MuonScaleFactorCalculator.h.

◆ m_reco_matching_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_matching_UP
private

Definition at line 201 of file MuonScaleFactorCalculator.h.

◆ m_reco_mc_xsec_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_mc_xsec_DOWN
private

Definition at line 206 of file MuonScaleFactorCalculator.h.

◆ m_reco_mc_xsec_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_mc_xsec_UP
private

Definition at line 205 of file MuonScaleFactorCalculator.h.

◆ m_reco_pt_dependency_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_pt_dependency_DOWN
private

Definition at line 208 of file MuonScaleFactorCalculator.h.

◆ m_reco_pt_dependency_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_pt_dependency_UP
private

Definition at line 207 of file MuonScaleFactorCalculator.h.

◆ m_reco_qcd_template_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_qcd_template_DOWN
private

Definition at line 210 of file MuonScaleFactorCalculator.h.

◆ m_reco_qcd_template_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_qcd_template_UP
private

Definition at line 209 of file MuonScaleFactorCalculator.h.

◆ m_reco_stat_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_stat_DOWN
private

Definition at line 191 of file MuonScaleFactorCalculator.h.

◆ m_reco_stat_lowpt_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_stat_lowpt_DOWN
private

Definition at line 235 of file MuonScaleFactorCalculator.h.

◆ m_reco_stat_lowpt_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_stat_lowpt_UP
private

Definition at line 234 of file MuonScaleFactorCalculator.h.

◆ m_reco_stat_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_stat_UP
private

Definition at line 190 of file MuonScaleFactorCalculator.h.

◆ m_reco_supression_scale_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_supression_scale_DOWN
private

Definition at line 212 of file MuonScaleFactorCalculator.h.

◆ m_reco_supression_scale_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_supression_scale_UP
private

Definition at line 211 of file MuonScaleFactorCalculator.h.

◆ m_reco_syst_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_syst_DOWN
private

Definition at line 193 of file MuonScaleFactorCalculator.h.

◆ m_reco_syst_lowpt_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_syst_lowpt_DOWN
private

Definition at line 237 of file MuonScaleFactorCalculator.h.

◆ m_reco_syst_lowpt_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_syst_lowpt_UP
private

Definition at line 236 of file MuonScaleFactorCalculator.h.

◆ m_reco_syst_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_syst_UP
private

Definition at line 192 of file MuonScaleFactorCalculator.h.

◆ m_reco_tagpt_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_tagpt_DOWN
private

Definition at line 228 of file MuonScaleFactorCalculator.h.

◆ m_reco_tagpt_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_tagpt_UP
private

Definition at line 227 of file MuonScaleFactorCalculator.h.

◆ m_reco_truth_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_truth_DOWN
private

Definition at line 214 of file MuonScaleFactorCalculator.h.

◆ m_reco_truth_lowpt_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_truth_lowpt_DOWN
private

Definition at line 216 of file MuonScaleFactorCalculator.h.

◆ m_reco_truth_lowpt_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_truth_lowpt_UP
private

Definition at line 215 of file MuonScaleFactorCalculator.h.

◆ m_reco_truth_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_reco_truth_UP
private

Definition at line 213 of file MuonScaleFactorCalculator.h.

◆ m_softmuonEfficiencyCorrectionsTool

ToolHandle<CP::IMuonEfficiencyScaleFactors> top::MuonScaleFactorCalculator::m_softmuonEfficiencyCorrectionsTool
private

Definition at line 163 of file MuonScaleFactorCalculator.h.

◆ m_systNominal

CP::SystematicSet top::MuonScaleFactorCalculator::m_systNominal
private

Definition at line 148 of file MuonScaleFactorCalculator.h.

◆ m_trig_sf_stat_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_trig_sf_stat_DOWN
private

Definition at line 186 of file MuonScaleFactorCalculator.h.

◆ m_trig_sf_stat_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_trig_sf_stat_UP
private

Definition at line 185 of file MuonScaleFactorCalculator.h.

◆ m_trig_sf_syst_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_trig_sf_syst_DOWN
private

Definition at line 188 of file MuonScaleFactorCalculator.h.

◆ m_trig_sf_syst_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_trig_sf_syst_UP
private

Definition at line 187 of file MuonScaleFactorCalculator.h.

◆ m_TTVA_bkg_fraction_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_TTVA_bkg_fraction_DOWN
private

Definition at line 271 of file MuonScaleFactorCalculator.h.

◆ m_TTVA_bkg_fraction_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_TTVA_bkg_fraction_UP
private

Definition at line 270 of file MuonScaleFactorCalculator.h.

◆ m_TTVA_extrapolation_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_TTVA_extrapolation_DOWN
private

Definition at line 281 of file MuonScaleFactorCalculator.h.

◆ m_TTVA_extrapolation_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_TTVA_extrapolation_UP
private

Definition at line 280 of file MuonScaleFactorCalculator.h.

◆ m_TTVA_lumi_uncert_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_TTVA_lumi_uncert_DOWN
private

Definition at line 273 of file MuonScaleFactorCalculator.h.

◆ m_TTVA_lumi_uncert_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_TTVA_lumi_uncert_UP
private

Definition at line 272 of file MuonScaleFactorCalculator.h.

◆ m_TTVA_mc_xsec_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_TTVA_mc_xsec_DOWN
private

Definition at line 275 of file MuonScaleFactorCalculator.h.

◆ m_TTVA_mc_xsec_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_TTVA_mc_xsec_UP
private

Definition at line 274 of file MuonScaleFactorCalculator.h.

◆ m_TTVA_qcd_template_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_TTVA_qcd_template_DOWN
private

Definition at line 277 of file MuonScaleFactorCalculator.h.

◆ m_TTVA_qcd_template_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_TTVA_qcd_template_UP
private

Definition at line 276 of file MuonScaleFactorCalculator.h.

◆ m_TTVA_stat_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_TTVA_stat_DOWN
private

Definition at line 266 of file MuonScaleFactorCalculator.h.

◆ m_TTVA_stat_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_TTVA_stat_UP
private

Definition at line 265 of file MuonScaleFactorCalculator.h.

◆ m_TTVA_supression_scale_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_TTVA_supression_scale_DOWN
private

Definition at line 279 of file MuonScaleFactorCalculator.h.

◆ m_TTVA_supression_scale_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_TTVA_supression_scale_UP
private

Definition at line 278 of file MuonScaleFactorCalculator.h.

◆ m_TTVA_syst_DOWN

CP::SystematicSet top::MuonScaleFactorCalculator::m_TTVA_syst_DOWN
private

Definition at line 268 of file MuonScaleFactorCalculator.h.

◆ m_TTVA_syst_UP

CP::SystematicSet top::MuonScaleFactorCalculator::m_TTVA_syst_UP
private

Definition at line 267 of file MuonScaleFactorCalculator.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files:
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
top::MuonScaleFactorCalculator::m_muonEfficiencyCorrectionsToolTTVA
ToolHandle< CP::IMuonEfficiencyScaleFactors > m_muonEfficiencyCorrectionsToolTTVA
Definition: MuonScaleFactorCalculator.h:167
top::MuonScaleFactorCalculator::decorateTTVASystematics
void decorateTTVASystematics(const xAOD::Muon &muon)
Definition: MuonScaleFactorCalculator.cxx:858
xAOD::muon
@ muon
Definition: TrackingPrimitives.h:195
top::MuonScaleFactorCalculator::decorateTriggerSF
void decorateTriggerSF(ToolHandle< CP::IMuonTriggerScaleFactors > &tool, const ConstDataVector< xAOD::MuonContainer > &muon_cont, const SG::AuxElement::Decorator< float > &decor)
Definition: MuonScaleFactorCalculator.cxx:572
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
top::MuonScaleFactorCalculator::m_reco_fit_model_lowpt_UP
CP::SystematicSet m_reco_fit_model_lowpt_UP
Definition: MuonScaleFactorCalculator.h:197
top::MuonScaleFactorCalculator::m_iso_syst_DOWN
CP::SystematicSet m_iso_syst_DOWN
Definition: MuonScaleFactorCalculator.h:244
top::MuonScaleFactorCalculator::m_decor_triggerEff_loose
std::string m_decor_triggerEff_loose
Definition: MuonScaleFactorCalculator.h:171
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
top::MuonScaleFactorCalculator::m_reco_matching_DOWN
CP::SystematicSet m_reco_matching_DOWN
Definition: MuonScaleFactorCalculator.h:202
top::MuonScaleFactorCalculator::m_iso_bkg_fraction_UP
CP::SystematicSet m_iso_bkg_fraction_UP
Definition: MuonScaleFactorCalculator.h:246
top::MuonScaleFactorCalculator::m_reco_truth_lowpt_DOWN
CP::SystematicSet m_reco_truth_lowpt_DOWN
Definition: MuonScaleFactorCalculator.h:216
top::MuonScaleFactorCalculator::m_reco_truth_DOWN
CP::SystematicSet m_reco_truth_DOWN
Definition: MuonScaleFactorCalculator.h:214
top::MuonScaleFactorCalculator::m_iso_lumi_uncert_UP
CP::SystematicSet m_iso_lumi_uncert_UP
Definition: MuonScaleFactorCalculator.h:250
StateLessPT_NewConfig.proxy
proxy
Definition: StateLessPT_NewConfig.py:392
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
top::MuonScaleFactorCalculator::m_iso_bkg_fraction_DOWN
CP::SystematicSet m_iso_bkg_fraction_DOWN
Definition: MuonScaleFactorCalculator.h:247
top::MuonScaleFactorCalculator::m_muonEfficiencyCorrectionsTool
ToolHandle< CP::IMuonEfficiencyScaleFactors > m_muonEfficiencyCorrectionsTool
Definition: MuonScaleFactorCalculator.h:162
top::MuonScaleFactorCalculator::m_iso_supression_scale_UP
CP::SystematicSet m_iso_supression_scale_UP
Definition: MuonScaleFactorCalculator.h:260
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
top::MuonScaleFactorCalculator::m_iso_sherpa_powheg_DOWN
CP::SystematicSet m_iso_sherpa_powheg_DOWN
Definition: MuonScaleFactorCalculator.h:259
top::MuonScaleFactorCalculator::m_reco_mc_xsec_UP
CP::SystematicSet m_reco_mc_xsec_UP
Definition: MuonScaleFactorCalculator.h:205
top::MuonScaleFactorCalculator::m_reco_bad_muon_veto_DOWN
CP::SystematicSet m_reco_bad_muon_veto_DOWN
Definition: MuonScaleFactorCalculator.h:239
top::MuonScaleFactorCalculator::m_reco_matching_lowpt_UP
CP::SystematicSet m_reco_matching_lowpt_UP
Definition: MuonScaleFactorCalculator.h:203
top::MuonScaleFactorCalculator::m_reco_pt_dependency_UP
CP::SystematicSet m_reco_pt_dependency_UP
Definition: MuonScaleFactorCalculator.h:207
top::MuonScaleFactorCalculator::m_trig_sf_stat_DOWN
CP::SystematicSet m_trig_sf_stat_DOWN
Definition: MuonScaleFactorCalculator.h:186
top::MuonScaleFactorCalculator::m_decor_triggerEff
std::string m_decor_triggerEff
Definition: MuonScaleFactorCalculator.h:170
SG::VIEW_ELEMENTS
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
Definition: OwnershipPolicy.h:18
top::MuonScaleFactorCalculator::decorateTrigSFandEff
void decorateTrigSFandEff(ToolHandle< CP::IMuonTriggerScaleFactors > &tool, const CP::SystematicSet &systematic, const ConstDataVector< xAOD::MuonContainer > &muon_cont, const SG::AuxElement::Decorator< float > &sf_decor, const SG::AuxElement::Decorator< float > &eff_decor)
Definition: MuonScaleFactorCalculator.cxx:583
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
top::MuonScaleFactorCalculator::m_muonEfficiencyCorrectionsToolIso
ToolHandle< CP::IMuonEfficiencyScaleFactors > m_muonEfficiencyCorrectionsToolIso
Definition: MuonScaleFactorCalculator.h:165
top::MuonScaleFactorCalculator::decorateIsolationSystematics
void decorateIsolationSystematics(const xAOD::Muon &muon)
Definition: MuonScaleFactorCalculator.cxx:683
top::MuonScaleFactorCalculator::m_reco_tagpt_DOWN
CP::SystematicSet m_reco_tagpt_DOWN
Definition: MuonScaleFactorCalculator.h:228
top::MuonScaleFactorCalculator::m_reco_mc_xsec_DOWN
CP::SystematicSet m_reco_mc_xsec_DOWN
Definition: MuonScaleFactorCalculator.h:206
top::MuonScaleFactorCalculator::m_reco_syst_lowpt_UP
CP::SystematicSet m_reco_syst_lowpt_UP
Definition: MuonScaleFactorCalculator.h:236
top::MuonScaleFactorCalculator::m_reco_fit_model_lowpt_DOWN
CP::SystematicSet m_reco_fit_model_lowpt_DOWN
Definition: MuonScaleFactorCalculator.h:198
CP::SystematicSet::empty
bool empty() const
returns: whether the set is empty
Definition: SystematicSet.h:67
top::MuonScaleFactorCalculator::m_reco_lumi_uncert_UP
CP::SystematicSet m_reco_lumi_uncert_UP
Definition: MuonScaleFactorCalculator.h:199
top::MuonScaleFactorCalculator::m_iso_supression_scale_DOWN
CP::SystematicSet m_iso_supression_scale_DOWN
Definition: MuonScaleFactorCalculator.h:261
top::MuonScaleFactorCalculator::m_TTVA_bkg_fraction_UP
CP::SystematicSet m_TTVA_bkg_fraction_UP
Definition: MuonScaleFactorCalculator.h:270
top::MuonScaleFactorCalculator::m_reco_qcd_template_DOWN
CP::SystematicSet m_reco_qcd_template_DOWN
Definition: MuonScaleFactorCalculator.h:210
top::MuonScaleFactorCalculator::m_reco_truth_lowpt_UP
CP::SystematicSet m_reco_truth_lowpt_UP
Definition: MuonScaleFactorCalculator.h:215
top::MuonScaleFactorCalculator::m_decor_triggerSF
std::string m_decor_triggerSF
Definition: MuonScaleFactorCalculator.h:172
top::MuonScaleFactorCalculator::m_muon_trigger_sf_config
std::string m_muon_trigger_sf_config
Definition: MuonScaleFactorCalculator.h:283
top::MuonScaleFactorCalculator::m_reco_higheta_probeip_UP
CP::SystematicSet m_reco_higheta_probeip_UP
Definition: MuonScaleFactorCalculator.h:223
CP::SystematicSet
Class to wrap a set of SystematicVariations.
Definition: SystematicSet.h:31
top::MuonScaleFactorCalculator::m_reco_matching_UP
CP::SystematicSet m_reco_matching_UP
Definition: MuonScaleFactorCalculator.h:201
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
top::MuonScaleFactorCalculator::m_muonTriggerScaleFactorsLoose_R21
ToolHandle< CP::IMuonTriggerScaleFactors > m_muonTriggerScaleFactorsLoose_R21
Definition: MuonScaleFactorCalculator.h:160
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
top::MuonScaleFactorCalculator::m_decor_isoSF_loose
std::string m_decor_isoSF_loose
Definition: MuonScaleFactorCalculator.h:177
top::MuonScaleFactorCalculator::decorateTriggerEfficiency
void decorateTriggerEfficiency(ToolHandle< CP::IMuonTriggerScaleFactors > &tool, const xAOD::Muon &muon, const SG::AuxElement::Decorator< float > &decor)
Definition: MuonScaleFactorCalculator.cxx:560
CP::SystematicSet::name
std::string name() const
returns: the systematics joined into a single string.
Definition: SystematicSet.cxx:278
top::MuonScaleFactorCalculator::m_TTVA_syst_DOWN
CP::SystematicSet m_TTVA_syst_DOWN
Definition: MuonScaleFactorCalculator.h:268
top::MuonScaleFactorCalculator::m_TTVA_syst_UP
CP::SystematicSet m_TTVA_syst_UP
Definition: MuonScaleFactorCalculator.h:267
top::MuonScaleFactorCalculator::m_config
std::shared_ptr< top::TopConfig > m_config
Definition: MuonScaleFactorCalculator.h:146
top::MuonScaleFactorCalculator::m_reco_extrapolation_lowpt_DOWN
CP::SystematicSet m_reco_extrapolation_lowpt_DOWN
Definition: MuonScaleFactorCalculator.h:232
top::MuonScaleFactorCalculator::m_TTVA_lumi_uncert_UP
CP::SystematicSet m_TTVA_lumi_uncert_UP
Definition: MuonScaleFactorCalculator.h:272
top::MuonScaleFactorCalculator::m_reco_cr1_UP
CP::SystematicSet m_reco_cr1_UP
Definition: MuonScaleFactorCalculator.h:217
top::MuonScaleFactorCalculator::m_reco_supression_scale_UP
CP::SystematicSet m_reco_supression_scale_UP
Definition: MuonScaleFactorCalculator.h:211
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
top::MuonScaleFactorCalculator::m_reco_cr3_UP
CP::SystematicSet m_reco_cr3_UP
Definition: MuonScaleFactorCalculator.h:221
top::MuonScaleFactorCalculator::m_reco_higheta_probeip_DOWN
CP::SystematicSet m_reco_higheta_probeip_DOWN
Definition: MuonScaleFactorCalculator.h:224
top::MuonScaleFactorCalculator::m_iso_sherpa_powheg_UP
CP::SystematicSet m_iso_sherpa_powheg_UP
Definition: MuonScaleFactorCalculator.h:258
xAOD::Muon_v1
Class describing a Muon.
Definition: Muon_v1.h:38
top::MuonScaleFactorCalculator::m_TTVA_extrapolation_DOWN
CP::SystematicSet m_TTVA_extrapolation_DOWN
Definition: MuonScaleFactorCalculator.h:281
top::MuonScaleFactorCalculator::m_trig_sf_stat_UP
CP::SystematicSet m_trig_sf_stat_UP
Definition: MuonScaleFactorCalculator.h:185
top::MuonScaleFactorCalculator::m_reco_stat_lowpt_UP
CP::SystematicSet m_reco_stat_lowpt_UP
Definition: MuonScaleFactorCalculator.h:234
top::MuonScaleFactorCalculator::retrieveSystematicTool
void retrieveSystematicTool(const ToolHandle< T > &tool, std::set< std::string > &recommended_systematics)
Definition: MuonScaleFactorCalculator.cxx:516
top::MuonScaleFactorCalculator::m_decor_softmuon_idSF
std::string m_decor_softmuon_idSF
Definition: MuonScaleFactorCalculator.h:180
ConstDataVector::asDataVector
const DV * asDataVector() const
Return a pointer to this object, as a const DataVector.
top::MuonScaleFactorCalculator::m_reco_supression_scale_DOWN
CP::SystematicSet m_reco_supression_scale_DOWN
Definition: MuonScaleFactorCalculator.h:212
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
top::MuonScaleFactorCalculator::m_reco_bkg_fraction_DOWN
CP::SystematicSet m_reco_bkg_fraction_DOWN
Definition: MuonScaleFactorCalculator.h:196
top::MuonScaleFactorCalculator::m_reco_extrapolation_DOWN
CP::SystematicSet m_reco_extrapolation_DOWN
Definition: MuonScaleFactorCalculator.h:230
top::MuonScaleFactorCalculator::m_reco_bkg_fraction_UP
CP::SystematicSet m_reco_bkg_fraction_UP
Definition: MuonScaleFactorCalculator.h:195
top::MuonScaleFactorCalculator::m_trig_sf_syst_DOWN
CP::SystematicSet m_trig_sf_syst_DOWN
Definition: MuonScaleFactorCalculator.h:188
top::MuonScaleFactorCalculator::m_iso_stat_UP
CP::SystematicSet m_iso_stat_UP
Definition: MuonScaleFactorCalculator.h:241
AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
top::MuonScaleFactorCalculator::m_systNominal
CP::SystematicSet m_systNominal
Definition: MuonScaleFactorCalculator.h:148
top::MuonScaleFactorCalculator::m_TTVA_stat_UP
CP::SystematicSet m_TTVA_stat_UP
Definition: MuonScaleFactorCalculator.h:265
top::MuonScaleFactorCalculator::m_reco_syst_UP
CP::SystematicSet m_reco_syst_UP
Definition: MuonScaleFactorCalculator.h:192
top::MuonScaleFactorCalculator::m_reco_stat_DOWN
CP::SystematicSet m_reco_stat_DOWN
Definition: MuonScaleFactorCalculator.h:191
SG::Decorator
Helper class to provide type-safe access to aux data.
Definition: Decorator.h:58
top::MuonScaleFactorCalculator::m_do_muon_isolation_SFs
bool m_do_muon_isolation_SFs
Definition: MuonScaleFactorCalculator.h:182
top::MuonScaleFactorCalculator::m_TTVA_supression_scale_UP
CP::SystematicSet m_TTVA_supression_scale_UP
Definition: MuonScaleFactorCalculator.h:278
top::MuonScaleFactorCalculator::m_iso_stat_DOWN
CP::SystematicSet m_iso_stat_DOWN
Definition: MuonScaleFactorCalculator.h:242
top::MuonScaleFactorCalculator::m_TTVA_qcd_template_DOWN
CP::SystematicSet m_TTVA_qcd_template_DOWN
Definition: MuonScaleFactorCalculator.h:277
top::MuonScaleFactorCalculator::m_iso_extrapolation_UP
CP::SystematicSet m_iso_extrapolation_UP
Definition: MuonScaleFactorCalculator.h:262
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
top::MuonScaleFactorCalculator::m_reco_stat_lowpt_DOWN
CP::SystematicSet m_reco_stat_lowpt_DOWN
Definition: MuonScaleFactorCalculator.h:235
top::MuonScaleFactorCalculator::m_muonTriggerScaleFactors
ToolHandle< CP::IMuonTriggerScaleFactors > m_muonTriggerScaleFactors
Definition: MuonScaleFactorCalculator.h:150
top::MuonScaleFactorCalculator::m_iso_extrapolation_DOWN
CP::SystematicSet m_iso_extrapolation_DOWN
Definition: MuonScaleFactorCalculator.h:263
top::MuonScaleFactorCalculator::decorateEfficiencySF
void decorateEfficiencySF(ToolHandle< CP::IMuonEfficiencyScaleFactors > &tool, const CP::SystematicSet &systematic, const xAOD::Muon &muon, const SG::AuxElement::Decorator< float > &decor)
Definition: MuonScaleFactorCalculator.cxx:667
top::MuonScaleFactorCalculator::m_muonEfficiencyCorrectionsToolLooseIso
ToolHandle< CP::IMuonEfficiencyScaleFactors > m_muonEfficiencyCorrectionsToolLooseIso
Definition: MuonScaleFactorCalculator.h:166
top::MuonScaleFactorCalculator::m_iso_mllwindow_DOWN
CP::SystematicSet m_iso_mllwindow_DOWN
Definition: MuonScaleFactorCalculator.h:255
top::check
void check(bool thingToCheck, const std::string &usefulFailureMessage)
Print an error message and terminate if thingToCheck is false.
Definition: EventTools.cxx:15
top::MuonScaleFactorCalculator::m_TTVA_lumi_uncert_DOWN
CP::SystematicSet m_TTVA_lumi_uncert_DOWN
Definition: MuonScaleFactorCalculator.h:273
python.xAODType.dummy
dummy
Definition: xAODType.py:4
top::MuonScaleFactorCalculator::m_iso_syst_UP
CP::SystematicSet m_iso_syst_UP
Definition: MuonScaleFactorCalculator.h:243
MSG::name
const std::string & name(Level lvl)
Convenience function for translating message levels to strings.
Definition: MsgLevel.cxx:19
top::MuonScaleFactorCalculator::m_iso_mc_xsec_DOWN
CP::SystematicSet m_iso_mc_xsec_DOWN
Definition: MuonScaleFactorCalculator.h:253
top::MuonScaleFactorCalculator::decorateIDSFandRecoEffSystematicsSoftMuon
void decorateIDSFandRecoEffSystematicsSoftMuon(const xAOD::Muon &muon)
Definition: MuonScaleFactorCalculator.cxx:1374
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
top::MuonScaleFactorCalculator::m_iso_mllwindow_UP
CP::SystematicSet m_iso_mllwindow_UP
Definition: MuonScaleFactorCalculator.h:254
top::MuonScaleFactorCalculator::m_reco_cr3_DOWN
CP::SystematicSet m_reco_cr3_DOWN
Definition: MuonScaleFactorCalculator.h:222
top::MuonScaleFactorCalculator::m_TTVA_bkg_fraction_DOWN
CP::SystematicSet m_TTVA_bkg_fraction_DOWN
Definition: MuonScaleFactorCalculator.h:271
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
top::MuonScaleFactorCalculator::m_reco_bad_muon_veto_UP
CP::SystematicSet m_reco_bad_muon_veto_UP
Definition: MuonScaleFactorCalculator.h:238
top::MuonScaleFactorCalculator::checkSystematicsImplemented
StatusCode checkSystematicsImplemented(const std::set< std::string > &recommended, const std::set< std::string > &implemented)
Definition: MuonScaleFactorCalculator.cxx:537
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
top::MuonScaleFactorCalculator::m_decor_idSF_loose
std::string m_decor_idSF_loose
Definition: MuonScaleFactorCalculator.h:175
top::MuonScaleFactorCalculator::m_decor_isoSF
std::string m_decor_isoSF
Definition: MuonScaleFactorCalculator.h:176
top::MuonScaleFactorCalculator::m_reco_qcd_template_UP
CP::SystematicSet m_reco_qcd_template_UP
Definition: MuonScaleFactorCalculator.h:209
top::MuonScaleFactorCalculator::m_decor_triggerSF_loose
std::string m_decor_triggerSF_loose
Definition: MuonScaleFactorCalculator.h:173
top::MuonScaleFactorCalculator::m_TTVA_supression_scale_DOWN
CP::SystematicSet m_TTVA_supression_scale_DOWN
Definition: MuonScaleFactorCalculator.h:279
top::MuonScaleFactorCalculator::m_reco_cr2_DOWN
CP::SystematicSet m_reco_cr2_DOWN
Definition: MuonScaleFactorCalculator.h:220
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
top::MuonScaleFactorCalculator::m_trig_sf_syst_UP
CP::SystematicSet m_trig_sf_syst_UP
Definition: MuonScaleFactorCalculator.h:187
top::MuonScaleFactorCalculator::m_muonEfficiencyCorrectionsToolBadMuonVeto
ToolHandle< CP::IMuonEfficiencyScaleFactors > m_muonEfficiencyCorrectionsToolBadMuonVeto
Definition: MuonScaleFactorCalculator.h:168
AtlCoolConsole.tool
tool
Definition: AtlCoolConsole.py:453
top::MuonScaleFactorCalculator::m_reco_higheta_probeiso_DOWN
CP::SystematicSet m_reco_higheta_probeiso_DOWN
Definition: MuonScaleFactorCalculator.h:226
top::MuonScaleFactorCalculator::m_muonTriggerScaleFactorsLoose
ToolHandle< CP::IMuonTriggerScaleFactors > m_muonTriggerScaleFactorsLoose
Definition: MuonScaleFactorCalculator.h:151
top::MuonScaleFactorCalculator::m_muonTriggerScaleFactors_R21
ToolHandle< CP::IMuonTriggerScaleFactors > m_muonTriggerScaleFactors_R21
Definition: MuonScaleFactorCalculator.h:159
top::MuonScaleFactorCalculator::m_reco_lumi_uncert_DOWN
CP::SystematicSet m_reco_lumi_uncert_DOWN
Definition: MuonScaleFactorCalculator.h:200
top::MuonScaleFactorCalculator::m_iso_lumi_uncert_DOWN
CP::SystematicSet m_iso_lumi_uncert_DOWN
Definition: MuonScaleFactorCalculator.h:251
top::MuonScaleFactorCalculator::applySystematicVariation
void applySystematicVariation(ToolHandle< T > &tool, const CP::SystematicSet &systematic)
Definition: MuonScaleFactorCalculator.cxx:529
xAOD::EventInfo_v1
Class describing the basic event information.
Definition: EventInfo_v1.h:43
top::MuonScaleFactorCalculator::m_reco_tagpt_UP
CP::SystematicSet m_reco_tagpt_UP
Definition: MuonScaleFactorCalculator.h:227
top::MuonScaleFactorCalculator::m_TTVA_qcd_template_UP
CP::SystematicSet m_TTVA_qcd_template_UP
Definition: MuonScaleFactorCalculator.h:276
top::MuonScaleFactorCalculator::m_iso_qcd_template_DOWN
CP::SystematicSet m_iso_qcd_template_DOWN
Definition: MuonScaleFactorCalculator.h:257
top::MuonScaleFactorCalculator::decorateIDSFandRecoEff
void decorateIDSFandRecoEff(ToolHandle< CP::IMuonEfficiencyScaleFactors > &tool, const CP::SystematicSet &systematic, const xAOD::Muon &muon, const SG::AuxElement::Decorator< float > &id_sf_decor)
Definition: MuonScaleFactorCalculator.cxx:918
DeMoAtlasDataLoss.runNumber
string runNumber
Definition: DeMoAtlasDataLoss.py:64
top::MuonScaleFactorCalculator::m_reco_truth_UP
CP::SystematicSet m_reco_truth_UP
Definition: MuonScaleFactorCalculator.h:213
top::MuonScaleFactorCalculator::m_TTVA_extrapolation_UP
CP::SystematicSet m_TTVA_extrapolation_UP
Definition: MuonScaleFactorCalculator.h:280
a
TList * a
Definition: liststreamerinfos.cxx:10
h
top::MuonScaleFactorCalculator::m_iso_mc_xsec_UP
CP::SystematicSet m_iso_mc_xsec_UP
Definition: MuonScaleFactorCalculator.h:252
top::MuonScaleFactorCalculator::decorateIDSFandRecoEffSystematics
void decorateIDSFandRecoEffSystematics(const xAOD::Muon &muon)
Definition: MuonScaleFactorCalculator.cxx:928
top::MuonScaleFactorCalculator::m_TTVA_mc_xsec_UP
CP::SystematicSet m_TTVA_mc_xsec_UP
Definition: MuonScaleFactorCalculator.h:274
top::MuonScaleFactorCalculator::m_iso_qcd_template_UP
CP::SystematicSet m_iso_qcd_template_UP
Definition: MuonScaleFactorCalculator.h:256
top::MuonScaleFactorCalculator::decorateTriggerSystematics
void decorateTriggerSystematics(const ConstDataVector< xAOD::MuonContainer > &trigger_SF_muon)
Definition: MuonScaleFactorCalculator.cxx:596
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
ConstDataVector
DataVector adapter that acts like it holds const pointers.
Definition: ConstDataVector.h:76
top::MuonScaleFactorCalculator::m_reco_syst_lowpt_DOWN
CP::SystematicSet m_reco_syst_lowpt_DOWN
Definition: MuonScaleFactorCalculator.h:237
top::MuonScaleFactorCalculator::m_muonEfficiencyCorrectionsToolLoose
ToolHandle< CP::IMuonEfficiencyScaleFactors > m_muonEfficiencyCorrectionsToolLoose
Definition: MuonScaleFactorCalculator.h:164
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
top::MuonScaleFactorCalculator::m_decor_TTVA
std::string m_decor_TTVA
Definition: MuonScaleFactorCalculator.h:178
top::MuonScaleFactorCalculator::m_do_muon_isolation_SFs_loose
bool m_do_muon_isolation_SFs_loose
Definition: MuonScaleFactorCalculator.h:183
top::MuonScaleFactorCalculator::m_decor_idSF
std::string m_decor_idSF
Definition: MuonScaleFactorCalculator.h:174
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
top::MuonScaleFactorCalculator::m_reco_cr2_UP
CP::SystematicSet m_reco_cr2_UP
Definition: MuonScaleFactorCalculator.h:219
top::MuonScaleFactorCalculator::m_TTVA_mc_xsec_DOWN
CP::SystematicSet m_TTVA_mc_xsec_DOWN
Definition: MuonScaleFactorCalculator.h:275
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
top::MuonScaleFactorCalculator::m_reco_matching_lowpt_DOWN
CP::SystematicSet m_reco_matching_lowpt_DOWN
Definition: MuonScaleFactorCalculator.h:204
top::MuonScaleFactorCalculator::m_TTVA_stat_DOWN
CP::SystematicSet m_TTVA_stat_DOWN
Definition: MuonScaleFactorCalculator.h:266
top::MuonScaleFactorCalculator::m_reco_pt_dependency_DOWN
CP::SystematicSet m_reco_pt_dependency_DOWN
Definition: MuonScaleFactorCalculator.h:208
top::MuonScaleFactorCalculator::m_reco_syst_DOWN
CP::SystematicSet m_reco_syst_DOWN
Definition: MuonScaleFactorCalculator.h:193
top::MuonScaleFactorCalculator::m_reco_stat_UP
CP::SystematicSet m_reco_stat_UP
Definition: MuonScaleFactorCalculator.h:190
top::MuonScaleFactorCalculator::m_iso_drmuj_UP
CP::SystematicSet m_iso_drmuj_UP
Definition: MuonScaleFactorCalculator.h:248
top::MuonScaleFactorCalculator::m_reco_extrapolation_UP
CP::SystematicSet m_reco_extrapolation_UP
Definition: MuonScaleFactorCalculator.h:229
SG::DataProxy
Definition: DataProxy.h:44
top::MuonScaleFactorCalculator::m_softmuonEfficiencyCorrectionsTool
ToolHandle< CP::IMuonEfficiencyScaleFactors > m_softmuonEfficiencyCorrectionsTool
Definition: MuonScaleFactorCalculator.h:163
top::MuonScaleFactorCalculator::m_reco_higheta_probeiso_UP
CP::SystematicSet m_reco_higheta_probeiso_UP
Definition: MuonScaleFactorCalculator.h:225
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
top::MuonScaleFactorCalculator::m_iso_drmuj_DOWN
CP::SystematicSet m_iso_drmuj_DOWN
Definition: MuonScaleFactorCalculator.h:249
fitman.k
k
Definition: fitman.py:528
top::MuonScaleFactorCalculator::m_reco_extrapolation_lowpt_UP
CP::SystematicSet m_reco_extrapolation_lowpt_UP
Definition: MuonScaleFactorCalculator.h:231
top::MuonScaleFactorCalculator::m_reco_cr1_DOWN
CP::SystematicSet m_reco_cr1_DOWN
Definition: MuonScaleFactorCalculator.h:218