AliPhysics  914d8ff (914d8ff)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CompELossFits.C
Go to the documentation of this file.
1 
9 void
10 CompELossFits(const char* fname1, const char* fname2)
11 {
12 
13  TFile* file1 = TFile::Open(fname1, "READ");
14  if (!file1) {
15  Error("CompELossFits", "Couldn't open %s", fname1);
16  return;
17  }
18 
19  TFile* file2 = TFile::Open(fname2, "READ");
20  if (!file2) {
21  Error("CompELossFits", "Couldn't open %s", fname2);
22  return;
23  }
24 
25  AliFMDCorrELossFit* fit1 =
26  static_cast<AliFMDCorrELossFit*>(file1->Get("elossfits"));
27  if (!fit1) {
28  Error("CompELossFits", "Couldn't get elossfits from %s", fname1);
29  return;
30  }
31 
32  AliFMDCorrELossFit* fit2 =
33  static_cast<AliFMDCorrELossFit*>(file2->Get("elossfits"));
34  if (!fit2) {
35  Error("CompELossFits", "Couldn't get elossfits from %s", fname2);
36  return;
37  }
38 
39 
40  TList* stacks1 = fit1->GetStacks(true, false, 4);
41  TList* stacks2 = fit2->GetStacks(true, false, 4);
42 
43  Int_t nStacks = stacks1->GetEntries();
44 
45  TCanvas* c = new TCanvas("c", "c", 900, 1200);
46  c->SetRightMargin(0.02);
47  c->SetTopMargin(0.02);
48  c->SetFillColor(0);
49  c->SetBorderSize(0);
50  c->SetBorderMode(0);
51 
52  c->cd();
53  TPad* top = new TPad("top", "Top", 0, .95, 1, 1, 0, 0, 0);
54  top->Draw();
55  top->cd();
56  TLatex* l = new TLatex(.5,.5, Form("%s / %s", fname1, fname2));
57  l->SetTextSize(0.3);
58  l->SetNDC();
59  l->SetTextAlign(22);
60  l->Draw();
61 
62  c->cd();
63  TPad* body = new TPad("body", "body", 0, 0, 1, .95, 0, 0, 0);
64  body->Draw();
65  body->cd();
66  body->Divide(2, (nStacks+1)/2, 0, 0);
67 
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));
76 
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));
83  hr->Divide(h1, h2);
84  }
85  ratio->Draw("nostack");
86  }
87 }
88 
89 
90 
91 
92 
93 
94 
95 //
96 // EOF
97 //
TCanvas * c
Definition: TestFitELoss.C:172
int Int_t
Definition: External.C:63
TList * GetStacks(Bool_t err, Bool_t rel, Bool_t good, UShort_t maxN=5) const
void CompELossFits(const char *fname1, const char *fname2)
Definition: CompELossFits.C:10
Definition: External.C:196