StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
extractPIDJobInfo.C
1 TH1D *tmp;
2 TFile f, *fNew;
3 
4 char buffer[1024];
5 char nEvName[1024];
6 char nHistName[1024];
7 double nEvents[100], nTmp;
8 double n[100][5][2], pHat[100][5][2];
9 char *types[] = {"all", "pi_pi", "K_K", "p_p", "o_o"};
10 char *parts[] = {"all", "pi", "K", "p", "o"};
11 int nc = 0;
12 {
13  for (int ic=0;ic<100;ic++) {
14  nEvents[ic] = 0;
15  for (int it=0;it<5;it++) {
16  n[ic][it][0] = 0;
17  n[ic][it][1] = 0;
18  pHat[ic][it][0] = 0;
19  pHat[ic][it][1] = 0;
20  }
21  }
22  for (int ic=0;ic<100;ic++) {
23  for (int it=0;it<5;it++) {
24  sprintf(buffer,"Data%i%s.root",ic,types[it]);
25  fNew = f->Open(buffer);
26  if (!fNew) {
27  break;
28  }
29  nc++;
30  int iz=0;
31  sprintf(nEvName,"NEventsSib_zBuf_%i",iz);
32  while (tmp = (TH1D *) gDirectory->Get(nEvName)) {
33  if (0 == it) {
34  nEvents[ic] += tmp->Integral();
35  }
36  sprintf(nHistName,"meanPtPA_zBuf_%i",iz);
37  tmp = (TH1D *) gDirectory->Get(nHistName);
38  nTmp = 0.5*tmp->Integral();
39  pHat[ic][it][0] += nTmp*tmp->GetMean();
40  n[ic][it][0] += nTmp;
41  sprintf(nHistName,"meanPtMA_zBuf_%i",iz);
42  tmp = (TH1D *) gDirectory->Get(nHistName);
43  nTmp = 0.5*tmp->Integral();
44  pHat[ic][it][1] += nTmp*tmp->GetMean();
45  n[ic][it][1] += nTmp;
46  iz++;
47  sprintf(nEvName,"NEventsSib_zBuf_%i",iz);
48  }
49  }
50  if (!fNew) {
51  break;
52  }
53  }
54  nc /= 5;
55 }
56 
57 {
58  printf(" Following information is for each centrality bin \n\n");
59  printf("Centrality :");
60  for (int ic=0;ic<nc;ic++) {
61  printf("%11i",ic);
62  }
63  printf("\n");
64  printf(" numEvents :");
65  for (int ic=0;ic<nc;ic++) {
66  printf("%11.0f",nEvents[ic]);
67  }
68  printf("\n");
69  printf("\n");
70 
71  printf(" ");
72  for (int it=0;it<5;it++) {
73  printf("%10s+%10s-",parts[it],parts[it]);
74  }
75  printf("\n");
76  for (int ic=0;ic<nc;ic++) {
77  if (0 == ic) {
78  printf(" NTracks %i :",ic);
79  } else {
80  printf(" %i :",ic);
81  }
82  for (int it=0;it<5;it++) {
83  printf("%11i%11i",n[ic][it][0],n[ic][it][1]);
84  }
85  printf("\n");
86  }
87  printf("\n");
88  for (int ic=0;ic<nc;ic++) {
89  if (0 == ic) {
90  printf(" dN/dEta %i :",ic);
91  } else {
92  printf(" %i :",ic);
93  }
94  for (int it=0;it<5;it++) {
95  printf("%11.2f%11.2f",n[ic][it][0]/nEvents[ic],n[ic][it][1]/nEvents[ic]);
96  }
97  printf("\n");
98  }
99  printf("\n");
100  for (int ic=0;ic<nc;ic++) {
101  if (0 == ic) {
102  printf(" pHat %i :",ic);
103  } else {
104  printf(" %i :",ic);
105  }
106  double pHatp, pHatm;
107  for (int it=0;it<5;it++) {
108  if (n[ic][it][0] > 0) {
109  pHatp = pHat[ic][it][0] / n[ic][it][0];
110  } else {
111  pHatp = -1;
112  }
113  if (n[ic][it][1] > 0) {
114  pHatm = pHat[ic][it][1] / n[ic][it][1];
115  } else {
116  pHatp = -1;
117  }
118  printf("%11.3f%11.3f",pHatp,pHatm);
119  }
120  printf("\n");
121  }
122  printf("\n");
123 }
124 
125 // Try extracting information from Sum files.
126 char *sums[] = {"Sum0_2", "Sum3_6"};
127 int nSums = 2;
128 {
129  for (int ic=0;ic<nSums;ic++) {
130  nEvents[ic] = 0;
131  for (int it=0;it<5;it++) {
132  n[ic][it][0] = 0;
133  n[ic][it][1] = 0;
134  pHat[ic][it][0] = 0;
135  pHat[ic][it][1] = 0;
136  }
137  }
138  for (int ic=0;ic<nSums;ic++) {
139  for (int it=0;it<5;it++) {
140  sprintf(buffer,"%s%s.root",sums[ic],types[it]);
141  fNew = f->Open(buffer);
142  if (!fNew) {
143  break;
144  }
145  int iz=0;
146  sprintf(nEvName,"NEventsSib_zBuf_%i",iz);
147  while (tmp = (TH1D *) gDirectory->Get(nEvName)) {
148  if (0 == it) {
149  nEvents[ic] += tmp->Integral();
150  }
151  sprintf(nHistName,"meanPtPA_zBuf_%i",iz);
152  tmp = (TH1D *) gDirectory->Get(nHistName);
153  nTmp = 0.5*tmp->Integral();
154  pHat[ic][it][0] += nTmp*tmp->GetMean();
155  n[ic][it][0] += nTmp;
156  sprintf(nHistName,"meanPtMA_zBuf_%i",iz);
157  tmp = (TH1D *) gDirectory->Get(nHistName);
158  nTmp = 0.5*tmp->Integral();
159  pHat[ic][it][1] += nTmp*tmp->GetMean();
160  n[ic][it][1] += nTmp;
161  iz++;
162  sprintf(nEvName,"NEventsSib_zBuf_%i",iz);
163  }
164  }
165  if (!fNew) {
166  break;
167  }
168  }
169 }
170 {
171  printf(" Following information is for combined centrality bins \n\n");
172  printf("Summed bin :");
173  for (int ic=0;ic<nSums;ic++) {
174  printf("%11i",ic);
175  }
176  printf("\n");
177  printf(" numEvents :");
178  for (int ic=0;ic<nSums;ic++) {
179  printf("%11.0f",nEvents[ic]);
180  }
181  printf("\n");
182  printf("\n");
183 
184  printf(" ");
185  for (int it=0;it<5;it++) {
186  printf("%10s+%10s-",parts[it],parts[it]);
187  }
188  printf("\n");
189  for (int ic=0;ic<nSums;ic++) {
190  if (0 == ic) {
191  printf(" NTracks %i :",ic);
192  } else {
193  printf(" %i :",ic);
194  }
195  for (int it=0;it<5;it++) {
196  printf("%11i%11i",n[ic][it][0],n[ic][it][1]);
197  }
198  printf("\n");
199  }
200  printf("\n");
201  for (int ic=0;ic<nSums;ic++) {
202  if (0 == ic) {
203  printf(" dN/dEta %i :",ic);
204  } else {
205  printf(" %i :",ic);
206  }
207  for (int it=0;it<5;it++) {
208  printf("%11.2f%11.2f",n[ic][it][0]/nEvents[ic],n[ic][it][1]/nEvents[ic]);
209  }
210  printf("\n");
211  }
212  printf("\n");
213  for (int ic=0;ic<nSums;ic++) {
214  if (0 == ic) {
215  printf(" pHat %i :",ic);
216  } else {
217  printf(" %i :",ic);
218  }
219  double pHatp, pHatm;
220  for (int it=0;it<5;it++) {
221  if (n[ic][it][0] > 0) {
222  pHatp = pHat[ic][it][0] / n[ic][it][0];
223  } else {
224  pHatp = -1;
225  }
226  if (n[ic][it][1] > 0) {
227  pHatm = pHat[ic][it][1] / n[ic][it][1];
228  } else {
229  pHatp = -1;
230  }
231  printf("%11.3f%11.3f",pHatp,pHatm);
232  }
233  printf("\n");
234  }
235  printf("\n");
236 }
237 
238 
239