|
1 | 1 | # Example multiplicity calibration macros |
2 | 2 |
|
3 | | -You will find some example macros in this directory that will allow for the calculation of a glauber fit and the corresponding calibration histograms. |
| 3 | +You will find some example macros in this directory that will allow for the calculation of a glauber fit and the corresponding calibration histograms. |
4 | 4 |
|
5 | | -A simplified description of the procedure necessary to generate a |
6 | | -Glauber + NBD fit to a certain histogram is described below. |
| 5 | +A simplified description of the procedure necessary to generate a |
| 6 | +Glauber + NBD fit to a certain histogram is described below. |
7 | 7 |
|
8 | 8 | ## Performing a Glauber + NBD fit |
9 | 9 |
|
10 | | -### First step: calculation of Glauber MC sample |
| 10 | +### First step: calculation of Glauber MC sample |
11 | 11 |
|
12 | 12 | The Glauber + NBD model assumes that the multiplicity / amplitude |
13 | | -distribution that one intends to fit can be described as coming |
14 | | -from a certain number N_{ancestor} of particle-emitting sources called 'ancestors'. Each ancestor is assumed to produce particles |
15 | | -according to a negative binominal distribution. Further, |
16 | | -the number of ancestors is assumed to be related to the basic |
17 | | -glauber quantities N_{part} and N_{coll} via the formula: |
| 13 | +distribution that one intends to fit can be described as coming |
| 14 | +from a certain number N_{ancestor} of particle-emitting sources called 'ancestors'. Each ancestor is assumed to produce particles |
| 15 | +according to a negative binominal distribution. Further, |
| 16 | +the number of ancestors is assumed to be related to the basic |
| 17 | +glauber quantities N_{part} and N_{coll} via the formula: |
18 | 18 |
|
19 | | -N_{ancestor} = f * N_{part} + (1-f) N_{coll} |
| 19 | +N_{ancestor} = f * N_{part} + (1-f) N_{coll} |
20 | 20 |
|
21 | 21 | Usually, the value f is fixed at 0.8, and thus the range of |
22 | | -N_{ancestors} is typically 0-700 in Pb-Pb collisions. |
| 22 | +N_{ancestors} is typically 0-700 in Pb-Pb collisions. |
23 | 23 |
|
24 | | -In order to allow for Glauber + NBD fitting, the correlation of |
25 | | -(N_{part}, N_{coll}) needs to be known. For that purpose, |
26 | | -a tree of Glauber MC needs to be generated using TGlauberMC using the relevant nuclei, which also involves choosing an appropriate nuclear profile. |
| 24 | +In order to allow for Glauber + NBD fitting, the correlation of |
| 25 | +(N_{part}, N_{coll}) needs to be known. For that purpose, |
| 26 | +a tree of Glauber MC needs to be generated using TGlauberMC using the relevant nuclei, which also involves choosing an appropriate nuclear profile. |
27 | 27 |
|
28 | | -Once TGlauberMC has been used to produce a tree with N_{part} and |
29 | | -N_{coll} values, their correlation needs to be saved to a 2D histogram that serves as input to the Glauber + NBD fitter used in |
30 | | -O2/O2Physics. This is done using the macro called `saveCorrelation.C` contained in this directory, which produces a file named `baseHistos.root`. The file `saveCorrelation.C` serves as |
| 28 | +Once TGlauberMC has been used to produce a tree with N_{part} and |
| 29 | +N_{coll} values, their correlation needs to be saved to a 2D histogram that serves as input to the Glauber + NBD fitter used in |
| 30 | +O2/O2Physics. This is done using the macro called `saveCorrelation.C` contained in this directory, which produces a file named `baseHistos.root`. The file `saveCorrelation.C` serves as |
31 | 31 | an example for the Pb-Pb case and minor adaptation may be needed |
32 | | -in case other nuclei are to be used. |
| 32 | +in case other nuclei are to be used. |
33 | 33 |
|
34 | | -### Second step: execution of Glauber + NBD fitter |
| 34 | +### Second step: execution of Glauber + NBD fitter |
35 | 35 |
|
36 | | -The fitting procedure is done via the macro ``. Because |
37 | | -the numerical fitting utilizes a convolution of a N_{ancestor} |
38 | | -distribution and NBD distributions, it will not be as fast |
| 36 | +The fitting procedure is done via the macro ``. Because |
| 37 | +the numerical fitting utilizes a convolution of a N_{ancestor} |
| 38 | +distribution and NBD distributions, it will not be as fast |
39 | 39 | as typical one-dimensional fits: typical times of 10-100 seconds |
40 | | -are not unusual. The macro will produce an output file |
41 | | -that contains: |
| 40 | +are not unusual. The macro will produce an output file |
| 41 | +that contains: |
42 | 42 |
|
43 | | -* the original fitted histogram |
44 | | -* the actual glauber fit distribution, plotted all the way |
45 | | -to zero multiplicity |
| 43 | +* the original fitted histogram |
| 44 | +* the actual glauber fit distribution, plotted all the way |
| 45 | +to zero multiplicity |
46 | 46 |
|
47 | | -This output can then be used to extract percentiles. |
| 47 | +This output can then be used to extract percentiles. |
48 | 48 |
|
49 | | -### Third step: calculation of percentile boundaries |
| 49 | +### Third step: calculation of percentile boundaries |
50 | 50 |
|
51 | | -Once both the data and glauber fit distributions are known, |
| 51 | +Once both the data and glauber fit distributions are known, |
52 | 52 | the next step is to create a 'stitched' data/glauber distribution in |
53 | | -which the distribution at low multiplicities follows |
54 | | -the glauber fit and the distribution at higher multiplicities |
55 | | -follows the data. The multiplicity value in which the switch from |
56 | | -glauber to data takes place is called 'anchor point'. |
| 53 | +which the distribution at low multiplicities follows |
| 54 | +the glauber fit and the distribution at higher multiplicities |
| 55 | +follows the data. The multiplicity value in which the switch from |
| 56 | +glauber to data takes place is called 'anchor point'. |
57 | 57 |
|
58 | | -Because of the fact that this 'stitching' procedure may need to be tuned and the actual glauber fit is slow, the stitching is done |
59 | | -in a separate macro called `runCalibration.C`. It is provided |
| 58 | +Because of the fact that this 'stitching' procedure may need to be tuned and the actual glauber fit is slow, the stitching is done |
| 59 | +in a separate macro called `runCalibration.C`. It is provided |
60 | 60 | in this directory as well and it is the third and last step in calculating percentile boundaries. The macro will printout some |
61 | | -key boundaries as well as save an output file with the calibration. |
| 61 | +key boundaries as well as save an output file with the calibration. |
62 | 62 |
|
63 | | -*Bonus*: at the stage in which the glauber fit has been done |
| 63 | +*Bonus*: at the stage in which the glauber fit has been done |
64 | 64 | and all information is available, a de-convolution process |
65 | | -can be used to calculate the average N_{part} and N_{coll} |
66 | | -in centrality slices. This functionality is also provided |
| 65 | +can be used to calculate the average N_{part} and N_{coll} |
| 66 | +in centrality slices. This functionality is also provided |
67 | 67 | in O2Physics as part of the `multGlauberNBDFitter` and the |
68 | | -`runCalibration.C` macro can optionally also perform that |
69 | | -deconvolution. *Warning*: this procedure might take a mooment. |
| 68 | +`runCalibration.C` macro can optionally also perform that |
| 69 | +deconvolution. *Warning*: this procedure might take a mooment. |
0 commit comments