FairRoot/PandaRoot
Functions
combinePlotsJ.C File Reference

Go to the source code of this file.

Functions

void confgraph (TGraph *g, TString tit, int col=1, int marker=20, double shift=0.)
 
TH1F * createHistoGraph (TGraph *g, TString tit="", double yymax=0, double xmin=0, double xmax=0)
 
void combinePlotsJ (TString fname="anaJ.root")
 

Function Documentation

void combinePlotsJ ( TString  fname = "anaJ.root")

Definition at line 66 of file combinePlotsJ.C.

References c1, confgraph(), createHistoGraph(), f, h, i, and TString.

67 {
68  gStyle->SetOptStat(0);
69  gStyle->SetOptFit(0);
70 
71  TFile *f=new TFile(fname);
72 
73  TString plotnam[4]={"Jee_A","Jee_B","Jmm_A","Jmm_B"};
74  TString lab[4] = { "signal efficiency;EMC missing (polar #theta) [%];signal efficiency [%]", "background efficiency;EMC missing (polar #theta) [%];background efficiency [%]", "signal to noise;EMC missing (polar #theta) [%];S/B", "significance;EMC missing (polar #theta) [%];significance [#sigma]"};
75 
76  TGraphErrors *geffs[4];
77  TGraphErrors *geffb[4];
78  TGraphErrors *gston[4];
79  TGraphErrors *gsign[4];
80 
81  TCanvas *c1=new TCanvas("c1","c1",10,10,1300,1000);
82  c1->Divide(2,2,0.0001,0.0001);
83 
84  int colors[4] = {kBlue,kCyan-2,2,kRed-7};
85 
86  TH1F *h[4]={0};
87  double hmaxy[4] = {14., 3e-4, 2.5, 6.};
88 
89  int imin = 0, imax=4;
90  for (int i=imin;i<imax;++i)
91  {
92  c1->cd(1);
93  geffs[i]=(TGraphErrors*)f->Get(Form("effs_%s",plotnam[i].Data()));
94  confgraph(geffs[i],"",colors[i],20+(i%2)*3,i);
95  if (h[0]==0) h[0]=createHistoGraph(geffs[i],lab[0], hmaxy[0]);
96  if (i==imin) h[0]->Draw();
97  geffs[i]->Draw("P same");
98 
99  c1->cd(2); gPad->SetLogy();
100  geffb[i]=(TGraphErrors*)f->Get(Form("effb_%s",plotnam[i].Data()));
101  confgraph(geffb[i],"",colors[i],20+(i%2)*3,i);
102  if (h[1]==0) h[1]=createHistoGraph(geffb[i],lab[1], hmaxy[1]);
103  h[1]->SetMinimum(0.5e-8);
104  h[1]->SetMaximum(0.0002);
105  if (i==imin) h[1]->Draw();
106  geffb[i]->Draw("P same");
107 
108  c1->cd(3);
109  gston[i]=(TGraphErrors*)f->Get(Form("sn_%s",plotnam[i].Data()));
110  confgraph(gston[i],"",colors[i],20+(i%2)*3,i);
111  if (h[2]==0) h[2]=createHistoGraph(gston[i],lab[2], hmaxy[2]);
112  if (i==imin) h[2]->Draw();
113  gston[i]->Draw("P same");
114 
115  c1->cd(4);
116  gsign[i]=(TGraphErrors*)f->Get(Form("sign_%s",plotnam[i].Data()));
117  confgraph(gsign[i],"",colors[i],20+(i%2)*3,i);
118  if (h[3]==0) h[3]=createHistoGraph(gsign[i],lab[3], hmaxy[3]);
119  if (i==imin) h[3]->Draw();
120  gsign[i]->Draw("P same");
121  }
122 
123  c1->cd(1);
124  TLegend *leg1=new TLegend(0.16,0.18,0.6,0.38);
125  leg1->AddEntry(geffs[0],"J/#psi(ee) - Setup A","lep");
126  leg1->AddEntry(geffs[1],"J/#psi(ee) - Setup B","lep");
127  leg1->AddEntry(geffs[2],"J/#psi(#mu#mu) - Setup A","lep");
128  leg1->AddEntry(geffs[3],"J/#psi(#mu#mu) - Setup B","lep");
129  leg1->Draw();
130 
131  c1->cd(2);
132  TLegend *leg2=new TLegend(0.16,0.48,0.6,0.68);
133  leg2->AddEntry(geffb[0],"J/#psi(ee) - Setup A","lep");
134  leg2->AddEntry(geffb[1],"J/#psi(ee) - Setup B","lep");
135  leg2->AddEntry(geffb[2],"J/#psi(#mu#mu) - Setup A","lep");
136  leg2->AddEntry(geffb[3],"J/#psi(#mu#mu) - Setup B","lep");
137  leg2->Draw();
138 
139  c1->cd(3);
140  TLegend *leg3=new TLegend(0.5,0.72,0.94,0.92);
141  leg3->AddEntry(gston[0],"J/#psi(ee) - Setup A","lep");
142  leg3->AddEntry(gston[1],"J/#psi(ee) - Setup B","lep");
143  leg3->AddEntry(gston[2],"J/#psi(#mu#mu) - Setup A","lep");
144  leg3->AddEntry(gston[3],"J/#psi(#mu#mu) - Setup B","lep");
145  leg3->Draw();
146 
147  c1->cd(4);
148  TLegend *leg4=new TLegend(0.16,0.18,0.6,0.38);
149  leg4->AddEntry(gsign[0],"J/#psi(ee) - Setup A","lep");
150  leg4->AddEntry(gsign[1],"J/#psi(ee) - Setup B","lep");
151  leg4->AddEntry(gsign[2],"J/#psi(#mu#mu) - Setup A","lep");
152  leg4->AddEntry(gsign[3],"J/#psi(#mu#mu) - Setup B","lep");
153  leg4->Draw();
154 
155 
156  c1->SaveAs("fig/comb_J.gif");
157 }
Int_t i
Definition: run_full.C:25
TH1F * createHistoGraph(TGraph *g, TString tit="", double xmin=0, double xmax=0)
Definition: analyse_etac1.C:60
void confgraph(TGraph *g, TString tit, int col=1, int marker=20)
Definition: analyse_etac1.C:47
TFile * f
Definition: bump_analys.C:12
c1
Definition: plot_dirc.C:35
void confgraph ( TGraph *  g,
TString  tit,
int  col = 1,
int  marker = 20,
double  shift = 0. 
)

