ROOT logo
/** 
 * 
 * 
 * @param fname1 
 * @param fname2 
 *
 * @ingroup pwglf_forward_scripts_corr
 */
void
CompELossFits(const char* fname1, const char* fname2)
{

  TFile* file1 = TFile::Open(fname1, "READ");
  if (!file1) { 
    Error("CompELossFits", "Couldn't open %s", fname1);
    return;
  }

  TFile* file2 = TFile::Open(fname2, "READ");
  if (!file2) { 
    Error("CompELossFits", "Couldn't open %s", fname2);
    return;
  }

  AliFMDCorrELossFit* fit1 = 
    static_cast<AliFMDCorrELossFit*>(file1->Get("elossfits"));
  if (!fit1) { 
    Error("CompELossFits", "Couldn't get elossfits from %s", fname1);
    return;
  }

  AliFMDCorrELossFit* fit2 = 
    static_cast<AliFMDCorrELossFit*>(file2->Get("elossfits"));
  if (!fit2) { 
    Error("CompELossFits", "Couldn't get elossfits from %s", fname2);
    return;
  }


  TList* stacks1 = fit1->GetStacks(true, false, 4);
  TList* stacks2 = fit2->GetStacks(true, false, 4);

  Int_t nStacks = stacks1->GetEntries();

  TCanvas* c = new TCanvas("c", "c", 900, 1200);
  c->SetRightMargin(0.02);
  c->SetTopMargin(0.02);
  c->SetFillColor(0);
  c->SetBorderSize(0);
  c->SetBorderMode(0);

  c->cd();
  TPad* top = new TPad("top", "Top", 0, .95, 1, 1, 0, 0, 0);
  top->Draw();
  top->cd();
  TLatex* l = new TLatex(.5,.5, Form("%s / %s", fname1, fname2));
  l->SetTextSize(0.3);
  l->SetNDC();
  l->SetTextAlign(22);
  l->Draw();

  c->cd();
  TPad* body = new TPad("body", "body", 0, 0, 1, .95, 0, 0, 0);
  body->Draw();
  body->cd();
  body->Divide(2, (nStacks+1)/2, 0, 0);

  Int_t nPad2 = nStacks;
  for (Int_t i = 0; i < nStacks; i++) {
    Int_t iPad = 1 + i/nPad2 + 2 * (i % nPad2);
    TVirtualPad* p = body->cd(i+1);
    p->SetLeftMargin(0.15);
    p->SetRightMargin(0.01);
    THStack* stack1 = static_cast<THStack*>(stacks1->At(i));
    THStack* stack2 = static_cast<THStack*>(stacks2->At(i));

    THStack* ratio  = static_cast<THStack*>(stack1->Clone());
    Int_t    nHists = stack1->GetHists()->GetEntries();
    for (Int_t j = 0; j < nHists; j++) { 
      TH1* h1 = static_cast<TH1*>(stack1->GetHists()->At(j));
      TH1* h2 = static_cast<TH1*>(stack2->GetHists()->At(j));
      TH1* hr = static_cast<TH1*>(ratio->GetHists()->At(j));
      hr->Divide(h1, h2);
    }
    ratio->Draw("nostack");
  }
}

  


  

  
//
// EOF
//
 CompELossFits.C:1
 CompELossFits.C:2
 CompELossFits.C:3
 CompELossFits.C:4
 CompELossFits.C:5
 CompELossFits.C:6
 CompELossFits.C:7
 CompELossFits.C:8
 CompELossFits.C:9
 CompELossFits.C:10
 CompELossFits.C:11
 CompELossFits.C:12
 CompELossFits.C:13
 CompELossFits.C:14
 CompELossFits.C:15
 CompELossFits.C:16
 CompELossFits.C:17
 CompELossFits.C:18
 CompELossFits.C:19
 CompELossFits.C:20
 CompELossFits.C:21
 CompELossFits.C:22
 CompELossFits.C:23
 CompELossFits.C:24
 CompELossFits.C:25
 CompELossFits.C:26
 CompELossFits.C:27
 CompELossFits.C:28
 CompELossFits.C:29
 CompELossFits.C:30
 CompELossFits.C:31
 CompELossFits.C:32
 CompELossFits.C:33
 CompELossFits.C:34
 CompELossFits.C:35
 CompELossFits.C:36
 CompELossFits.C:37
 CompELossFits.C:38
 CompELossFits.C:39
 CompELossFits.C:40
 CompELossFits.C:41
 CompELossFits.C:42
 CompELossFits.C:43
 CompELossFits.C:44
 CompELossFits.C:45
 CompELossFits.C:46
 CompELossFits.C:47
 CompELossFits.C:48
 CompELossFits.C:49
 CompELossFits.C:50
 CompELossFits.C:51
 CompELossFits.C:52
 CompELossFits.C:53
 CompELossFits.C:54
 CompELossFits.C:55
 CompELossFits.C:56
 CompELossFits.C:57
 CompELossFits.C:58
 CompELossFits.C:59
 CompELossFits.C:60
 CompELossFits.C:61
 CompELossFits.C:62
 CompELossFits.C:63
 CompELossFits.C:64
 CompELossFits.C:65
 CompELossFits.C:66
 CompELossFits.C:67
 CompELossFits.C:68
 CompELossFits.C:69
 CompELossFits.C:70
 CompELossFits.C:71
 CompELossFits.C:72
 CompELossFits.C:73
 CompELossFits.C:74
 CompELossFits.C:75
 CompELossFits.C:76
 CompELossFits.C:77
 CompELossFits.C:78
 CompELossFits.C:79
 CompELossFits.C:80
 CompELossFits.C:81
 CompELossFits.C:82
 CompELossFits.C:83
 CompELossFits.C:84
 CompELossFits.C:85
 CompELossFits.C:86
 CompELossFits.C:87
 CompELossFits.C:88
 CompELossFits.C:89
 CompELossFits.C:90
 CompELossFits.C:91
 CompELossFits.C:92
 CompELossFits.C:93
 CompELossFits.C:94
 CompELossFits.C:95
 CompELossFits.C:96
 CompELossFits.C:97
 CompELossFits.C:98