Hall-D Software  alpha
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
plot_gain_factors.C
Go to the documentation of this file.
1 void plot_gain_factors(void)
2 {
3 // test program to read a file with a list of file names
4 //
5 
6 #include <TRandom.h>
7 
8 gROOT->Reset();
9 //TTree *Bfield = (TTree *) gROOT->FindObject("Bfield");
10 gStyle->SetPalette(1,0);
11 gStyle->SetOptStat(kTRUE);
12 gStyle->SetOptStat(11111111);
13 gStyle->SetOptFit(kTRUE);
14 gStyle->SetPadRightMargin(0.15);
15 gStyle->SetPadLeftMargin(0.15);
16 gStyle->SetPadBottomMargin(0.15);
17 //
18 
19  char string[256];
20  Int_t j,jj;
21  Int_t ndx;
22  Int_t nbins=100;
23 
24  const int nchan=2800;
25 
26  Double_t g2931[nchan];
27  Double_t g3079[nchan];
28  Double_t g3179[nchan];
29  Double_t g3180[nchan];
30  Double_t g3182[nchan];
31  Double_t g2931_r20_60[nchan];
32  Double_t g3079_r20_60[nchan];
33  Double_t g3179_r20_60[nchan];
34  Double_t g3180_r20_60[nchan];
35  Double_t g3182_r20_60[nchan];
36 
37  Double_t g3079_3182_r20[nchan];
38  Double_t g3079_3182_r20_60[nchan];
39  Double_t g2931_3182_r20[nchan];
40  Double_t g2931_3182_r20_60[nchan];
41 
42  // read histograms from file
43 
44  Int_t runnum=2931;
45 
46  sprintf(string,"GainFactorIter1_%4d_r20.root",runnum);
47  printf ("Histogram input filename=%s\n",string);
48  TFile *in = new TFile(string,"read");
49 
50  TH1D *h_unordered2931_r20 = (TH1D*)in->Get("h_unordered");
51  TH2D *h_yvsx2931_r20 = (TH2D*)in->Get("h_yvsx");
52 
53  sprintf(string,"GainFactorIter1_%4d_r20-60.root",runnum);
54  printf ("Histogram input filename=%s\n",string);
55  TFile *in = new TFile(string,"read");
56 
57  TH1D *h_unordered2931_r20_60 = (TH1D*)in->Get("h_unordered");
58  TH2D *h_yvsx2931_r20_60 = (TH2D*)in->Get("h_yvsx");
59 
60  Int_t runnum=3079;
61 
62  sprintf(string,"GainFactorIter1_%4d_r20.root",runnum);
63  printf ("Histogram input filename=%s\n",string);
64  TFile *in = new TFile(string,"read");
65 
66  TH1D *h_unordered3079_r20 = (TH1D*)in->Get("h_unordered");
67  TH2D *h_yvsx3079_r20 = (TH2D*)in->Get("h_yvsx");
68 
69  sprintf(string,"GainFactorIter1_%4d_r20-60.root",runnum);
70  printf ("Histogram input filename=%s\n",string);
71  TFile *in = new TFile(string,"read");
72 
73  TH1D *h_unordered3079_r20_60 = (TH1D*)in->Get("h_unordered");
74  TH2D *h_yvsx3079_r20_60 = (TH2D*)in->Get("h_yvsx");
75 
76  Int_t runnum=3179;
77 
78  sprintf(string,"GainFactorIter1_%4d_r20.root",runnum);
79  printf ("Histogram input filename=%s\n",string);
80  TFile *in = new TFile(string,"read");
81 
82  TH1D *h_unordered3179_r20 = (TH1D*)in->Get("h_unordered");
83  TH2D *h_yvsx3179_r20 = (TH2D*)in->Get("h_yvsx");
84 
85  sprintf(string,"GainFactorIter1_%4d_r20-60.root",runnum);
86  printf ("Histogram input filename=%s\n",string);
87  TFile *in = new TFile(string,"read");
88 
89  TH1D *h_unordered3179_r20_60 = (TH1D*)in->Get("h_unordered");
90  TH2D *h_yvsx3179_r20_60 = (TH2D*)in->Get("h_yvsx");
91 
92  Int_t runnum=3180;
93 
94  sprintf(string,"GainFactorIter1_%4d_r20.root",runnum);
95  printf ("Histogram input filename=%s\n",string);
96  TFile *in = new TFile(string,"read");
97 
98  TH1D *h_unordered3180_r20 = (TH1D*)in->Get("h_unordered");
99  TH2D *h_yvsx3180_r20 = (TH2D*)in->Get("h_yvsx");
100 
101  sprintf(string,"GainFactorIter1_%4d_r20-60.root",runnum);
102  printf ("Histogram input filename=%s\n",string);
103  TFile *in = new TFile(string,"read");
104 
105  TH1D *h_unordered3180_r20_60 = (TH1D*)in->Get("h_unordered");
106  TH2D *h_yvsx3180_r20_60 = (TH2D*)in->Get("h_yvsx");
107 
108  Int_t runnum=3182;
109 
110  sprintf(string,"GainFactorIter1_%4d_r20.root",runnum);
111  printf ("Histogram input filename=%s\n",string);
112  TFile *in = new TFile(string,"read");
113 
114  TH1D *h_unordered3182_r20 = (TH1D*)in->Get("h_unordered");
115  TH2D *h_yvsx3182_r20 = (TH2D*)in->Get("h_yvsx");
116 
117  sprintf(string,"GainFactorIter1_%4d_r20-60.root",runnum);
118  printf ("Histogram input filename=%s\n",string);
119  TFile *in = new TFile(string,"read");
120 
121  TH1D *h_unordered3182_r20_60 = (TH1D*)in->Get("h_unordered");
122  TH2D *h_yvsx3182_r20_60 = (TH2D*)in->Get("h_yvsx");
123 
124  // Look at runs 3079-3182;
125 
126  sprintf(string,"GainFactorIter1_3079-3182_r20.root",runnum);
127  printf ("Histogram input filename=%s\n",string);
128  TFile *in = new TFile(string,"read");
129 
130  TH1D *h_unordered3079_3182_r20 = (TH1D*)in->Get("h_unordered");
131  TH2D *h_yvsx3079_3182_r20 = (TH2D*)in->Get("h_yvsx");
132 
133  sprintf(string,"GainFactorIter1_3079-3182_r20-60.root",runnum);
134  printf ("Histogram input filename=%s\n",string);
135  TFile *in = new TFile(string,"read");
136 
137  TH1D *h_unordered3079_3182_r20_60 = (TH1D*)in->Get("h_unordered");
138  TH2D *h_yvsx3079_3182_r20_60 = (TH2D*)in->Get("h_yvsx");
139 
140  // Look at runs 2931-3182;
141 
142  sprintf(string,"GainFactorIter1_2931-3182_r20.root",runnum);
143  printf ("Histogram input filename=%s\n",string);
144  TFile *in = new TFile(string,"read");
145 
146  TH1D *h_unordered2931_3182_r20 = (TH1D*)in->Get("h_unordered");
147  TH2D *h_yvsx2931_3182_r20 = (TH2D*)in->Get("h_yvsx");
148 
149  sprintf(string,"GainFactorIter1_2931-3182_r20-60.root",runnum);
150  printf ("Histogram input filename=%s\n",string);
151  TFile *in = new TFile(string,"read");
152 
153  TH1D *h_unordered2931_3182_r20_60 = (TH1D*)in->Get("h_unordered");
154  TH2D *h_yvsx2931_3182_r20_60 = (TH2D*)in->Get("h_yvsx");
155 
156  // define correlation histograms
157 
158  TH2D *h3079_2931 = new TH2D ("h3079_2931","Gains R3079 vs R2931",nbins,0,2,nbins,0,2);
159  TH2D *h3179_2931 = new TH2D ("h3179_2931","Gains R3179 vs R2931",nbins,0,2,nbins,0,2);
160  TH2D *h3180_2931 = new TH2D ("h3180_2931","Gains R3180 vs R2931",nbins,0,2,nbins,0,2);
161  TH2D *h3182_2931 = new TH2D ("h3182_2931","Gains R3182 vs R2931",nbins,0,2,nbins,0,2);
162 
163  TH2D *h3079_2931_r20_60 = new TH2D ("h3079_2931_r20_60","Gains R3079 vs R2931 _r20_60",nbins,0,2,nbins,0,2);
164  TH2D *h3179_2931_r20_60 = new TH2D ("h3179_2931_r20_60","Gains R3179 vs R2931 _r20_60",nbins,0,2,nbins,0,2);
165  TH2D *h3180_2931_r20_60 = new TH2D ("h3180_2931_r20_60","Gains R3180 vs R2931 _r20_60",nbins,0,2,nbins,0,2);
166  TH2D *h3182_2931_r20_60 = new TH2D ("h3182_2931_r20_60","Gains R3182 vs R2931 _r20_60",nbins,0,2,nbins,0,2);
167 
168  TH2D *h3079_3182_2931_r20 = new TH2D ("3079_3182_2931_r20","Gains R3079-3182 vs R2931 _r20",nbins,0,2,nbins,0,2);
169  TH2D *h3079_3182_2931_r20_60 = new TH2D ("3079_3182_2931_r20_60","Gains R3079-3182 vs R2931 _r20_60",nbins,0,2,nbins,0,2);
170 
171  TH1D *gRatio_r20 = new TH1D ("gRatio","Ratio of R3079-3182/R2931 _r20",nbins,0,2);
172  TH1D *gRatio_r20_60 = new TH1D ("gRatio","Ratio of R3079-3182/R2931 _r20_60",nbins,0,2);
173 
174  ifstream gainfile;
175  ofstream outgain;
176  outgain.open ("plot_gain_factors.list");
177 
178  TString infile = "GainFactorIter1_2931_r20.txt";
179  cout << "Opening file: " << infile.Data() << endl;
180  gainfile.open (infile.Data());
181  if (!gainfile) {
182  cout << "ERROR: Failed to open data file= " << infile.Data() << endl;
183  return;
184  }
185 
186  TString line;
187 
188  while (line.ReadLine(gainfile)){
189 
190  TObjArray *tokens = line.Tokenize(" ");
191  Float_t gain = (((TObjString*)tokens->At(0))->GetString()).Atof();
192  TString s = ((TObjString*)tokens->At(1))->GetString().Remove(0,8);
193  Int_t channel = s.Atoi();
194  g2931[channel] = gain;
195  outgain << " R2931, channel=" << channel << " gain=" << gain << endl;
196  }
197  gainfile.close();
198 
199  TString infile = "GainFactorIter1_3079_r20.txt";
200  cout << "Opening file: " << infile.Data() << endl;
201  gainfile.open (infile.Data());
202  if (!gainfile) {
203  cout << "ERROR: Failed to open data file= " << infile.Data() << endl;
204  return;
205  }
206 
207  TString line;
208  while (line.ReadLine(gainfile)){
209 
210  TObjArray *tokens = line.Tokenize(" ");
211  Float_t gain = (((TObjString*)tokens->At(0))->GetString()).Atof();
212  TString s = ((TObjString*)tokens->At(1))->GetString().Remove(0,8);
213  Int_t channel = s.Atoi();
214  g3079[channel] = gain;
215  outgain << " R3079, channel=" << channel << " gain=" << gain << endl;
216 
217  }
218  gainfile.close();
219 
220  TString infile = "GainFactorIter1_3179_r20.txt";
221  cout << "Opening file: " << infile.Data() << endl;
222  gainfile.open (infile.Data());
223  if (!gainfile) {
224  cout << "ERROR: Failed to open data file= " << infile.Data() << endl;
225  return;
226  }
227 
228  TString line;
229  while (line.ReadLine(gainfile)){
230 
231  TObjArray *tokens = line.Tokenize(" ");
232  Float_t gain = (((TObjString*)tokens->At(0))->GetString()).Atof();
233  TString s = ((TObjString*)tokens->At(1))->GetString().Remove(0,8);
234  Int_t channel = s.Atoi();
235  g3179[channel] = gain;
236  outgain << " R3179, channel=" << channel << " gain=" << gain << endl;
237 
238  }
239  gainfile.close();
240 
241  TString infile = "GainFactorIter1_3180_r20.txt";
242  cout << "Opening file: " << infile.Data() << endl;
243  gainfile.open (infile.Data());
244  if (!gainfile) {
245  cout << "ERROR: Failed to open data file= " << infile.Data() << endl;
246  return;
247  }
248 
249  TString line;
250  while (line.ReadLine(gainfile)){
251 
252  TObjArray *tokens = line.Tokenize(" ");
253  Float_t gain = (((TObjString*)tokens->At(0))->GetString()).Atof();
254  TString s = ((TObjString*)tokens->At(1))->GetString().Remove(0,8);
255  Int_t channel = s.Atoi();
256  g3180[channel] = gain;
257  outgain << " R3180, channel=" << channel << " gain=" << gain << endl;
258 
259  }
260  gainfile.close();
261 
262  TString infile = "GainFactorIter1_3182_r20.txt";
263  cout << "Opening file: " << infile.Data() << endl;
264  gainfile.open (infile.Data());
265  if (!gainfile) {
266  cout << "ERROR: Failed to open data file= " << infile.Data() << endl;
267  return;
268  }
269 
270  TString line;
271  while (line.ReadLine(gainfile)){
272 
273  TObjArray *tokens = line.Tokenize(" ");
274  Float_t gain = (((TObjString*)tokens->At(0))->GetString()).Atof();
275  TString s = ((TObjString*)tokens->At(1))->GetString().Remove(0,8);
276  Int_t channel = s.Atoi();
277  g3182[channel] = gain;
278  outgain << " R3182, channel=" << channel << " gain=" << gain << endl;
279 
280  }
281 
282  // Repeat for 20_60
283 
284  gainfile.close();
285 
286  TString infile = "GainFactorIter1_2931_r20-60.txt";
287  cout << "Opening file: " << infile.Data() << endl;
288  gainfile.open (infile.Data());
289  if (!gainfile) {
290  cout << "ERROR: Failed to open data file= " << infile.Data() << endl;
291  return;
292  }
293 
294  TString line;
295  while (line.ReadLine(gainfile)){
296 
297  TObjArray *tokens = line.Tokenize(" ");
298  Float_t gain = (((TObjString*)tokens->At(0))->GetString()).Atof();
299  TString s = ((TObjString*)tokens->At(1))->GetString().Remove(0,8);
300  Int_t channel = s.Atoi();
301  g2931_r20_60[channel] = gain;
302  outgain << " R2931_r20_60, channel=" << channel << " gain=" << gain << endl;
303  }
304  gainfile.close();
305 
306  TString infile = "GainFactorIter1_3079_r20-60.txt";
307  cout << "Opening file: " << infile.Data() << endl;
308  gainfile.open (infile.Data());
309  if (!gainfile) {
310  cout << "ERROR: Failed to open data file= " << infile.Data() << endl;
311  return;
312  }
313 
314  TString line;
315  while (line.ReadLine(gainfile)){
316 
317  TObjArray *tokens = line.Tokenize(" ");
318  Float_t gain = (((TObjString*)tokens->At(0))->GetString()).Atof();
319  TString s = ((TObjString*)tokens->At(1))->GetString().Remove(0,8);
320  Int_t channel = s.Atoi();
321  g3079_r20_60[channel] = gain;
322  outgain << " R3079_r20_60, channel=" << channel << " gain=" << gain << endl;
323 
324  }
325  gainfile.close();
326 
327  TString infile = "GainFactorIter1_3179_r20-60.txt";
328  cout << "Opening file: " << infile.Data() << endl;
329  gainfile.open (infile.Data());
330  if (!gainfile) {
331  cout << "ERROR: Failed to open data file= " << infile.Data() << endl;
332  return;
333  }
334 
335  TString line;
336  while (line.ReadLine(gainfile)){
337 
338  TObjArray *tokens = line.Tokenize(" ");
339  Float_t gain = (((TObjString*)tokens->At(0))->GetString()).Atof();
340  TString s = ((TObjString*)tokens->At(1))->GetString().Remove(0,8);
341  Int_t channel = s.Atoi();
342  g3179_r20_60[channel] = gain;
343  outgain << " R3179_r20_60, channel=" << channel << " gain=" << gain << endl;
344 
345  }
346  gainfile.close();
347 
348  TString infile = "GainFactorIter1_3180_r20-60.txt";
349  cout << "Opening file: " << infile.Data() << endl;
350  gainfile.open (infile.Data());
351  if (!gainfile) {
352  cout << "ERROR: Failed to open data file= " << infile.Data() << endl;
353  return;
354  }
355 
356  TString line;
357  while (line.ReadLine(gainfile)){
358 
359  TObjArray *tokens = line.Tokenize(" ");
360  Float_t gain = (((TObjString*)tokens->At(0))->GetString()).Atof();
361  TString s = ((TObjString*)tokens->At(1))->GetString().Remove(0,8);
362  Int_t channel = s.Atoi();
363  g3180_r20_60[channel] = gain;
364  outgain << " R3180_r20_60, channel=" << channel << " gain=" << gain << endl;
365 
366  }
367  gainfile.close();
368 
369  TString infile = "GainFactorIter1_3182_r20-60.txt";
370  cout << "Opening file: " << infile.Data() << endl;
371  gainfile.open (infile.Data());
372  if (!gainfile) {
373  cout << "ERROR: Failed to open data file= " << infile.Data() << endl;
374  return;
375  }
376 
377  TString line;
378  while (line.ReadLine(gainfile)){
379 
380  TObjArray *tokens = line.Tokenize(" ");
381  Float_t gain = (((TObjString*)tokens->At(0))->GetString()).Atof();
382  TString s = ((TObjString*)tokens->At(1))->GetString().Remove(0,8);
383  Int_t channel = s.Atoi();
384  g3182_r20_60[channel] = gain;
385  outgain << " R3182_r20_60, channel=" << channel << " gain=" << gain << endl;
386 
387  }
388 
389 
390  // Repeat for Run3079-3182
391 
392  gainfile.close();
393 
394  TString infile = "GainFactorIter1_3079-3182_r20-60.txt";
395  cout << "Opening file: " << infile.Data() << endl;
396  gainfile.open (infile.Data());
397  if (!gainfile) {
398  cout << "ERROR: Failed to open data file= " << infile.Data() << endl;
399  return;
400  }
401 
402  TString line;
403  while (line.ReadLine(gainfile)){
404 
405  TObjArray *tokens = line.Tokenize(" ");
406  Float_t gain = (((TObjString*)tokens->At(0))->GetString()).Atof();
407  TString s = ((TObjString*)tokens->At(1))->GetString().Remove(0,8);
408  Int_t channel = s.Atoi();
409  g3079_3182_r20_60[channel] = gain;
410  outgain << " R3182_r20_60, channel=" << channel << " gain=" << gain << endl;
411 
412  }
413  gainfile.close();
414 
415  TString infile = "GainFactorIter1_3079-3182_r20.txt";
416  cout << "Opening file: " << infile.Data() << endl;
417  gainfile.open (infile.Data());
418  if (!gainfile) {
419  cout << "ERROR: Failed to open data file= " << infile.Data() << endl;
420  return;
421  }
422 
423  TString line;
424  while (line.ReadLine(gainfile)){
425 
426  TObjArray *tokens = line.Tokenize(" ");
427  Float_t gain = (((TObjString*)tokens->At(0))->GetString()).Atof();
428  TString s = ((TObjString*)tokens->At(1))->GetString().Remove(0,8);
429  Int_t channel = s.Atoi();
430  g3079_3182_r20[channel] = gain;
431  outgain << " R3182_r20_60, channel=" << channel << " gain=" << gain << endl;
432 
433  }
434 
435 
436  // Repeat for Run2931-3182
437 
438  gainfile.close();
439 
440  TString infile = "GainFactorIter1_2931-3182_r20-60.txt";
441  cout << "Opening file: " << infile.Data() << endl;
442  gainfile.open (infile.Data());
443  if (!gainfile) {
444  cout << "ERROR: Failed to open data file= " << infile.Data() << endl;
445  return;
446  }
447 
448  TString line;
449  while (line.ReadLine(gainfile)){
450 
451  TObjArray *tokens = line.Tokenize(" ");
452  Float_t gain = (((TObjString*)tokens->At(0))->GetString()).Atof();
453  TString s = ((TObjString*)tokens->At(1))->GetString().Remove(0,8);
454  Int_t channel = s.Atoi();
455  g2931_3182_r20_60[channel] = gain;
456  outgain << " R3182_r20_60, channel=" << channel << " gain=" << gain << endl;
457 
458  }
459  gainfile.close();
460 
461  TString infile = "GainFactorIter1_2931-3182_r20.txt";
462  cout << "Opening file: " << infile.Data() << endl;
463  gainfile.open (infile.Data());
464  if (!gainfile) {
465  cout << "ERROR: Failed to open data file= " << infile.Data() << endl;
466  return;
467  }
468 
469  TString line;
470  while (line.ReadLine(gainfile)){
471 
472  TObjArray *tokens = line.Tokenize(" ");
473  Float_t gain = (((TObjString*)tokens->At(0))->GetString()).Atof();
474  TString s = ((TObjString*)tokens->At(1))->GetString().Remove(0,8);
475  Int_t channel = s.Atoi();
476  g2931_3182_r20[channel] = gain;
477  outgain << " R3182_r20_60, channel=" << channel << " gain=" << gain << endl;
478 
479  }
480 
481 
482 
483 
484  // histogram gains
485 
486  for (Int_t jj=0;jj<nchan;jj++) {
487  if (g2931[jj]!=1 || g3079[jj]!=1) h3079_2931->Fill(g2931[jj],g3079[jj]);
488  if (g2931[jj]!=1 || g3179[jj]!=1) h3179_2931->Fill(g2931[jj],g3179[jj]);
489  if (g2931[jj]!=1 || g3180[jj]!=1) h3180_2931->Fill(g2931[jj],g3180[jj]);
490  if (g2931[jj]!=1 || g3182[jj]!=1) h3182_2931->Fill(g2931[jj],g3182[jj]);
491 
492  // cout << " jj=" << jj << " g3182_r20_60=" << g3182_r20_60[jj] << endl;
493 
494  if (g2931_r20_60[jj]!=1 || g3079_r20_60[jj]!=1) h3079_2931_r20_60->Fill(g2931_r20_60[jj],g3079_r20_60[jj]);
495  if (g2931_r20_60[jj]!=1 || g3179_r20_60[jj]!=1) h3179_2931_r20_60->Fill(g2931_r20_60[jj],g3179_r20_60[jj]);
496  if (g2931_r20_60[jj]!=1 || g3180_r20_60[jj]!=1) h3180_2931_r20_60->Fill(g2931_r20_60[jj],g3180_r20_60[jj]);
497  if (g2931_r20_60[jj]!=1 || g3182_r20_60[jj]!=1) h3182_2931_r20_60->Fill(g2931_r20_60[jj],g3182_r20_60[jj]);
498 
499  if (g2931[jj]!=1 || g3079_3182_r20[jj]!=1) h3079_3182_2931_r20->Fill(g2931[jj],g3079_3182_r20[jj]);
500  if (g2931_r20_60[jj]!=1 || g3079_3182_r20_60[jj]!=1) h3079_3182_2931_r20_60->Fill(g2931_r20_60[jj],g3079_3182_r20_60[jj]);
501 
502  if (g2931[jj]!=1 && g3079_3182_r20[jj]!=1) gRatio_r20->Fill(g3079_3182_r20[jj]/g2931[jj]);
503  if (g2931_r20_60[jj]!=1 && g3079_3182_r20_60[jj]!=1) gRatio_r20_60->Fill(g3079_3182_r20_60[jj]/g2931_r20_60[jj]);
504  }
505 
506 
507  // plot histograms
508 
509  TCanvas *c1 = new TCanvas("c1","c1 plot_gain_factors",200,10,700,700);
510  c1->Divide(2,2);
511  // c1->SetGridx();
512  // c1->SetGridy();
513  // c1->SetLogz();
514  Int_t runnum=2931;
515 
516  Float_t zmin=0.8;
517  Float_t zmax=1.6;
518  c1->cd(1);
519 
520  sprintf(string,"Electron Gain Factors Run%4d\n",runnum);
521  h_yvsx2931_r20_60->SetTitle(string);
522  h_yvsx2931_r20_60->GetZaxis()->SetRangeUser(zmin,zmax);
523  h_yvsx2931_r20_60->GetYaxis()->SetTitle("y");
524  h_yvsx2931_r20_60->GetXaxis()->SetTitle("x");
525  h_yvsx2931_r20_60->Draw("colz");
526 
527  Float_t ymin=0;
528  Float_t ymax=150;
529  c1->cd(2);
530 
531  h_unordered2931_r20_60->SetTitle(string);;
532  h_unordered2931_r20_60->GetYaxis()->SetRangeUser(ymin,ymax);
533  h_unordered2931_r20_60->GetYaxis()->SetTitle("Counts");
534  h_unordered2931_r20_60->GetXaxis()->SetTitle("Gain Factor");
535  h_unordered2931_r20_60->Fit("gaus");
536  h_unordered2931_r20_60->Draw("");
537 
538  Float_t zmin=0.8;
539  Float_t zmax=1.6;
540  c1->cd(3);
541 
542  sprintf(string,"Electron Gain Factors Run%4d\n",runnum);
543  h_yvsx2931_r20->SetTitle(string);
544  h_yvsx2931_r20->GetZaxis()->SetRangeUser(zmin,zmax);
545  h_yvsx2931_r20->GetYaxis()->SetTitle("y");
546  h_yvsx2931_r20->GetXaxis()->SetTitle("x");
547  h_yvsx2931_r20->Draw("colz");
548 
549  Float_t ymin=0;
550  Float_t ymax=150;
551  c1->cd(4);
552 
553  h_unordered2931_r20->SetTitle(string);;
554  h_unordered2931_r20->GetYaxis()->SetRangeUser(ymin,ymax);
555  h_unordered2931_r20->GetYaxis()->SetTitle("Counts");
556  h_unordered2931_r20->GetXaxis()->SetTitle("Gain Factor");
557  h_unordered2931_r20->Draw("");
558 
559  TCanvas *c2 = new TCanvas("c2","c2 plot_gain_factors",200,10,700,700);
560  c2->Divide(2,2);
561  // c2->SetGridx();
562  // c2->SetGridy();
563  // c2->SetLogz();
564 
565  Float_t zmin=0.8;
566  Float_t zmax=1.6;
567  c2->cd(1);
568  runnum = 3079;
569 
570  sprintf(string,"Electron Gain Factors Run%4d\n",runnum);
571  h_yvsx3079_r20_60->SetTitle(string);
572  h_yvsx3079_r20_60->GetZaxis()->SetRangeUser(zmin,zmax);
573  h_yvsx3079_r20_60->GetYaxis()->SetTitle("y");
574  h_yvsx3079_r20_60->GetXaxis()->SetTitle("x");
575  h_yvsx3079_r20_60->Draw("colz");
576 
577  Float_t ymin=0;
578  Float_t ymax=150;
579  c2->cd(2);
580 
581  h_unordered3079_r20_60->SetTitle(string);;
582  h_unordered3079_r20_60->GetYaxis()->SetRangeUser(ymin,ymax);
583  h_unordered3079_r20_60->GetYaxis()->SetTitle("Counts");
584  h_unordered3079_r20_60->GetXaxis()->SetTitle("Gain Factor");
585  h_unordered3079_r20_60->Draw("");
586 
587  Float_t zmin=0.8;
588  Float_t zmax=1.6;
589  c2->cd(3);
590 
591  sprintf(string,"Electron Gain Factors Run%4d\n",runnum);
592  h_yvsx3079_r20->SetTitle(string);
593  h_yvsx3079_r20->GetZaxis()->SetRangeUser(zmin,zmax);
594  h_yvsx3079_r20->GetYaxis()->SetTitle("y");
595  h_yvsx3079_r20->GetXaxis()->SetTitle("x");
596  h_yvsx3079_r20->Draw("colz");
597 
598  Float_t ymin=0;
599  Float_t ymax=150;
600  c2->cd(4);
601 
602  h_unordered3079_r20->SetTitle(string);;
603  h_unordered3079_r20->GetYaxis()->SetRangeUser(ymin,ymax);
604  h_unordered3079_r20->GetYaxis()->SetTitle("Counts");
605  h_unordered3079_r20->GetXaxis()->SetTitle("Gain Factor");
606  h_unordered3079_r20->Draw("");
607 
608  TCanvas *c3 = new TCanvas("c3","c3 plot_gain_factors",200,10,700,700);
609  c3->Divide(2,2);
610  // c3->SetGridx();
611  // c3->SetGridy();
612  // c3->SetLogz();
613 
614  Float_t zmin=0.8;
615  Float_t zmax=1.6;
616  c3->cd(1);
617  runnum = 3179;
618 
619  sprintf(string,"Electron Gain Factors Run%4d\n",runnum);
620  h_yvsx3179_r20_60->SetTitle(string);
621  h_yvsx3179_r20_60->GetZaxis()->SetRangeUser(zmin,zmax);
622  h_yvsx3179_r20_60->GetYaxis()->SetTitle("y");
623  h_yvsx3179_r20_60->GetXaxis()->SetTitle("x");
624  h_yvsx3179_r20_60->Draw("colz");
625 
626  Float_t ymin=0;
627  Float_t ymax=150;
628  c3->cd(2);
629 
630  h_unordered3179_r20_60->SetTitle(string);;
631  h_unordered3179_r20_60->GetYaxis()->SetRangeUser(ymin,ymax);
632  h_unordered3179_r20_60->GetYaxis()->SetTitle("Counts");
633  h_unordered3179_r20_60->GetXaxis()->SetTitle("Gain Factor");
634  h_unordered3179_r20_60->Draw("");
635 
636  Float_t zmin=0.8;
637  Float_t zmax=1.6;
638  c3->cd(3);
639 
640  sprintf(string,"Electron Gain Factors Run%4d\n",runnum);
641  h_yvsx3179_r20->SetTitle(string);
642  h_yvsx3179_r20->GetZaxis()->SetRangeUser(zmin,zmax);
643  h_yvsx3179_r20->GetYaxis()->SetTitle("y");
644  h_yvsx3179_r20->GetXaxis()->SetTitle("x");
645  h_yvsx3179_r20->Draw("colz");
646 
647  Float_t ymin=0;
648  Float_t ymax=150;
649  c3->cd(4);
650 
651  h_unordered3179_r20->SetTitle(string);;
652  h_unordered3179_r20->GetYaxis()->SetRangeUser(ymin,ymax);
653  h_unordered3179_r20->GetYaxis()->SetTitle("Counts");
654  h_unordered3179_r20->GetXaxis()->SetTitle("Gain Factor");
655  h_unordered3179_r20->Draw("");
656 
657 
658  TCanvas *c4 = new TCanvas("c4","c4 plot_gain_factors",200,10,700,700);
659  c4->Divide(2,2);
660  // c4->SetGridx();
661  // c4->SetGridy();
662  // c4->SetLogz();
663 
664  Float_t zmin=0.8;
665  Float_t zmax=1.6;
666  c4->cd(1);
667  runnum = 3180;
668 
669  sprintf(string,"Electron Gain Factors Run%4d\n",runnum);
670  h_yvsx3180_r20_60->SetTitle(string);
671  h_yvsx3180_r20_60->GetZaxis()->SetRangeUser(zmin,zmax);
672  h_yvsx3180_r20_60->GetYaxis()->SetTitle("y");
673  h_yvsx3180_r20_60->GetXaxis()->SetTitle("x");
674  h_yvsx3180_r20_60->Draw("colz");
675 
676  Float_t ymin=0;
677  Float_t ymax=150;
678  c4->cd(2);
679 
680  h_unordered3180_r20_60->SetTitle(string);;
681  h_unordered3180_r20_60->GetYaxis()->SetRangeUser(ymin,ymax);
682  h_unordered3180_r20_60->GetYaxis()->SetTitle("Counts");
683  h_unordered3180_r20_60->GetXaxis()->SetTitle("Gain Factor");
684  h_unordered3180_r20_60->Draw("");
685 
686  Float_t zmin=0.8;
687  Float_t zmax=1.6;
688  c4->cd(3);
689 
690  sprintf(string,"Electron Gain Factors Run%4d\n",runnum);
691  h_yvsx3180_r20->SetTitle(string);
692  h_yvsx3180_r20->GetZaxis()->SetRangeUser(zmin,zmax);
693  h_yvsx3180_r20->GetYaxis()->SetTitle("y");
694  h_yvsx3180_r20->GetXaxis()->SetTitle("x");
695  h_yvsx3180_r20->Draw("colz");
696 
697  Float_t ymin=0;
698  Float_t ymax=150;
699  c4->cd(4);
700 
701  h_unordered3180_r20->SetTitle(string);;
702  h_unordered3180_r20->GetYaxis()->SetRangeUser(ymin,ymax);
703  h_unordered3180_r20->GetYaxis()->SetTitle("Counts");
704  h_unordered3180_r20->GetXaxis()->SetTitle("Gain Factor");
705  h_unordered3180_r20->Draw("");
706 
707 
708  TCanvas *c5 = new TCanvas("c5","c5 plot_gain_factors",200,10,700,700);
709  c5->Divide(2,2);
710  // c5->SetGridx();
711  // c5->SetGridy();
712  // c5->SetLogz();
713 
714  Float_t zmin=0.8;
715  Float_t zmax=1.6;
716  c5->cd(1);
717  runnum = 3182;
718 
719  sprintf(string,"Electron Gain Factors Run%4d\n",runnum);
720  h_yvsx3182_r20_60->SetTitle(string);
721  h_yvsx3182_r20_60->GetZaxis()->SetRangeUser(zmin,zmax);
722  h_yvsx3182_r20_60->GetYaxis()->SetTitle("y");
723  h_yvsx3182_r20_60->GetXaxis()->SetTitle("x");
724  h_yvsx3182_r20_60->Draw("colz");
725 
726  Float_t ymin=0;
727  Float_t ymax=150;
728  c5->cd(2);
729 
730  h_unordered3182_r20_60->SetTitle(string);;
731  h_unordered3182_r20_60->GetYaxis()->SetRangeUser(ymin,ymax);
732  h_unordered3182_r20_60->GetYaxis()->SetTitle("Counts");
733  h_unordered3182_r20_60->GetXaxis()->SetTitle("Gain Factor");
734  h_unordered3182_r20_60->Draw("");
735 
736  Float_t zmin=0.8;
737  Float_t zmax=1.6;
738  c5->cd(3);
739 
740  sprintf(string,"Electron Gain Factors Run%4d\n",runnum);
741  h_yvsx3182_r20->SetTitle(string);
742  h_yvsx3182_r20->GetZaxis()->SetRangeUser(zmin,zmax);
743  h_yvsx3182_r20->GetYaxis()->SetTitle("y");
744  h_yvsx3182_r20->GetXaxis()->SetTitle("x");
745  h_yvsx3182_r20->Draw("colz");
746 
747  Float_t ymin=0;
748  Float_t ymax=150;
749  c5->cd(4);
750 
751  h_unordered3182_r20->SetTitle(string);;
752  h_unordered3182_r20->GetYaxis()->SetRangeUser(ymin,ymax);
753  h_unordered3182_r20->GetYaxis()->SetTitle("Counts");
754  h_unordered3182_r20->GetXaxis()->SetTitle("Gain Factor");
755  h_unordered3182_r20->Draw("");
756 
757  TCanvas *c6 = new TCanvas("c6","c6 plot_gain_factors",200,10,700,700);
758  c6->Divide(2,2);
759  // c6->SetGridx();
760  // c6->SetGridy();
761  // c6->SetLogz();
762 
763  c6->cd(1);
764 
765  h3079_2931->SetTitle("");
766  // h3079_2931->GetYaxis()->SetRangeUser(ymin,ymax);
767  h3079_2931->GetYaxis()->SetTitle("Gain R3079");
768  h3079_2931->GetXaxis()->SetTitle("Gain R2931");
769  h3079_2931->Draw("colz");
770  TLine *diag = new TLine (0,0,2,2);
771  diag->SetLineColor(2);
772  diag->SetLineWidth(2);
773  diag->Draw();
774 
775  c6->cd(2);
776 
777  h3179_2931->SetTitle("");
778  // h3179_2931->GetYaxis()->SetRangeUser(ymin,ymax);
779  h3179_2931->GetYaxis()->SetTitle("Gain R3179");
780  h3179_2931->GetXaxis()->SetTitle("Gain R2931");
781  h3179_2931->Draw("colz");
782  TLine *diag = new TLine (0,0,2,2);
783  diag->SetLineColor(2);
784  diag->SetLineWidth(2);
785  diag->Draw();
786 
787  c6->cd(3);
788 
789  h3180_2931->SetTitle("");
790  // h3180_2931->GetYaxis()->SetRangeUser(ymin,ymax);
791  h3180_2931->GetYaxis()->SetTitle("Gain R3180");
792  h3180_2931->GetXaxis()->SetTitle("Gain R2931");
793  h3180_2931->Draw("colz");
794  TLine *diag = new TLine (0,0,2,2);
795  diag->SetLineColor(2);
796  diag->SetLineWidth(2);
797  diag->Draw();
798 
799  c6->cd(4);
800 
801  h3182_2931->SetTitle("");
802  // h3182_2931->GetYaxis()->SetRangeUser(ymin,ymax);
803  h3182_2931->GetYaxis()->SetTitle("Gain R3182");
804  h3182_2931->GetXaxis()->SetTitle("Gain R2931");
805  h3182_2931->Draw("colz");
806  TLine *diag = new TLine (0,0,2,2);
807  diag->SetLineColor(2);
808  diag->SetLineWidth(2);
809  diag->Draw();
810 
811 
812  TCanvas *c7 = new TCanvas("c7","c7 plot_gain_factors",200,10,700,700);
813  c7->Divide(2,2);
814  // c7->SetGridx();
815  // c7->SetGridy();
816  // c7->SetLogz();
817 
818  c7->cd(1);
819 
820  h3079_2931_r20_60->SetTitle("");
821  // h3079_2931_r20_60->GetYaxis()->SetRangeUser(ymin,ymax);
822  h3079_2931_r20_60->GetYaxis()->SetTitle("Gain R3079");
823  h3079_2931_r20_60->GetXaxis()->SetTitle("Gain R2931");
824  h3079_2931_r20_60->Draw("colz");
825  TLine *diag = new TLine (0,0,2,2);
826  diag->SetLineColor(2);
827  diag->SetLineWidth(2);
828  diag->Draw();
829 
830  c7->cd(2);
831 
832  h3179_2931_r20_60->SetTitle("");
833  // h3179_2931_r20_60->GetYaxis()->SetRangeUser(ymin,ymax);
834  h3179_2931_r20_60->GetYaxis()->SetTitle("Gain R3179");
835  h3179_2931_r20_60->GetXaxis()->SetTitle("Gain R2931");
836  h3179_2931_r20_60->Draw("colz");
837  TLine *diag = new TLine (0,0,2,2);
838  diag->SetLineColor(2);
839  diag->SetLineWidth(2);
840  diag->Draw();
841 
842  c7->cd(3);
843 
844  h3180_2931_r20_60->SetTitle("");
845  // h3180_2931_r20_60->GetYaxis()->SetRangeUser(ymin,ymax);
846  h3180_2931_r20_60->GetYaxis()->SetTitle("Gain R3180");
847  h3180_2931_r20_60->GetXaxis()->SetTitle("Gain R2931");
848  h3180_2931_r20_60->Draw("colz");
849  TLine *diag = new TLine (0,0,2,2);
850  diag->SetLineColor(2);
851  diag->SetLineWidth(2);
852  diag->Draw();
853 
854  c7->cd(4);
855 
856  h3182_2931_r20_60->SetTitle("");
857  // h3182_2931_r20_60->GetYaxis()->SetRangeUser(ymin,ymax);
858  h3182_2931_r20_60->GetYaxis()->SetTitle("Gain R3182");
859  h3182_2931_r20_60->GetXaxis()->SetTitle("Gain R2931");
860  h3182_2931_r20_60->Draw("colz");
861  TLine *diag = new TLine (0,0,2,2);
862  diag->SetLineColor(2);
863  diag->SetLineWidth(2);
864  diag->Draw();
865 
866 
867  TCanvas *c8 = new TCanvas("c8","c8 plot_gain_factors",200,10,700,700);
868  c8->Divide(2,2);
869  // c8->SetGridx();
870  // c8->SetGridy();
871  // c8->SetLogz();
872 
873  Float_t zmin=0.8;
874  Float_t zmax=1.6;
875  c8->cd(1);
876  runnum = 3182;
877 
878  sprintf(string,"Electron Gain Factors Run 3079-3182");
879  h_yvsx3079_3182_r20_60->SetTitle(string);
880  h_yvsx3079_3182_r20_60->GetZaxis()->SetRangeUser(zmin,zmax);
881  h_yvsx3079_3182_r20_60->GetYaxis()->SetTitle("y");
882  h_yvsx3079_3182_r20_60->GetXaxis()->SetTitle("x");
883  h_yvsx3079_3182_r20_60->Draw("colz");
884 
885  Float_t ymin=0;
886  Float_t ymax=150;
887  c8->cd(2);
888 
889  h_unordered3079_3182_r20_60->SetTitle(string);;
890  h_unordered3079_3182_r20_60->GetYaxis()->SetRangeUser(ymin,ymax);
891  h_unordered3079_3182_r20_60->GetYaxis()->SetTitle("Counts");
892  h_unordered3079_3182_r20_60->GetXaxis()->SetTitle("Gain Factor");
893  h_unordered3079_3182_r20_60->Fit("gaus");
894  h_unordered3079_3182_r20_60->Draw("");
895 
896  Float_t zmin=0.8;
897  Float_t zmax=1.6;
898  c8->cd(3);
899 
900  sprintf(string,"Electron Gain Factors Run 3079-3182");
901  h_yvsx3079_3182_r20->SetTitle(string);
902  h_yvsx3079_3182_r20->GetZaxis()->SetRangeUser(zmin,zmax);
903  h_yvsx3079_3182_r20->GetYaxis()->SetTitle("y");
904  h_yvsx3079_3182_r20->GetXaxis()->SetTitle("x");
905  h_yvsx3079_3182_r20->Draw("colz");
906 
907  Float_t ymin=0;
908  Float_t ymax=150;
909  c8->cd(4);
910 
911  h_unordered3079_3182_r20->SetTitle(string);;
912  h_unordered3079_3182_r20->GetYaxis()->SetRangeUser(ymin,ymax);
913  h_unordered3079_3182_r20->GetYaxis()->SetTitle("Counts");
914  h_unordered3079_3182_r20->GetXaxis()->SetTitle("Gain Factor");
915  h_unordered3079_3182_r20->Draw("");
916 
917 
918  TCanvas *c9 = new TCanvas("c9","c9 plot_gain_factors",200,10,700,700);
919  c9->Divide(2,2);
920  // c9->SetGridx();
921  // c9->SetGridy();
922  // c9->SetLogz();
923 
924  c9->cd(1);
925 
926  h3079_3182_2931_r20_60->SetTitle("");
927  // h3079_3182_2931_r20_60->GetYaxis()->SetRangeUser(ymin,ymax);
928  h3079_3182_2931_r20_60->GetYaxis()->SetTitle("Gain R3079-3182");
929  h3079_3182_2931_r20_60->GetXaxis()->SetTitle("Gain R2931");
930  h3079_3182_2931_r20_60->Draw("colz");
931  TLine *diag = new TLine (0,0,2,2);
932  diag->SetLineColor(2);
933  diag->SetLineWidth(2);
934  diag->Draw();
935 
936  c9->cd(2);
937 
938  h3079_3182_2931_r20->SetTitle("");
939  // h3079_3182_2931_r20->GetYaxis()->SetRangeUser(ymin,ymax);
940  h3079_3182_2931_r20->GetYaxis()->SetTitle("Gain R3079-3182");
941  h3079_3182_2931_r20->GetXaxis()->SetTitle("Gain R2931");
942  h3079_3182_2931_r20->Draw("colz");
943  TLine *diag = new TLine (0,0,2,2);
944  diag->SetLineColor(2);
945  diag->SetLineWidth(2);
946  diag->Draw();
947 
948  Float_t ymin=0;
949  Float_t ymax=150;
950  c9->cd(3);
951 
952  gRatio_r20_60->SetTitle(string);;
953  // gRatio_r20_60->GetYaxis()->SetRangeUser(ymin,ymax);
954  gRatio_r20_60->GetYaxis()->SetTitle("Counts");
955  gRatio_r20_60->GetXaxis()->SetTitle("Ratio R3079-3182/R2931 _r20_60");
956  gRatio_r20_60->Fit("gaus");
957  gRatio_r20_60->Draw("");
958 
959  Float_t ymin=0;
960  Float_t ymax=150;
961  c9->cd(4);
962 
963  gRatio_r20->SetTitle(string);;
964  // gRatio_r20->GetYaxis()->SetRangeUser(ymin,ymax);
965  gRatio_r20->GetYaxis()->SetTitle("Counts");
966  gRatio_r20->GetXaxis()->SetTitle("Ratio R3079-3182/R2931 _r20");
967  gRatio_r20->Fit("gaus");
968  gRatio_r20->Draw("");
969 
970 
971  TCanvas *c10 = new TCanvas("c10","c10 plot_gain_factors",200,10,700,700);
972  c10->Divide(2,2);
973  // c10->SetGridx();
974  // c10->SetGridy();
975  // c10->SetLogz();
976 
977  Float_t zmin=0.8;
978  Float_t zmax=1.6;
979  c10->cd(1);
980  runnum = 3182;
981 
982  sprintf(string,"Electron Gain Factors Run 2931-3182");
983  h_yvsx2931_3182_r20_60->SetTitle(string);
984  h_yvsx2931_3182_r20_60->GetZaxis()->SetRangeUser(zmin,zmax);
985  h_yvsx2931_3182_r20_60->GetYaxis()->SetTitle("y");
986  h_yvsx2931_3182_r20_60->GetXaxis()->SetTitle("x");
987  h_yvsx2931_3182_r20_60->Draw("colz");
988 
989  Float_t ymin=0;
990  Float_t ymax=150;
991  c10->cd(2);
992 
993  h_unordered2931_3182_r20_60->SetTitle(string);;
994  h_unordered2931_3182_r20_60->GetYaxis()->SetRangeUser(ymin,ymax);
995  h_unordered2931_3182_r20_60->GetYaxis()->SetTitle("Counts");
996  h_unordered2931_3182_r20_60->GetXaxis()->SetTitle("Gain Factor");
997  h_unordered2931_3182_r20_60->Fit("gaus");
998  h_unordered2931_3182_r20_60->Draw("");
999 
1000  Float_t zmin=0.8;
1001  Float_t zmax=1.6;
1002  c10->cd(3);
1003 
1004  sprintf(string,"Electron Gain Factors Run 2931-3182");
1005  h_yvsx2931_3182_r20->SetTitle(string);
1006  h_yvsx2931_3182_r20->GetZaxis()->SetRangeUser(zmin,zmax);
1007  h_yvsx2931_3182_r20->GetYaxis()->SetTitle("y");
1008  h_yvsx2931_3182_r20->GetXaxis()->SetTitle("x");
1009  h_yvsx2931_3182_r20->Draw("colz");
1010 
1011  Float_t ymin=0;
1012  Float_t ymax=150;
1013  c10->cd(4);
1014 
1015  h_unordered2931_3182_r20->SetTitle(string);;
1016  h_unordered2931_3182_r20->GetYaxis()->SetRangeUser(ymin,ymax);
1017  h_unordered2931_3182_r20->GetYaxis()->SetTitle("Counts");
1018  h_unordered2931_3182_r20->GetXaxis()->SetTitle("Gain Factor");
1019  h_unordered2931_3182_r20->Draw("");
1020 
1021  /*sprintf (string,"#sigma=%.2f\n",sigma);
1022  printf("string=%s",string);
1023  t1 = new TLatex(0.4,0.5,string);
1024  t1->SetNDC();
1025  t1->SetTextSize(0.07);
1026  t1->Draw();*/
1027 
1028  // print histograms
1029 
1030  sprintf(string,"plot_gain_factors.pdf(");
1031  c1->SaveAs(string);
1032  sprintf(string,"plot_gain_factors.pdf");
1033  c2->SaveAs(string);
1034  sprintf(string,"plot_gain_factors.pdf");
1035  c3->SaveAs(string);
1036  sprintf(string,"plot_gain_factors.pdf");
1037  c4->SaveAs(string);
1038  sprintf(string,"plot_gain_factors.pdf");
1039  c5->SaveAs(string);
1040  sprintf(string,"plot_gain_factors.pdf");
1041  c6->SaveAs(string);
1042  sprintf(string,"plot_gain_factors.pdf");
1043  c7->SaveAs(string);
1044  sprintf(string,"plot_gain_factors.pdf");
1045  c8->SaveAs(string);
1046  sprintf(string,"plot_gain_factors.pdf");
1047  c10->SaveAs(string);
1048  sprintf(string,"plot_gain_factors.pdf)");
1049  c9->SaveAs(string);
1050 
1051 
1052  // close files
1053 
1054  outgain.close();
1055 
1056  // in->Close();
1057 
1058 
1059 }
1060 
sprintf(text,"Post KinFit Cut")
double zmax
TFile * infile
Definition: tw_corr.C:45
Double_t c1[2][NMODULES]
Definition: tw_corr.C:68
Double_t c2[2][NMODULES]
Definition: tw_corr.C:69
Double_t ymin
Definition: bcal_hist_eff.C:89
TCanvas * c4
Double_t ymax
Definition: bcal_hist_eff.C:91
Int_t ndx
TCanvas * c3
printf("string=%s", string)
double zmin
void plot_gain_factors(void)