7 * @ingroup pwglf_forward_scripts_corr
10 CompELossFits(const char* fname1, const char* fname2)
13 TFile* file1 = TFile::Open(fname1, "READ");
15 Error("CompELossFits", "Couldn't open %s", fname1);
19 TFile* file2 = TFile::Open(fname2, "READ");
21 Error("CompELossFits", "Couldn't open %s", fname2);
25 AliFMDCorrELossFit* fit1 =
26 static_cast<AliFMDCorrELossFit*>(file1->Get("elossfits"));
28 Error("CompELossFits", "Couldn't get elossfits from %s", fname1);
32 AliFMDCorrELossFit* fit2 =
33 static_cast<AliFMDCorrELossFit*>(file2->Get("elossfits"));
35 Error("CompELossFits", "Couldn't get elossfits from %s", fname2);
40 TList* stacks1 = fit1->GetStacks(true, false, 4);
41 TList* stacks2 = fit2->GetStacks(true, false, 4);
43 Int_t nStacks = stacks1->GetEntries();
45 TCanvas* c = new TCanvas("c", "c", 900, 1200);
46 c->SetRightMargin(0.02);
47 c->SetTopMargin(0.02);
53 TPad* top = new TPad("top", "Top", 0, .95, 1, 1, 0, 0, 0);
56 TLatex* l = new TLatex(.5,.5, Form("%s / %s", fname1, fname2));
63 TPad* body = new TPad("body", "body", 0, 0, 1, .95, 0, 0, 0);
66 body->Divide(2, (nStacks+1)/2, 0, 0);
68 Int_t nPad2 = nStacks;
69 for (Int_t i = 0; i < nStacks; i++) {
70 Int_t iPad = 1 + i/nPad2 + 2 * (i % nPad2);
71 TVirtualPad* p = body->cd(i+1);
72 p->SetLeftMargin(0.15);
73 p->SetRightMargin(0.01);
74 THStack* stack1 = static_cast<THStack*>(stacks1->At(i));
75 THStack* stack2 = static_cast<THStack*>(stacks2->At(i));
77 THStack* ratio = static_cast<THStack*>(stack1->Clone());
78 Int_t nHists = stack1->GetHists()->GetEntries();
79 for (Int_t j = 0; j < nHists; j++) {
80 TH1* h1 = static_cast<TH1*>(stack1->GetHists()->At(j));
81 TH1* h2 = static_cast<TH1*>(stack2->GetHists()->At(j));
82 TH1* hr = static_cast<TH1*>(ratio->GetHists()->At(j));
85 ratio->Draw("nostack");