]> git.uio.no Git - u/mrichter/AliRoot.git/blob - CORRFW/test/CreateCorrectionContainer.C
L1phase shift corrected
[u/mrichter/AliRoot.git] / CORRFW / test / CreateCorrectionContainer.C
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 }