TList* fitter = 0;
TCanvas* canvas = 0;
const char* pdfName = "FitResults.pdf";
+bool landscape = true;
//____________________________________________________________________
/**
gStyle->SetStatColor(0);
gStyle->SetStatBorderSize(1);
- canvas = new TCanvas("c", "C", Int_t(800 / TMath::Sqrt(2)), 800);
+ Int_t w = Int_t(800 / TMath::Sqrt(2));
+ Int_t h = 800;
+ if (landscape) {
+ Int_t tmp = h;
+ h = w;
+ w = tmp;
+ }
+ canvas = new TCanvas("c", "C", w, h);
canvas->SetFillColor(0);
canvas->SetBorderMode(0);
canvas->SetBorderSize(0);
//____________________________________________________________________
THStack*
-AddToStack(TList* stacks, TList* fitter, const char* name)
+AddToStack(TList* stacks, TList* list, const char* name)
{
- TObject* o = fitter->FindObject(name);
+ TObject* o = list->FindObject(name);
if (!o) {
Warning("AddToStack", "Object %s not found in %s", name,
- fitter->GetName());
- // fitter->ls();
+ list->GetName());
+ // list->ls();
return 0;
}
THStack* toAdd = static_cast<THStack*>(o);
*
* @ingroup pwg2_forward_scripts_corr
*/
-void DrawSummary(const char* fname="forward_eloss.root")
+void DrawSummary(const char* fname="forward_eloss.root",
+ bool onlySummary=true)
{
if (!CheckFitter(fname)) {
Error("DrawFits", "File not opened");
canvas->Clear();
TList stacks;
- THStack* chi2nu = AddToStack(&stacks, fitter, "chi2");
- THStack* c = AddToStack(&stacks, fitter, "c");
- THStack* delta = AddToStack(&stacks, fitter, "delta");
- THStack* xi = AddToStack(&stacks, fitter, "xi");
- THStack* sigma = AddToStack(&stacks, fitter, "sigma");
- THStack* sigman = AddToStack(&stacks, fitter, "sigman");
- THStack* n = AddToStack(&stacks, fitter, "n");
+ /* THStack* chi2nu = */ AddToStack(&stacks, fitter, "chi2");
+ /* THStack* c = */ AddToStack(&stacks, fitter, "c");
+ /* THStack* delta = */ AddToStack(&stacks, fitter, "delta");
+ /* THStack* xi = */ AddToStack(&stacks, fitter, "xi");
+ /* THStack* sigma = */ AddToStack(&stacks, fitter, "sigma");
+ /* THStack* sigman = */ AddToStack(&stacks, fitter, "sigman");
+ /* THStack* n = */ AddToStack(&stacks, fitter, "n");
Int_t baseA = stacks.GetEntries()+1;
Int_t i = 2;
while (true) {
}
// stacks.ls();
Int_t nMax = stacks.GetEntries();
- for (Int_t i = nMax-1; i >= baseA; i--) {
+ for (i = nMax-1; i >= baseA; i--) {
THStack* stack = static_cast<THStack*>(stacks.At(i));
TIter nextH(stack->GetHists());
TH1* hist = 0;
canvas->SetRightMargin(0.01);
canvas->SetTopMargin(0.01);
+ Int_t nL = (nMax+1) / 2;
Int_t nX = 2;
- Int_t nY = (nMax+1) / 2;
+ Int_t nY = nL;
+ if (landscape) {
+ Int_t tmp = nY;
+ nY = nX;
+ nX = tmp;
+ }
+
canvas->Divide(nX, nY, 0.1, 0, 0);
TIter next(&stacks);
THStack* stack = 0;
i = 0;
- Int_t b = 1;
+ // Int_t b = 1;
while ((stack = static_cast<THStack*>(next()))) {
if (i > nMax) break;
- Int_t ipad = 1+i/nY + 2 * (i % nY);
+ Int_t ipad = 1+i/nL + 2 * (i % nL);
Info("DrawSummary", "cd'ing to canvas %d for %s", ipad,
stack->GetName());
TVirtualPad* p = canvas->cd(ipad);
- p->SetLeftMargin(.6/nY);
+ p->SetLeftMargin(.6/nL);
p->SetTopMargin(.01);
p->SetRightMargin(.01);
p->SetFillColor(0);
if (i == 4 || i == 5) stack->SetMaximum(0.5); // sigma{,n}
if (i == 7) stack->SetMaximum(0.5); // a
if (i == 0) p->SetLogy();
- yaxis->SetTitleSize(0.3/nY);
+ yaxis->SetTitleSize(0.3/nL);
yaxis->SetLabelSize(0.08);
- yaxis->SetTitleOffset(2.5/nY);
+ yaxis->SetTitleOffset(2.5/nL);
yaxis->SetNdivisions(5);
yaxis->SetTitleFont(42);
yaxis->SetLabelFont(42);
yaxis->SetDecimals();
TAxis* xaxis = stack->GetHistogram()->GetXaxis();
- xaxis->SetTitleSize(0.3/nY);
+ xaxis->SetTitleSize(0.3/nL);
xaxis->SetLabelSize(0.08);
- xaxis->SetTitleOffset(2./nY);
+ xaxis->SetTitleOffset(2./nL);
xaxis->SetNdivisions(10);
xaxis->SetTitleFont(42);
xaxis->SetLabelFont(42);
// Redraw
stack->Draw("nostack");
i++;
- if (i >= 5) b = 2;
+ // if (i >= 5) b = 2;
p->cd();
}
canvas->SaveAs("fit_results.png");
- canvas->Print(pdfName, "Title:Fit summary");
+ if (!onlySummary)
+ canvas->Print(pdfName, "Title:Fit summary");
}
//____________________________________________________________________
return;
}
if (!onlySummary) canvas->Print(Form("%s[", pdfName));
- DrawSummary(fname);
+ DrawSummary(fname, onlySummary);
if (onlySummary) return;
DrawRings(fname);
DrawEtaBins(fname);