ROOT logo
void SetupStyle();

void MakeEfficiencyReport(const char* outputFile="JpsiEffReport.pdf",
                          const char* histos="jpsi_HistosSE.root",
                          const char* cf="jpsi_CF.root")
{
  //
  // Make a pdf file with the efficiency report
  //

  SetupStyle();
  
  AliDielectronCFdraw d(cf);
  d.SetRangeUser("PairType",1,1);
  d.SetRangeUser("Y",-.89,.9,"0");
  
  
  TFile f("jpsi_HistosSE.root");
  
  AliDielectronHistos h;
  TIter nextHists((TList*)f.Get("Dielectron_Histos"));
  
  TPaveText pt(.02,.6,.98,.8);
  TText *t1=pt.AddText("");
  TText *t2=pt.AddText("");
  
  TCanvas *c1=new TCanvas;
  
  TPDF p(outputFile);

  //
  // Efficiency plots
  //
  t1->SetTitle("Efficiency plots");
  t2->SetTitle("Pair");
  pt.Draw();
  c1->Update();
  
//   d.DrawEfficiency("Pt","1;2;4;10;16;8",0);
  d.DrawEfficiency("Pt","4;16;22",0);
  c1->Update();
  

  //
  // Efficiency as a function of the impact parameter
  //
//   c1->Clear();
  Int_t refStep=16;
  const Int_t impSteps=5;
  Double_t impMax[impSteps]={.05,.04,.03,.02,.01};
  TString title=d.GetCFContainer()->GetStepTitle(refStep);
//   d.DrawEfficiency("Pt:Y","1;2;4;10;16;8",0);
  d.DrawEfficiency("Pt",Form("%d",refStep),0,"sameleg2");
//   c1->Update();
  
  for (Int_t i=0; i<impSteps;++i){
    d.SetRangeUser("Leg1_ImpactParXY",-1*impMax[i],impMax[i]);
    d.SetRangeUser("Leg2_ImpactParXY",-1*impMax[i],impMax[i]);
    d.GetCFContainer()->SetStepTitle(refStep, (title+Form(" |leg dXY|<%.2f",impMax[i])).Data());
    d.DrawEfficiency("Pt",Form("%d",refStep),0,"same+leg2");
  }

  d.UnsetRangeUser("Leg1_ImpactParXY");
  d.UnsetRangeUser("Leg2_ImpactParXY");
  d.GetCFContainer()->SetStepTitle(refStep, title.Data());
  ((TH1*)gPad->GetListOfPrimitives()->FindObject("eff_16/00"))->SetMaximum(1.);

  c1->Update();


  c1->Clear();
  d.SetRangeUser("Y",-.89,.9);
//   d.DrawEfficiency("Pt:Y","1;2;4;10;16;8",0,"colz2");
  d.DrawEfficiency("Pt:Y","4;16;22",0,"colz2");
  c1->Update();
  c1->Clear();

  //
  // Inv mass plots
  //
//   t1->SetTitle("Invariant Mass plots");
//   t2->SetTitle("");
//   pt.Draw();
//   c1->Update();
  
  
  //
  // Make QA info
  //
  
  t1->SetTitle("QA summary plots for");
  THashList *list=0x0;
  while ( (list=(THashList*)nextHists()) ){
    h.SetHistogramList(*list);
    t2->SetTitle(list->GetName());
    pt.Draw();
    c1->Update();
    h.Draw();
    c1->Clear();
  }
  p.Close();
  delete c1;
}

