|
@ -151,6 +151,23 @@ void DrawInDefaultCanvas(RooPlot *rooPlot, const char *folder, double margin_lef |
|
|
c->SaveAs(TString::Format("output_files/analysis/%s/%s.pdf", folder, name.Data()).Data()); |
|
|
c->SaveAs(TString::Format("output_files/analysis/%s/%s.pdf", folder, name.Data()).Data()); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void PrintStyles(RooPlot* plt) { |
|
|
|
|
|
auto Xaxis = plt->GetXaxis(); |
|
|
|
|
|
auto Yaxis = plt->GetYaxis(); |
|
|
|
|
|
std::cout << "## Styles for plot " << plt->GetName() << std::endl; |
|
|
|
|
|
std::cout << "## X axis\n" |
|
|
|
|
|
<< "Label Size: " << Xaxis->GetLabelSize() << ",\n" |
|
|
|
|
|
<< "Label Offset: " << Xaxis->GetLabelOffset() << ",\n" |
|
|
|
|
|
<< "Title Size: " << Xaxis->GetTitleSize() << ",\n" |
|
|
|
|
|
<< "Title Offset: " << Xaxis->GetTitleOffset() << "." << std::endl; |
|
|
|
|
|
|
|
|
|
|
|
std::cout << "## Y axis\n" |
|
|
|
|
|
<< "Label Size: " << Yaxis->GetLabelSize() << ",\n" |
|
|
|
|
|
<< "Label Offset: " << Yaxis->GetLabelOffset() << ",\n" |
|
|
|
|
|
<< "Title Size: " << Yaxis->GetTitleSize() << ",\n" |
|
|
|
|
|
<< "Title Offset: " << Yaxis->GetTitleOffset() << "." << std::endl; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
void DrawInDefaultCanvas(RooFitSummary fitSummary, const char *folder) |
|
|
void DrawInDefaultCanvas(RooFitSummary fitSummary, const char *folder) |
|
|
{ |
|
|
{ |
|
|
std::filesystem::create_directory(TString::Format("output_files/analysis/%s", folder).Data()); |
|
|
std::filesystem::create_directory(TString::Format("output_files/analysis/%s", folder).Data()); |
|
@ -161,29 +178,26 @@ void DrawInDefaultCanvas(RooFitSummary fitSummary, const char *folder) |
|
|
c->GetPad(0)->GetPadPar(xlow, ylow, xup, yup); |
|
|
c->GetPad(0)->GetPadPar(xlow, ylow, xup, yup); |
|
|
c->Divide(1, 2); |
|
|
c->Divide(1, 2); |
|
|
|
|
|
|
|
|
Double_t upPad_ylow = ylow + 0.30 * (yup - ylow); |
|
|
|
|
|
Double_t dwPad_yup = ylow + 0.30 * (yup - ylow); |
|
|
|
|
|
|
|
|
Double_t upPad_ylow = ylow + 0.25 * (yup - ylow); |
|
|
|
|
|
Double_t dwPad_yup = ylow + 0.25 * (yup - ylow); |
|
|
|
|
|
|
|
|
TVirtualPad *upPad = c->GetPad(1); |
|
|
TVirtualPad *upPad = c->GetPad(1); |
|
|
upPad->SetPad(xlow, upPad_ylow, xup, yup); |
|
|
upPad->SetPad(xlow, upPad_ylow, xup, yup); |
|
|
|
|
|
|
|
|
TVirtualPad *dwPad = c->GetPad(2); |
|
|
TVirtualPad *dwPad = c->GetPad(2); |
|
|
dwPad->SetPad(xlow, ylow, xup, dwPad_yup); |
|
|
dwPad->SetPad(xlow, ylow, xup, dwPad_yup); |
|
|
|
|
|
dwPad->SetTopMargin(0); |
|
|
|
|
|
|
|
|
Double_t upPad_area = (yup - upPad_ylow) * (xup - xlow); |
|
|
Double_t upPad_area = (yup - upPad_ylow) * (xup - xlow); |
|
|
Double_t dwPad_area = (dwPad_yup - ylow) * (xup - xlow); |
|
|
Double_t dwPad_area = (dwPad_yup - ylow) * (xup - xlow); |
|
|
|
|
|
|
|
|
std::cout << "### UP AREA: " << upPad_area << " LOW AREA: " << dwPad_area << std::endl; |
|
|
|
|
|
|
|
|
// std::cout << "### UP AREA: " << upPad_area << " LOW AREA: " << dwPad_area << std::endl; |
|
|
|
|
|
|
|
|
const Double_t pull_title_size = 0.09; |
|
|
const Double_t pull_title_size = 0.09; |
|
|
const Double_t pull_label_size = 0.09; |
|
|
const Double_t pull_label_size = 0.09; |
|
|
const Double_t pull_title_offset_x = 3.0; |
|
|
|
|
|
const Double_t pull_title_offset_y = 2.4; |
|
|
|
|
|
|
|
|
|
|
|
Double_t fit_title_size = (pull_title_size * dwPad_area) / upPad_area; |
|
|
Double_t fit_title_size = (pull_title_size * dwPad_area) / upPad_area; |
|
|
Double_t fit_label_size = (pull_label_size * dwPad_area) / upPad_area; |
|
|
Double_t fit_label_size = (pull_label_size * dwPad_area) / upPad_area; |
|
|
Double_t fit_title_offset_x = (pull_title_offset_x * dwPad_area) / upPad_area; |
|
|
|
|
|
Double_t fit_title_offset_y = (pull_title_offset_y * dwPad_area) / upPad_area; |
|
|
|
|
|
|
|
|
|
|
|
// canvas->Update(); |
|
|
// canvas->Update(); |
|
|
c->cd(1); |
|
|
c->cd(1); |
|
@ -201,13 +215,15 @@ void DrawInDefaultCanvas(RooFitSummary fitSummary, const char *folder) |
|
|
|
|
|
|
|
|
auto fit_Xaxis = fitSummary.fit_histogram->GetXaxis(); |
|
|
auto fit_Xaxis = fitSummary.fit_histogram->GetXaxis(); |
|
|
auto fit_Yaxis = fitSummary.fit_histogram->GetYaxis(); |
|
|
auto fit_Yaxis = fitSummary.fit_histogram->GetYaxis(); |
|
|
|
|
|
fit_Xaxis->SetLabelOffset(0.02); |
|
|
fit_Xaxis->SetLabelSize(fit_label_size); |
|
|
fit_Xaxis->SetLabelSize(fit_label_size); |
|
|
fit_Xaxis->SetTitleOffset(fit_title_offset_x); |
|
|
|
|
|
|
|
|
fit_Xaxis->SetTitleOffset(1.4); |
|
|
fit_Xaxis->SetTitleSize(fit_title_size); |
|
|
fit_Xaxis->SetTitleSize(fit_title_size); |
|
|
|
|
|
|
|
|
|
|
|
fit_Yaxis->SetLabelOffset(0.01); |
|
|
fit_Yaxis->SetLabelSize(fit_label_size); |
|
|
fit_Yaxis->SetLabelSize(fit_label_size); |
|
|
fit_Yaxis->SetTitleSize(fit_title_size); |
|
|
fit_Yaxis->SetTitleSize(fit_title_size); |
|
|
fit_Yaxis->SetTitleOffset(fit_title_offset_y); |
|
|
|
|
|
|
|
|
fit_Yaxis->SetTitleOffset(0); |
|
|
|
|
|
|
|
|
fitSummary.fit_histogram->Draw(); |
|
|
fitSummary.fit_histogram->Draw(); |
|
|
|
|
|
|
|
@ -232,12 +248,10 @@ void DrawInDefaultCanvas(RooFitSummary fitSummary, const char *folder) |
|
|
|
|
|
|
|
|
c->cd(2); |
|
|
c->cd(2); |
|
|
|
|
|
|
|
|
RooHist *pull_hist = (RooHist *)fitSummary.pull_histogram->getObject(0); |
|
|
|
|
|
|
|
|
Double_t pull_min = fitSummary.pull_histogram->GetMinimum(); |
|
|
|
|
|
Double_t pull_max = fitSummary.pull_histogram->GetMaximum(); |
|
|
|
|
|
|
|
|
Double_t pull_min = pull_hist->GetMinimum(); |
|
|
|
|
|
Double_t pull_max = pull_hist->GetMaximum(); |
|
|
|
|
|
|
|
|
|
|
|
std::cout << "### (" << fitSummary.pull_histogram->GetName() << ") PULL MIN: " << pull_min << " PULL MAX: " << pull_max << std::endl; |
|
|
|
|
|
|
|
|
// std::cout << "### (" << fitSummary.pull_histogram->GetName() << ") PULL MIN: " << pull_min << " PULL MAX: " << pull_max << std::endl; |
|
|
|
|
|
|
|
|
double bound = 0; |
|
|
double bound = 0; |
|
|
if (TMath::Abs(pull_min) > TMath::Abs(pull_max)) |
|
|
if (TMath::Abs(pull_min) > TMath::Abs(pull_max)) |
|
@ -251,26 +265,35 @@ void DrawInDefaultCanvas(RooFitSummary fitSummary, const char *folder) |
|
|
|
|
|
|
|
|
auto pull_Xaxis = fitSummary.pull_histogram->GetXaxis(); |
|
|
auto pull_Xaxis = fitSummary.pull_histogram->GetXaxis(); |
|
|
auto pull_Yaxis = fitSummary.pull_histogram->GetYaxis(); |
|
|
auto pull_Yaxis = fitSummary.pull_histogram->GetYaxis(); |
|
|
|
|
|
pull_Xaxis->SetLabelOffset(0.02); |
|
|
pull_Xaxis->SetLabelSize(pull_label_size); |
|
|
pull_Xaxis->SetLabelSize(pull_label_size); |
|
|
pull_Xaxis->SetTitleOffset(pull_title_offset_x); |
|
|
|
|
|
pull_Xaxis->SetTitleSize(pull_title_size); |
|
|
pull_Xaxis->SetTitleSize(pull_title_size); |
|
|
pull_Xaxis->SetTitle(""); |
|
|
pull_Xaxis->SetTitle(""); |
|
|
|
|
|
|
|
|
|
|
|
pull_Yaxis->SetLabelOffset(0.01); |
|
|
pull_Yaxis->SetLabelSize(pull_label_size); |
|
|
pull_Yaxis->SetLabelSize(pull_label_size); |
|
|
pull_Yaxis->SetTitleSize(pull_title_size); |
|
|
pull_Yaxis->SetTitleSize(pull_title_size); |
|
|
pull_Yaxis->SetTitleOffset(pull_title_offset_y); |
|
|
|
|
|
|
|
|
pull_Yaxis->SetTitleOffset(0.45); |
|
|
pull_Yaxis->SetTitle("Pull Distribution"); |
|
|
pull_Yaxis->SetTitle("Pull Distribution"); |
|
|
fitSummary.pull_histogram->SetTitle(""); |
|
|
fitSummary.pull_histogram->SetTitle(""); |
|
|
|
|
|
|
|
|
|
|
|
fitSummary.pull_histogram->SetMaximum(bound); |
|
|
|
|
|
fitSummary.pull_histogram->SetMinimum(-bound); |
|
|
|
|
|
|
|
|
fitSummary.pull_histogram->Draw(); |
|
|
fitSummary.pull_histogram->Draw(); |
|
|
|
|
|
|
|
|
auto line_mid = new TLine(B_MASS_VAR_MIN, 0, B_MASS_VAR_MAX, 0); |
|
|
auto line_mid = new TLine(B_MASS_VAR_MIN, 0, B_MASS_VAR_MAX, 0); |
|
|
|
|
|
line_mid->SetLineColor(kOrange+4); |
|
|
line_mid->Draw(); |
|
|
line_mid->Draw(); |
|
|
|
|
|
|
|
|
auto line_up = new TLine(B_MASS_VAR_MIN, bound, B_MASS_VAR_MAX, bound); |
|
|
|
|
|
|
|
|
auto line_up = new TLine(B_MASS_VAR_MIN, bound / 2, B_MASS_VAR_MAX, bound / 2); |
|
|
|
|
|
line_up->SetLineStyle(kDashed); |
|
|
|
|
|
line_up->SetLineColor(kOrange+4); |
|
|
line_up->Draw(); |
|
|
line_up->Draw(); |
|
|
|
|
|
|
|
|
auto line_low = new TLine(B_MASS_VAR_MIN, -bound, B_MASS_VAR_MAX, -bound); |
|
|
|
|
|
|
|
|
auto line_low = new TLine(B_MASS_VAR_MIN, -bound / 2, B_MASS_VAR_MAX, -bound / 2); |
|
|
|
|
|
line_low->SetLineStyle(kDashed); |
|
|
|
|
|
line_low->SetLineColor(kOrange+4); |
|
|
line_low->Draw(); |
|
|
line_low->Draw(); |
|
|
|
|
|
|
|
|
c->Draw(); |
|
|
c->Draw(); |
|
@ -400,10 +423,10 @@ RooFitSummary CreateRooFitHistogramAndFitCB(TH1D *hist, bool hasExpBkg, bool use |
|
|
RooHist *pull_hist = roo_frame_mass->pullHist(hist_name, pull_compare_name); |
|
|
RooHist *pull_hist = roo_frame_mass->pullHist(hist_name, pull_compare_name); |
|
|
roo_frame_pull->addPlotable(pull_hist, "P"); |
|
|
roo_frame_pull->addPlotable(pull_hist, "P"); |
|
|
|
|
|
|
|
|
Double_t pull_min = pull_hist->GetMinimum(); |
|
|
|
|
|
Double_t pull_max = pull_hist->GetMaximum(); |
|
|
|
|
|
|
|
|
// Double_t pull_min = pull_hist->GetMinimum(); |
|
|
|
|
|
// Double_t pull_max = pull_hist->GetMaximum(); |
|
|
|
|
|
|
|
|
std::cout << "##### (" << pull_hist->GetName() << ") PULL MIN: " << pull_min << " PULL MAX: " << pull_max << std::endl; |
|
|
|
|
|
|
|
|
// std::cout << "##### (" << pull_hist->GetName() << ") PULL MIN: " << pull_min << " PULL MAX: " << pull_max << std::endl; |
|
|
|
|
|
|
|
|
return RooFitSummary{ |
|
|
return RooFitSummary{ |
|
|
roo_frame_mass, |
|
|
roo_frame_mass, |
|
|