Separate libraries for MUONdep and MUONlite
[u/mrichter/AliRoot.git] / PWG0 / dNdPt / macros / plots / readPythia306.C
1 Int_t readPythia306() 
2 {
3 // read PYTHIA 306 INEL data from file
4
5 cout << endl;
6 cout << "================================" << endl;
7 cout << endl;
8 cout << "read PHYTIA 306 INEL data from file" <<endl;
9 cout << "Number of bins: " << binsPythia306 <<endl;
10 cout << "Filename:       " << filenamePythia306 <<endl;
11 cout << endl;
12 cout << "================================" << endl;
13 cout << endl;
14
15 TFile* filePythia306 = new TFile(filenamePythia306,"OPEN");
16 nEventsPythia306 = ((TH1F*)filePythia306->Get("eventsINEL"))->GetBinContent(1);
17
18 TH1F* histPythia306 = (TH1F*)filePythia306->Get("ptINEL");
19
20 int bins = 0;
21 for (int i=0; i < histPythia306->GetNbinsX(); i++) {
22     if (histPythia306->GetBinContent(i) > 0 ) {
23         centerPtPythia306[bins]    = histPythia306->GetBinCenter(i);
24         ptPythia306[bins]          = centerPtPythia306[bins];
25         widthPtPythia306[bins]     = histPythia306->GetBinWidth(i);        
26         errPtPythia306[bins]       = widthPtPythia306[bins] / 2.0;
27         lowPtPythia306[bins]       = centerPtPythia306[bins] - errPtPythia306[bins];
28         highPtPythia306[bins]      = centerPtPythia306[bins] + errPtPythia306[bins];
29         
30         inelPythia306[bins]        = histPythia306->GetBinContent(i) / (nEventsPythia306 * etaRange * 2 * M_PI * ptPythia306[bins]);
31         errInelPythia306[bins]     = histPythia306->GetBinError(i) / (nEventsPythia306 * etaRange * 2 * M_PI * ptPythia306[bins]);
32         lowErrInelPythia306[bins]  = inelPythia306[bins] - errInelPythia306[bins];
33         highErrInelPythia306[bins] = inelPythia306[bins] + errInelPythia306[bins];
34         relErrInelPythia306[bins]  = errInelPythia306[bins] / inelPythia306[bins];
35         
36         
37         
38         
39         
40         centerPt2PiPtPythia306[bins]    = histPythia306->GetBinCenter(i);
41         pt2PiPtPythia306[bins]          = centerPt2PiPtPythia306[bins];
42         widthPt2PiPtPythia306[bins]     = histPythia306->GetBinWidth(i);        
43         errPt2PiPtPythia306[bins]       = widthPt2PiPtPythia306[bins] / 2.0;
44         lowPt2PiPtPythia306[bins]       = centerPt2PiPtPythia306[bins] - errPt2PiPtPythia306[bins];
45         highPt2PiPtPythia306[bins]      = centerPt2PiPtPythia306[bins] + errPt2PiPtPythia306[bins];        
46         inel2PiPtPythia306[bins]        = histPythia306->GetBinContent(i) / (nEventsPythia306 * etaRange);
47         errInel2PiPtPythia306[bins]     = histPythia306->GetBinError(i) / (nEventsPythia306 * etaRange);
48         lowErrInel2PiPtPythia306[bins]  = inel2PiPtPythia306[bins] - errInel2PiPtPythia306[bins];
49         highErrInel2PiPtPythia306[bins] = inel2PiPtPythia306[bins] + errInel2PiPtPythia306[bins];
50         relErrInel2PiPtPythia306[bins]  = errInel2PiPtPythia306[bins] / inel2PiPtPythia306[bins];         
51         
52         
53         
54         
55         
56         
57         
58         
59         cout << "ptPythia306[" << bins << "]              = " << ptPythia306[bins] <<endl;
60         cout << "   centerPtPythia306[" << bins << "]     = " << centerPtPythia306[bins] <<endl;
61         cout << "   widthPtPythia306[" << bins << "]      = " << widthPtPythia306[bins] <<endl;
62         cout << "   errPtPythia306[" << bins << "]        = " << errPtPythia306[bins] <<endl;
63         cout << "   lowPtPythia306[" << bins << "]        = " << lowPtPythia306[bins] <<endl;
64         cout << "   highPtPythia306[" << bins << "]       = " << highPtPythia306[bins] <<endl;
65         cout << "inelPythia306[" << bins << "]            = " << inelPythia306[bins] <<endl;        
66         cout << "errInelPythia306[" << bins << "]         = " << errInelPythia306[bins] <<endl;
67         cout << "   lowErrInelPythia306[" << bins << "]   = " << lowErrInelPythia306[bins] <<endl;
68         cout << "   highErrInelPythia306[" << bins << "]  = " << highErrInelPythia306[bins] <<endl;
69         cout << "   relErrInelPythia306[" << bins << "]   = " << relErrInelPythia306[bins] <<endl;
70         cout << endl;
71         bins++;
72     }
73 }
74
75 filePythia306->Close();
76
77 cout << "================================" << endl;
78 cout << endl;
79 cout << "Finished reading PYTHIA 306 INEL data" <<endl;
80 cout << "Number of bins read: " << bins <<endl;
81 cout << endl;
82 cout << "================================" << endl;
83 cout << endl;
84
85 return bins;
86 }