25 ATH_MSG_INFO(
"Hello BTaggingEigenVectorRecompositionTool user... initializing");
29 ATH_MSG_ERROR(
"Failed to retrieve BTaggingEfficiencyTool handle");
30 return StatusCode::FAILURE;
39 return StatusCode::FAILURE;
43 return StatusCode::FAILURE;
47 return StatusCode::FAILURE;
51 return StatusCode::FAILURE;
54 std::map<std::string, std::map<std::string, float>>
::iterator outter;
58 inner!=outter->second.end(); ++inner){
63 inner!=outter->second.end(); ++inner){
68 inner!=outter->second.end(); ++inner){
73 inner!=outter->second.end(); ++inner){
77 return StatusCode::SUCCESS;
88 std::vector<std::string>
dummy;
89 if(
label.compare(
"B") == 0)
91 else if(
label.compare(
"C") == 0)
93 else if(
label.compare(
"T") == 0)
95 else if(
label.compare(
"Light") == 0)
98 ATH_MSG_ERROR(
"Label is illegal! Available label: B, C, T and Light.");
112 std::map<std::string, std::map<std::string, float>> fullMap;
113 if(
label.compare(
"B") == 0)
115 else if(
label.compare(
"C") == 0)
117 else if(
label.compare(
"T") == 0)
119 else if(
label.compare(
"Light") == 0)
122 ATH_MSG_ERROR(
"Label is illegal! Available label: B, C, T and Light.");
126 std::vector<std::string> evNameList;
127 for(
unsigned int i : evIdxList){
132 std::map<std::string, std::map<std::string, float>> resultMap;
133 for (std::map<std::string, std::map<std::string, float>>::
iterator iter = fullMap.begin();
134 iter != fullMap.end(); ++iter){
135 if (evNameList.end() !=
std::find(evNameList.begin(), evNameList.end(), iter->first) ||
137 resultMap[iter->first] = iter->second;
149 std::vector<float> coefficients;
150 std::map<std::string, std::map<std::string, float>> fullMap;
151 std::vector<std::string> NPnameList;
152 if(
label.compare(
"B") == 0){
156 else if(
label.compare(
"C") == 0){
160 else if(
label.compare(
"T") == 0){
164 else if(
label.compare(
"Light") == 0){
169 ATH_MSG_ERROR(
"Label is illegal! Available label: B, C, T and Light.");
174 if(fullMap.count(evName) <= 0){
175 ATH_MSG_ERROR(
"Cannot find " << evName <<
" in Eigen Vector coefficient map.");
179 std::map<std::string, float> oneEVmap = fullMap[evName];
180 for(std::string NPname : NPnameList){
181 coefficients.push_back(oneEVmap[NPname]);
188 std::map<std::string, std::map<std::string, float>> fullMap;
189 if(
label.compare(
"B") == 0)
191 else if(
label.compare(
"C") == 0)
193 else if(
label.compare(
"T") == 0)
195 else if(
label.compare(
"Light") == 0)
198 ATH_MSG_ERROR(
"Label is illegal! Available label: B, C, T and Light.");
201 return fullMap.size();
213 for (
auto syst : systConfig) {
215 ATH_MSG_WARNING(
"applySystematicVariation was called for " << syst.name() <<
" but BTaggingEigenVectorRecompositionTool does not apply Systematic Variations");
218 return StatusCode::SUCCESS;
226 return sys.find(systematic) !=
sys.end();