37 return StatusCode::FAILURE;
41 std::set<UncertaintyGroup*> compSet;
43 for (
size_t iGroup = 0; iGroup <
groups.size(); ++iGroup)
44 if (
groups.at(iGroup)->getName().CompareTo(iter->basename().c_str()) == 0)
47 if (compSet.count(
groups.at(iGroup)))
49 ATH_MSG_ERROR(
"Multiple independent shifts requested for a single group: " <<
groups.at(iGroup)->getName().Data());
50 return StatusCode::FAILURE;
52 compSet.insert(
groups.at(iGroup));
63 ATH_MSG_ERROR(Form(
"Input SystematicSet is %zu elements, but only found %zu UncertaintyGroups",systConfig.
size(),
m_groups.size()));
64 return StatusCode::FAILURE;
69 return StatusCode::SUCCESS;
85 std::set<CompScaleVar::TypeEnum> vars =
m_groups.at(0)->getScaleVars();
90 for (
size_t iGroup = 1; iGroup <
m_groups.size(); ++iGroup)
92 std::set<CompScaleVar::TypeEnum> vars2 =
m_groups.at(iGroup)->getScaleVars();
93 if (vars2.size() != 1 || singleVar != *(vars2.begin()))
112 ATH_MSG_ERROR(
"Asked for validity of a multi-scale variable set without specifying any scale variable: " <<
m_name);
117 for (
size_t iGroup = 0; iGroup <
m_groups.size(); ++iGroup)
118 if (!
m_groups.at(iGroup)->getValidity(
jet,eInfo,scaleVariable))
138 ATH_MSG_ERROR(
"Asked for uncertainty of a multi-scale-variable set without specifying any scale variable: " <<
m_name);
144 for (
size_t iGroup = 0; iGroup <
m_groups.size(); ++iGroup)
168 ATH_MSG_ERROR(
"Asked for valid uncertainty of a multi-scale-variable set without specifying any scale variable: " <<
m_name);
174 for (
size_t iGroup = 0; iGroup <
m_groups.size(); ++iGroup)
176 if (!
m_groups.at(iGroup)->getValidity(
jet,eInfo,scaleVariable))
193 std::set<CompScaleVar::TypeEnum> scaleVarSet;
194 for (
size_t iGroup = 0; iGroup <
m_groups.size(); ++iGroup)
196 std::set<CompScaleVar::TypeEnum> localSet =
m_groups.at(iGroup)->getScaleVars();
197 scaleVarSet.insert(localSet.begin(),localSet.end());
201 std::vector<CompScaleVar::TypeEnum> scaleVars;
202 std::set<CompScaleVar::TypeEnum>::const_iterator iter;
203 for (iter = scaleVarSet.begin(); iter != scaleVarSet.end(); ++iter)
204 scaleVars.push_back(*(iter));
210 std::vector< std::pair<CompScaleVar::TypeEnum,bool> > validity;
217 const std::vector<CompScaleVar::TypeEnum> scaleVars =
getScaleVars();
220 for (
size_t iVar = 0; iVar < scaleVars.size(); ++iVar)
221 validity.emplace_back(scaleVars.at(iVar),
getValidity(
jet,eInfo,scaleVars.at(iVar)));
229 std::vector< std::pair<CompScaleVar::TypeEnum,double> > unc;
236 const std::vector<CompScaleVar::TypeEnum> scaleVars =
getScaleVars();
239 for (
size_t iVar = 0; iVar < scaleVars.size(); ++iVar)
240 unc.emplace_back(scaleVars.at(iVar),
getUncertainty(
jet,eInfo,scaleVars.at(iVar)));
248 std::vector< std::pair<CompScaleVar::TypeEnum,bool> > validity;
249 std::vector< std::pair<CompScaleVar::TypeEnum,double> > localUnc;
259 const std::vector<CompScaleVar::TypeEnum> scaleVars =
getScaleVars();
262 for (
size_t iVar = 0; iVar < scaleVars.size(); ++iVar)
265 validity.emplace_back(scaleVars.at(iVar),
getValidUncertainty(localUncValue,
jet,eInfo,scaleVars.at(iVar)));
266 localUnc.emplace_back(scaleVars.at(iVar),localUncValue);