Multiplicity and centrality selection in O2
Multiplicity selection concept
The multiplicity and centrality selection in O2 is based on the concept of derived tables created in dedicated tasks from available AOD contents:
- o2-analysis-multiplicity-table task
Common/TableProducer/multiplicityTable.cxxstores relevant multiplicity values (V0A, V0C, ZNA, ZNC) and their dynamic sums (V0M) inMultstable joinable with Collisions table. - o2-analysis-multiplicity-qa task
Common/Tasks/multiplicityQa.cxxcreates multiplicity distributions in minimum bias triggers necessary for centrality calibration. - o2-analysis-centrality-table task
Common/TableProducer/centralityTable.cxxtakes multiplicity values from theMultstable and stores centrality values inCentstable joinable with Collisions table. Relevant cumulative multiplicity distributions are stored in CCDB. The centrality calibration relies on 90% anchor points in Pb-Pb. - o2-analysis-centrality-qa task
Common/Tasks/centralityQa.cxxcreates centrality distributions for minimum bias triggers and can be used for control and QA purposes.
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.
Multiplicity selection usage in user tasks
One can check o2-analysis-centrality-qa task for example usage: Common/Tasks/centralityQa.cxx. Usually, analysers perform event selection before the centrality selection therefore one has to consider the following steps:
-
add
EventSelection.handCentrality.hheaders:#include "Common/DataModel/EventSelection.h" #include "Common/DataModel/Centrality.h" -
join Collisions, EvSels and Cents tables and use corresponding iterator as an argument of the process function:
void process(soa::Join<aod::Collisions, aod::EvSels, aod::Cents>::iterator const& col, ...) -
check if your trigger alias is fired if you run over Run1 or Run2 data (or future triggered Run3 data):
if (!col.alias_bit(kINT7)) return;Bypass this check if you analyse MC or future continuous Run3 data.
-
apply further offline selection criteria:
if (!col.sel7()) return; -
apply centrality selection, for example:
// analyse 0-20% central events if (col.centV0M()>20) return; -
run your tasks in stack with timestamp, event-selection, multiplicity and centrality tasks:
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 -bo2-analysis-timestamp task is required to create per-event timestamps necessary to access relevant CCDB objects in the event selection and/or centrality tasks.
o2-analysis-zdc-converter and o2-analysis-collision-converter might be also necessary for old datasets to account for changes in the data model.
