|
| 1 | +--- |
| 2 | +sort: 1 |
| 3 | +title: Multiplicity and centrality selection |
| 4 | +--- |
| 5 | + |
| 6 | +# Multiplicity and centrality selection in O2 |
| 7 | + |
| 8 | +## Multiplicity selection concept |
| 9 | + |
| 10 | +The multiplicity and centrality selection in O2 is based on the concept of derived tables created in dedicated tasks from available AOD contents: |
| 11 | + |
| 12 | +* _o2-analysis-multiplicity-table_ task [`Common/TableProducer/multiplicityTable.cxx`](https://github.com/AliceO2Group/O2Physics/blob/master/Common/TableProducer/multiplicityTable.cxx) stores relevant multiplicity values (V0A, V0C, ZNA, ZNC) and their dynamic sums (V0M) in [`Mults`](https://github.com/AliceO2Group/O2Physics/blob/master/Common/DataModel/Multiplicity.h) table joinable with _Collisions_ table. |
| 13 | +* _o2-analysis-multiplicity-qa_ task [`Common/Tasks/multiplicityQa.cxx`](https://github.com/AliceO2Group/O2Physics/blob/master/Common/Tasks/multiplicityQa.cxx) creates multiplicity distributions in minimum bias triggers necessary for centrality calibration. |
| 14 | +* _o2-analysis-centrality-table_ task [`Common/TableProducer/centralityTable.cxx`](https://github.com/AliceO2Group/O2Physics/blob/master/Common/TableProducer/centralityTable.cxx) takes multiplicity values from the [`Mults`](https://github.com/AliceO2Group/O2Physics/blob/master/Common/DataModel/Multiplicity.h) table and stores centrality values in [`Cents`](https://github.com/AliceO2Group/O2Physics/blob/master/Common/DataModel/Centrality.h) table joinable with _Collisions_ table. Relevant cumulative multiplicity distributions are stored in [CCDB](http://alice-ccdb.cern.ch/browse/Centrality). The centrality calibration relies on 90% anchor points in Pb-Pb. |
| 15 | +* _o2-analysis-centrality-qa_ task [`Common/Tasks/centralityQa.cxx`](https://github.com/AliceO2Group/O2Physics/blob/master/Common/Tasks/centralityQa.cxx) creates centrality distributions for minimum bias triggers and can be used for control and QA purposes. |
| 16 | + |
| 17 | +Note that _o2-analysis-multiplicity-qa_ and _o2-analysis-centrality-qa_ tasks rely on the minimum bias trigger selection therefore one has to run event selection in stack with these tasks. |
| 18 | + |
| 19 | +## Multiplicity selection usage in user tasks |
| 20 | + |
| 21 | +One can check _o2-analysis-centrality-qa_ task for example usage: [`Common/Tasks/centralityQa.cxx`](https://github.com/AliceO2Group/O2Physics/blob/master/Common/Tasks/centralityQa.cxx). Usually, analysers perform event selection before the centrality selection therefore one has to consider the following steps: |
| 22 | + |
| 23 | +* add [`EventSelection.h`](https://github.com/AliceO2Group/O2Physics/blob/master/Common/DataModel/EventSelection.h) and [`Centrality.h`](https://github.com/AliceO2Group/O2Physics/blob/master/Common/DataModel/Centrality.h) headers: |
| 24 | + |
| 25 | + ``` c++ |
| 26 | + #include "Common/DataModel/EventSelection.h" |
| 27 | + #include "Common/DataModel/Centrality.h" |
| 28 | + ``` |
| 29 | + |
| 30 | +* join _Collisions_, _EvSels_ and _Cents_ tables and use corresponding iterator as an argument of the process function: |
| 31 | + |
| 32 | + ``` c++ |
| 33 | + void process(soa::Join<aod::Collisions, aod::EvSels, aod::Cents>::iterator const& col, ...) |
| 34 | + ``` |
| 35 | + |
| 36 | +* check if your trigger alias is fired if you run over Run1 or Run2 data (or future triggered Run3 data): |
| 37 | + |
| 38 | + ``` c++ |
| 39 | + if (!col.alias_bit(kINT7)) |
| 40 | + return; |
| 41 | + ``` |
| 42 | + |
| 43 | + Bypass this check if you analyse MC or future continuous Run3 data. |
| 44 | +* apply further offline selection criteria: |
| 45 | + |
| 46 | + ``` c++ |
| 47 | + if (!col.sel7()) |
| 48 | + return; |
| 49 | + ``` |
| 50 | + |
| 51 | +* apply centrality selection, for example: |
| 52 | + |
| 53 | + ``` c++ |
| 54 | + // analyse 0-20% central events |
| 55 | + if (col.centV0M()>20) |
| 56 | + return; |
| 57 | + ``` |
| 58 | + |
| 59 | +* run your tasks in stack with timestamp, event-selection, multiplicity and centrality tasks: |
| 60 | + |
| 61 | + ``` bash |
| 62 | + o2-analysis-timestamp --aod-file AO2D.root -b | o2-analysis-event-selection -b | o2-analysis-mulitplicity-table -b | o2-analysis-centrality-table -b | o2-analysis-user-task -b |
| 63 | + ``` |
| 64 | + |
| 65 | + _o2-analysis-timestamp_ task is required to create per-event timestamps necessary to access relevant CCDB objects in the event selection and/or centrality tasks. |
| 66 | + |
| 67 | + _o2-analysis-zdc-converter_ and _o2-analysis-collision-converter_ might be also necessary for old datasets to account for changes in the data model. |
| 68 | + |
0 commit comments