Multiplicity and centrality selection in O2
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
Analysis/Tasks/multiplicityTable.cxxstores relevant multiplicity values (V0A, V0C, ZNA, ZNC) and their dynamic sums (V0M) inMultstable joinable wih Collisions table. - o2-analysis-multiplicity-qa task
Analysis/Tasks/multiplicityQa.cxxcreates multiplicity distributions in minimum bias triggers necessary for centrality calibration. - o2-analysis-centrality-table task
Analysis/Tasks/centralityTable.cxxtakes multiplicity values from theMultstable and stores centrality values inCentstable joinable with Collisions table. Relevant cumulative multiplicity distributions are stored in CCDB. At the moment, centrality calibration objects are available only for LHC15o. The centrality calibration relies on 90% anchor points but doesn't take into account vertex dependence yet. The difference with AliPhysics centrality calibration doesn't exceed 0.5%. - o2-analysis-centrality-qa task
Analysis/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, see here for more details.
Usage in user tasks
One can check o2-analysis-centrality-qa task for example usage: Analysis/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 "Analysis/EventSelection.h" #include "Analysis/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()[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
Analysis/Tasks/timestamp.cxxis required to create per-event timestamps necessary to access relevant CCDB objects in the event selection and/or centrality tasks.