void SetupStyle()
{
  const Int_t NCont=255;
  
  TStyle *st = new TStyle("mystyle","mystyle");
  gROOT->GetStyle("Plain")->Copy((*st));
  st->SetTitleX(0.1);
  st->SetTitleW(0.8);
  st->SetTitleH(0.08);
  st->SetStatX(.9);
  st->SetStatY(.9);
  st->SetNumberContours(NCont);
  st->SetPalette(1,0);
  st->SetOptStat("erm");
  st->SetOptFit(0);
  st->SetGridColor(kGray+1);
  st->SetPadGridX(kTRUE);
  st->SetPadGridY(kTRUE);
  st->SetPadTickX(kTRUE);
  st->SetPadTickY(kTRUE);
  st->cd();
  
  const Int_t NRGBs = 5;
  Double_t stops[NRGBs] = { 0.00, 0.34, 0.61, 0.84, 1.00 };
  Double_t red[NRGBs]   = { 0.00, 0.00, 0.87, 1.00, 0.51 };
  Double_t green[NRGBs] = { 0.00, 0.81, 1.00, 0.20, 0.00 };
  Double_t blue[NRGBs]  = { 0.51, 1.00, 0.12, 0.00, 0.00 };
  
  TColor::CreateGradientColorTable(NRGBs, stops, red, green, blue, NCont);
  
 MakeEfficiencyReport.C:1
 MakeEfficiencyReport.C:2
 MakeEfficiencyReport.C:3
 MakeEfficiencyReport.C:4
 MakeEfficiencyReport.C:5
 MakeEfficiencyReport.C:6
 MakeEfficiencyReport.C:7
 MakeEfficiencyReport.C:8
 MakeEfficiencyReport.C:9
 MakeEfficiencyReport.C:10
 MakeEfficiencyReport.C:11
 MakeEfficiencyReport.C:12
 MakeEfficiencyReport.C:13
 MakeEfficiencyReport.C:14
 MakeEfficiencyReport.C:15
 MakeEfficiencyReport.C:16
 MakeEfficiencyReport.C:17
 MakeEfficiencyReport.C:18
 MakeEfficiencyReport.C:19
 MakeEfficiencyReport.C:20
 MakeEfficiencyReport.C:21
 MakeEfficiencyReport.C:22
 MakeEfficiencyReport.C:23
 MakeEfficiencyReport.C:24
 MakeEfficiencyReport.C:25
 MakeEfficiencyReport.C:26
 MakeEfficiencyReport.C:27
 MakeEfficiencyReport.C:28
 MakeEfficiencyReport.C:29
 MakeEfficiencyReport.C:30
 MakeEfficiencyReport.C:31
 MakeEfficiencyReport.C:32
 MakeEfficiencyReport.C:33
 MakeEfficiencyReport.C:34
 MakeEfficiencyReport.C:35
 MakeEfficiencyReport.C:36
 MakeEfficiencyReport.C:37
 MakeEfficiencyReport.C:38
 MakeEfficiencyReport.C:39
 MakeEfficiencyReport.C:40
 MakeEfficiencyReport.C:41
 MakeEfficiencyReport.C:42
 MakeEfficiencyReport.C:43
 MakeEfficiencyReport.C:44
 MakeEfficiencyReport.C:45
 MakeEfficiencyReport.C:46
 MakeEfficiencyReport.C:47
 MakeEfficiencyReport.C:48
 MakeEfficiencyReport.C:49
 MakeEfficiencyReport.C:50
 MakeEfficiencyReport.C:51
 MakeEfficiencyReport.C:52
 MakeEfficiencyReport.C:53
 MakeEfficiencyReport.C:54
 MakeEfficiencyReport.C:55
 MakeEfficiencyReport.C:56
 MakeEfficiencyReport.C:57
 MakeEfficiencyReport.C:58
 MakeEfficiencyReport.C:59
 MakeEfficiencyReport.C:60
 MakeEfficiencyReport.C:61
 MakeEfficiencyReport.C:62
 MakeEfficiencyReport.C:63
 MakeEfficiencyReport.C:64
 MakeEfficiencyReport.C:65
 MakeEfficiencyReport.C:66
 MakeEfficiencyReport.C:67
 MakeEfficiencyReport.C:68
 MakeEfficiencyReport.C:69
 MakeEfficiencyReport.C:70
 MakeEfficiencyReport.C:71
 MakeEfficiencyReport.C:72
 MakeEfficiencyReport.C:73
 MakeEfficiencyReport.C:74
 MakeEfficiencyReport.C:75
 MakeEfficiencyReport.C:76
 MakeEfficiencyReport.C:77
 MakeEfficiencyReport.C:78
 MakeEfficiencyReport.C:79
 MakeEfficiencyReport.C:80
 MakeEfficiencyReport.C:81
 MakeEfficiencyReport.C:82
 MakeEfficiencyReport.C:83
 MakeEfficiencyReport.C:84
 MakeEfficiencyReport.C:85
 MakeEfficiencyReport.C:86
 MakeEfficiencyReport.C:87
 MakeEfficiencyReport.C:88
 MakeEfficiencyReport.C:89
 MakeEfficiencyReport.C:90
 MakeEfficiencyReport.C:91
 MakeEfficiencyReport.C:92
 MakeEfficiencyReport.C:93
 MakeEfficiencyReport.C:94
 MakeEfficiencyReport.C:95
 MakeEfficiencyReport.C:96
 MakeEfficiencyReport.C:97
 MakeEfficiencyReport.C:98
 MakeEfficiencyReport.C:99
 MakeEfficiencyReport.C:100
 MakeEfficiencyReport.C:101
 MakeEfficiencyReport.C:102
 MakeEfficiencyReport.C:103
 MakeEfficiencyReport.C:104
 MakeEfficiencyReport.C:105
 MakeEfficiencyReport.C:106
 MakeEfficiencyReport.C:107
 MakeEfficiencyReport.C:108
 MakeEfficiencyReport.C:109
 MakeEfficiencyReport.C:110
 MakeEfficiencyReport.C:111
 MakeEfficiencyReport.C:112
 MakeEfficiencyReport.C:113
 MakeEfficiencyReport.C:114
 MakeEfficiencyReport.C:115
 MakeEfficiencyReport.C:116
 MakeEfficiencyReport.C:117
 MakeEfficiencyReport.C:118
 MakeEfficiencyReport.C:119
 MakeEfficiencyReport.C:120
 MakeEfficiencyReport.C:121
 MakeEfficiencyReport.C:122
 MakeEfficiencyReport.C:123
 MakeEfficiencyReport.C:124
 MakeEfficiencyReport.C:125
 MakeEfficiencyReport.C:126
 MakeEfficiencyReport.C:127
 MakeEfficiencyReport.C:128
 MakeEfficiencyReport.C:129
 MakeEfficiencyReport.C:130
 MakeEfficiencyReport.C:131
 MakeEfficiencyReport.C:132
 MakeEfficiencyReport.C:133
 MakeEfficiencyReport.C:134
 MakeEfficiencyReport.C:135