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