321 double par_Pt = 100.;
323 double par_Rho = 20.;
326 auto ip = paramValues.find(
"Jet_Pt");
327 if (ip != paramValues.end()) {
328 par_Pt = std::stod(ip->second);
330 ip = paramValues.find(
"Jet_Eta");
331 if (ip != paramValues.end()) {
332 par_Eta = std::stod(ip->second);
334 ip = paramValues.find(
"Jet_Rho");
335 if (ip != paramValues.end()) {
336 par_Rho = std::stod(ip->second);
343 TLegend* leg_eta =
new TLegend(0.26, 0.73, 0.935, 0.90);
344 TLegend* leg_pt =
new TLegend(0.26, 0.73, 0.935, 0.90);
346 leg_eta->SetBorderSize(0);
347 leg_eta->SetLineStyle(0);
348 leg_eta->SetFillStyle(0);
350 leg_eta->SetTextFont(42);
351 leg_pt->SetBorderSize(0);
352 leg_pt->SetLineStyle(0);
353 leg_pt->SetFillStyle(0);
355 auto tag1 = PlotBase::getTag<0>();
356 auto iov1 = tag1.iovs.front();
357 std::shared_ptr<JetResolutionObject> payload1 =
fetchPayload(std::get<1>(iov1));
358 auto tag2 = PlotBase::getTag<1>();
359 auto iov2 = tag2.iovs.front();
360 std::shared_ptr<JetResolutionObject> payload2 =
fetchPayload(std::get<1>(iov2));
362 std::stringstream ss_tagname1(tag1.name);
363 std::stringstream ss_tagname2(tag2.name);
369 getline(ss_tagname1, stmp,
'_');
370 getline(ss_tagname1, stmp);
373 getline(ss_tagname2, stmp,
'_');
374 getline(ss_tagname2, stmp);
377 if (payload1.get() && payload2.get()) {
378 if (!payload1->getRecords().empty() &&
379 payload1->getDefinition().getFormulaString().compare(
"") == 0)
385 JetParameters j_param;
386 j_param.setJetPt(par_Pt);
387 j_param.setRho(par_Rho);
388 j_param.setJetEta(x_axis);
390 if (payload1->getRecord(j_param) ==
nullptr || payload2->getRecord(j_param) ==
nullptr) {
396 float res1 = payload1->evaluateFormula(record1, j_param);
397 resol_eta1->SetBinContent(
idx + 1, res1);
398 float res2 = payload2->evaluateFormula(record2, j_param);
399 resol_eta2->SetBinContent(
idx + 1, res2);
405 JetParameters j_param;
406 j_param.setJetEta(par_Eta);
407 j_param.setRho(par_Rho);
408 j_param.setJetPt(x_axis);
410 if (payload1->getRecord(j_param) ==
nullptr || payload2->getRecord(j_param) ==
nullptr) {
416 float res1 = payload1->evaluateFormula(record1, j_param);
417 resol_pt1->SetBinContent(
idx + 1, res1);
418 float res2 = payload2->evaluateFormula(record2, j_param);
419 resol_pt2->SetBinContent(
idx + 1, res2);
422 gStyle->SetOptStat(0);
423 gStyle->SetLabelFont(42,
"XYZ");
424 gStyle->SetLabelSize(0.05,
"XYZ");
425 gStyle->SetFrameLineWidth(3);
427 std::string title = Form(
"Comparison between %s and %s", tag1.name.c_str(), tag2.name.c_str());
428 TCanvas
canvas(
"Jet Resolution Comparison",
title.c_str(), 800, 1200);
432 resol_eta1->SetTitle(
"Jet Resolution Comparison vs. #eta");
433 resol_eta1->SetXTitle(
"#eta");
434 resol_eta1->SetYTitle(
"Resolution");
435 resol_eta1->SetLineWidth(3);
436 resol_eta1->SetMaximum(resol_eta1->GetMaximum() * 1.25);
437 resol_eta1->Draw(
"][");
439 resol_eta2->SetLineColor(2);
440 resol_eta2->SetLineWidth(3);
441 resol_eta2->SetLineStyle(2);
442 resol_eta2->Draw(
"][same");
444 leg_eta->AddEntry(resol_eta1, tag_ver1.c_str(),
"l");
445 leg_eta->AddEntry(resol_eta2, tag_ver2.c_str(),
"l");
446 leg_eta->AddEntry((TObject*)
nullptr, Form(
"JetPt=%.2f; JetRho=%.2f", par_Pt, par_Rho),
"");
450 resol_pt1->SetTitle(
"Jet Resolution Comparison vs. p_{T}");
451 resol_pt1->SetXTitle(
"p_{T} [GeV]");
452 resol_pt1->SetYTitle(
"Resolution");
453 resol_pt1->SetLineWidth(3);
454 resol_pt1->Draw(
"][");
456 resol_pt2->SetLineColor(2);
457 resol_pt2->SetLineWidth(3);
458 resol_pt2->SetLineStyle(2);
459 resol_pt2->Draw(
"][same");
461 leg_pt->AddEntry(resol_pt1, tag_ver1.c_str(),
"l");
462 leg_pt->AddEntry(resol_pt2, tag_ver2.c_str(),
"l");
463 leg_pt->AddEntry((TObject*)
nullptr, Form(
"JetEta=%.2f; JetRho=%.2f", par_Eta, par_Rho),
"");
std::string m_imageFileName
const std::map< std::string, std::string > & inputParamValues() const
std::string title() const
std::shared_ptr< JetResolutionObject > fetchPayload(const cond::Hash &payloadHash)