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);
28 Error(
"CompELossFits",
"Couldn't get elossfits from %s", fname1);
35 Error(
"CompELossFits",
"Couldn't get elossfits from %s", fname2);
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");
TList * GetStacks(Bool_t err, Bool_t rel, Bool_t good, UShort_t maxN=5) const
void CompELossFits(const char *fname1, const char *fname2)