]>
Commit | Line | Data |
---|---|---|
f6338310 | 1 | AliCFContainer* CreateCorrectionContainer(const char* string) { |
2 | ||
3 | const UInt_t nVar = 5 ; //number of variables on the grid | |
4 | //(pt=0, eta=1, phi=2, Z_Vertex=3, event multiplicity=4) | |
5 | const UInt_t nStep = 2 ; //number of selection steps :2 (ESD=0,AOD=1) | |
6 | const UInt_t nBin[nVar] = //number of bins for each variable | |
7 | { | |
8 | 10 , //bins in pt | |
9 | 20 , //bins in eta | |
10 | 20 , //bins in phi | |
11 | 20 , //bins in Z_Vertex | |
12 | 20 //bins in multiplicity | |
13 | }; | |
14 | ||
15 | //values for bin lower bounds | |
16 | Double_t valuesMinMax[nVar][2] ; | |
17 | valuesMinMax[0][0] = 0.0 ; // pt min (GeV/c) | |
18 | valuesMinMax[0][1] = 10.0 ; // pt max (GeV/c) | |
19 | valuesMinMax[1][0] = - 2.5 ; // eta min | |
20 | valuesMinMax[1][1] = 2.5 ; // eta max | |
21 | valuesMinMax[2][0] = 0.0 ; // phi min (rad) | |
22 | valuesMinMax[2][1] = 2*TMath::Pi() ; // phi max (rad) | |
23 | valuesMinMax[3][0] = -20.0 ; // zVtx min (cm) | |
24 | valuesMinMax[3][1] = 20.0 ; // zVtx max (cm) | |
25 | valuesMinMax[4][0] = 0.0 ; // zVtx min (cm) | |
26 | valuesMinMax[4][1] = 200.0 ; // zVtx max (cm) | |
27 | ||
28 | //arrays for lower bounds : | |
29 | Double_t *binLim[nVar] ; | |
30 | for (UInt_t iVar=0; iVar<nVar; iVar++) binLim[iVar] = new Double_t[nBin[iVar]+1]; | |
31 | ||
32 | // fill bin limits using uniform binning between the defined min and max values. | |
33 | for (UInt_t iVar=0; iVar<nVar; iVar++) | |
34 | for (UInt_t iBin=0; iBin<=nBin[iVar]; iBin++) | |
35 | binLim[iVar][iBin] = valuesMinMax[iVar][0] + (valuesMinMax[iVar][1]-valuesMinMax[iVar][0])/nBin[iVar]*iBin ; | |
36 | ||
37 | //for non-uniform binning : | |
38 | ||
39 | //pt | |
40 | binLim[0][0] = 0.0 ; | |
41 | binLim[0][1] = 0.2 ; | |
42 | binLim[0][2] = 0.4 ; | |
43 | binLim[0][3] = 0.7 ; | |
44 | binLim[0][4] = 1.0 ; | |
45 | binLim[0][5] = 1.5 ; | |
46 | binLim[0][6] = 2.0 ; | |
47 | binLim[0][7] = 3.0 ; | |
48 | binLim[0][8] = 4.0 ; | |
49 | binLim[0][9] = 6.0 ; | |
50 | binLim[0][10] = 10.0 ; | |
51 | ||
52 | //multiplicity | |
53 | binLim[4][0] = 0.0 ; | |
54 | binLim[4][1] = 2.0 ; | |
55 | binLim[4][2] = 4.0 ; | |
56 | binLim[4][3] = 6.0 ; | |
57 | binLim[4][4] = 8.0 ; | |
58 | binLim[4][5] = 10.0 ; | |
59 | binLim[4][6] = 15.0 ; | |
60 | binLim[4][7] = 20.0 ; | |
61 | binLim[4][8] = 25.0 ; | |
62 | binLim[4][9] = 30.0 ; | |
63 | binLim[4][10] = 35.0 ; | |
64 | binLim[4][11] = 40.0 ; | |
65 | binLim[4][12] = 50.0 ; | |
66 | binLim[4][13] = 60.0 ; | |
67 | binLim[4][14] = 70.0 ; | |
68 | binLim[4][15] = 80.0 ; | |
69 | binLim[4][16] = 100.0 ; | |
70 | binLim[4][17] = 120.0 ; | |
71 | binLim[4][18] = 140.0 ; | |
72 | binLim[4][19] = 170.0 ; | |
73 | binLim[4][20] = 200.0 ; | |
74 | ||
75 | // create a container | |
76 | char contName[50]; | |
77 | char contDesc[50]; | |
78 | sprintf(contName,"container_%s",string); | |
79 | sprintf(contDesc,"correction container for %s",string); | |
80 | AliCFContainer* container = new AliCFContainer (contName,contDesc,nStep,nVar,(Int_t*)nBin) ; | |
81 | // set the bin limits | |
82 | for (UInt_t iVar=0; iVar<nVar; iVar++) container->SetBinLimits(iVar,binLim[iVar]); | |
83 | return container; | |
84 | } |