1 void processDrawUDQA(const char *infile="AnalysisResults.root",
2 TString suffix = "eps",
3 const char *outfile="DrawUDQA_outfile.root") {
5 TFile *f = TFile::Open(infile, "read");
8 Printf("FATAL: File doesn't exist");
12 TList *flistQA = (TList*)f->Get("UpcTree/ListHist");
15 Printf("FATAL: TList - UpcTree/ListHist - doesn't exist");
21 TH1D *fHistNeventsJPsi = dynamic_cast<TH1D*> (flistQA->At(0));
22 fHistNeventsJPsi->GetYaxis()->SetTitle("Counts (Events)");
24 TH2D *fHistTPCsignalJPsi = dynamic_cast<TH2D*> (flistQA->At(1));
25 fHistTPCsignalJPsi->GetXaxis()->SetTitle("d#it{E}/d#it{x}^{TPC} (#it{l}^{+}) (a.u.)");
26 fHistTPCsignalJPsi->GetYaxis()->SetTitle("d#it{E}/d#it{x}^{TPC} (#it{l}^{-}) (a.u.)");
28 TH2D *fHistDiLeptonPtJPsi = dynamic_cast<TH2D*> (flistQA->At(2));
29 fHistDiLeptonPtJPsi->GetXaxis()->SetTitle("#it{p}_{T} (#it{l}^{+}) (GeV/#it{c})");
30 fHistDiLeptonPtJPsi->GetYaxis()->SetTitle("#it{p}_{T} (#it{l}^{-}) (GeV/#it{c})");
32 TH1D *fHistDiElectronMass = dynamic_cast<TH1D*> (flistQA->At(3));
33 fHistDiElectronMass->GetYaxis()->SetTitle("dN/dM");
35 TH1D *fHistDiMuonMass = dynamic_cast<TH1D*> (flistQA->At(4));
36 fHistDiMuonMass->GetYaxis()->SetTitle("dN/dM");
38 //___________________________________
40 TFile *fout = TFile::Open(outfile,"UPDATE");
43 TDirectoryFile *cdd = NULL;
44 cdd = (TDirectoryFile*)fout->Get("UD");
46 Printf("Warning: UD <dir> doesn't exist, creating a new one");
47 cdd = (TDirectoryFile*)fout->mkdir("UD");
52 fHistNeventsJPsi->Write();
53 fHistTPCsignalJPsi->Write();
54 fHistDiLeptonPtJPsi->Write();
55 fHistDiElectronMass->Write();
56 fHistDiMuonMass->Write();
58 //___________________________________
67 int iDate = now.GetDate();
68 int iYear=iDate/10000;
69 int iMonth=(iDate%10000)/100;
71 char* cMonth[12]={"Jan","Feb","Mar","Apr","May","Jun",
72 "Jul","Aug","Sep","Oct","Nov","Dec"};
73 char cStamp1[25],cStamp2[25];
74 sprintf(cStamp1,"%i %s %i",iDay, cMonth[iMonth-1], iYear);
75 sprintf(cStamp2,"%i/%.2d/%i",iDay, iMonth, iYear);
77 myHistSetUp(fHistNeventsJPsi);
78 fHistNeventsJPsi->SetLineWidth(3.0);
79 myHistSetUp(fHistTPCsignalJPsi);
80 myHistSetUp(fHistDiLeptonPtJPsi);
81 myHistSetUp(fHistDiElectronMass);
82 fHistDiElectronMass->SetLineWidth(2.0);
83 myHistSetUp(fHistDiMuonMass);
84 fHistDiMuonMass->SetLineWidth(2.0);
86 TCanvas *c1 = new TCanvas("fig_ud_NeventsJPsi"," ",800,400);
89 TPad *myPad1 = new TPad("myPad1", "The pad",0,0,1,1);
90 myPadSetUp(myPad1,0.15,0.1,0.04,0.15);
95 fHistNeventsJPsi->Draw();
96 c1->SaveAs(Form("fig_ud_NeventsJPsi.%s",suffix.Data()));
99 TCanvas *c21 = new TCanvas("fig_ud_TPCsignalJPsi"," ",500,500);
102 TPad *myPad21 = new TPad("myPad21", "The pad",0,0,1,1);
103 myPadSetUp(myPad21,0.15,0.15,0.15,0.15);
106 fHistTPCsignalJPsi->Draw("COLZ");
107 c21->SaveAs(Form("fig_ud_TPCsignalJPsi.%s",suffix.Data()));
110 TCanvas *c22 = new TCanvas("fig_ud_DiLeptonPtJPsi"," ",500,500);
113 TPad *myPad22 = new TPad("myPad22", "The pad",0,0,1,1);
114 myPadSetUp(myPad22,0.15,0.15,0.15,0.15);
117 fHistDiLeptonPtJPsi->Draw("COLZ");
118 c22->SaveAs(Form("fig_ud_DiLeptonPtJPsi.%s",suffix.Data()));
121 TCanvas *c31 = new TCanvas("fig_ud_DiElectronMassJPsi"," ",800,500);
124 TPad *myPad31 = new TPad("myPad31", "The pad",0,0,1,1);
125 myPadSetUp(myPad31,0.15,0.1,0.04,0.15);
128 fHistDiElectronMass->Draw();
129 c31->SaveAs(Form("fig_ud_DiElectronMassJPsi.%s",suffix.Data()));
132 TCanvas *c32 = new TCanvas("fig_ud_DiMuonMassJPsi"," ",800,500);
135 TPad *myPad32 = new TPad("myPad32", "The pad",0,0,1,1);
136 myPadSetUp(myPad32,0.15,0.1,0.04,0.15);
139 fHistDiMuonMass->Draw();
140 c32->SaveAs(Form("fig_ud_DiMuonMassJPsi.%s",suffix.Data()));
144 TFile* outfile = new TFile("fig_ud.root","recreate");
154 void myPadSetUp(TPad *currentPad, float currentLeft=0.11, float currentTop=0.04, float currentRight=0.04, float currentBottom=0.15){
155 currentPad->SetLeftMargin(currentLeft);
156 currentPad->SetTopMargin(currentTop);
157 currentPad->SetRightMargin(currentRight);
158 currentPad->SetBottomMargin(currentBottom);
163 void myHistSetUp(TH1 *currentGraph=0){
165 currentGraph->SetLabelSize(0.05,"xyz");
166 currentGraph->SetLabelFont(42,"xyz");
167 currentGraph->SetLabelOffset(0.01,"xyz");
168 currentGraph->SetTitleFont(42,"xyz");
169 currentGraph->GetXaxis()->SetTitleOffset(1.1);
170 currentGraph->GetYaxis()->SetTitleOffset(1.1);
171 currentGraph->SetTitleSize(0.06,"xyz");
172 currentGraph->SetStats(kFALSE);
173 currentGraph->SetTitle("");
176 void myHistSetUp(TH2 *currentGraph=0){
178 currentGraph->SetLabelSize(0.05,"xyz");
179 currentGraph->SetLabelFont(42,"xyz");
180 currentGraph->SetLabelOffset(0.01,"xyz");
181 currentGraph->SetTitleFont(42,"xyz");
182 currentGraph->GetXaxis()->SetTitleOffset(1.3);
183 currentGraph->GetYaxis()->SetTitleOffset(1.3);
184 currentGraph->SetTitleSize(0.05,"xyz");
185 currentGraph->SetStats(kFALSE);
186 currentGraph->SetTitle("");
190 void myOptions(Int_t lStat=0){
194 gStyle->SetFrameBorderMode(0);
195 gStyle->SetFrameFillColor(0);
196 gStyle->SetCanvasBorderMode(0);
197 gStyle->SetPadBorderMode(0);
198 gStyle->SetPadColor(10);
199 gStyle->SetCanvasColor(10);
200 gStyle->SetTitleFillColor(10);
201 gStyle->SetTitleBorderSize(1);
202 gStyle->SetStatColor(10);
203 gStyle->SetStatBorderSize(1);
204 gStyle->SetLegendBorderSize(1);
206 gStyle->SetDrawBorder(0);
207 gStyle->SetTextFont(font);
208 gStyle->SetStatFont(font);
209 gStyle->SetStatFontSize(0.05);
210 gStyle->SetStatX(0.97);
211 gStyle->SetStatY(0.98);
212 gStyle->SetStatH(0.03);
213 gStyle->SetStatW(0.3);
214 gStyle->SetTickLength(0.02,"y");
215 gStyle->SetEndErrorSize(3);
216 gStyle->SetLabelSize(0.05,"xyz");
217 gStyle->SetLabelFont(font,"xyz");
218 gStyle->SetLabelOffset(0.01,"xyz");
219 gStyle->SetTitleFont(font,"xyz");
220 gStyle->SetTitleOffset(1.0,"xyz");
221 gStyle->SetTitleSize(0.06,"xyz");
222 gStyle->SetMarkerSize(1);
223 gStyle->SetPalette(1,0);
225 gStyle->SetOptTitle(1);
226 gStyle->SetOptStat(1111);
227 gStyle->SetOptFit(1111);
230 gStyle->SetOptTitle(0);
231 gStyle->SetOptStat(0);
232 gStyle->SetOptFit(0);