5#ifndef MUONEFFICIENCYSCALEFACTORS_H_
6#define MUONEFFICIENCYSCALEFACTORS_H_
27#include <unordered_map>
28namespace ADD_CMODE(CP) {
32 MuonEfficiencyScaleFactors(
const std::string& name);
34 virtual ~MuonEfficiencyScaleFactors();
58 virtual StatusCode applySystematicVariation(
const CP::SystematicSet& systConfig)
override;
74 virtual int getUnCorrelatedSystBin(
const xAOD::Muon& mu)
const override;
75 virtual std::string getUncorrelatedSysBinName(
unsigned int Bin)
const override;
76 virtual std::string getUncorrelatedSysBinName(
const CP::SystematicSet& systConfig)
const override;
83 StatusCode LoadInputs();
91 std::map<std::string, unsigned int> lookUpSystematics();
102 std::string filename_Central()
const;
106 std::string filename_Calo()
const;
111 std::string filename_HighEta()
const;
115 std::string filename_LowPt()
const;
116 std::string filename_LowPtCalo()
const;
118 std::string filename_LRTCentral()
const;
119 std::string filename_LRTLowPt()
const;
123 float lowPtTransition()
const;
126 MuonEfficiencyType measurement()
const;
134 std::string sf_decoration()
const;
135 std::string data_effi_decoration()
const;
136 std::string mc_effi_decoration()
const;
138 std::string sf_replica_decoration()
const;
139 std::string data_effi_replica_decoration()
const;
140 std::string mc_effi_replica_deocration()
const;
145 size_t getPosition(
const EffiCollection* coll)
const;
148 size_t getNCollections()
const;
150 bool uncorrelate_sys()
const;
155 const std::string& close_by_jet_decoration()
const;
157 bool use_2D_iso_corrections()
const;
159 bool use_lrt()
const;
164 std::string resolve_file_location(
const std::string &filename)
const;
171 std::vector<std::unique_ptr<EffiCollection>> m_sf_sets;
174 EffiCollection* m_current_sf;
176 std::string m_custom_dir;
177 std::string m_custom_file_Combined;
178 std::string m_custom_file_Calo;
179 std::string m_custom_file_HighEta;
180 std::string m_custom_file_LowPt;
181 std::string m_custom_file_LowPtCalo;
182 std::string m_custom_file_LRTCombined;
183 std::string m_custom_file_LRTLowPt;
187 std::string m_efficiency_decoration_name_data;
188 std::string m_efficiency_decoration_name_mc;
189 std::string m_sf_decoration_name;
192 std::string m_calibration_version;
196 float m_lowpt_threshold;
198 std::string m_iso_jet_dR;
203 std::unordered_map<CP::SystematicSet, EffiCollection*> m_filtered_sys_sets;
206 bool m_seperateSystBins;
207 bool m_breakDownSyst;
208 bool m_applyKineDepSys;
212 MuonEfficiencyType m_Type;
217 std::unique_ptr<Accessors> m_accessors;