Definition at line 4 of file combinePlotsJ.C.

References col, f1, i, x, and y.

5 {
6  if (tit!="") g->GetHistogram()->SetTitle(tit);
7  g->GetHistogram()->SetMinimum(0);
8  g->SetLineColor(col);
9  g->SetMarkerColor(col);
10  g->SetMarkerStyle(marker);
11  g->SetMarkerSize(1.5);
12  g->SetLineWidth(2);
13 
14  TF1 *f1 = g->GetFunction("f1");
15 
16  if (f1)
17  {
18  f1->SetLineColor(col);
19  f1->SetLineStyle(2);
20  }
21 
22  for (int i=0;i<g->GetN();++i)
23  {
24  double x,y;
25  g->GetPoint(i,x,y);
26  g->SetPoint(i,x+shift,y);
27 
28  // cout <<x<<" "<<y<<endl;
29  }
30 }
Int_t i
Definition: run_full.C:25
TF1 * f1
Definition: reco_analys2.C:50
int col
Definition: anaLmdDigi.C:67
TFile * g
Double_t x
Double_t y
TH1F* createHistoGraph ( TGraph *  g,
TString  tit = "",
double  yymax = 0,
double  xmin = 0,
double  xmax = 0 
)

Definition at line 34 of file combinePlotsJ.C.

References cnt, h, xmax, and xmin.

35 {
36  static int cnt=0;
37  if (tit=="") tit=g->GetTitle();
38 
39  double ymax = TMath::MaxElement(g->GetN(), g->GetY());
40  double dymax = g->GetErrorY(TMath::LocMax(g->GetN(), g->GetEY()));
41 
42  if (xmin>=xmax)
43  {
44  xmin = TMath::MinElement(g->GetN(), g->GetX());
45  xmax = TMath::MaxElement(g->GetN(), g->GetX());
46  }
47  TH1F *h=new TH1F(Form("h%03d",cnt++),tit,g->GetN(),xmin-0.5*(xmax-xmin)/g->GetN(), xmax+0.5*(xmax-xmin)/g->GetN());
48 
49  h->GetXaxis()->SetLabelSize(0.05);
50  h->GetXaxis()->SetTitleSize(0.05);
51  h->GetYaxis()->SetLabelSize(0.05);
52  h->GetYaxis()->SetTitleSize(0.05);
53  h->GetYaxis()->SetTitleOffset(1.4);
54 
55  if (yymax==0) h->SetMaximum((ymax+dymax)*1.05);
56  else h->SetMaximum(yymax);
57  h->SetMinimum(0);
58 
59  h->SetStats(0);
60 
61  return h;
62 }
Double_t xmax
TFile * g
Int_t cnt
Definition: hist-t7.C:106
Double_t xmin