18 m_systNominal(
CP::SystematicSet()),
19 m_systID_UP(
CP::SystematicSet()),
20 m_systID_DOWN(
CP::SystematicSet()),
21 m_electronEffSFID(
"AsgFwdElectronEfficiencyCorrectionTool_ID"),
22 m_electronEffSFIDLoose(
"AsgFwdElectronEfficiencyCorrectionTool_IDLoose"),
23 m_decor_idSF(
"SetMe"),
24 m_decor_idSF_loose(
"SetMe") {
29 ATH_MSG_INFO(
" top::FwdElectronScaleFactorCalculator initialize");
40 return StatusCode::SUCCESS;
45 for (
auto currentSystematic : *
m_config->systSgKeyMapFwdElectrons()) {
56 bool passSelection(
false);
57 if (electronPtr->isAvailable<
char>(
"passPreORSelection")) {
58 if (electronPtr->auxdataConst<
char>(
"passPreORSelection") == 1) {
62 if (electronPtr->isAvailable<
char>(
"passPreORSelectionLoose")) {
63 if (electronPtr->auxdataConst<
char>(
"passPreORSelectionLoose") == 1) {
69 double SF_ID(1.), SF_IDLoose(1.);
82 if (currentSystematic.first ==
m_config->nominalHashValue()) {
83 double SF_ID_UP(1.), SF_IDLoose_UP(1.);
84 double SF_ID_DOWN(1.), SF_IDLoose_DOWN(1.);
99 SF_IDLoose_DOWN),
"Failed to get SF");
106 electronPtr->auxdecor<
float>(
m_decor_idSF +
"_UP") = SF_ID_UP;
107 electronPtr->auxdecor<
float>(
m_decor_idSF +
"_DOWN") = SF_ID_DOWN;
114 electronPtr->auxdataConst<
float>(
m_decor_idSF +
"_UP") <<
" - " <<
115 electronPtr->auxdataConst<
float>(
m_decor_idSF +
"_DOWN")
123 return StatusCode::SUCCESS;