]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGUD/multVScentPbPb/Compose.C
Fix typo
[u/mrichter/AliRoot.git] / PWGUD / multVScentPbPb / Compose.C
CommitLineData
69d0af30 1#if !defined(__CINT__) || defined(__MAKECINT__)
2#include "TList.h"
3#include "TGraphErrors.h"
4#include "TH1.h"
5#include "TObjArray.h"
6#include "TFile.h"
7#include "TPad.h"
8#endif
9
10TGraphErrors *gr[20];
11double mnX=1e6,mnY=1e6,mxX=-1e6,mxY=-1e6;
12int nbTot = 0;
13int nbc = 0;
14TH1* hbase = 0;
15
16void Compose(char* fL="resMult/res137366_eta_m0875_p0875_zv_m7_p7_V0_10bins_CutEta-0.9_0.9_Zv-7.0_7.0_bgInj_Shape_wdst_mcLB0_cutSig1.5_cutBg5.0.root",
17 char* fM="resMult/res137366_eta_m1875_m0625_zv_p6_p13_V0_10bins_CutEta-1.9_-0.6_Zv6.0_13.0_bgInj_Shape_wdst_mcLB0_cutSig1.5_cutBg5.0.root",
18 char* fR="resMult/res137366_eta_p0625_p1875_zv_m13_m6_V0_10bins_CutEta0.6_1.9_Zv-13.0_-6.0_bgInj_Shape_wdst_mcLB0_cutSig1.5_cutBg5.0.root")
19
20{
21 TObjArray *arr[3];
22 TFile* fl = TFile::Open(fL);
23 arr[0] = (TObjArray*)fl->Get("TObjArray");
24 TFile* fm = TFile::Open(fM);
25 arr[1] = (TObjArray*)fm->Get("TObjArray");
26 TFile* fr = TFile::Open(fR);
27 arr[2] = (TObjArray*)fr->Get("TObjArray");
28 //
29 for (int ia=0;ia<3;ia++) nbTot += ((TH1*)arr[ia]->At(0))->GetNbinsX();
30 nbc = arr[0]->GetEntriesFast();
31 //
32 for (int ic=0;ic<nbc;ic++) {
33 gr[ic] = new TGraphErrors(nbTot);
34 gr[ic]->SetMarkerStyle(20+ic);
35 gr[ic]->SetMarkerColor(kRed);
36 gr[ic]->SetLineColor(kRed);
37 int npg = 0;
38 for (int ia=0;ia<3;ia++) {
39 TH1* hh = (TH1*)arr[ia]->At(ic);
40 int nbh = hh->GetNbinsX();
41 for (int ib=1;ib<=nbh;ib++) {
42 double vl = hh->GetBinContent(ib);
43 double vle = hh->GetBinError(ib);
44 double x = hh->GetBinCenter(ib);
45 double xe = hh->GetBinWidth(ib)/2;
46 //
47 if (mnX>x-xe) mnX = x-xe;
48 if (mxX<x+xe) mxX = x+xe;
49 if (mnY>vl-vle) mnY = vl-vle;
50 if (mxY<vl+vle) mxY = vl+vle;
51 //
52 gr[ic]->SetPoint(npg, x,vl);
53 gr[ic]->SetPointError(npg, xe,vle);
54 npg++;
55 //
56 }
57 }
58 }
59 //
60 double del = mxX-mnX;
61 mnX -= 0.05*del;
62 mxX += 0.05*del;
63 del = mxY-mnY;
64 mnY -= 0.1*del;
65 mxY += 0.1*del;
66 hbase = new TH1F("hbase","",100,mnX,mxX);
67 hbase->SetMinimum(mnY);
68 hbase->SetMaximum(mxY);
69 //
70 hbase->Draw();
71 for (int i=0;i<nbc;i++) {
72 gr[i]->Draw("p");
73 }
74 gPad->SetGrid();
75}