]> git.uio.no Git - u/mrichter/AliRoot.git/blame - CORRFW/test/CreateCorrectionContainer.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / CORRFW / test / CreateCorrectionContainer.C
CommitLineData
f6338310 1AliCFContainer* 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}