889 double par_Pt = 100.;
893 auto ip = paramValues.find(
"Jet_Pt");
894 if (ip != paramValues.end()) {
895 par_Pt = std::stod(ip->second);
897 ip = paramValues.find(
"Jet_Eta");
898 if (ip != paramValues.end()) {
899 par_Eta = std::stod(ip->second);
907 TLegend* leg_eta =
new TLegend(0.26, 0.73, 0.935, 0.90);
908 TLegend* leg_pt =
new TLegend(0.26, 0.73, 0.935, 0.90);
910 leg_eta->SetBorderSize(0);
911 leg_eta->SetLineStyle(0);
912 leg_eta->SetFillStyle(0);
914 leg_eta->SetTextFont(42);
915 leg_pt->SetBorderSize(0);
916 leg_pt->SetLineStyle(0);
917 leg_pt->SetFillStyle(0);
919 auto tag1 = PlotBase::getTag<0>();
920 auto iov1 = tag1.iovs.front();
921 std::shared_ptr<JetResolutionObject> payload1 =
fetchPayload(std::get<1>(iov1));
923 auto tag2 = PlotBase::getTag<1>();
924 auto iov2 = tag2.iovs.front();
925 std::shared_ptr<JetResolutionObject> payload2 =
fetchPayload(std::get<1>(iov2));
927 std::stringstream ss_tagname1(tag1.name);
928 std::stringstream ss_tagname2(tag2.name);
934 getline(ss_tagname1, stmp,
'_');
935 getline(ss_tagname1, stmp);
938 getline(ss_tagname2, stmp,
'_');
939 getline(ss_tagname2, stmp);
942 bool is_2bin =
false;
944 if (payload1.get() && payload2.get()) {
945 if (!payload1->getRecords().empty() &&
946 payload1->getDefinition().getFormulaString().compare(
"") != 0)
950 for (
const auto&
record : payload1->getRecords()) {
951 if (
record.getBinsRange().size() > 1)
954 if (!
record.getBinsRange().empty() && payload1->getDefinition().getBinName(0) ==
"JetEta" &&
955 record.getParametersValues().size() == 3) {
957 for (
size_t it = 0; it <=
NBIN_ETA; it++) {
959 if (((is_2bin ==
false) || (is_2bin ==
true &&
record.getBinsRange()[1].is_inside(par_Pt))) &&
960 record.getBinsRange()[0].is_inside(x_axis)) {
961 sf_eta_one->SetBinContent(it + 1,
record.getParametersValues()[0]);
966 if (
record.getBinsRange().size() > 1 && payload1->getDefinition().getBinName(0) ==
"JetEta" &&
967 record.getBinsRange()[0].is_inside(par_Eta) &&
968 payload1->getDefinition().getBinName(1) ==
"JetPt" &&
969 record.getParametersValues().size() == 3) {
973 for (
size_t it = 0; it <=
NBIN_PT; it++) {
975 if (
record.getBinsRange()[1].is_inside(x_axis)) {
976 sf_pt_one->SetBinContent(it + 1,
record.getParametersValues()[0]);
983 for (
const auto&
record : payload2->getRecords()) {
984 if (
record.getBinsRange().size() > 1)
987 if (!
record.getBinsRange().empty() && payload2->getDefinition().getBinName(0) ==
"JetEta" &&
988 record.getParametersValues().size() == 3) {
990 for (
size_t it = 0; it <=
NBIN_ETA; it++) {
992 if (((is_2bin ==
false) || (is_2bin ==
true &&
record.getBinsRange()[1].is_inside(par_Pt))) &&
993 record.getBinsRange()[0].is_inside(x_axis)) {
994 sf_eta_two->SetBinContent(it + 1,
record.getParametersValues()[0]);
999 if (
record.getBinsRange().size() > 1 && payload2->getDefinition().getBinName(0) ==
"JetEta" &&
1000 record.getBinsRange()[0].is_inside(par_Eta) &&
1001 payload2->getDefinition().getBinName(1) ==
"JetPt" &&
1002 record.getParametersValues().size() == 3) {
1006 for (
size_t it = 0; it <=
NBIN_PT; it++) {
1008 if (
record.getBinsRange()[1].is_inside(x_axis)) {
1009 sf_pt_two->SetBinContent(it + 1,
record.getParametersValues()[0]);
1015 gStyle->SetOptStat(0);
1016 gStyle->SetLabelFont(42,
"XYZ");
1017 gStyle->SetLabelSize(0.05,
"XYZ");
1018 gStyle->SetFrameLineWidth(3);
1021 TCanvas
canvas(
"Jet ScaleFactor",
title.c_str(), 800, 1200);
1025 sf_eta_one->SetTitle(
"Jet ScaleFactor vs. #eta");
1026 sf_eta_one->SetXTitle(
"#eta");
1027 sf_eta_one->SetYTitle(
"Scale Factor");
1028 sf_eta_one->SetLineWidth(3);
1029 sf_eta_one->SetMaximum(sf_eta_one->GetMaximum() * 1.25);
1030 sf_eta_one->SetMinimum(0.);
1031 sf_eta_one->Draw(
"][");
1033 sf_eta_two->SetLineColor(2);
1034 sf_eta_two->SetLineWidth(3);
1035 sf_eta_two->SetLineStyle(2);
1036 sf_eta_two->Draw(
"][ same");
1038 leg_eta->AddEntry(sf_eta_one, tag_ver1.c_str(),
"l");
1039 leg_eta->AddEntry(sf_eta_two, tag_ver2.c_str(),
"l");
1040 leg_eta->AddEntry((TObject*)
nullptr, Form(
"JetPt=%.2f", par_Pt),
"");
1043 if (is_2bin ==
true) {
1045 sf_pt_one->SetTitle(
"Jet ScaleFactor vs. p_{T}");
1046 sf_pt_one->SetXTitle(
"p_{T} [GeV]");
1047 sf_pt_one->SetYTitle(
"Scale Factor");
1048 sf_pt_one->SetLineWidth(3);
1049 sf_pt_one->SetMaximum(sf_pt_one->GetMaximum() * 1.25);
1050 sf_pt_one->SetMinimum(0.);
1051 sf_pt_one->Draw(
"][");
1053 sf_pt_two->SetLineColor(2);
1054 sf_pt_two->SetLineWidth(3);
1055 sf_pt_two->SetLineStyle(2);
1056 sf_pt_two->Draw(
"][ same");
1058 leg_pt->AddEntry(sf_pt_one, tag_ver1.c_str(),
"l");
1059 leg_pt->AddEntry(sf_pt_two, tag_ver2.c_str(),
"l");
1060 leg_pt->AddEntry((TObject*)
nullptr, Form(
"JetEta=%.2f", par_Eta),
"");
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)