StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
finalSpectra.C
1 #include "commonmacro/common.h"
2 #include "common/Name.cc"
3 #include "commonmacro/histutil.h"
4 #include "commonmacro/ua1.h"
5 
6 void finalSpectra(
7  const char* inCentral=
8  "links/P01hi.central.2000.hist/finish_cut88778999_iter3.hist.root",
9  const char* inMinbias=
10  "links/P01hi.minbias.2000.hist/finish_cut97778999_iter3.hist.root",
11  const char* inPeripheral=
12  "links/P01hi.minbias.2000.hist/finish_cut57778999_iter3.hist.root",
13  const char* psDir="psFinal"
14  )
15 {
16  gSystem->Clear();
17 
18  TFile* rCentral=new TFile(inCentral);
19  TFile* rMinbias=new TFile(inMinbias);
20  TFile* rPeripheral=new TFile(inPeripheral);
21 
22  int DOKLUDGE=1;
23 
24 
25  //
26  // get the graphs
27  //
28  char name[200],title[200],txt[500];
29  char* sign=0; // "Minus"
30  int bin=0;
31 
32  setName(name,"gSpecCorrected",bin,sign);
33 
34  TGraphAsymmErrors* gCentralX=(TGraphAsymmErrors*)rCentral->Get(name);
35  TGraphAsymmErrors* gMinbiasX=(TGraphAsymmErrors*)rMinbias->Get(name);
36  TGraphAsymmErrors* gPeripheralX=(TGraphAsymmErrors*)rPeripheral->Get(name);
37 
38  //
39  // kludges
40  //
41  if(DOKLUDGE){
42  cout << ">>>>WARNING DOING KLUDGE" << endl;
43  cout << ">>>>WARNING DOING KLUDGE" << endl;
44  cout << ">>>>WARNING DOING KLUDGE" << endl;
45 
46  kludgeBackground(gCentralX,0.08);
47  kludgeBackground(gMinbiasX,0.08);
48  kludgeBackground(gPeripheralX,0.05);
49 
50  kludgeSystematics(gCentralX);
51  kludgeSystematics(gMinbiasX);
52  kludgeSystematics(gPeripheralX);
53 
54  }
55 
56 
57  // low pt stuff
58  TGraphAsymmErrors* gCentralLowPt=makeHMinus(2);
59  TGraphAsymmErrors* gMinbiasLowPt=makeHMinus(0);
60  TGraphAsymmErrors* gPeripheralLowPt=makeHMinus(1);
61 
62  // ua1
63  float sigmaUA1_200=42;
64  float ua1Scale200 = 2.*3.14159/sigmaUA1_200;
65 
66  float sigmaUA1_130=40.5;
67  float ua1Scale130= 2.*3.14159/sigmaUA1_130;
68 
69  TGraphErrors* gUA1Data200=ua1Data200();
70  scale(gUA1Data200,ua1Scale200);
71 
72  TF1* fUA1Fit130 = ua1Fit130(ua1Scale130);
73 
74 
75  // remove some error bars
76 
77  gCentralLowPt=removeXErrors(gCentralLowPt);
78  gMinbiasLowPt=removeXErrors(gMinbiasLowPt);
79  gPeripheralLowPt=removeXErrors(gPeripheralLowPt);
80 
81 
82  // gStyles
83  gStyle->SetOptStat(0); gStyle->SetOptTitle(0);
84  gStyle->SetPadTickX(1);
85  gStyle->SetPadTickY(1);
86 
87  // follow manuel in the fonts
88  int font = 42;
89  gStyle->SetTextFont(font); gStyle->SetTitleFont(font);
90  gStyle->SetLabelFont(font,"x"); gStyle->SetLabelFont(font,"y");
91 
92  // TLatex
93  TLatex* ltx=new TLatex;
94 
95  TCanvas* c1=new TCanvas("c1","c1",400,500);
96 
97  // draw the spectra
98  double xMin=0,xMax=6;
99  double yMin=1e-7,yMax=10000;
100  double textSize=0.03;
101  double titleSize=0.04;
102  double markerSize=1;
103  double labelSize=0.03;
104  double yTitleOffset=1.2;
105  double xTitleOffset=0.8;
106  double tickSize=9990;
107 
108  TAxis* axis;
109 
110  c1->cd(); gPad->SetLogy();
111 
112  int centralMarker=29;
113  int minbiasMarker=8;
114  int peripheralMarker=22;
115  int hMinusMarker=21;
116  int ua1Marker=4;
117 
118 
119  // central
120  //
121  gCentral=removeXErrors(gCentralX);
122 
123  gCentral->SetMinimum(yMin); gCentral->SetMaximum(yMax);
124  gCentral->SetMarkerStyle(centralMarker);
125  gCentral->SetMarkerSize(markerSize+.2);
126  gCentral->Draw("ap");
127 
128 
129  strcpy(txt,"1/p_{T} d^{2}N^{(h^{-}+h^{+})/2}/dp_{T}d#eta #cbar_{|#eta|<0.5}(GeV/c)^{-2}");
130 
131  // yaxis
132  axis=gCentral->GetYaxis();
133  axis->SetTitle(txt);
134  axis->SetTitleSize(titleSize);
135  axis->SetTitleOffset(yTitleOffset);
136  axis->SetLabelSize(labelSize);
137 
138  // xaxis
139  axis=gCentral->GetXaxis();
140  axis->SetTitle("p_{T} (GeV/c)");
141  axis->SetTitleSize(titleSize);
142  axis->SetTitleOffset(xTitleOffset);
143  axis->SetLabelOffset(0.003);
144  axis->SetLabelSize(labelSize);
145  axis->SetLimits(xMin,xMax);
146 
147 
148  // low pt central
149  gCentralLowPt->SetMarkerStyle(centralMarker);
150  gCentralLowPt->SetMarkerSize(markerSize);
151  gCentralLowPt->Draw("p");
152 
153 
154  // draw bin widths
155  // drawAxisBins(gCentralX,tickSize,yMax);
156  // TLine* line=new TLine;
157  // line->DrawLineNDC((2/6)*(1./.8)+.1,.8,2/6*(1./.8)+.1 ,.9);
158 
159 
160  // minbias
161  //
162  // remove x errors
163  gMinbias=removeXErrors(gMinbiasX);
164 
165  gMinbias->SetMarkerStyle(minbiasMarker);
166  gMinbias->SetMarkerSize(markerSize);
167  gMinbias->Draw("p");
168 
169  gMinbiasLowPt->SetMarkerStyle(minbiasMarker);
170  gMinbiasLowPt->SetMarkerSize(markerSize);
171  gMinbiasLowPt->Draw("p");
172 
173  // peripheral
174  //
175  // remove x errors
176  gPeripheral=removeXErrors(gPeripheralX);
177 
178  gPeripheral->SetMarkerStyle(peripheralMarker);
179  gPeripheral->SetMarkerSize(markerSize);
180  gPeripheral->Draw("p");
181 
182  gPeripheralLowPt->SetMarkerStyle(peripheralMarker);
183  gPeripheralLowPt->SetMarkerSize(markerSize);
184  gPeripheralLowPt->Draw("p");
185 
186  // ua1
187  //
188 
189 
190  gUA1Data200->SetMarkerStyle(ua1Marker);
191  gUA1Data200->SetMarkerSize(markerSize);
192 
193  //fUA1Fit130->SetLineColor();
194 
195  gUA1Data200->Draw("p");
196  fUA1Fit130->SetRange(.1,6);
197  fUA1Fit130->Draw("same");
198 
199 
200  //
201  // legend
202  //
203  TLegend* l=new TLegend(0.5,0.7,0.8,0.8);
204  l->SetTextSize(textSize);
205  l->SetBorderSize(0); l->SetFillColor(4000); // transparent
206  l->AddEntry(gCentral,"central 0-5%","p");
207  l->AddEntry(gPeripheral,"periperhal 60-80%","p");
208  l->AddEntry(gMinbias,"minimum bias","p");
209  l->AddEntry(gUA1Data200,"ua1 200 GeV data","p");
210  l->AddEntry(fUA1Fit130,"ua1 130 GeV fit","l");
211  l->Draw();
212 
213  Print(c1,psDir,"spectra");
214 
215 }
216 
217 void drawLine(TAxis* a)
218 {
219  TLine* line = new TLine;
220  line->SetLineStyle(2);
221 
222  line->DrawLine(a->GetXmin(),1,a->GetXmax(),1);
223 }