]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGCF/Correlations/JCORRAN/AliJEbePercentile.cxx
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGCF / Correlations / JCORRAN / AliJEbePercentile.cxx
CommitLineData
a5c83ba9 1#include <TGrid.h>
2#include "AliJEbePercentile.h"
3
4//______________________________________________________________________________
5AliJEbePercentile::AliJEbePercentile():
6 fFile(NULL),
7 fCard(NULL)
8{
9}
10//______________________________________________________________________________
11AliJEbePercentile::AliJEbePercentile(const AliJEbePercentile& obj):
12 fFile(obj.fFile),
13 fCard(obj.fCard)
14{
15 // copy constructor
16}
17
18AliJEbePercentile::AliJEbePercentile(AliJCard *fcard, TString input):
19 fFile(NULL),
20 fCard(NULL)
21{
22
23 fCard = fcard;
24 cout << input << endl;
25
26 if (TString(input).BeginsWith("alien:")) TGrid::Connect("alien:");
27 fFile = TFile::Open(input);
28
29 fFile->Print();
30
31 for(int ibv = 0; ibv < NBVn ; ibv++){
32 vnPercentile[ibv] = ibv*1.0/NBVn;
33 }
34
35 TString name;
36 int NH = 4;
37 for(int ic = 0; ic<fCard->GetNoOfBins(kCentrType);ic++){
38 for(int ih=2;ih<NH;ih++) {
39 name = "hVnObsVector";
40 vnobs[ih][ic] = (TH1D*)fFile->Get(name.Append(Form("%02d%02d",ic,ih)));
41 }
42 }
43
44 double entr;
45 double sum;
46 int found[NBVn];
47
48 for(int ic = 0 ; ic < fCard->GetNoOfBins(kCentrType); ic++){
49 for(int ih = 2; ih < NH ; ih++){
50 vnLimit[ih][ic][0]=1;
51 vnLimit[ih][ic][NBVn-1]=0;
52 for(int ibv = 1 ; ibv < NBVn ; ibv++){
53 found[ibv] = 0;
54 }
55 sum = 0;
56 entr = vnobs[ih][ic]->GetEntries();
57 //cout << "Centrality " << ic << " of " << NC ;
58 //cout << " Harmonic " << ih << " of " << NH << endl;
59 for(int ib = 1; ib < vnobs[ih][ic]->GetNbinsX() +1 ; ib++){
60 sum = sum + vnobs[ih][ic]->GetBinContent(ib);
61 for(int ibv = 1; ibv < NBVn ; ibv++){
62 if( sum/entr > 1- vnPercentile[ibv] && found[ibv] == 0){
63 //cout << "top " << vnpercentile[ibv]*100 << "% limit: " << vnobs[ih][ic]->GetBinCenter(ib) << endl;
64 found[ibv] = 1;
65 vnLimit[ih][ic][ibv] = vnobs[ih][ic]->GetBinCenter(ib);
66 }
67 }
68
69 }
70 }
71 }
72}
73
74
75
76
77//______________________________________________________________________________
78AliJEbePercentile& AliJEbePercentile::operator=(const AliJEbePercentile& obj){
79 // copy constructor
80 JUNUSED(obj);
81 return *this;
82}
83
84
85double AliJEbePercentile::GetEbeFlowPercentile(int cBin, int ih, double vn){
86 double pecentile = -1;
87 for(int ibv = 0 ; ibv < NBVn ; ibv++){
88 if(vn > vnLimit[cBin][ih][ibv]){
89 pecentile = vnPercentile[ibv];
90 }
91 }
92 return pecentile;
93}
94