211 {
212
214 CP::CorrectionCode
result;
217 for (
size_t l = 0;
l <
types.size();
l++) {
223 Error(
m_appName,
"Could not retrieve trigger efficiency. Paramaters:\n Event number = %i,\n Quality = %s,\n Binning = %s,\n Systematic = %s,\n Type = %s ",
static_cast<int>(ei->
eventNumber()),
qualities[iquality].c_str(),
binnings[ibin].c_str(),
m_systematics[isystematic].name().c_str(),
types[l].c_str());
225 }
226 if (eff < 0 || eff > 1) {
227 Warning(
m_appName,
"Retrieved trigger efficiency %.3f is outside of expected range from 0 to 1. Paramaters:\n Event number = %i,\n Quality = %s,\n Binning = %s,\n Systematic = %s", eff,
static_cast<int>(ei->
eventNumber()),
qualities[iquality].c_str(),
binnings[ibin].c_str(),
m_systematics[isystematic].name().c_str());
229 }
230 if (binNumber < 0 || binNumber > 238) {
231 Warning(
m_appName,
"Retrieved bin number %.i is outside of expected range from 0 to 238. Paramaters:\n Event number = %i,\n Quality = %s,\n Binning = %s,\n Systematic = %s", binNumber,
static_cast<int>(ei->
eventNumber()),
qualities[iquality].c_str(),
binnings[ibin].c_str(),
m_systematics[isystematic].name().c_str());
233 }
234
235 }
236 }
237 }
238
239 double triggerSF = 0.;
242 Error(
m_appName,
"Could not retrieve trigger scale factors. Parameters:\n Event number = %i,\n Quality = %s,\n Binning = %s,\n Systematic = %s",
static_cast<int>(ei->
eventNumber()),
qualities[iquality].c_str(),
binnings[ibin].c_str(),
m_systematics[isystematic].name().c_str());
244 }
245 if (triggerSF < 0.2 || triggerSF > 1.2) {
246
250 Error(
"MuonTriggerSFRootCoreTest",
"Could not extract threshold for trigger %s",
m_trigger.c_str());
251 return 1;
252 }
253 bool displayWarning = false;
256 if ((**mu_itr).pt() >= threshold and std::abs((**mu_itr).eta()) < 2.5) displayWarning = true;
257 }
258
259 if (displayWarning) {
260 Warning(
m_appName,
"Retrieved trigger scale factor %.3f is outside of expected range from 0.2 to 1.2. Parameters:\n Event number = %i,\n Quality = %s,\n Binning = %s,\n Systematic = %s", triggerSF,
static_cast<int>(ei->
eventNumber()),
qualities[iquality].c_str(),
binnings[ibin].c_str(),
m_systematics[isystematic].name().c_str());
262 }
263 }
264 double tmpEffData = 1.;
265 double tmpEffMC = 1.;
266 for (auto muon: *muons) {
267 double effData = 0.;
268 double effMC = 0.;
269 double scaleFactor = 0.;
271 Error(
"MuonTriggerSFRootCoreTest",
"Could not extract data trigger efficiency for %s which is %f. Parameters:\n Event number = %i,\n Quality = %s,\n Binning = %s,\n Systematic = %s \n muon pt: %f \n eta: %f \n phi: %f",
m_trigger.c_str(), scaleFactor,
static_cast<int>(ei->
eventNumber()),
qualities[iquality].c_str(),
binnings[ibin].c_str(),
m_systematics[isystematic].name().c_str(),
muon->pt(),
muon->eta(),
muon->phi());
272 return 1;
273 }
275 Error(
"MuonTriggerSFRootCoreTest",
"Could not extract MC trigger efficiency for %s",
m_trigger.c_str());
276 return 1;
277 }
279 Error(
"MuonTriggerSFRootCoreTest",
"Could not extract MC trigger efficiency for %s",
m_trigger.c_str());
280 return 1;
281 }
282 if (scaleFactor < 0.2 || scaleFactor > 1.2 ) {
285 Error(
"MuonTriggerSFRootCoreTest",
"Could not extract threshold for trigger %s",
m_trigger.c_str());
286 return 1;
287 }
288 if(
muon->pt() >= threshold and std::abs(
muon->eta()) < 2.5)
289 Warning(
m_appName,
"Retrieved single muon trigger scale factor %.3f is outside of expected range from 0.2 to 1.2. Parameters:\n Event number = %i,\n Quality = %s,\n Binning = %s,\n Systematic = %s \n muon pt: %f \n eta: %f \n phi: %f", scaleFactor,
static_cast<int>(ei->
eventNumber()),
qualities[iquality].c_str(),
binnings[ibin].c_str(),
m_systematics[isystematic].name().c_str(),
muon->pt(),
muon->eta(),
muon->phi());
290 }
291 tmpEffData *= 1.-effData;
292 tmpEffMC *= 1.-effMC;
293 }
294 auto sfSingleCalc = (1. - tmpEffData)/(1. - tmpEffMC);
295 if ( triggerSF > 0.2 && (sfSingleCalc - triggerSF) / triggerSF > 0.02) {
296
297
299 }
300 return 0;
301 }
static const std::vector< std::string > types
DataModel_detail::const_iterator< DataVector > const_iterator
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
std::string find(const std::string &s)
return a remapped string
l
Printing final latex table to .tex output file.