1 AliCFContainer* CreateCorrectionContainer(const char* string) {
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
11 20 , //bins in Z_Vertex
12 20 //bins in multiplicity
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)
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];
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 ;
37 //for non-uniform binning :
50 binLim[0][10] = 10.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 ;
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) ;
82 for (UInt_t iVar=0; iVar<nVar; iVar++) container->SetBinLimits(iVar,binLim[iVar]);