Project
Loading...
Searching...
No Matches
AnalysisDataModel.h File Reference
#include "Framework/ASoA.h"
#include <cmath>
#include <bitset>
#include <limits>
#include <numeric>
#include "Framework/DataTypes.h"
#include "CommonConstants/MathConstants.h"
#include "CommonConstants/PhysicsConstants.h"
#include "CommonConstants/GeomConstants.h"
#include "CommonConstants/ZDCConstants.h"
#include "SimulationDataFormat/MCGenProperties.h"
#include "Framework/PID.h"

Go to the source code of this file.

Namespaces

namespace  o2
 a couple of static helper functions to create timestamp values for CCDB queries or override obsolete objects
 
namespace  o2::aod
 
namespace  o2::aod::bc
 
namespace  o2::aod::timestamp
 
namespace  o2::soa
 
namespace  o2::aod::collision
 
namespace  o2::aod::track
 
namespace  o2::aod::track::v001
 
namespace  o2::aod::track::v001::extensions
 
namespace  o2::aod::trackqa
 
namespace  o2::aod::fwdtrack
 
namespace  o2::aod::fwdtrack::v001
 
namespace  o2::aod::ambiguous
 
namespace  o2::aod::fwdtrkcl
 
namespace  o2::aod::hmpid
 
namespace  o2::aod::calo
 
namespace  o2::aod::calotrigger
 
namespace  o2::aod::cpvcluster
 
namespace  o2::aod::zdc
 
namespace  o2::aod::fv0a
 
namespace  o2::aod::fv0c
 
namespace  o2::aod::ft0
 
namespace  o2::aod::fdd
 
namespace  o2::aod::v0
 
namespace  o2::aod::cascade
 
namespace  o2::aod::decay3body
 
namespace  o2::aod::strangenesstracking
 
namespace  o2::aod::origins
 
namespace  o2::aod::run2
 
namespace  o2::aod::run2::oftv0
 total number of SSD + SDD clusters (for ev sel)
 
namespace  o2::aod::mccollision
 
namespace  o2::aod::mcparticle
 
namespace  o2::aod::mctracklabel
 
namespace  o2::aod::mcmfttracklabel
 
namespace  o2::aod::mcfwdtracklabel
 
namespace  o2::aod::mccalolabel
 
namespace  o2::aod::mccollisionlabel
 
namespace  o2::aod::hepmcxsection
 
namespace  o2::aod::hepmcpdfinfo
 
namespace  o2::aod::hepmcheavyion
 
namespace  o2::aod::indices
 

Macros

#define INDEX_LIST_RUN2   indices::CollisionId, indices::ZdcId, indices::BCId, indices::FT0Id, indices::FV0AId, indices::FV0CId, indices::FDDId
 
#define INDEX_LIST_RUN3   indices::CollisionId, indices::ZdcId, indices::BCId, indices::FT0Id, indices::FV0AId, indices::FDDId
 

Typedefs

using o2::aod::BCs = BCs_001
 
using o2::aod::BC = BCs::iterator
 
using o2::aod::BCsWithTimestamps = soa::Join< aod::BCs, aod::Timestamps >
 
using o2::aod::Collisions = Collisions_001
 
using o2::aod::Collision = Collisions::iterator
 
using o2::aod::track::v001::extensions::TPCTimeErrEncoding = o2::aod::track::extensions::TPCTimeErrEncoding
 
using o2::aod::StoredTracksExtra = StoredTracksExtra_002
 
using o2::aod::TracksExtra = TracksExtra_002
 
using o2::aod::Track = Tracks::iterator
 
using o2::aod::TrackIU = TracksIU::iterator
 
using o2::aod::TrackCov = TracksCov::iterator
 
using o2::aod::TrackCovIU = TracksCovIU::iterator
 
using o2::aod::TrackExtra = TracksExtra::iterator
 
using o2::aod::Run2TrackExtras = Run2TrackExtras_001
 
using o2::aod::Run2TrackExtra = Run2TrackExtras::iterator
 
using o2::aod::FullTracks = soa::Join< Tracks, TracksExtra >
 
using o2::aod::FullTrack = FullTracks::iterator
 
using o2::aod::TracksQAVersion = TracksQA_002
 
using o2::aod::TracksQA = TracksQAVersion::iterator
 
using o2::aod::MFTTracks = MFTTracks_001
 
using o2::aod::StoredMFTTracks = StoredMFTTracks_001
 
using o2::aod::MFTTrack = MFTTracks::iterator
 
using o2::aod::FwdTrack = FwdTracks::iterator
 
using o2::aod::FwdTrackCovFwd = FwdTracksCov::iterator
 
using o2::aod::MFTTrackCovFwd = MFTTracksCov::iterator
 
using o2::aod::FullFwdTracks = soa::Join< FwdTracks, FwdTracksCov >
 
using o2::aod::FullFwdTrack = FullFwdTracks::iterator
 
using o2::aod::AmbiguousTrack = AmbiguousTracks::iterator
 
using o2::aod::AmbiguousMFTTrack = AmbiguousMFTTracks::iterator
 
using o2::aod::AmbiguousFwdTrack = AmbiguousFwdTracks::iterator
 
using o2::aod::FwdTrkCl = FwdTrkCls::iterator
 
using o2::aod::HMPIDs = HMPID_001
 
using o2::aod::HMPID = HMPIDs::iterator
 
using o2::aod::Calo = Calos::iterator
 
using o2::aod::CaloTrigger = CaloTriggers::iterator
 
using o2::aod::CPVCluster = CPVClusters::iterator
 
using o2::aod::Zdcs = Zdcs_001
 
using o2::aod::Zdc = Zdcs::iterator
 new version
 
using o2::aod::FV0A = FV0As::iterator
 
using o2::aod::FV0AExtra = FV0AsExtra::iterator
 
using o2::aod::FV0C = FV0Cs::iterator
 
using o2::aod::FT0 = FT0s::iterator
 
using o2::aod::FT0Extra = FT0sExtra::iterator
 
using o2::aod::FDDs = FDDs_001
 
using o2::aod::FDD = FDDs::iterator
 this defines the current default version
 
using o2::aod::FDDExtra = FDDsExtra::iterator
 
using o2::aod::V0s = V0s_002
 
using o2::aod::V0 = V0s::iterator
 this defines the current default version
 
using o2::aod::Cascades = Cascades_001
 
using o2::aod::Cascade = Cascades::iterator
 this defines the current default version
 
using o2::aod::Decay3Bodys = Decay3Bodys
 
using o2::aod::Decay3Body = Decay3Bodys::iterator
 this defines the current default version
 
using o2::aod::TrackedCascades = TrackedCascades
 
using o2::aod::TrackedCascade = TrackedCascades::iterator
 
using o2::aod::TrackedV0s = TrackedV0s
 
using o2::aod::TrackedV0 = TrackedV0s::iterator
 
using o2::aod::Tracked3Bodys = Tracked3Bodys
 
using o2::aod::Tracked3body = Tracked3Bodys::iterator
 
using o2::aod::Origin = Origins::iterator
 
using o2::aod::Run2BCInfos = Run2BCInfos_001
 
using o2::aod::Run2BCInfo = Run2BCInfos::iterator
 
using o2::aod::Run2OTFV0 = Run2OTFV0s::iterator
 
using o2::aod::McCollisions = McCollisions_001
 
using o2::aod::McCollision = McCollisions::iterator
 
using o2::aod::StoredMcParticles = StoredMcParticles_001
 
using o2::aod::McParticles = McParticles_001
 
using o2::aod::McParticle = McParticles::iterator
 
using o2::aod::McTrackLabel = McTrackLabels::iterator
 
using o2::aod::McMFTTrackLabel = McMFTTrackLabels::iterator
 
using o2::aod::McFwdTrackLabel = McFwdTrackLabels::iterator
 
using o2::aod::McCaloLabels = McCaloLabels_000
 
using o2::aod::McCaloLabel = McCaloLabels::iterator
 
using o2::aod::McCollisionLabel = McCollisionLabels::iterator
 
using o2::aod::HepMCXSection = HepMCXSections::iterator
 
using o2::aod::HepMCPdfInfo = HepMCPdfInfos::iterator
 
using o2::aod::HepMCHeavyIon = HepMCHeavyIons::iterator
 
using o2::aod::CollisionMatchedRun2Sparse = soa::Join< Collisions, Run2MatchedSparse >::iterator
 
using o2::aod::CollisionMatchedRun3Sparse = soa::Join< Collisions, Run3MatchedSparse >::iterator
 

Functions

 o2::aod::bc::DECLARE_SOA_COLUMN (RunNumber, runNumber, int)
 
 o2::aod::bc::DECLARE_SOA_COLUMN (GlobalBC, globalBC, uint64_t)
 Run number.
 
 o2::aod::bc::DECLARE_SOA_COLUMN (TriggerMask, triggerMask, uint64_t)
 Bunch crossing number (globally unique in this run)
 
 o2::aod::bc::DECLARE_SOA_COLUMN (InputMask, inputMask, uint64_t)
 CTP trigger mask.
 
 o2::aod::bc::DECLARE_SOA_COLUMN (Flags, flags, uint8_t)
 CTP input mask.
 
 o2::aod::DECLARE_SOA_TABLE (BCs_000, "AOD", "BC", o2::soa::Index<>, bc::RunNumber, bc::GlobalBC, bc::TriggerMask)
 
 o2::aod::DECLARE_SOA_TABLE_VERSIONED (BCs_001, "AOD", "BC", 1, o2::soa::Index<>, bc::RunNumber, bc::GlobalBC, bc::TriggerMask, bc::InputMask)
 
 o2::aod::DECLARE_SOA_TABLE (BCFlags, "AOD", "BCFLAG", bc::Flags)
 
 o2::aod::timestamp::DECLARE_SOA_COLUMN (Timestamp, timestamp, uint64_t)
 
 o2::aod::DECLARE_SOA_TABLE (Timestamps, "AOD", "TIMESTAMPS", timestamp::Timestamp)
 
 o2::aod::collision::DECLARE_SOA_INDEX_COLUMN (BC, bc)
 
 o2::aod::collision::DECLARE_SOA_COLUMN (PosX, posX, float)
 Most probably BC to where this collision has occured.
 
 o2::aod::collision::DECLARE_SOA_COLUMN (PosY, posY, float)
 X Vertex position in cm.
 
 o2::aod::collision::DECLARE_SOA_COLUMN (PosZ, posZ, float)
 Y Vertex position in cm.
 
 o2::aod::collision::DECLARE_SOA_COLUMN (CovXX, covXX, float)
 Z Vertex position in cm.
 
 o2::aod::collision::DECLARE_SOA_COLUMN (CovXY, covXY, float)
 Vertex covariance matrix.
 
 o2::aod::collision::DECLARE_SOA_COLUMN (CovXZ, covXZ, float)
 Vertex covariance matrix.
 
 o2::aod::collision::DECLARE_SOA_COLUMN (CovYY, covYY, float)
 Vertex covariance matrix.
 
 o2::aod::collision::DECLARE_SOA_COLUMN (CovYZ, covYZ, float)
 Vertex covariance matrix.
 
 o2::aod::collision::DECLARE_SOA_COLUMN (CovZZ, covZZ, float)
 Vertex covariance matrix.
 
 o2::aod::collision::DECLARE_SOA_COLUMN (Flags, flags, uint16_t)
 Vertex covariance matrix.
 
 o2::aod::collision::DECLARE_SOA_COLUMN (Chi2, chi2, float)
 Run 2: see CollisionFlagsRun2 | Run 3: see Vertex::Flags.
 
 o2::aod::collision::DECLARE_SOA_COLUMN (NumContrib, numContrib, uint16_t)
 Chi2 of vertex fit.
 
 o2::aod::collision::DECLARE_SOA_COLUMN (CollisionTime, collisionTime, float)
 Number of tracks used for the vertex.
 
 o2::aod::collision::DECLARE_SOA_COLUMN (CollisionTimeRes, collisionTimeRes, float)
 Collision time in ns relative to BC stored in bc()
 
 o2::aod::DECLARE_SOA_TABLE (Collisions_000, "AOD", "COLLISION", o2::soa::Index<>, collision::BCId, collision::PosX, collision::PosY, collision::PosZ, collision::CovXX, collision::CovXY, collision::CovXZ, collision::CovYY, collision::CovYZ, collision::CovZZ, collision::Flags, collision::Chi2, collision::NumContrib, collision::CollisionTime, collision::CollisionTimeRes)
 
 o2::aod::DECLARE_SOA_TABLE_VERSIONED (Collisions_001, "AOD", "COLLISION", 1, o2::soa::Index<>, collision::BCId, collision::PosX, collision::PosY, collision::PosZ, collision::CovXX, collision::CovXY, collision::CovYY, collision::CovXZ, collision::CovYZ, collision::CovZZ, collision::Flags, collision::Chi2, collision::NumContrib, collision::CollisionTime, collision::CollisionTimeRes)
 
 o2::aod::track::DECLARE_SOA_INDEX_COLUMN (Collision, collision)
 
 o2::aod::track::DECLARE_SOA_COLUMN (TrackType, trackType, uint8_t)
 Collision to which this track belongs.
 
 o2::aod::track::DECLARE_SOA_COLUMN (X, x, float)
 Type of track. See enum TrackTypeEnum. This cannot be used to decide which detector has contributed to this track. Use hasITS, hasTPC, etc.
 
 o2::aod::track::DECLARE_SOA_COLUMN (Alpha, alpha, float)
 
 o2::aod::track::DECLARE_SOA_COLUMN (Y, y, float)
 
 o2::aod::track::DECLARE_SOA_COLUMN (Z, z, float)
 
 o2::aod::track::DECLARE_SOA_COLUMN (Snp, snp, float)
 
 o2::aod::track::DECLARE_SOA_COLUMN (Tgl, tgl, float)
 
 o2::aod::track::DECLARE_SOA_COLUMN (Signed1Pt, signed1Pt, float)
 
 o2::aod::track::ifnode (nasin(aod::track::snp)+aod::track::alpha< 0.0f, nasin(aod::track::snp)+aod::track::alpha+o2::constants::math::TwoPI, ifnode(nasin(aod::track::snp)+aod::track::alpha >=o2::constants::math::TwoPI, nasin(aod::track::snp)+aod::track::alpha - o2::constants::math::TwoPI, nasin(aod::track::snp)+aod::track::alpha)))
 (sign of charge)/Pt in c/GeV. Use pt() and sign() instead
 
 o2::aod::track::DECLARE_SOA_EXPRESSION_COLUMN (Eta, eta, float, -1.f *nlog(ntan(o2::constants::math::PIQuarter - 0.5f *natan(aod::track::tgl))))
 
 o2::aod::track::DECLARE_SOA_EXPRESSION_COLUMN (Pt, pt, float, ifnode(nabs(aod::track::signed1Pt)<=o2::constants::math::Almost0, o2::constants::math::VeryBig, nabs(1.f/aod::track::signed1Pt)))
 
 o2::aod::track::DECLARE_SOA_DYNAMIC_COLUMN (Sign, sign, [](float signed1Pt) -> short { return(signed1Pt > 0) ? 1 :-1;})
 
 o2::aod::track::DECLARE_SOA_DYNAMIC_COLUMN (Px, px, [](float signed1Pt, float snp, float alpha) -> float { auto pt=1.f/std::abs(signed1Pt);float cs=cosf(alpha), sn=sinf(alpha);auto r=std::sqrt((1.f - snp) *(1.f+snp));return pt *(r *cs - snp *sn);})
 
 o2::aod::track::DECLARE_SOA_DYNAMIC_COLUMN (Py, py, [](float signed1Pt, float snp, float alpha) -> float { auto pt=1.f/std::abs(signed1Pt);float cs=cosf(alpha), sn=sinf(alpha);auto r=std::sqrt((1.f - snp) *(1.f+snp));return pt *(snp *cs+r *sn);})
 
 o2::aod::track::DECLARE_SOA_DYNAMIC_COLUMN (Pz, pz, [](float signed1Pt, float tgl) -> float { auto pt=1.f/std::abs(signed1Pt);return pt *tgl;})
 
 o2::aod::track::DECLARE_SOA_DYNAMIC_COLUMN (PVector, pVector, [](float signed1Pt, float snp, float alpha, float tgl) -> std::array< float, 3 > { const auto pt=1.f/std::abs(signed1Pt);const float cs=cosf(alpha), sn=sinf(alpha);const auto r=std::sqrt((1.f - snp) *(1.f+snp));const auto px=pt *(r *cs - snp *sn);const auto py=pt *(snp *cs+r *sn);const auto pz=pt *tgl;return std::array< float, 3 >{px, py, pz};})
 
 o2::aod::track::DECLARE_SOA_EXPRESSION_COLUMN (P, p, float, ifnode(nabs(aod::track::signed1Pt)<=o2::constants::math::Almost0, o2::constants::math::VeryBig, 0.5f *(ntan(o2::constants::math::PIQuarter - 0.5f *natan(aod::track::tgl))+1.f/ntan(o2::constants::math::PIQuarter - 0.5f *natan(aod::track::tgl)))/nabs(aod::track::signed1Pt)))
 
 o2::aod::track::DECLARE_SOA_DYNAMIC_COLUMN (Energy, energy, [](float signed1Pt, float tgl, float mass) -> float { const auto pt=1.f/std::abs(signed1Pt);const auto p=0.5f *(std::tan(o2::constants::math::PIQuarter - 0.5f *std::atan(tgl))+1.f/std::tan(o2::constants::math::PIQuarter - 0.5f *std::atan(tgl))) *pt;return std::sqrt(p *p+mass *mass);})
 
 o2::aod::track::DECLARE_SOA_DYNAMIC_COLUMN (Rapidity, rapidity, [](float signed1Pt, float tgl, float mass) -> float { const auto pt=1.f/std::abs(signed1Pt);const auto pz=pt *tgl;const auto p=0.5f *(std::tan(o2::constants::math::PIQuarter - 0.5f *std::atan(tgl))+1.f/std::tan(o2::constants::math::PIQuarter - 0.5f *std::atan(tgl))) *pt;const auto energy=std::sqrt(p *p+mass *mass);return 0.5f *std::log((energy+pz)/(energy - pz));})
 
 o2::aod::track::DECLARE_SOA_COLUMN (SigmaY, sigmaY, float)
 
 o2::aod::track::DECLARE_SOA_COLUMN (SigmaZ, sigmaZ, float)
 Covariance matrix.
 
 o2::aod::track::DECLARE_SOA_COLUMN (SigmaSnp, sigmaSnp, float)
 Covariance matrix.
 
 o2::aod::track::DECLARE_SOA_COLUMN (SigmaTgl, sigmaTgl, float)
 Covariance matrix.
 
 o2::aod::track::DECLARE_SOA_COLUMN (Sigma1Pt, sigma1Pt, float)
 Covariance matrix.
 
 o2::aod::track::DECLARE_SOA_COLUMN (RhoZY, rhoZY, int8_t)
 Covariance matrix.
 
 o2::aod::track::DECLARE_SOA_COLUMN (RhoSnpY, rhoSnpY, int8_t)
 Covariance matrix in compressed form.
 
 o2::aod::track::DECLARE_SOA_COLUMN (RhoSnpZ, rhoSnpZ, int8_t)
 Covariance matrix in compressed form.
 
 o2::aod::track::DECLARE_SOA_COLUMN (RhoTglY, rhoTglY, int8_t)
 Covariance matrix in compressed form.
 
 o2::aod::track::DECLARE_SOA_COLUMN (RhoTglZ, rhoTglZ, int8_t)
 Covariance matrix in compressed form.
 
 o2::aod::track::DECLARE_SOA_COLUMN (RhoTglSnp, rhoTglSnp, int8_t)
 Covariance matrix in compressed form.
 
 o2::aod::track::DECLARE_SOA_COLUMN (Rho1PtY, rho1PtY, int8_t)
 Covariance matrix in compressed form.
 
 o2::aod::track::DECLARE_SOA_COLUMN (Rho1PtZ, rho1PtZ, int8_t)
 Covariance matrix in compressed form.
 
 o2::aod::track::DECLARE_SOA_COLUMN (Rho1PtSnp, rho1PtSnp, int8_t)
 Covariance matrix in compressed form.
 
 o2::aod::track::DECLARE_SOA_COLUMN (Rho1PtTgl, rho1PtTgl, int8_t)
 Covariance matrix in compressed form.
 
 o2::aod::track::DECLARE_SOA_EXPRESSION_COLUMN (CYY, cYY, float, aod::track::sigmaY *aod::track::sigmaY)
 Covariance matrix in compressed form.
 
 o2::aod::track::DECLARE_SOA_EXPRESSION_COLUMN (CZY, cZY, float,(aod::track::rhoZY/128.f) *(aod::track::sigmaZ *aod::track::sigmaY))
 
 o2::aod::track::DECLARE_SOA_EXPRESSION_COLUMN (CZZ, cZZ, float, aod::track::sigmaZ *aod::track::sigmaZ)
 
 o2::aod::track::DECLARE_SOA_EXPRESSION_COLUMN (CSnpY, cSnpY, float,(aod::track::rhoSnpY/128.f) *(aod::track::sigmaSnp *aod::track::sigmaY))
 
 o2::aod::track::DECLARE_SOA_EXPRESSION_COLUMN (CSnpZ, cSnpZ, float,(aod::track::rhoSnpZ/128.f) *(aod::track::sigmaSnp *aod::track::sigmaZ))
 
 o2::aod::track::DECLARE_SOA_EXPRESSION_COLUMN (CSnpSnp, cSnpSnp, float, aod::track::sigmaSnp *aod::track::sigmaSnp)
 
 o2::aod::track::DECLARE_SOA_EXPRESSION_COLUMN (CTglY, cTglY, float,(aod::track::rhoTglY/128.f) *(aod::track::sigmaTgl *aod::track::sigmaY))
 
 o2::aod::track::DECLARE_SOA_EXPRESSION_COLUMN (CTglZ, cTglZ, float,(aod::track::rhoTglZ/128.f) *(aod::track::sigmaTgl *aod::track::sigmaZ))
 
 o2::aod::track::DECLARE_SOA_EXPRESSION_COLUMN (CTglSnp, cTglSnp, float,(aod::track::rhoTglSnp/128.f) *(aod::track::sigmaTgl *aod::track::sigmaSnp))
 
 o2::aod::track::DECLARE_SOA_EXPRESSION_COLUMN (CTglTgl, cTglTgl, float, aod::track::sigmaTgl *aod::track::sigmaTgl)
 
 o2::aod::track::DECLARE_SOA_EXPRESSION_COLUMN (C1PtY, c1PtY, float,(aod::track::rho1PtY/128.f) *(aod::track::sigma1Pt *aod::track::sigmaY))
 
 o2::aod::track::DECLARE_SOA_EXPRESSION_COLUMN (C1PtZ, c1PtZ, float,(aod::track::rho1PtZ/128.f) *(aod::track::sigma1Pt *aod::track::sigmaZ))
 
 o2::aod::track::DECLARE_SOA_EXPRESSION_COLUMN (C1PtSnp, c1PtSnp, float,(aod::track::rho1PtSnp/128.f) *(aod::track::sigma1Pt *aod::track::sigmaSnp))
 
 o2::aod::track::DECLARE_SOA_EXPRESSION_COLUMN (C1PtTgl, c1PtTgl, float,(aod::track::rho1PtTgl/128.f) *(aod::track::sigma1Pt *aod::track::sigmaTgl))
 
 o2::aod::track::DECLARE_SOA_EXPRESSION_COLUMN (C1Pt21Pt2, c1Pt21Pt2, float, aod::track::sigma1Pt *aod::track::sigma1Pt)
 
 o2::aod::track::DECLARE_SOA_COLUMN (TPCInnerParam, tpcInnerParam, float)
 
 o2::aod::track::DECLARE_SOA_COLUMN (Flags, flags, uint32_t)
 Momentum at inner wall of the TPC.
 
 o2::aod::track::DECLARE_SOA_COLUMN (ITSClusterSizes, itsClusterSizes, uint32_t)
 Track flags. Run 2: see TrackFlagsRun2Enum | Run 3: see TrackFlags.
 
 o2::aod::track::DECLARE_SOA_COLUMN (ITSClusterMap, itsClusterMap, uint8_t)
 Clusters sizes, four bits per a layer, starting from the innermost.
 
 o2::aod::track::DECLARE_SOA_COLUMN (TPCNClsFindable, tpcNClsFindable, uint8_t)
 Old cluster ITS cluster map, kept for version 0 compatibility.
 
 o2::aod::track::DECLARE_SOA_COLUMN (TPCNClsFindableMinusFound, tpcNClsFindableMinusFound, int8_t)
 Findable TPC clusters for this track geometry.
 
 o2::aod::track::DECLARE_SOA_COLUMN (TPCNClsFindableMinusPID, tpcNClsFindableMinusPID, int8_t)
 TPC Clusters: Findable - Found.
 
 o2::aod::track::DECLARE_SOA_COLUMN (TPCNClsFindableMinusCrossedRows, tpcNClsFindableMinusCrossedRows, int8_t)
 TPC Clusters: Findable - Found clusters used for PID.
 
 o2::aod::track::DECLARE_SOA_COLUMN (TPCNClsShared, tpcNClsShared, uint8_t)
 TPC Clusters: Findable - crossed rows.
 
 o2::aod::track::DECLARE_SOA_COLUMN (ITSSharedClusterMap, itsSharedClusterMap, uint8_t)
 Number of shared TPC clusters.
 
 o2::aod::track::DECLARE_SOA_COLUMN (TRDPattern, trdPattern, uint8_t)
 shared ITS cluster map (Run 2)
 
 o2::aod::track::DECLARE_SOA_COLUMN (ITSChi2NCl, itsChi2NCl, float)
 Contributor to the track on TRD layer in bits 0-5, starting from the innermost, bit 6 indicates a potentially split tracklet, bit 7 if the track crossed a padrow.
 
 o2::aod::track::DECLARE_SOA_COLUMN (TPCChi2NCl, tpcChi2NCl, float)
 Chi2 / cluster for the ITS track segment.
 
 o2::aod::track::DECLARE_SOA_COLUMN (TRDChi2, trdChi2, float)
 Chi2 / cluster for the TPC track segment.
 
 o2::aod::track::DECLARE_SOA_COLUMN (TOFChi2, tofChi2, float)
 Chi2 for the TRD track segment.
 
 o2::aod::track::DECLARE_SOA_COLUMN (ITSSignal, itsSignal, float)
 Chi2 for the TOF track segment.
 
 o2::aod::track::DECLARE_SOA_COLUMN (TPCSignal, tpcSignal, float)
 dE/dx signal in the ITS (Run 2)
 
 o2::aod::track::DECLARE_SOA_COLUMN (TRDSignal, trdSignal, float)
 dE/dx signal in the TPC
 
 o2::aod::track::DECLARE_SOA_COLUMN (Length, length, float)
 PID signal in the TRD.
 
 o2::aod::track::DECLARE_SOA_COLUMN (TOFExpMom, tofExpMom, float)
 Track length.
 
 o2::aod::track::DECLARE_SOA_COLUMN (TrackEtaEMCAL, trackEtaEmcal, float)
 TOF expected momentum obtained in tracking, used to compute the expected times.
 
 o2::aod::track::DECLARE_SOA_COLUMN (TrackPhiEMCAL, trackPhiEmcal, float)
 
 o2::aod::track::DECLARE_SOA_COLUMN (TrackTime, trackTime, float)
 
 o2::aod::track::DECLARE_SOA_COLUMN (TrackTimeRes, trackTimeRes, float)
 Estimated time of the track in ns wrt collision().bc() or ambiguoustrack.bcSlice()[0].
 
 o2::aod::track::DECLARE_SOA_EXPRESSION_COLUMN (DetectorMap, detectorMap, uint8_t, ifnode(aod::track::itsClusterMap >(uint8_t) 0, static_cast< uint8_t >(o2::aod::track::ITS),(uint8_t) 0x0)|ifnode(aod::track::tpcNClsFindable >(uint8_t) 0, static_cast< uint8_t >(o2::aod::track::TPC),(uint8_t) 0x0)|ifnode(aod::track::trdPattern >(uint8_t) 0, static_cast< uint8_t >(o2::aod::track::TRD),(uint8_t) 0x0)|ifnode((aod::track::tofChi2 >=0.f) &&(aod::track::tofExpMom > 0.f), static_cast< uint8_t >(o2::aod::track::TOF),(uint8_t) 0x0))
 Resolution of the track time in ns (see TrackFlags::TrackTimeResIsRange)
 
 o2::aod::track::DECLARE_SOA_DYNAMIC_COLUMN (TOFExpTimeEl, tofExpTimeEl, [](float length, float tofExpMom) -> float { constexpr float massSquared=o2::constants::physics::MassElectron *o2::constants::physics::MassElectron;return o2::framework::pid::tof::MassToExpTime(tofExpMom, length, massSquared);})
 
 o2::aod::track::DECLARE_SOA_DYNAMIC_COLUMN (TOFExpTimeMu, tofExpTimeMu, [](float length, float tofExpMom) -> float { constexpr float massSquared=o2::constants::physics::MassMuon *o2::constants::physics::MassMuon;return o2::framework::pid::tof::MassToExpTime(tofExpMom, length, massSquared);})
 
 o2::aod::track::DECLARE_SOA_DYNAMIC_COLUMN (TOFExpTimePi, tofExpTimePi, [](float length, float tofExpMom) -> float { constexpr float massSquared=o2::constants::physics::MassPionCharged *o2::constants::physics::MassPionCharged;return o2::framework::pid::tof::MassToExpTime(tofExpMom, length, massSquared);})
 
 o2::aod::track::DECLARE_SOA_DYNAMIC_COLUMN (TOFExpTimeKa, tofExpTimeKa, [](float length, float tofExpMom) -> float { constexpr float massSquared=o2::constants::physics::MassKaonCharged *o2::constants::physics::MassKaonCharged;return o2::framework::pid::tof::MassToExpTime(tofExpMom, length, massSquared);})
 
 o2::aod::track::DECLARE_SOA_DYNAMIC_COLUMN (TOFExpTimePr, tofExpTimePr, [](float length, float tofExpMom) -> float { constexpr float massSquared=o2::constants::physics::MassProton *o2::constants::physics::MassProton;return o2::framework::pid::tof::MassToExpTime(tofExpMom, length, massSquared);})
 
 o2::aod::track::DECLARE_SOA_DYNAMIC_COLUMN (TOFExpTimeDe, tofExpTimeDe, [](float length, float tofExpMom) -> float { constexpr float massSquared=o2::constants::physics::MassDeuteron *o2::constants::physics::MassDeuteron;return o2::framework::pid::tof::MassToExpTime(tofExpMom, length, massSquared);})
 
 o2::aod::track::DECLARE_SOA_DYNAMIC_COLUMN (TOFExpTimeTr, tofExpTimeTr, [](float length, float tofExpMom) -> float { constexpr float massSquared=o2::constants::physics::MassTriton *o2::constants::physics::MassTriton;return o2::framework::pid::tof::MassToExpTime(tofExpMom, length, massSquared);})
 
 o2::aod::track::DECLARE_SOA_DYNAMIC_COLUMN (TOFExpTimeHe, tofExpTimeHe, [](float length, float tofExpMom) -> float { constexpr float massSquared=o2::constants::physics::MassHelium3 *o2::constants::physics::MassHelium3;return o2::framework::pid::tof::MassToExpTime(tofExpMom, length, massSquared);})
 
 o2::aod::track::DECLARE_SOA_DYNAMIC_COLUMN (TOFExpTimeAl, tofExpTimeAl, [](float length, float tofExpMom) -> float { constexpr float massSquared=o2::constants::physics::MassAlpha *o2::constants::physics::MassAlpha;return o2::framework::pid::tof::MassToExpTime(tofExpMom, length, massSquared);})
 
 o2::aod::track::v001::DECLARE_SOA_EXPRESSION_COLUMN (DetectorMap, detectorMap, uint8_t, ifnode(aod::track::itsClusterSizes >(uint32_t) 0, static_cast< uint8_t >(o2::aod::track::ITS),(uint8_t) 0x0)|ifnode(aod::track::tpcNClsFindable >(uint8_t) 0, static_cast< uint8_t >(o2::aod::track::TPC),(uint8_t) 0x0)|ifnode(aod::track::trdPattern >(uint8_t) 0, static_cast< uint8_t >(o2::aod::track::TRD),(uint8_t) 0x0)|ifnode((aod::track::tofChi2 >=0.f) &&(aod::track::tofExpMom > 0.f), static_cast< uint8_t >(o2::aod::track::TOF),(uint8_t) 0x0))
 
 o2::aod::track::v001::DECLARE_SOA_DYNAMIC_COLUMN (ITSClusterMap, itsClusterMap, [](uint32_t itsClusterSizes) -> uint8_t { uint8_t clmap=0;for(unsigned int layer=0;layer< 7;layer++) { if((itsClusterSizes > >(layer *4)) &0xf) { clmap|=(1<< layer);} } return clmap;})
 
 o2::aod::track::v001::DECLARE_SOA_DYNAMIC_COLUMN (ITSNCls, itsNCls, [](uint32_t itsClusterSizes) -> uint8_t { uint8_t itsNcls=0;for(int layer=0;layer< 7;layer++) { if((itsClusterSizes > >(layer *4)) &0xf) itsNcls++;} return itsNcls;})
 
 o2::aod::track::v001::DECLARE_SOA_DYNAMIC_COLUMN (ITSNClsInnerBarrel, itsNClsInnerBarrel, [](uint32_t itsClusterSizes) -> uint8_t { uint8_t itsNclsInnerBarrel=0;for(int layer=0;layer< 3;layer++) { if((itsClusterSizes > >(layer *4)) &0xf) itsNclsInnerBarrel++;} return itsNclsInnerBarrel;})
 
 o2::aod::track::v001::DECLARE_SOA_DYNAMIC_COLUMN (ITSClsSizeInLayer, itsClsSizeInLayer, [](uint32_t itsClusterSizes, int layer) -> uint8_t { if(layer >=7||layer< 0) { return 0;} return(itsClusterSizes > >(layer *4)) &0xf;})
 
 o2::aod::track::v001::DECLARE_SOA_DYNAMIC_COLUMN (IsITSAfterburner, isITSAfterburner, [](uint8_t detectorMap, float itsChi2Ncl) -> bool { return(detectorMap &o2::aod::track::ITS) &&(itsChi2Ncl< 0.f);})
 
 o2::aod::track::v001::extensions::DECLARE_SOA_DYNAMIC_COLUMN (TPCDeltaTFwd, tpcDeltaTFwd, [](float timeErr, uint32_t trackType) -> float { if(!(trackType &TrackFlags::TrackTimeAsym)) { return TPCTimeErrEncoding::invalidValue;} TPCTimeErrEncoding enc;enc.encoding.timeErr=timeErr;return enc.getDeltaTFwd();})
 
 o2::aod::track::v001::extensions::DECLARE_SOA_DYNAMIC_COLUMN (TPCDeltaTBwd, tpcDeltaTBwd, [](float timeErr, uint32_t trackType) -> float { if(!(trackType &TrackFlags::TrackTimeAsym)) { return TPCTimeErrEncoding::invalidValue;} TPCTimeErrEncoding p;p.encoding.timeErr=timeErr;return p.getDeltaTBwd();})
 
 o2::aod::track::DECLARE_SOA_DYNAMIC_COLUMN (HasITS, hasITS, [](uint8_t detectorMap) -> bool { return detectorMap &o2::aod::track::ITS;})
 
 o2::aod::track::DECLARE_SOA_DYNAMIC_COLUMN (HasTPC, hasTPC, [](uint8_t detectorMap) -> bool { return detectorMap &o2::aod::track::TPC;})
 
 o2::aod::track::DECLARE_SOA_DYNAMIC_COLUMN (HasTRD, hasTRD, [](uint8_t detectorMap) -> bool { return detectorMap &o2::aod::track::TRD;})
 
 o2::aod::track::DECLARE_SOA_DYNAMIC_COLUMN (HasTOF, hasTOF, [](uint8_t detectorMap) -> bool { return detectorMap &o2::aod::track::TOF;})
 
 o2::aod::track::DECLARE_SOA_DYNAMIC_COLUMN (IsPVContributor, isPVContributor, [](uint8_t flags) -> bool { return(flags &o2::aod::track::PVContributor)==o2::aod::track::PVContributor;})
 
 o2::aod::track::DECLARE_SOA_DYNAMIC_COLUMN (PIDForTracking, pidForTracking, [](uint32_t flags) -> uint32_t { return flags > > 28;})
 
 o2::aod::track::DECLARE_SOA_DYNAMIC_COLUMN (TPCNClsFound, tpcNClsFound, [](uint8_t tpcNClsFindable, int8_t tpcNClsFindableMinusFound) -> int16_t { return(int16_t) tpcNClsFindable - tpcNClsFindableMinusFound;})
 
 o2::aod::track::DECLARE_SOA_DYNAMIC_COLUMN (TPCNClsPID, tpcNClsPID, [](uint8_t tpcNClsFindable, int8_t tpcNClsFindableMinusPID) -> int16_t { return(int16_t) tpcNClsFindable - tpcNClsFindableMinusPID;})
 
 o2::aod::track::DECLARE_SOA_DYNAMIC_COLUMN (TPCNClsCrossedRows, tpcNClsCrossedRows, [](uint8_t tpcNClsFindable, int8_t TPCNClsFindableMinusCrossedRows) -> int16_t { return(int16_t) tpcNClsFindable - TPCNClsFindableMinusCrossedRows;})
 
 o2::aod::track::DECLARE_SOA_DYNAMIC_COLUMN (ITSNCls, itsNCls, [](uint8_t itsClusterMap) -> uint8_t { uint8_t itsNcls=0;constexpr uint8_t bit=1;for(int layer=0;layer< 7;layer++) { if(itsClusterMap &(bit<< layer)) itsNcls++;} return itsNcls;})
 
 o2::aod::track::DECLARE_SOA_DYNAMIC_COLUMN (ITSNClsInnerBarrel, itsNClsInnerBarrel, [](uint8_t itsClusterMap) -> uint8_t { uint8_t itsNclsInnerBarrel=0;constexpr uint8_t bit=1;for(int layer=0;layer< 3;layer++) { if(itsClusterMap &(bit<< layer)) itsNclsInnerBarrel++;} return itsNclsInnerBarrel;})
 
 o2::aod::track::for (int layer=0;layer< 6;layer++)
 
 o2::aod::track::DECLARE_SOA_DYNAMIC_COLUMN (TPCFoundOverFindableCls, tpcFoundOverFindableCls, [](uint8_t tpcNClsFindable, int8_t tpcNClsFindableMinusFound) -> float { int16_t tpcNClsFound=(int16_t) tpcNClsFindable - tpcNClsFindableMinusFound;return(float) tpcNClsFound/(float) tpcNClsFindable;})
 
 o2::aod::track::DECLARE_SOA_DYNAMIC_COLUMN (TPCCrossedRowsOverFindableCls, tpcCrossedRowsOverFindableCls, [](uint8_t tpcNClsFindable, int8_t tpcNClsFindableMinusCrossedRows) -> float { int16_t tpcNClsCrossedRows=(int16_t) tpcNClsFindable - tpcNClsFindableMinusCrossedRows;return(float) tpcNClsCrossedRows/(float) tpcNClsFindable;})
 
 o2::aod::track::DECLARE_SOA_DYNAMIC_COLUMN (TPCFractionSharedCls, tpcFractionSharedCls, [](uint8_t tpcNClsShared, uint8_t tpcNClsFindable, int8_t tpcNClsFindableMinusFound) -> float { int16_t tpcNClsFound=(int16_t) tpcNClsFindable - tpcNClsFindableMinusFound;return(float) tpcNClsShared/(float) tpcNClsFound;})
 
 o2::aod::track::DECLARE_SOA_DYNAMIC_COLUMN (TRDHasNeighbor, trdPattern, [](uint8_t trdPattern) -> bool { return trdPattern &o2::aod::track::HasNeighbor;})
 
 o2::aod::track::DECLARE_SOA_DYNAMIC_COLUMN (TRDHasCrossing, trdPattern, [](uint8_t trdPattern) -> bool { return trdPattern &o2::aod::track::HasCrossing;})
 
 o2::aod::track::DECLARE_SOA_DYNAMIC_COLUMN (TRDNLayers, trdPattern, [](uint8_t trdPattern) -> std::size_t { return std::bitset< 6 >(trdPattern).count();})
 
 o2::aod::DECLARE_SOA_TABLE_FULL (StoredTracks, "Tracks", "AOD", "TRACK", o2::soa::Index<>, track::CollisionId, track::TrackType, track::X, track::Alpha, track::Y, track::Z, track::Snp, track::Tgl, track::Signed1Pt, track::IsWithinBeamPipe< track::X >, track::Px< track::Signed1Pt, track::Snp, track::Alpha >, track::Py< track::Signed1Pt, track::Snp, track::Alpha >, track::Pz< track::Signed1Pt, track::Tgl >, track::PVector< track::Signed1Pt, track::Snp, track::Alpha, track::Tgl >, track::Energy< track::Signed1Pt, track::Tgl >, track::Rapidity< track::Signed1Pt, track::Tgl >, track::Sign< track::Signed1Pt >, o2::soa::Marker< 1 >)
 
 o2::aod::DECLARE_SOA_EXTENDED_TABLE (Tracks, StoredTracks, "EXTRACK", 0, aod::track::Pt, aod::track::P, aod::track::Eta, aod::track::Phi)
 
 o2::aod::DECLARE_SOA_TABLE_FULL (StoredTracksIU, "Tracks_IU", "AOD", "TRACK_IU", o2::soa::Index<>, track::CollisionId, track::TrackType, track::X, track::Alpha, track::Y, track::Z, track::Snp, track::Tgl, track::Signed1Pt, track::IsWithinBeamPipe< track::X >, track::Px< track::Signed1Pt, track::Snp, track::Alpha >, track::Py< track::Signed1Pt, track::Snp, track::Alpha >, track::Pz< track::Signed1Pt, track::Tgl >, track::PVector< track::Signed1Pt, track::Snp, track::Alpha, track::Tgl >, track::Energy< track::Signed1Pt, track::Tgl >, track::Rapidity< track::Signed1Pt, track::Tgl >, track::Sign< track::Signed1Pt >, o2::soa::Marker< 2 >)
 
 o2::aod::DECLARE_SOA_EXTENDED_TABLE (TracksIU, StoredTracksIU, "EXTRACK_IU", 0, aod::track::Pt, aod::track::P, aod::track::Eta, aod::track::Phi)
 
 o2::aod::DECLARE_SOA_TABLE_FULL (StoredTracksCov, "TracksCov", "AOD", "TRACKCOV", track::SigmaY, track::SigmaZ, track::SigmaSnp, track::SigmaTgl, track::Sigma1Pt, track::RhoZY, track::RhoSnpY, track::RhoSnpZ, track::RhoTglY, track::RhoTglZ, track::RhoTglSnp, track::Rho1PtY, track::Rho1PtZ, track::Rho1PtSnp, track::Rho1PtTgl, o2::soa::Marker< 1 >)
 
 o2::aod::DECLARE_SOA_EXTENDED_TABLE (TracksCov, StoredTracksCov, "EXTRACKCOV", 0, aod::track::CYY, aod::track::CZY, aod::track::CZZ, aod::track::CSnpY, aod::track::CSnpZ, aod::track::CSnpSnp, aod::track::CTglY, aod::track::CTglZ, aod::track::CTglSnp, aod::track::CTglTgl, aod::track::C1PtY, aod::track::C1PtZ, aod::track::C1PtSnp, aod::track::C1PtTgl, aod::track::C1Pt21Pt2)
 
 o2::aod::DECLARE_SOA_TABLE_FULL (StoredTracksCovIU, "TracksCov_IU", "AOD", "TRACKCOV_IU", track::SigmaY, track::SigmaZ, track::SigmaSnp, track::SigmaTgl, track::Sigma1Pt, track::RhoZY, track::RhoSnpY, track::RhoSnpZ, track::RhoTglY, track::RhoTglZ, track::RhoTglSnp, track::Rho1PtY, track::Rho1PtZ, track::Rho1PtSnp, track::Rho1PtTgl, o2::soa::Marker< 2 >)
 
 o2::aod::DECLARE_SOA_EXTENDED_TABLE (TracksCovIU, StoredTracksCovIU, "EXTRACKCOV_IU", 0, aod::track::CYY, aod::track::CZY, aod::track::CZZ, aod::track::CSnpY, aod::track::CSnpZ, aod::track::CSnpSnp, aod::track::CTglY, aod::track::CTglZ, aod::track::CTglSnp, aod::track::CTglTgl, aod::track::C1PtY, aod::track::C1PtZ, aod::track::C1PtSnp, aod::track::C1PtTgl, aod::track::C1Pt21Pt2)
 
 o2::aod::DECLARE_SOA_TABLE_FULL (StoredTracksExtra_000, "TracksExtra", "AOD", "TRACKEXTRA", track::TPCInnerParam, track::Flags, track::ITSClusterMap, track::TPCNClsFindable, track::TPCNClsFindableMinusFound, track::TPCNClsFindableMinusCrossedRows, track::TPCNClsShared, track::TRDPattern, track::ITSChi2NCl, track::TPCChi2NCl, track::TRDChi2, track::TOFChi2, track::TPCSignal, track::TRDSignal, track::Length, track::TOFExpMom, track::PIDForTracking< track::Flags >, track::IsPVContributor< track::Flags >, track::HasITS< track::DetectorMap >, track::HasTPC< track::DetectorMap >, track::HasTRD< track::DetectorMap >, track::HasTOF< track::DetectorMap >, track::TPCNClsFound< track::TPCNClsFindable, track::TPCNClsFindableMinusFound >, track::TPCNClsCrossedRows< track::TPCNClsFindable, track::TPCNClsFindableMinusCrossedRows >, track::TOFExpTimeEl< track::Length, track::TOFExpMom >, track::TOFExpTimeMu< track::Length, track::TOFExpMom >, track::TOFExpTimePi< track::Length, track::TOFExpMom >, track::TOFExpTimeKa< track::Length, track::TOFExpMom >, track::TOFExpTimePr< track::Length, track::TOFExpMom >, track::TOFExpTimeDe< track::Length, track::TOFExpMom >, track::TOFExpTimeTr< track::Length, track::TOFExpMom >, track::TOFExpTimeHe< track::Length, track::TOFExpMom >, track::TOFExpTimeAl< track::Length, track::TOFExpMom >, track::ITSNCls< track::ITSClusterMap >, track::ITSNClsInnerBarrel< track::ITSClusterMap >, track::TPCCrossedRowsOverFindableCls< track::TPCNClsFindable, track::TPCNClsFindableMinusCrossedRows >, track::TPCFoundOverFindableCls< track::TPCNClsFindable, track::TPCNClsFindableMinusFound >, track::TPCFractionSharedCls< track::TPCNClsShared, track::TPCNClsFindable, track::TPCNClsFindableMinusFound >, track::TrackEtaEMCAL, track::TrackPhiEMCAL, track::TrackTime, track::TrackTimeRes)
 
 o2::aod::DECLARE_SOA_TABLE_FULL_VERSIONED (StoredTracksExtra_001, "TracksExtra", "AOD", "TRACKEXTRA", 1, track::TPCInnerParam, track::Flags, track::ITSClusterSizes, track::TPCNClsFindable, track::TPCNClsFindableMinusFound, track::TPCNClsFindableMinusCrossedRows, track::TPCNClsShared, track::v001::extensions::TPCDeltaTFwd< track::TrackTimeRes, track::Flags >, track::v001::extensions::TPCDeltaTBwd< track::TrackTimeRes, track::Flags >, track::TRDPattern, track::ITSChi2NCl, track::TPCChi2NCl, track::TRDChi2, track::TOFChi2, track::TPCSignal, track::TRDSignal, track::Length, track::TOFExpMom, track::PIDForTracking< track::Flags >, track::IsPVContributor< track::Flags >, track::HasITS< track::v001::DetectorMap >, track::HasTPC< track::v001::DetectorMap >, track::HasTRD< track::v001::DetectorMap >, track::HasTOF< track::v001::DetectorMap >, track::TPCNClsFound< track::TPCNClsFindable, track::TPCNClsFindableMinusFound >, track::TPCNClsCrossedRows< track::TPCNClsFindable, track::TPCNClsFindableMinusCrossedRows >, track::v001::ITSClusterMap< track::ITSClusterSizes >, track::v001::ITSNCls< track::ITSClusterSizes >, track::v001::ITSNClsInnerBarrel< track::ITSClusterSizes >, track::v001::ITSClsSizeInLayer< track::ITSClusterSizes >, track::v001::IsITSAfterburner< track::v001::DetectorMap, track::ITSChi2NCl >, track::TOFExpTimeEl< track::Length, track::TOFExpMom >, track::TOFExpTimeMu< track::Length, track::TOFExpMom >, track::TOFExpTimePi< track::Length, track::TOFExpMom >, track::TOFExpTimeKa< track::Length, track::TOFExpMom >, track::TOFExpTimePr< track::Length, track::TOFExpMom >, track::TOFExpTimeDe< track::Length, track::TOFExpMom >, track::TOFExpTimeTr< track::Length, track::TOFExpMom >, track::TOFExpTimeHe< track::Length, track::TOFExpMom >, track::TOFExpTimeAl< track::Length, track::TOFExpMom >, track::TPCCrossedRowsOverFindableCls< track::TPCNClsFindable, track::TPCNClsFindableMinusCrossedRows >, track::TPCFoundOverFindableCls< track::TPCNClsFindable, track::TPCNClsFindableMinusFound >, track::TPCFractionSharedCls< track::TPCNClsShared, track::TPCNClsFindable, track::TPCNClsFindableMinusFound >, track::TrackEtaEMCAL, track::TrackPhiEMCAL, track::TrackTime, track::TrackTimeRes)
 
 o2::aod::DECLARE_SOA_TABLE_FULL_VERSIONED (StoredTracksExtra_002, "TracksExtra", "AOD", "TRACKEXTRA", 2, track::TPCInnerParam, track::Flags, track::ITSClusterSizes, track::TPCNClsFindable, track::TPCNClsFindableMinusFound, track::TPCNClsFindableMinusPID, track::TPCNClsFindableMinusCrossedRows, track::TPCNClsShared, track::v001::extensions::TPCDeltaTFwd< track::TrackTimeRes, track::Flags >, track::v001::extensions::TPCDeltaTBwd< track::TrackTimeRes, track::Flags >, track::TRDPattern, track::ITSChi2NCl, track::TPCChi2NCl, track::TRDChi2, track::TOFChi2, track::TPCSignal, track::TRDSignal, track::Length, track::TOFExpMom, track::PIDForTracking< track::Flags >, track::IsPVContributor< track::Flags >, track::HasITS< track::v001::DetectorMap >, track::HasTPC< track::v001::DetectorMap >, track::HasTRD< track::v001::DetectorMap >, track::HasTOF< track::v001::DetectorMap >, track::TPCNClsFound< track::TPCNClsFindable, track::TPCNClsFindableMinusFound >, track::TPCNClsCrossedRows< track::TPCNClsFindable, track::TPCNClsFindableMinusCrossedRows >, track::v001::ITSClusterMap< track::ITSClusterSizes >, track::v001::ITSNCls< track::ITSClusterSizes >, track::v001::ITSNClsInnerBarrel< track::ITSClusterSizes >, track::v001::ITSClsSizeInLayer< track::ITSClusterSizes >, track::v001::IsITSAfterburner< track::v001::DetectorMap, track::ITSChi2NCl >, track::TOFExpTimeEl< track::Length, track::TOFExpMom >, track::TOFExpTimeMu< track::Length, track::TOFExpMom >, track::TOFExpTimePi< track::Length, track::TOFExpMom >, track::TOFExpTimeKa< track::Length, track::TOFExpMom >, track::TOFExpTimePr< track::Length, track::TOFExpMom >, track::TOFExpTimeDe< track::Length, track::TOFExpMom >, track::TOFExpTimeTr< track::Length, track::TOFExpMom >, track::TOFExpTimeHe< track::Length, track::TOFExpMom >, track::TOFExpTimeAl< track::Length, track::TOFExpMom >, track::TPCCrossedRowsOverFindableCls< track::TPCNClsFindable, track::TPCNClsFindableMinusCrossedRows >, track::TPCFoundOverFindableCls< track::TPCNClsFindable, track::TPCNClsFindableMinusFound >, track::TPCFractionSharedCls< track::TPCNClsShared, track::TPCNClsFindable, track::TPCNClsFindableMinusFound >, track::TrackEtaEMCAL, track::TrackPhiEMCAL, track::TrackTime, track::TrackTimeRes)
 
 o2::aod::DECLARE_SOA_TABLE (Run2TrackExtras_000, "AOD", "RUN2TRACKEXTRA", track::ITSSignal)
 
 o2::aod::DECLARE_SOA_TABLE_VERSIONED (Run2TrackExtras_001, "AOD", "RUN2TRACKEXTRA", 1, track::ITSSignal, track::ITSSharedClusterMap, track::ITSNSharedCls< track::ITSSharedClusterMap >)
 
 o2::aod::trackqa::DECLARE_SOA_INDEX_COLUMN (Track, track)
 
 o2::aod::trackqa::DECLARE_SOA_COLUMN (TPCTime0, tpcTime0, float)
 track to which this QA information belongs
 
 o2::aod::trackqa::DECLARE_SOA_COLUMN (TPCDCAR, tpcdcaR, int16_t)
 tpc only time0 (mTime0 in TPC track)
 
 o2::aod::trackqa::DECLARE_SOA_COLUMN (TPCDCAZ, tpcdcaZ, int16_t)
 tpc only DCAr
 
 o2::aod::trackqa::DECLARE_SOA_COLUMN (TPCClusterByteMask, tpcClusterByteMask, uint8_t)
 tpc only DCAz
 
 o2::aod::trackqa::DECLARE_SOA_COLUMN (TPCdEdxMax0R, tpcdEdxMax0R, uint8_t)
 tracklet bitmask - track defining 8 tracklets (152=8*19 rows) bit set if nCluster>thr (default 5)
 
 o2::aod::trackqa::DECLARE_SOA_COLUMN (TPCdEdxMax1R, tpcdEdxMax1R, uint8_t)
 TPC dEdxQMax -ROC0/dEdx.
 
 o2::aod::trackqa::DECLARE_SOA_COLUMN (TPCdEdxMax2R, tpcdEdxMax2R, uint8_t)
 TPC dEdxQMax -ROC1/dEdx.
 
 o2::aod::trackqa::DECLARE_SOA_COLUMN (TPCdEdxMax3R, tpcdEdxMax3R, uint8_t)
 TPC dEdxQMax -ROC2/dEdx.
 
 o2::aod::trackqa::DECLARE_SOA_COLUMN (TPCdEdxTot0R, tpcdEdxTot0R, uint8_t)
 TPC dEdxQMax -ROC3/dEdx.
 
 o2::aod::trackqa::DECLARE_SOA_COLUMN (TPCdEdxTot1R, tpcdEdxTot1R, uint8_t)
 TPC dEdxQtot -ROC0/dEdx.
 
 o2::aod::trackqa::DECLARE_SOA_COLUMN (TPCdEdxTot2R, tpcdEdxTot2R, uint8_t)
 TPC dEdxQtot -ROC1/dEdx.
 
 o2::aod::trackqa::DECLARE_SOA_COLUMN (TPCdEdxTot3R, tpcdEdxTot3R, uint8_t)
 TPC dEdxQtot -ROC2/dEdx.
 
 o2::aod::trackqa::DECLARE_SOA_COLUMN (DeltaRefContParamY, deltaRefContParamY, int8_t)
 TPC dEdxQtot -ROC3/dEdx.
 
 o2::aod::trackqa::DECLARE_SOA_COLUMN (DeltaRefContParamZ, deltaRefITSParamZ, int8_t)
 Normalized delta of contributor tracks at reference point in the same frame Y.
 
 o2::aod::trackqa::DECLARE_SOA_COLUMN (DeltaRefContParamSnp, deltaRefContParamSnp, int8_t)
 Normalized delta of contributor tracks at reference point in the same frame Z.
 
 o2::aod::trackqa::DECLARE_SOA_COLUMN (DeltaRefContParamTgl, deltaRefContParamTgl, int8_t)
 Normalized delta of contributor tracks at reference point in the same frame Snp.
 
 o2::aod::trackqa::DECLARE_SOA_COLUMN (DeltaRefContParamQ2Pt, deltaRefContParamQ2Pt, int8_t)
 Normalized delta of contributor tracks at reference point in the same frame Tgl.
 
 o2::aod::trackqa::DECLARE_SOA_COLUMN (DeltaRefGloParamY, deltaRefGloParamY, int8_t)
 Normalized delta of contributor tracks at reference point in the same frame Q2Pt.
 
 o2::aod::trackqa::DECLARE_SOA_COLUMN (DeltaRefGloParamZ, deltaRefGloParamZ, int8_t)
 Normalized delta of global track to average contributors matched tracks at reference point in the same frame Y.
 
 o2::aod::trackqa::DECLARE_SOA_COLUMN (DeltaRefGloParamSnp, deltaRefGloParamSnp, int8_t)
 Normalized delta of global track to average contributors matched tracks at reference point in the same frame Z.
 
 o2::aod::trackqa::DECLARE_SOA_COLUMN (DeltaRefGloParamTgl, deltaRefGloParamTgl, int8_t)
 Normalized delta of global track to average contributors matched tracks at reference point in the same frame Snp.
 
 o2::aod::trackqa::DECLARE_SOA_COLUMN (DeltaRefGloParamQ2Pt, deltaRefGloParamQ2Pt, int8_t)
 Normalized delta of global track to average contributors matched tracks at reference point in the same frame Tgl.
 
 o2::aod::trackqa::DECLARE_SOA_COLUMN (DeltaTOFdX, deltaTOFdX, int8_t)
 Normalized delta of global track to average contributors matched tracks at reference point in the same frame Q2Pt.
 
 o2::aod::trackqa::DECLARE_SOA_COLUMN (DeltaTOFdZ, deltaTOFdZ, int8_t)
 
 o2::aod::trackqa::DECLARE_SOA_DYNAMIC_COLUMN (IsDummy, isDummy, [](int8_t cY, int8_t cZ, int8_t cSnp, int8_t cTgl, int8_t cQ2Pt, int8_t gY, int8_t gZ, int8_t gSnp, int8_t gTgl, int8_t gQ2Pt) -> bool { constexpr int8_t m=std::numeric_limits< int8_t >::min();return(cY==m &&cZ==m &&cSnp==m &&cTgl==m &&cQ2Pt==m &&gY==m &&gZ==m &&gSnp==m &&gTgl==m &&gQ2Pt==m);})
 
 o2::aod::DECLARE_SOA_TABLE (TracksQA_000, "AOD", "TRACKQA", o2::soa::Index<>, trackqa::TrackId, trackqa::TPCTime0, trackqa::TPCDCAR, trackqa::TPCDCAZ, trackqa::TPCClusterByteMask, trackqa::TPCdEdxMax0R, trackqa::TPCdEdxMax1R, trackqa::TPCdEdxMax2R, trackqa::TPCdEdxMax3R, trackqa::TPCdEdxTot0R, trackqa::TPCdEdxTot1R, trackqa::TPCdEdxTot2R, trackqa::TPCdEdxTot3R)
 
 o2::aod::DECLARE_SOA_TABLE_VERSIONED (TracksQA_001, "AOD", "TRACKQA", 1, o2::soa::Index<>, trackqa::TrackId, trackqa::TPCTime0, trackqa::TPCDCAR, trackqa::TPCDCAZ, trackqa::TPCClusterByteMask, trackqa::TPCdEdxMax0R, trackqa::TPCdEdxMax1R, trackqa::TPCdEdxMax2R, trackqa::TPCdEdxMax3R, trackqa::TPCdEdxTot0R, trackqa::TPCdEdxTot1R, trackqa::TPCdEdxTot2R, trackqa::TPCdEdxTot3R, trackqa::DeltaRefContParamY, trackqa::DeltaRefContParamZ, trackqa::DeltaRefContParamSnp, trackqa::DeltaRefContParamTgl, trackqa::DeltaRefContParamQ2Pt, trackqa::DeltaRefGloParamY, trackqa::DeltaRefGloParamZ, trackqa::DeltaRefGloParamSnp, trackqa::DeltaRefGloParamTgl, trackqa::DeltaRefGloParamQ2Pt, trackqa::IsDummy< trackqa::DeltaRefContParamY, trackqa::DeltaRefContParamZ, trackqa::DeltaRefContParamSnp, trackqa::DeltaRefContParamTgl, trackqa::DeltaRefContParamQ2Pt, trackqa::DeltaRefGloParamY, trackqa::DeltaRefGloParamZ, trackqa::DeltaRefGloParamSnp, trackqa::DeltaRefGloParamTgl, trackqa::DeltaRefGloParamQ2Pt >)
 
 o2::aod::DECLARE_SOA_TABLE_VERSIONED (TracksQA_002, "AOD", "TRACKQA", 2, o2::soa::Index<>, trackqa::TrackId, trackqa::TPCTime0, trackqa::TPCDCAR, trackqa::TPCDCAZ, trackqa::TPCClusterByteMask, trackqa::TPCdEdxMax0R, trackqa::TPCdEdxMax1R, trackqa::TPCdEdxMax2R, trackqa::TPCdEdxMax3R, trackqa::TPCdEdxTot0R, trackqa::TPCdEdxTot1R, trackqa::TPCdEdxTot2R, trackqa::TPCdEdxTot3R, trackqa::DeltaRefContParamY, trackqa::DeltaRefContParamZ, trackqa::DeltaRefContParamSnp, trackqa::DeltaRefContParamTgl, trackqa::DeltaRefContParamQ2Pt, trackqa::DeltaRefGloParamY, trackqa::DeltaRefGloParamZ, trackqa::DeltaRefGloParamSnp, trackqa::DeltaRefGloParamTgl, trackqa::DeltaRefGloParamQ2Pt, trackqa::DeltaTOFdX, trackqa::DeltaTOFdZ, trackqa::IsDummy< trackqa::DeltaRefContParamY, trackqa::DeltaRefContParamZ, trackqa::DeltaRefContParamSnp, trackqa::DeltaRefContParamTgl, trackqa::DeltaRefContParamQ2Pt, trackqa::DeltaRefGloParamY, trackqa::DeltaRefGloParamZ, trackqa::DeltaRefGloParamSnp, trackqa::DeltaRefGloParamTgl, trackqa::DeltaRefGloParamQ2Pt >)
 
 o2::aod::fwdtrack::DECLARE_SOA_INDEX_COLUMN (Collision, collision)
 
 o2::aod::fwdtrack::DECLARE_SOA_COLUMN (TrackType, trackType, uint8_t)
 
 o2::aod::fwdtrack::DECLARE_SOA_COLUMN (X, x, float)
 Type of track. See enum ForwardTrackTypeEnum.
 
 o2::aod::fwdtrack::DECLARE_SOA_COLUMN (Y, y, float)
 TrackParFwd parameter x.
 
 o2::aod::fwdtrack::DECLARE_SOA_COLUMN (Z, z, float)
 TrackParFwd parameter y.
 
 o2::aod::fwdtrack::DECLARE_SOA_COLUMN (Phi, phi, float)
 TrackParFwd propagation parameter z.
 
 o2::aod::fwdtrack::DECLARE_SOA_COLUMN (Tgl, tgl, float)
 TrackParFwd parameter phi; (i.e. pt pointing direction)
 
 o2::aod::fwdtrack::DECLARE_SOA_COLUMN (Signed1Pt, signed1Pt, float)
 TrackParFwd parameter tan(\lamba); (\lambda = 90 - \theta_{polar})
 
 o2::aod::fwdtrack::DECLARE_SOA_COLUMN (NClusters, nClusters, int8_t)
 TrackParFwd parameter: charged inverse transverse momentum; (q/pt)
 
 o2::aod::fwdtrack::DECLARE_SOA_COLUMN (MFTClusterSizesAndTrackFlags, mftClusterSizesAndTrackFlags, uint64_t)
 Number of clusters.
 
 o2::aod::fwdtrack::DECLARE_SOA_COLUMN (Chi2, chi2, float)
 Cluster sizes per track, stored per layer (each 6 bits). Remaining 4 bits for MFT flags.
 
 o2::aod::fwdtrack::DECLARE_SOA_COLUMN (PDca, pDca, float)
 Track chi^2.
 
 o2::aod::fwdtrack::DECLARE_SOA_COLUMN (RAtAbsorberEnd, rAtAbsorberEnd, float)
 PDca for MUONStandalone.
 
 o2::aod::fwdtrack::DECLARE_SOA_COLUMN (Chi2MatchMCHMID, chi2MatchMCHMID, float)
 RAtAbsorberEnd for MUONStandalone tracks and GlobalMuonTrackstracks.
 
 o2::aod::fwdtrack::DECLARE_SOA_COLUMN (Chi2MatchMCHMFT, chi2MatchMCHMFT, float)
 MCH-MID Match Chi2 for MUONStandalone tracks.
 
 o2::aod::fwdtrack::DECLARE_SOA_COLUMN (MatchScoreMCHMFT, matchScoreMCHMFT, float)
 MCH-MFT Match Chi2 for GlobalMuonTracks.
 
 o2::aod::fwdtrack::DECLARE_SOA_SELF_INDEX_COLUMN_FULL (MCHTrack, matchMCHTrack, int, "FwdTracks_MatchMCHTrack")
 MCH-MFT Machine Learning Matching Score for GlobalMuonTracks.
 
 o2::aod::fwdtrack::DECLARE_SOA_COLUMN (MCHBitMap, mchBitMap, uint16_t)
 Index of matching MCH track for GlobalMuonTracks and GlobalForwardTracks.
 
 o2::aod::fwdtrack::DECLARE_SOA_COLUMN (MIDBitMap, midBitMap, uint8_t)
 Fired muon trackig chambers bitmap.
 
 o2::aod::fwdtrack::DECLARE_SOA_COLUMN (MIDBoards, midBoards, uint32_t)
 MID bitmap: non-bending plane (4bit), bending plane (4bit)
 
 o2::aod::fwdtrack::DECLARE_SOA_COLUMN (TrackTime, trackTime, float)
 Local boards on each MID plane (8 bits per plane)
 
 o2::aod::fwdtrack::DECLARE_SOA_COLUMN (TrackTimeRes, trackTimeRes, float)
 Estimated time of the track in ns wrt collision().bc() or ambiguoustrack.bcSlice()[0].
 
 o2::aod::fwdtrack::DECLARE_SOA_DYNAMIC_COLUMN (Sign, sign, [](float signed1Pt) -> short { return(signed1Pt > 0) ? 1 :-1;})
 Resolution of the track time in ns.
 
 o2::aod::fwdtrack::DECLARE_SOA_DYNAMIC_COLUMN (IsCA, isCA, [](uint64_t mftClusterSizesAndTrackFlags) -> bool { return mftClusterSizesAndTrackFlags &(0x1ULL<< 60);})
 
 o2::aod::fwdtrack::DECLARE_SOA_EXPRESSION_COLUMN (Eta, eta, float, -1.f *nlog(ntan(o2::constants::math::PIQuarter - 0.5f *natan(aod::fwdtrack::tgl))))
 
 o2::aod::fwdtrack::DECLARE_SOA_EXPRESSION_COLUMN (Pt, pt, float, ifnode(nabs(aod::fwdtrack::signed1Pt)< o2::constants::math::Almost0, o2::constants::math::VeryBig, nabs(1.f/aod::fwdtrack::signed1Pt)))
 
 o2::aod::fwdtrack::DECLARE_SOA_EXPRESSION_COLUMN (P, p, float, ifnode((nabs(aod::fwdtrack::signed1Pt)< o2::constants::math::Almost0)||(nabs(o2::constants::math::PIQuarter - 0.5f *natan(aod::fwdtrack::tgl))< o2::constants::math::Almost0), o2::constants::math::VeryBig, 0.5f *(ntan(o2::constants::math::PIQuarter - 0.5f *natan(aod::fwdtrack::tgl))+1.f/ntan(o2::constants::math::PIQuarter - 0.5f *natan(aod::fwdtrack::tgl)))/nabs(aod::fwdtrack::signed1Pt)))
 
 o2::aod::fwdtrack::DECLARE_SOA_DYNAMIC_COLUMN (Px, px, [](float pt, float phi) -> float { return pt *std::cos(phi);})
 
 o2::aod::fwdtrack::DECLARE_SOA_DYNAMIC_COLUMN (Py, py, [](float pt, float phi) -> float { return pt *std::sin(phi);})
 
 o2::aod::fwdtrack::DECLARE_SOA_DYNAMIC_COLUMN (Pz, pz, [](float pt, float tgl) -> float { return pt *tgl;})
 
 o2::aod::fwdtrack::DECLARE_SOA_DYNAMIC_COLUMN (MIDBoardCh1, midBoardCh1, [](uint32_t midBoards) -> int { return static_cast< int >(midBoards &0xFF);})
 
 o2::aod::fwdtrack::DECLARE_SOA_DYNAMIC_COLUMN (MIDBoardCh2, midBoardCh2, [](uint32_t midBoards) -> int { return static_cast< int >((midBoards > > 8) &0xFF);})
 
 o2::aod::fwdtrack::DECLARE_SOA_DYNAMIC_COLUMN (MIDBoardCh3, midBoardCh3, [](uint32_t midBoards) -> int { return static_cast< int >((midBoards > > 16) &0xFF);})
 
 o2::aod::fwdtrack::DECLARE_SOA_DYNAMIC_COLUMN (MIDBoardCh4, midBoardCh4, [](uint32_t midBoards) -> int { return static_cast< int >((midBoards > > 24) &0xFF);})
 
 o2::aod::fwdtrack::v001::DECLARE_SOA_DYNAMIC_COLUMN (NClusters, nClusters, [](uint64_t mftClusterSizesAndTrackFlags) -> int8_t { int8_t nClusters=0;for(int layer=0;layer< 10;layer++) { if((mftClusterSizesAndTrackFlags > >(layer *6)) &0x3F) { nClusters++;} } return nClusters;})
 
 o2::aod::fwdtrack::DECLARE_SOA_COLUMN (SigmaX, sigmaX, float)
 
 o2::aod::fwdtrack::DECLARE_SOA_COLUMN (SigmaY, sigmaY, float)
 Covariance matrix.
 
 o2::aod::fwdtrack::DECLARE_SOA_COLUMN (SigmaPhi, sigmaPhi, float)
 Covariance matrix.
 
 o2::aod::fwdtrack::DECLARE_SOA_COLUMN (SigmaTgl, sigmaTgl, float)
 Covariance matrix.
 
 o2::aod::fwdtrack::DECLARE_SOA_COLUMN (Sigma1Pt, sigma1Pt, float)
 Covariance matrix.
 
 o2::aod::fwdtrack::DECLARE_SOA_COLUMN (RhoXY, rhoXY, int8_t)
 Covariance matrix.
 
 o2::aod::fwdtrack::DECLARE_SOA_COLUMN (RhoPhiX, rhoPhiX, int8_t)
 Covariance matrix in compressed form.
 
 o2::aod::fwdtrack::DECLARE_SOA_COLUMN (RhoPhiY, rhoPhiY, int8_t)
 Covariance matrix in compressed form.
 
 o2::aod::fwdtrack::DECLARE_SOA_COLUMN (RhoTglX, rhoTglX, int8_t)
 Covariance matrix in compressed form.
 
 o2::aod::fwdtrack::DECLARE_SOA_COLUMN (RhoTglY, rhoTglY, int8_t)
 Covariance matrix in compressed form.
 
 o2::aod::fwdtrack::DECLARE_SOA_COLUMN (RhoTglPhi, rhoTglPhi, int8_t)
 Covariance matrix in compressed form.
 
 o2::aod::fwdtrack::DECLARE_SOA_COLUMN (Rho1PtX, rho1PtX, int8_t)
 Covariance matrix in compressed form.
 
 o2::aod::fwdtrack::DECLARE_SOA_COLUMN (Rho1PtY, rho1PtY, int8_t)
 Covariance matrix in compressed form.
 
 o2::aod::fwdtrack::DECLARE_SOA_COLUMN (Rho1PtPhi, rho1PtPhi, int8_t)
 Covariance matrix in compressed form.
 
 o2::aod::fwdtrack::DECLARE_SOA_COLUMN (Rho1PtTgl, rho1PtTgl, int8_t)
 Covariance matrix in compressed form.
 
 o2::aod::fwdtrack::DECLARE_SOA_EXPRESSION_COLUMN (CXX, cXX, float, aod::fwdtrack::sigmaX *aod::fwdtrack::sigmaX)
 Covariance matrix in compressed form.
 
 o2::aod::fwdtrack::DECLARE_SOA_EXPRESSION_COLUMN (CXY, cXY, float,(aod::fwdtrack::rhoXY/128.f) *(aod::fwdtrack::sigmaX *aod::fwdtrack::sigmaY))
 
 o2::aod::fwdtrack::DECLARE_SOA_EXPRESSION_COLUMN (CYY, cYY, float, aod::fwdtrack::sigmaY *aod::fwdtrack::sigmaY)
 
 o2::aod::fwdtrack::DECLARE_SOA_EXPRESSION_COLUMN (CPhiX, cPhiX, float,(aod::fwdtrack::rhoPhiX/128.f) *(aod::fwdtrack::sigmaPhi *aod::fwdtrack::sigmaX))
 
 o2::aod::fwdtrack::DECLARE_SOA_EXPRESSION_COLUMN (CPhiY, cPhiY, float,(aod::fwdtrack::rhoPhiY/128.f) *(aod::fwdtrack::sigmaPhi *aod::fwdtrack::sigmaY))
 
 o2::aod::fwdtrack::DECLARE_SOA_EXPRESSION_COLUMN (CPhiPhi, cPhiPhi, float, aod::fwdtrack::sigmaPhi *aod::fwdtrack::sigmaPhi)
 
 o2::aod::fwdtrack::DECLARE_SOA_EXPRESSION_COLUMN (CTglX, cTglX, float,(aod::fwdtrack::rhoTglX/128.f) *(aod::fwdtrack::sigmaTgl *aod::fwdtrack::sigmaX))
 
 o2::aod::fwdtrack::DECLARE_SOA_EXPRESSION_COLUMN (CTglY, cTglY, float,(aod::fwdtrack::rhoTglY/128.f) *(aod::fwdtrack::sigmaTgl *aod::fwdtrack::sigmaY))
 
 o2::aod::fwdtrack::DECLARE_SOA_EXPRESSION_COLUMN (CTglPhi, cTglPhi, float,(aod::fwdtrack::rhoTglPhi/128.f) *(aod::fwdtrack::sigmaTgl *aod::fwdtrack::sigmaPhi))
 
 o2::aod::fwdtrack::DECLARE_SOA_EXPRESSION_COLUMN (CTglTgl, cTglTgl, float, aod::fwdtrack::sigmaTgl *aod::fwdtrack::sigmaTgl)
 
 o2::aod::fwdtrack::DECLARE_SOA_EXPRESSION_COLUMN (C1PtY, c1PtY, float,(aod::fwdtrack::rho1PtY/128.f) *(aod::fwdtrack::sigma1Pt *aod::fwdtrack::sigmaY))
 
 o2::aod::fwdtrack::DECLARE_SOA_EXPRESSION_COLUMN (C1PtX, c1PtX, float,(aod::fwdtrack::rho1PtX/128.f) *(aod::fwdtrack::sigma1Pt *aod::fwdtrack::sigmaX))
 
 o2::aod::fwdtrack::DECLARE_SOA_EXPRESSION_COLUMN (C1PtPhi, c1PtPhi, float,(aod::fwdtrack::rho1PtPhi/128.f) *(aod::fwdtrack::sigma1Pt *aod::fwdtrack::sigmaPhi))
 
 o2::aod::fwdtrack::DECLARE_SOA_EXPRESSION_COLUMN (C1PtTgl, c1PtTgl, float,(aod::fwdtrack::rho1PtTgl/128.f) *(aod::fwdtrack::sigma1Pt *aod::fwdtrack::sigmaTgl))
 
 o2::aod::fwdtrack::DECLARE_SOA_EXPRESSION_COLUMN (C1Pt21Pt2, c1Pt21Pt2, float, aod::fwdtrack::sigma1Pt *aod::fwdtrack::sigma1Pt)
 
 o2::aod::DECLARE_SOA_TABLE_FULL (StoredMFTTracks_000, "MFTTracks", "AOD", "MFTTRACK", o2::soa::Index<>, fwdtrack::CollisionId, fwdtrack::X, fwdtrack::Y, fwdtrack::Z, fwdtrack::Phi, fwdtrack::Tgl, fwdtrack::Signed1Pt, fwdtrack::NClusters, fwdtrack::Px< fwdtrack::Pt, fwdtrack::Phi >, fwdtrack::Py< fwdtrack::Pt, fwdtrack::Phi >, fwdtrack::Pz< fwdtrack::Pt, fwdtrack::Tgl >, fwdtrack::Sign< fwdtrack::Signed1Pt >, fwdtrack::Chi2, fwdtrack::TrackTime, fwdtrack::TrackTimeRes)
 
 o2::aod::DECLARE_SOA_TABLE_FULL_VERSIONED (StoredMFTTracks_001, "MFTTracks", "AOD", "MFTTRACK", 1, o2::soa::Index<>, fwdtrack::CollisionId, fwdtrack::X, fwdtrack::Y, fwdtrack::Z, fwdtrack::Phi, fwdtrack::Tgl, fwdtrack::Signed1Pt, fwdtrack::v001::NClusters< fwdtrack::MFTClusterSizesAndTrackFlags >, fwdtrack::MFTClusterSizesAndTrackFlags, fwdtrack::IsCA< fwdtrack::MFTClusterSizesAndTrackFlags >, fwdtrack::Px< fwdtrack::Pt, fwdtrack::Phi >, fwdtrack::Py< fwdtrack::Pt, fwdtrack::Phi >, fwdtrack::Pz< fwdtrack::Pt, fwdtrack::Tgl >, fwdtrack::Sign< fwdtrack::Signed1Pt >, fwdtrack::Chi2, fwdtrack::TrackTime, fwdtrack::TrackTimeRes)
 
 o2::aod::DECLARE_SOA_EXTENDED_TABLE (MFTTracks_000, StoredMFTTracks_000, "EXMFTTRACK", 0, aod::fwdtrack::Pt, aod::fwdtrack::Eta, aod::fwdtrack::P)
 
 o2::aod::DECLARE_SOA_EXTENDED_TABLE (MFTTracks_001, StoredMFTTracks_001, "EXMFTTRACK", 1, aod::fwdtrack::Pt, aod::fwdtrack::Eta, aod::fwdtrack::P)
 
 o2::aod::fwdtrack::DECLARE_SOA_INDEX_COLUMN (MFTTrack, matchMFTTrack)
 
 o2::aod::DECLARE_SOA_TABLE_FULL (StoredFwdTracks, "FwdTracks", "AOD", "FWDTRACK", o2::soa::Index<>, fwdtrack::CollisionId, fwdtrack::TrackType, fwdtrack::X, fwdtrack::Y, fwdtrack::Z, fwdtrack::Phi, fwdtrack::Tgl, fwdtrack::Signed1Pt, fwdtrack::NClusters, fwdtrack::PDca, fwdtrack::RAtAbsorberEnd, fwdtrack::Px< fwdtrack::Pt, fwdtrack::Phi >, fwdtrack::Py< fwdtrack::Pt, fwdtrack::Phi >, fwdtrack::Pz< fwdtrack::Pt, fwdtrack::Tgl >, fwdtrack::Sign< fwdtrack::Signed1Pt >, fwdtrack::Chi2, fwdtrack::Chi2MatchMCHMID, fwdtrack::Chi2MatchMCHMFT, fwdtrack::MatchScoreMCHMFT, fwdtrack::MFTTrackId, fwdtrack::MCHTrackId, fwdtrack::MCHBitMap, fwdtrack::MIDBitMap, fwdtrack::MIDBoards, fwdtrack::TrackTime, fwdtrack::TrackTimeRes)
 
 o2::aod::DECLARE_SOA_EXTENDED_TABLE (FwdTracks, StoredFwdTracks, "EXFWDTRACK", 0, aod::fwdtrack::Pt, aod::fwdtrack::Eta, aod::fwdtrack::P)
 
 o2::aod::DECLARE_SOA_TABLE_FULL (StoredFwdTracksCov, "FwdTracksCov", "AOD", "FWDTRACKCOV", fwdtrack::SigmaX, fwdtrack::SigmaY, fwdtrack::SigmaPhi, fwdtrack::SigmaTgl, fwdtrack::Sigma1Pt, fwdtrack::RhoXY, fwdtrack::RhoPhiY, fwdtrack::RhoPhiX, fwdtrack::RhoTglX, fwdtrack::RhoTglY, fwdtrack::RhoTglPhi, fwdtrack::Rho1PtX, fwdtrack::Rho1PtY, fwdtrack::Rho1PtPhi, fwdtrack::Rho1PtTgl)
 
 o2::aod::DECLARE_SOA_EXTENDED_TABLE (FwdTracksCov, StoredFwdTracksCov, "EXFWDTRACKCOV", 0, aod::fwdtrack::CXX, aod::fwdtrack::CXY, aod::fwdtrack::CYY, aod::fwdtrack::CPhiX, aod::fwdtrack::CPhiY, aod::fwdtrack::CPhiPhi, aod::fwdtrack::CTglX, aod::fwdtrack::CTglY, aod::fwdtrack::CTglPhi, aod::fwdtrack::CTglTgl, aod::fwdtrack::C1PtX, aod::fwdtrack::C1PtY, aod::fwdtrack::C1PtPhi, aod::fwdtrack::C1PtTgl, aod::fwdtrack::C1Pt21Pt2)
 
 o2::aod::DECLARE_SOA_TABLE_FULL (StoredMFTTracksCov, "MFTTracksCov", "AOD", "MFTTRACKCOV", o2::soa::Index<>, fwdtrack::MFTTrackId, fwdtrack::SigmaX, fwdtrack::SigmaY, fwdtrack::SigmaPhi, fwdtrack::SigmaTgl, fwdtrack::Sigma1Pt, fwdtrack::RhoXY, fwdtrack::RhoPhiX, fwdtrack::RhoPhiY, fwdtrack::RhoTglX, fwdtrack::RhoTglY, fwdtrack::RhoTglPhi, fwdtrack::Rho1PtX, fwdtrack::Rho1PtY, fwdtrack::Rho1PtPhi, fwdtrack::Rho1PtTgl)
 
 o2::aod::DECLARE_SOA_EXTENDED_TABLE (MFTTracksCov, StoredMFTTracksCov, "EXMFTTRACKCOV", 0, aod::fwdtrack::CXX, aod::fwdtrack::CXY, aod::fwdtrack::CYY, aod::fwdtrack::CPhiX, aod::fwdtrack::CPhiY, aod::fwdtrack::CPhiPhi, aod::fwdtrack::CTglX, aod::fwdtrack::CTglY, aod::fwdtrack::CTglPhi, aod::fwdtrack::CTglTgl, aod::fwdtrack::C1PtX, aod::fwdtrack::C1PtY, aod::fwdtrack::C1PtPhi, aod::fwdtrack::C1PtTgl, aod::fwdtrack::C1Pt21Pt2)
 
 o2::aod::ambiguous::DECLARE_SOA_INDEX_COLUMN (Track, track)
 
 o2::aod::ambiguous::DECLARE_SOA_INDEX_COLUMN (MFTTrack, mfttrack)
 Track index.
 
 o2::aod::ambiguous::DECLARE_SOA_INDEX_COLUMN (FwdTrack, fwdtrack)
 MFTTrack index.
 
 o2::aod::ambiguous::DECLARE_SOA_SLICE_INDEX_COLUMN (BC, bc)
 FwdTrack index.
 
 o2::aod::DECLARE_SOA_TABLE (AmbiguousTracks, "AOD", "AMBIGUOUSTRACK", o2::soa::Index<>, ambiguous::TrackId, ambiguous::BCIdSlice)
 
 o2::aod::DECLARE_SOA_TABLE (AmbiguousMFTTracks, "AOD", "AMBIGUOUSMFTTR", o2::soa::Index<>, ambiguous::MFTTrackId, ambiguous::BCIdSlice)
 
 o2::aod::DECLARE_SOA_TABLE (AmbiguousFwdTracks, "AOD", "AMBIGUOUSFWDTR", o2::soa::Index<>, ambiguous::FwdTrackId, ambiguous::BCIdSlice)
 
 o2::aod::fwdtrkcl::DECLARE_SOA_INDEX_COLUMN (FwdTrack, fwdtrack)
 
 o2::aod::fwdtrkcl::DECLARE_SOA_COLUMN (X, x, float)
 Track index.
 
 o2::aod::fwdtrkcl::DECLARE_SOA_COLUMN (Y, y, float)
 Cluster x coordinate.
 
 o2::aod::fwdtrkcl::DECLARE_SOA_COLUMN (Z, z, float)
 Cluster y coordinate.
 
 o2::aod::fwdtrkcl::DECLARE_SOA_COLUMN (ClInfo, clInfo, uint16_t)
 Cluster z coordinate.
 
 o2::aod::fwdtrkcl::DECLARE_SOA_DYNAMIC_COLUMN (DEId, deId, [](uint16_t info) -> uint16_t { return(info &0x7FF);})
 Encoded detection element of cluster and cluster type along x and y.
 
 o2::aod::fwdtrkcl::DECLARE_SOA_DYNAMIC_COLUMN (IsGoodX, isGoodX, [](uint16_t info) -> bool { return((info &0x800) > > 11);})
 
 o2::aod::fwdtrkcl::DECLARE_SOA_DYNAMIC_COLUMN (IsGoodY, isGoodY, [](uint16_t info) -> bool { return((info &0x1000) > > 12);})
 
 o2::aod::DECLARE_SOA_TABLE (FwdTrkCls, "AOD", "FWDTRKCL", o2::soa::Index<>, fwdtrkcl::FwdTrackId, fwdtrkcl::X, fwdtrkcl::Y, fwdtrkcl::Z, fwdtrkcl::ClInfo, fwdtrkcl::DEId< fwdtrkcl::ClInfo >, fwdtrkcl::IsGoodX< fwdtrkcl::ClInfo >, fwdtrkcl::IsGoodY< fwdtrkcl::ClInfo >)
 
 o2::aod::hmpid::DECLARE_SOA_INDEX_COLUMN (Track, track)
 
 o2::aod::hmpid::DECLARE_SOA_COLUMN (HMPIDSignal, hmpidSignal, float)
 Track index.
 
 o2::aod::hmpid::DECLARE_SOA_COLUMN (HMPIDDistance, hmpidDistance, float)
 Signal of the HMPID.
 
 o2::aod::hmpid::DECLARE_SOA_COLUMN (HMPIDXTrack, hmpidXTrack, float)
 Distance between the matched HMPID signal and the propagated track.
 
 o2::aod::hmpid::DECLARE_SOA_COLUMN (HMPIDYTrack, hmpidYTrack, float)
 Extrapolated track point x coordinate.
 
 o2::aod::hmpid::DECLARE_SOA_COLUMN (HMPIDXMip, hmpidXMip, float)
 Extrapolated track point y coordinate.
 
 o2::aod::hmpid::DECLARE_SOA_COLUMN (HMPIDYMip, hmpidYMip, float)
 Matched MIP track point x coordinate.
 
 o2::aod::hmpid::DECLARE_SOA_COLUMN (HMPIDNPhotons, hmpidNPhotons, int)
 Matched MIP track point y coordinate.
 
 o2::aod::hmpid::DECLARE_SOA_COLUMN (HMPIDQMip, hmpidQMip, float)
 Number of detected photons in HMPID.
 
 o2::aod::hmpid::DECLARE_SOA_COLUMN (HMPIDClusSize, hmpidClusSize, int)
 Matched MIP cluster charge.
 
 o2::aod::hmpid::DECLARE_SOA_COLUMN (HMPIDMom, hmpidMom, float)
 Matched MIP cluster size.
 
 o2::aod::hmpid::DECLARE_SOA_COLUMN (HMPIDPhotsCharge, hmpidPhotsCharge, float[10])
 Track momentum at the HMPID.
 
 o2::aod::DECLARE_SOA_TABLE (HMPID_000, "AOD", "HMPID", o2::soa::Index<>, hmpid::TrackId, hmpid::HMPIDSignal, hmpid::HMPIDDistance, hmpid::HMPIDNPhotons, hmpid::HMPIDQMip)
 
 o2::aod::DECLARE_SOA_TABLE_VERSIONED (HMPID_001, "AOD", "HMPID", 1, o2::soa::Index<>, hmpid::TrackId, hmpid::HMPIDSignal, hmpid::HMPIDXTrack, hmpid::HMPIDYTrack, hmpid::HMPIDXMip, hmpid::HMPIDYMip, hmpid::HMPIDNPhotons, hmpid::HMPIDQMip, hmpid::HMPIDClusSize, hmpid::HMPIDMom, hmpid::HMPIDPhotsCharge)
 
 o2::aod::calo::DECLARE_SOA_INDEX_COLUMN (BC, bc)
 
 o2::aod::calo::DECLARE_SOA_COLUMN (CellNumber, cellNumber, int16_t)
 BC index.
 
 o2::aod::calo::DECLARE_SOA_COLUMN (Amplitude, amplitude, float)
 
 o2::aod::calo::DECLARE_SOA_COLUMN (Time, time, float)
 
 o2::aod::calo::DECLARE_SOA_COLUMN (CellType, cellType, int8_t)
 
 o2::aod::calo::DECLARE_SOA_COLUMN (CaloType, caloType, int8_t)
 
 o2::aod::DECLARE_SOA_TABLE (Calos, "AOD", "CALO", o2::soa::Index<>, calo::BCId, calo::CellNumber, calo::Amplitude, calo::Time, calo::CellType, calo::CaloType)
 
 o2::aod::calotrigger::DECLARE_SOA_INDEX_COLUMN (BC, bc)
 
 o2::aod::calotrigger::DECLARE_SOA_COLUMN (FastOrAbsID, fastOrAbsID, int16_t)
 BC index.
 
 o2::aod::calotrigger::DECLARE_SOA_COLUMN (LnAmplitude, lnAmplitude, int16_t)
 FastOR absolute ID.
 
 o2::aod::calotrigger::DECLARE_SOA_COLUMN (TriggerBits, triggerBits, int32_t)
 L0 amplitude (ADC) := Peak Amplitude.
 
 o2::aod::calotrigger::DECLARE_SOA_COLUMN (CaloType, caloType, int8_t)
 Online trigger bits.
 
 o2::aod::DECLARE_SOA_TABLE (CaloTriggers, "AOD", "CALOTRIGGER", o2::soa::Index<>, calotrigger::BCId, calotrigger::FastOrAbsID, calotrigger::LnAmplitude, calotrigger::TriggerBits, calotrigger::CaloType)
 
 o2::aod::cpvcluster::DECLARE_SOA_INDEX_COLUMN (BC, bc)
 
 o2::aod::cpvcluster::DECLARE_SOA_COLUMN (PosX, posX, float)
 BC index.
 
 o2::aod::cpvcluster::DECLARE_SOA_COLUMN (PosZ, posZ, float)
 X position in cm.
 
 o2::aod::cpvcluster::DECLARE_SOA_COLUMN (Amplitude, amplitude, float)
 Z position in cm.
 
 o2::aod::cpvcluster::DECLARE_SOA_COLUMN (ClusterStatus, clusterStatus, uint8_t)
 Signal amplitude.
 
 o2::aod::cpvcluster::DECLARE_SOA_DYNAMIC_COLUMN (PadMult, padMult, [](uint8_t status) -> uint8_t { return status &0b00011111;})
 8 bits packed cluster status (bits 0-4 = pads mult, bits 5-6 = (module number - 2), bit 7 = isUnfolded)
 
 o2::aod::cpvcluster::DECLARE_SOA_DYNAMIC_COLUMN (ModuleNumber, moduleNumber, [](uint8_t status) -> uint8_t { return 2+((status &0b01100000) > > 5);})
 Multiplicity of pads in cluster.
 
 o2::aod::cpvcluster::DECLARE_SOA_DYNAMIC_COLUMN (IsUnfolded, isUnfolded, [](uint8_t status) -> bool { return(status &0b01100000) > > 7;})
 CPV module number (2, 3 or 4)
 
 o2::aod::DECLARE_SOA_TABLE (CPVClusters, "AOD", "CPVCLUSTER", o2::soa::Index<>, cpvcluster::BCId, cpvcluster::PosX, cpvcluster::PosZ, cpvcluster::Amplitude, cpvcluster::ClusterStatus, cpvcluster::PadMult< cpvcluster::ClusterStatus >, cpvcluster::ModuleNumber< cpvcluster::ClusterStatus >, cpvcluster::IsUnfolded< cpvcluster::ClusterStatus >)
 
 o2::aod::zdc::DECLARE_SOA_INDEX_COLUMN (BC, bc)
 
 o2::aod::zdc::DECLARE_SOA_COLUMN (EnergyZEM1, energyZEM1, float)
 BC index, to be used by both legacy and new table.
 
 o2::aod::zdc::DECLARE_SOA_COLUMN (EnergyZEM2, energyZEM2, float)
 
 o2::aod::zdc::DECLARE_SOA_COLUMN (EnergyCommonZNA, energyCommonZNA, float)
 
 o2::aod::zdc::DECLARE_SOA_COLUMN (EnergyCommonZNC, energyCommonZNC, float)
 
 o2::aod::zdc::DECLARE_SOA_COLUMN (EnergyCommonZPA, energyCommonZPA, float)
 
 o2::aod::zdc::DECLARE_SOA_COLUMN (EnergyCommonZPC, energyCommonZPC, float)
 
 o2::aod::zdc::DECLARE_SOA_COLUMN (EnergySectorZNA, energySectorZNA, float[4])
 
 o2::aod::zdc::DECLARE_SOA_COLUMN (EnergySectorZNC, energySectorZNC, float[4])
 
 o2::aod::zdc::DECLARE_SOA_COLUMN (EnergySectorZPA, energySectorZPA, float[4])
 
 o2::aod::zdc::DECLARE_SOA_COLUMN (EnergySectorZPC, energySectorZPC, float[4])
 
 o2::aod::zdc::DECLARE_SOA_COLUMN (TimeZEM1, timeZEM1, float)
 
 o2::aod::zdc::DECLARE_SOA_COLUMN (TimeZEM2, timeZEM2, float)
 
 o2::aod::zdc::DECLARE_SOA_COLUMN (TimeZNA, timeZNA, float)
 
 o2::aod::zdc::DECLARE_SOA_COLUMN (TimeZNC, timeZNC, float)
 
 o2::aod::zdc::DECLARE_SOA_COLUMN (TimeZPA, timeZPA, float)
 
 o2::aod::zdc::DECLARE_SOA_COLUMN (TimeZPC, timeZPC, float)
 
 o2::aod::zdc::DECLARE_SOA_COLUMN (Energy, energy, std::vector< float >)
 
 o2::aod::zdc::DECLARE_SOA_COLUMN (ChannelE, channelE, std::vector< uint8_t >)
 Energy of non-zero channels. The channel IDs are given in ChannelE (at the same index)
 
 o2::aod::zdc::DECLARE_SOA_COLUMN (Amplitude, amplitude, std::vector< float >)
 Channel IDs which have reconstructed energy. There are at maximum 26 channels.
 
 o2::aod::zdc::DECLARE_SOA_COLUMN (Time, time, std::vector< float >)
 Amplitudes of non-zero channels. The channel IDs are given in ChannelT (at the same index)
 
 o2::aod::zdc::DECLARE_SOA_COLUMN (ChannelT, channelT, std::vector< uint8_t >)
 Times of non-zero channels. The channel IDs are given in ChannelT (at the same index)
 
 o2::aod::zdc::DECLARE_SOA_DYNAMIC_COLUMN (DyEnergyZEM1, energyZEM1, [](gsl::span< const uint8_t > channelE, gsl::span< const float > energy) -> float { auto ne=channelE.size();auto thisenergy=-std::numeric_limits< float >::infinity();for(uint64_t ie=0;ie< channelE.size();ie++) { if(channelE[ie]==o2::zdc::IdZEM1) { thisenergy=energy[ie];break;} } return thisenergy;})
 Channel IDs which had non-zero amplitudes. There are at maximum 26 channels.
 
 o2::aod::zdc::DECLARE_SOA_DYNAMIC_COLUMN (DyEnergyZEM2, energyZEM2, [](gsl::span< const uint8_t > channelE, gsl::span< const float > energy) -> float { auto thisenergy=-std::numeric_limits< float >::infinity();for(uint64_t ie=0;ie< channelE.size();ie++) { if(channelE[ie]==o2::zdc::IdZEM2) { thisenergy=energy[ie];break;} } return thisenergy;})
 
 o2::aod::zdc::DECLARE_SOA_DYNAMIC_COLUMN (DyEnergyCommonZNA, energyCommonZNA, [](gsl::span< const uint8_t > channelE, gsl::span< const float > energy) -> float { auto thisenergy=-std::numeric_limits< float >::infinity();for(uint64_t ie=0;ie< channelE.size();ie++) { if(channelE[ie]==o2::zdc::IdZNAC) { thisenergy=energy[ie];break;} } return thisenergy;})
 
 o2::aod::zdc::DECLARE_SOA_DYNAMIC_COLUMN (DyEnergyCommonZNC, energyCommonZNC, [](gsl::span< const uint8_t > channelE, gsl::span< const float > energy) -> float { auto thisenergy=-std::numeric_limits< float >::infinity();for(uint64_t ie=0;ie< channelE.size();ie++) { if(channelE[ie]==o2::zdc::IdZNCC) { thisenergy=energy[ie];break;} } return thisenergy;})
 
 o2::aod::zdc::DECLARE_SOA_DYNAMIC_COLUMN (DyEnergyCommonZPA, energyCommonZPA, [](gsl::span< const uint8_t > channelE, gsl::span< const float > energy) -> float { auto thisenergy=-std::numeric_limits< float >::infinity();for(uint64_t ie=0;ie< channelE.size();ie++) { if(channelE[ie]==o2::zdc::IdZPAC) { thisenergy=energy[ie];break;} } return thisenergy;})
 
 o2::aod::zdc::DECLARE_SOA_DYNAMIC_COLUMN (DyEnergyCommonZPC, energyCommonZPC, [](gsl::span< const uint8_t > channelE, gsl::span< const float > energy) -> float { auto thisenergy=-std::numeric_limits< float >::infinity();for(uint64_t ie=0;ie< channelE.size();ie++) { if(channelE[ie]==o2::zdc::IdZPCC) { thisenergy=energy[ie];break;} } return thisenergy;})
 
 o2::aod::zdc::for (uint64_t ie=0;ie< channelE.size();ie++)
 
 o2::aod::zdc::DECLARE_SOA_DYNAMIC_COLUMN (DyTimeZEM1, timeZEM1, [](gsl::span< const uint8_t > channelT, gsl::span< const float > time) -> float { auto thistime=-std::numeric_limits< float >::infinity();for(uint64_t ie=0;ie< channelT.size();ie++) { if(channelT[ie]==o2::zdc::IdZEM1) { thistime=time[ie];break;} } return thistime;})
 
 o2::aod::zdc::DECLARE_SOA_DYNAMIC_COLUMN (DyTimeZEM2, timeZEM2, [](gsl::span< const uint8_t > channelT, gsl::span< const float > time) -> float { auto thistime=-std::numeric_limits< float >::infinity();for(uint64_t ie=0;ie< channelT.size();ie++) { if(channelT[ie]==o2::zdc::IdZEM2) { thistime=time[ie];break;} } return thistime;})
 
 o2::aod::zdc::DECLARE_SOA_DYNAMIC_COLUMN (DyTimeZNA, timeZNA, [](gsl::span< const uint8_t > channelT, gsl::span< const float > time) -> float { auto thistime=-std::numeric_limits< float >::infinity();for(uint64_t ie=0;ie< channelT.size();ie++) { if(channelT[ie]==o2::zdc::IdZNAC) { thistime=time[ie];break;} } return thistime;})
 
 o2::aod::zdc::DECLARE_SOA_DYNAMIC_COLUMN (DyTimeZNC, timeZNC, [](gsl::span< const uint8_t > channelT, gsl::span< const float > time) -> float { auto thistime=-std::numeric_limits< float >::infinity();for(uint64_t ie=0;ie< channelT.size();ie++) { if(channelT[ie]==o2::zdc::IdZNCC) { thistime=time[ie];break;} } return thistime;})
 
 o2::aod::zdc::DECLARE_SOA_DYNAMIC_COLUMN (DyTimeZPA, timeZPA, [](gsl::span< const uint8_t > channelT, gsl::span< const float > time) -> float { auto thistime=-std::numeric_limits< float >::infinity();for(uint64_t ie=0;ie< channelT.size();ie++) { if(channelT[ie]==o2::zdc::IdZPAC) { thistime=time[ie];break;} } return thistime;})
 
 o2::aod::zdc::DECLARE_SOA_DYNAMIC_COLUMN (DyTimeZPC, timeZPC, [](gsl::span< const uint8_t > channelT, gsl::span< const float > time) -> float { auto thistime=-std::numeric_limits< float >::infinity();for(uint64_t ie=0;ie< channelT.size();ie++) { if(channelT[ie]==o2::zdc::IdZPCC) { thistime=time[ie];break;} } return thistime;})
 
 o2::aod::zdc::DECLARE_SOA_DYNAMIC_COLUMN (DyAmplitudeZEM1, amplitudeZEM1, [](gsl::span< const uint8_t > channelT, gsl::span< const float > amplitude) -> float { auto thisamplitude=-std::numeric_limits< float >::infinity();for(uint64_t ie=0;ie< channelT.size();ie++) { if(channelT[ie]==o2::zdc::IdZEM1) { thisamplitude=amplitude[ie];break;} } return thisamplitude;})
 
 o2::aod::zdc::DECLARE_SOA_DYNAMIC_COLUMN (DyAmplitudeZEM2, amplitudeZEM2, [](gsl::span< const uint8_t > channelT, gsl::span< const float > amplitude) -> float { auto thisamplitude=-std::numeric_limits< float >::infinity();for(uint64_t ie=0;ie< channelT.size();ie++) { if(channelT[ie]==o2::zdc::IdZEM2) { thisamplitude=amplitude[ie];break;} } return thisamplitude;})
 
 o2::aod::zdc::DECLARE_SOA_DYNAMIC_COLUMN (DyAmplitudeZNA, amplitudeZNA, [](gsl::span< const uint8_t > channelT, gsl::span< const float > amplitude) -> float { auto thisamplitude=-std::numeric_limits< float >::infinity();for(uint64_t ie=0;ie< channelT.size();ie++) { if(channelT[ie]==o2::zdc::IdZNAC) { thisamplitude=amplitude[ie];break;} } return thisamplitude;})
 
 o2::aod::zdc::DECLARE_SOA_DYNAMIC_COLUMN (DyAmplitudeZNC, amplitudeZNC, [](gsl::span< const uint8_t > channelT, gsl::span< const float > amplitude) -> float { auto thisamplitude=-std::numeric_limits< float >::infinity();for(uint64_t ie=0;ie< channelT.size();ie++) { if(channelT[ie]==o2::zdc::IdZNCC) { thisamplitude=amplitude[ie];break;} } return thisamplitude;})
 
 o2::aod::zdc::DECLARE_SOA_DYNAMIC_COLUMN (DyAmplitudeZPA, amplitudeZPA, [](gsl::span< const uint8_t > channelT, gsl::span< const float > amplitude) -> float { auto thisamplitude=-std::numeric_limits< float >::infinity();for(uint64_t ie=0;ie< channelT.size();ie++) { if(channelT[ie]==o2::zdc::IdZPAC) { thisamplitude=amplitude[ie];break;} } return thisamplitude;})
 
 o2::aod::zdc::DECLARE_SOA_DYNAMIC_COLUMN (DyAmplitudeZPC, amplitudeZPC, [](gsl::span< const uint8_t > channelT, gsl::span< const float > amplitude) -> float { auto thisamplitude=-std::numeric_limits< float >::infinity();for(uint64_t ie=0;ie< channelT.size();ie++) { if(channelT[ie]==o2::zdc::IdZPCC) { thisamplitude=amplitude[ie];break;} } return thisamplitude;})
 
 o2::aod::DECLARE_SOA_TABLE (Zdcs_000, "AOD", "ZDC", o2::soa::Index<>, zdc::BCId, zdc::EnergyZEM1, zdc::EnergyZEM2, zdc::EnergyCommonZNA, zdc::EnergyCommonZNC, zdc::EnergyCommonZPA, zdc::EnergyCommonZPC, zdc::EnergySectorZNA, zdc::EnergySectorZNC, zdc::EnergySectorZPA, zdc::EnergySectorZPC, zdc::TimeZEM1, zdc::TimeZEM2, zdc::TimeZNA, zdc::TimeZNC, zdc::TimeZPA, zdc::TimeZPC)
 
 o2::aod::DECLARE_SOA_TABLE_VERSIONED (Zdcs_001, "AOD", "ZDC", 1, o2::soa::Index<>, zdc::BCId, zdc::Energy, zdc::ChannelE, zdc::Amplitude, zdc::Time, zdc::ChannelT, zdc::DyEnergyZEM1< zdc::ChannelE, zdc::Energy >, zdc::DyEnergyZEM2< zdc::ChannelE, zdc::Energy >, zdc::DyEnergyCommonZNA< zdc::ChannelE, zdc::Energy >, zdc::DyEnergyCommonZNC< zdc::ChannelE, zdc::Energy >, zdc::DyEnergyCommonZPA< zdc::ChannelE, zdc::Energy >, zdc::DyEnergyCommonZPC< zdc::ChannelE, zdc::Energy >, zdc::DyEnergySectorZNA< zdc::ChannelE, zdc::Energy >, zdc::DyEnergySectorZNC< zdc::ChannelE, zdc::Energy >, zdc::DyEnergySectorZPA< zdc::ChannelE, zdc::Energy >, zdc::DyEnergySectorZPC< zdc::ChannelE, zdc::Energy >, zdc::DyTimeZEM1< zdc::ChannelT, zdc::Time >, zdc::DyTimeZEM2< zdc::ChannelT, zdc::Time >, zdc::DyTimeZNA< zdc::ChannelT, zdc::Time >, zdc::DyTimeZNC< zdc::ChannelT, zdc::Time >, zdc::DyTimeZPA< zdc::ChannelT, zdc::Time >, zdc::DyTimeZPC< zdc::ChannelT, zdc::Time >, zdc::DyAmplitudeZEM1< zdc::ChannelT, zdc::Amplitude >, zdc::DyAmplitudeZEM2< zdc::ChannelT, zdc::Amplitude >, zdc::DyAmplitudeZNA< zdc::ChannelT, zdc::Amplitude >, zdc::DyAmplitudeZNC< zdc::ChannelT, zdc::Amplitude >, zdc::DyAmplitudeZPA< zdc::ChannelT, zdc::Amplitude >, zdc::DyAmplitudeZPC< zdc::ChannelT, zdc::Amplitude >)
 
 o2::aod::fv0a::DECLARE_SOA_INDEX_COLUMN (BC, bc)
 
 o2::aod::fv0a::DECLARE_SOA_COLUMN (Amplitude, amplitude, std::vector< float >)
 BC index.
 
 o2::aod::fv0a::DECLARE_SOA_COLUMN (TimeFV0A, timeFV0A, std::vector< float >)
 Amplitudes of non-zero channels. The channel IDs are given in Channel (at the same index)
 
 o2::aod::fv0a::DECLARE_SOA_COLUMN (Channel, channel, std::vector< uint8_t >)
 Time of non-zero channels. The channel IDs are given in Channel (at the same index). Only for the FITExtra table.
 
 o2::aod::fv0a::DECLARE_SOA_COLUMN (Time, time, float)
 Channel IDs which had non-zero amplitudes. There are at maximum 48 channels.
 
 o2::aod::fv0a::DECLARE_SOA_COLUMN (TriggerMask, triggerMask, uint8_t)
 Time in ns.
 
 o2::aod::DECLARE_SOA_TABLE (FV0As, "AOD", "FV0A", o2::soa::Index<>, fv0a::BCId, fv0a::Amplitude, fv0a::Channel, fv0a::Time, fv0a::TriggerMask)
 
 o2::aod::DECLARE_SOA_TABLE (FV0AsExtra, "AOD", "FV0AEXTRA", o2::soa::Index<>, fv0a::BCId, fv0a::TimeFV0A)
 
 o2::aod::fv0c::DECLARE_SOA_INDEX_COLUMN (BC, bc)
 
 o2::aod::fv0c::DECLARE_SOA_COLUMN (Amplitude, amplitude, std::vector< float >)
 BC index.
 
 o2::aod::fv0c::DECLARE_SOA_COLUMN (Channel, channel, std::vector< uint8_t >)
 Amplitudes of non-zero channels. The channel IDs are given in Channel (at the same index)
 
 o2::aod::fv0c::DECLARE_SOA_COLUMN (Time, time, float)
 Channel IDs which had non-zero amplitudes. There are at maximum 32 channels.
 
 o2::aod::DECLARE_SOA_TABLE (FV0Cs, "AOD", "FV0C", o2::soa::Index<>, fv0c::BCId, fv0c::Amplitude, fv0a::Channel, fv0c::Time)
 
 o2::aod::ft0::DECLARE_SOA_INDEX_COLUMN (BC, bc)
 
 o2::aod::ft0::DECLARE_SOA_COLUMN (AmplitudeA, amplitudeA, std::vector< float >)
 BC index.
 
 o2::aod::ft0::DECLARE_SOA_COLUMN (TimeFT0A, timeFT0A, std::vector< float >)
 Amplitudes of non-zero channels on the A-side. The channel IDs are given in ChannelA (at the same index)
 
 o2::aod::ft0::DECLARE_SOA_COLUMN (ChannelA, channelA, std::vector< uint8_t >)
 Time of non-zero channels on the A-side. The channel IDs are given in ChannelA (at the same index). Only for the FITExtra table.
 
 o2::aod::ft0::DECLARE_SOA_COLUMN (AmplitudeC, amplitudeC, std::vector< float >)
 Channel IDs on the A side which had non-zero amplitudes. There are at maximum 96 channels.
 
 o2::aod::ft0::DECLARE_SOA_COLUMN (TimeFT0C, timeFT0C, std::vector< float >)
 Amplitudes of non-zero channels on the C-side. The channel IDs are given in ChannelC (at the same index)
 
 o2::aod::ft0::DECLARE_SOA_COLUMN (ChannelC, channelC, std::vector< uint8_t >)
 Time of non-zero channels on the C-side. The channel IDs are given in ChannelC (at the same index). Only for the FITExtra table.
 
 o2::aod::ft0::DECLARE_SOA_COLUMN (TimeA, timeA, float)
 Channel IDs on the C side which had non-zero amplitudes. There are at maximum 112 channels.
 
 o2::aod::ft0::DECLARE_SOA_COLUMN (TimeC, timeC, float)
 Average A-side time.
 
 o2::aod::ft0::DECLARE_SOA_COLUMN (TriggerMask, triggerMask, uint8_t)
 Average C-side time.
 
 o2::aod::ft0::DECLARE_SOA_DYNAMIC_COLUMN (PosZ, posZ, [](float timeA, float timeC) -> float { return o2::constants::physics::LightSpeedCm2NS *(timeC - timeA)/2;})
 
 o2::aod::ft0::DECLARE_SOA_DYNAMIC_COLUMN (CollTime, collTime, [](float timeA, float timeC) -> float { return(timeA+timeC)/2;})
 
 o2::aod::ft0::DECLARE_SOA_DYNAMIC_COLUMN (IsValidTimeA, isValidTimeA, [](float timeA) -> bool { return timeA< 30.f;})
 
 o2::aod::ft0::DECLARE_SOA_DYNAMIC_COLUMN (IsValidTimeC, isValidTimeC, [](float timeC) -> bool { return timeC< 30.f;})
 
 o2::aod::ft0::DECLARE_SOA_DYNAMIC_COLUMN (IsValidTime, isValidTime, [](float timeA, float timeC) -> bool { return(timeA< 30.f) &&(timeC< 30.f);})
 
 o2::aod::ft0::DECLARE_SOA_DYNAMIC_COLUMN (SumAmpA, sumAmpA, [](gsl::span< const float > vecAmpA) -> float { return std::accumulate(vecAmpA.begin(), vecAmpA.end(), 0.f, [](auto &&sum, auto &&curr) { return sum+(curr > 0 ? curr :0);});})
 
 o2::aod::ft0::DECLARE_SOA_DYNAMIC_COLUMN (SumAmpC, sumAmpC, [](gsl::span< const float > vecAmpC) -> float { return std::accumulate(vecAmpC.begin(), vecAmpC.end(), 0.f, [](auto &&sum, auto &&curr) { return sum+(curr > 0 ? curr :0);});})
 
 o2::aod::DECLARE_SOA_TABLE (FT0s, "AOD", "FT0", o2::soa::Index<>, ft0::BCId, ft0::AmplitudeA, ft0::ChannelA, ft0::AmplitudeC, ft0::ChannelC, ft0::TimeA, ft0::TimeC, ft0::TriggerMask, ft0::PosZ< ft0::TimeA, ft0::TimeC >, ft0::CollTime< ft0::TimeA, ft0::TimeC >, ft0::IsValidTimeA< ft0::TimeA >, ft0::IsValidTimeC< ft0::TimeC >, ft0::IsValidTime< ft0::TimeA, ft0::TimeC >, ft0::SumAmpA< ft0::AmplitudeA >, ft0::SumAmpC< ft0::AmplitudeC >)
 
 o2::aod::DECLARE_SOA_TABLE (FT0sExtra, "AOD", "FT0EXTRA", o2::soa::Index<>, ft0::BCId, ft0::TimeFT0A, ft0::TimeFT0C)
 
 o2::aod::fdd::DECLARE_SOA_INDEX_COLUMN (BC, bc)
 
 o2::aod::fdd::DECLARE_SOA_COLUMN (AmplitudeA, amplitudeA, float[4])
 BC index.
 
 o2::aod::fdd::DECLARE_SOA_COLUMN (AmplitudeC, amplitudeC, float[4])
 Amplitude in adjacent pairs A-side.
 
 o2::aod::fdd::DECLARE_SOA_COLUMN (ChargeA, chargeA, int16_t[8])
 Amplitude in adjacent pairs C-side.
 
 o2::aod::fdd::DECLARE_SOA_COLUMN (ChargeC, chargeC, int16_t[8])
 Amplitude per channel A-side.
 
 o2::aod::fdd::DECLARE_SOA_COLUMN (TimeFDDA, timeFDDA, float[8])
 Amplitude per channel C-side.
 
 o2::aod::fdd::DECLARE_SOA_COLUMN (TimeFDDC, timeFDDC, float[8])
 Time per channel A-side, only for the FITExtra table.
 
 o2::aod::fdd::DECLARE_SOA_COLUMN (TimeA, timeA, float)
 Time per channel C-side, only for the FITExtra table.
 
 o2::aod::fdd::DECLARE_SOA_COLUMN (TimeC, timeC, float)
 
 o2::aod::fdd::DECLARE_SOA_COLUMN (TriggerMask, triggerMask, uint8_t)
 
 o2::aod::DECLARE_SOA_TABLE (FDDs_000, "AOD", "FDD", o2::soa::Index<>, fdd::BCId, fdd::AmplitudeA, fdd::AmplitudeC, fdd::TimeA, fdd::TimeC, fdd::TriggerMask)
 
 o2::aod::DECLARE_SOA_TABLE_VERSIONED (FDDs_001, "AOD", "FDD", 1, o2::soa::Index<>, fdd::BCId, fdd::ChargeA, fdd::ChargeC, fdd::TimeA, fdd::TimeC, fdd::TriggerMask)
 
 o2::aod::DECLARE_SOA_TABLE (FDDsExtra, "AOD", "FDDEXTRA", o2::soa::Index<>, fdd::BCId, fdd::TimeFDDA, fdd::TimeFDDC)
 
 o2::aod::v0::DECLARE_SOA_INDEX_COLUMN_FULL (PosTrack, posTrack, int, Tracks, "_Pos")
 
 o2::aod::v0::DECLARE_SOA_INDEX_COLUMN_FULL (NegTrack, negTrack, int, Tracks, "_Neg")
 Positive track.
 
 o2::aod::v0::DECLARE_SOA_INDEX_COLUMN (Collision, collision)
 Negative track.
 
 o2::aod::v0::DECLARE_SOA_COLUMN (V0Type, v0Type, uint8_t)
 Collision index.
 
 o2::aod::v0::DECLARE_SOA_DYNAMIC_COLUMN (IsStandardV0, isStandardV0, [](uint8_t V0Type) -> bool { return V0Type &(1<< 0);})
 custom bitmap for various selections (see below)
 
 o2::aod::v0::DECLARE_SOA_DYNAMIC_COLUMN (IsPhotonV0, isPhotonV0, [](uint8_t V0Type) -> bool { return V0Type &(1<< 1);})
 
 o2::aod::v0::DECLARE_SOA_DYNAMIC_COLUMN (IsCollinearV0, isCollinearV0, [](uint8_t V0Type) -> bool { return V0Type &(1<< 2);})
 
 o2::aod::cascade::DECLARE_SOA_INDEX_COLUMN (V0, v0)
 
 o2::aod::cascade::DECLARE_SOA_INDEX_COLUMN_FULL (Bachelor, bachelor, int, Tracks, "")
 V0 index.
 
 o2::aod::cascade::DECLARE_SOA_INDEX_COLUMN (Collision, collision)
 Bachelor track index.
 
 o2::aod::DECLARE_SOA_TABLE (Cascades_000, "AOD", "CASCADE", o2::soa::Index<>, cascade::V0Id, cascade::BachelorId)
 
 o2::aod::DECLARE_SOA_TABLE_VERSIONED (Cascades_001, "AOD", "CASCADE", 1, o2::soa::Index<>, cascade::CollisionId, cascade::V0Id, cascade::BachelorId)
 
 o2::aod::decay3body::DECLARE_SOA_INDEX_COLUMN_FULL (Track0, track0, int, Tracks, "_0")
 
 o2::aod::decay3body::DECLARE_SOA_INDEX_COLUMN_FULL (Track1, track1, int, Tracks, "_1")
 Track 0 index.
 
 o2::aod::decay3body::DECLARE_SOA_INDEX_COLUMN_FULL (Track2, track2, int, Tracks, "_2")
 Track 1 index.
 
 o2::aod::decay3body::DECLARE_SOA_INDEX_COLUMN (Collision, collision)
 Track 2 index.
 
 o2::aod::DECLARE_SOA_TABLE (Decay3Bodys, "AOD", "DECAY3BODY", o2::soa::Index<>, decay3body::CollisionId, decay3body::Track0Id, decay3body::Track1Id, decay3body::Track2Id)
 
 o2::aod::strangenesstracking::DECLARE_SOA_INDEX_COLUMN (Track, track)
 
 o2::aod::strangenesstracking::DECLARE_SOA_INDEX_COLUMN_FULL (ITSTrack, itsTrack, int, Tracks, "_ITS")
 Strange track index.
 
 o2::aod::strangenesstracking::DECLARE_SOA_INDEX_COLUMN (Cascade, cascade)
 ITS index.
 
 o2::aod::strangenesstracking::DECLARE_SOA_INDEX_COLUMN (V0, v0)
 Cascade index.
 
 o2::aod::strangenesstracking::DECLARE_SOA_INDEX_COLUMN (Decay3Body, decay3Body)
 V0 index.
 
 o2::aod::strangenesstracking::DECLARE_SOA_COLUMN (DecayX, decayX, float)
 Decay 3 body index.
 
 o2::aod::strangenesstracking::DECLARE_SOA_COLUMN (DecayY, decayY, float)
 X coordinate of decay vertex.
 
 o2::aod::strangenesstracking::DECLARE_SOA_COLUMN (DecayZ, decayZ, float)
 Y coordinate of decay vertex.
 
 o2::aod::strangenesstracking::DECLARE_SOA_COLUMN (XiMass, xiMass, float)
 Z coordinate of decay vertex.
 
 o2::aod::strangenesstracking::DECLARE_SOA_COLUMN (OmegaMass, omegaMass, float)
 Xi mass.
 
 o2::aod::strangenesstracking::DECLARE_SOA_COLUMN (H3Lmass, h3Lmass, float)
 Omega mass.
 
 o2::aod::strangenesstracking::DECLARE_SOA_COLUMN (H4Lmass, h4Lmass, float)
 H3L mass.
 
 o2::aod::strangenesstracking::DECLARE_SOA_COLUMN (He4Lmass, he4Lmass, float)
 H4L mass.
 
 o2::aod::strangenesstracking::DECLARE_SOA_COLUMN (MatchingChi2, matchingChi2, float)
 He4L mass.
 
 o2::aod::strangenesstracking::DECLARE_SOA_COLUMN (TopologyChi2, topologyChi2, float)
 Matching Chi2.
 
 o2::aod::strangenesstracking::DECLARE_SOA_COLUMN (ITSclsSize, itsClsSize, float)
 Topology Chi2.
 
 o2::aod::DECLARE_SOA_TABLE_FULL (TrackedCascades, "TrackedCascade", "AOD", "TRACKEDCASCADE", o2::soa::Index<>, strangenesstracking::TrackId, strangenesstracking::ITSTrackId, strangenesstracking::CascadeId, strangenesstracking::DecayX, strangenesstracking::DecayY, strangenesstracking::DecayZ, strangenesstracking::XiMass, strangenesstracking::OmegaMass, strangenesstracking::MatchingChi2, strangenesstracking::TopologyChi2, strangenesstracking::ITSclsSize)
 Strangeness tracks.
 
 o2::aod::DECLARE_SOA_TABLE_FULL (TrackedV0s, "TrackedV0", "AOD", "TRACKEDV0", o2::soa::Index<>, strangenesstracking::TrackId, strangenesstracking::ITSTrackId, strangenesstracking::V0Id, strangenesstracking::DecayX, strangenesstracking::DecayY, strangenesstracking::DecayZ, strangenesstracking::H3Lmass, strangenesstracking::H4Lmass, strangenesstracking::MatchingChi2, strangenesstracking::TopologyChi2, strangenesstracking::ITSclsSize)
 
 o2::aod::DECLARE_SOA_TABLE_FULL (Tracked3Bodys, "Tracked3Body", "AOD", "TRACKED3BODY", o2::soa::Index<>, strangenesstracking::TrackId, strangenesstracking::ITSTrackId, strangenesstracking::Decay3BodyId, strangenesstracking::DecayX, strangenesstracking::DecayY, strangenesstracking::DecayZ, strangenesstracking::H3Lmass, strangenesstracking::He4Lmass, strangenesstracking::MatchingChi2, strangenesstracking::TopologyChi2, strangenesstracking::ITSclsSize)
 
 o2::aod::origins::DECLARE_SOA_COLUMN (DataframeID, dataframeID, uint64_t)
 
 o2::aod::DECLARE_SOA_TABLE (Origins, "AOD", "ORIGIN", o2::soa::Index<>, origins::DataframeID)
 
 o2::aod::run2::DECLARE_SOA_COLUMN (EventCuts, eventCuts, uint32_t)
 
 o2::aod::run2::DECLARE_SOA_COLUMN (TriggerMaskNext50, triggerMaskNext50, uint64_t)
 Event selection flags. Check enum Run2EventSelectionCut.
 
 o2::aod::run2::DECLARE_SOA_COLUMN (L0TriggerInputMask, l0TriggerInputMask, uint32_t)
 50 further trigger classes after bc.triggerMask()
 
 o2::aod::run2::DECLARE_SOA_COLUMN (SPDClustersL0, spdClustersL0, uint16_t)
 CTP L0 trigger input mask.
 
 o2::aod::run2::DECLARE_SOA_COLUMN (SPDClustersL1, spdClustersL1, uint16_t)
 Number of clusters in the first layer of the SPD.
 
 o2::aod::run2::DECLARE_SOA_COLUMN (SPDFiredChipsL0, spdFiredChipsL0, uint16_t)
 Number of clusters in the second layer of the SPD.
 
 o2::aod::run2::DECLARE_SOA_COLUMN (SPDFiredChipsL1, spdFiredChipsL1, uint16_t)
 Fired chips in the first layer of the SPD (offline)
 
 o2::aod::run2::DECLARE_SOA_COLUMN (SPDFiredFastOrL0, spdFiredFastOrL0, uint16_t)
 Fired chips in the second layer of the SPD (offline)
 
 o2::aod::run2::DECLARE_SOA_COLUMN (SPDFiredFastOrL1, spdFiredFastOrL1, uint16_t)
 Fired FASTOR signals in the first layer of the SPD (online)
 
 o2::aod::run2::DECLARE_SOA_COLUMN (V0TriggerChargeA, v0TriggerChargeA, uint16_t)
 Fired FASTOR signals in the first layer of the SPD (online)
 
 o2::aod::run2::DECLARE_SOA_COLUMN (V0TriggerChargeC, v0TriggerChargeC, uint16_t)
 V0A trigger charge.
 
 o2::aod::run2::DECLARE_SOA_COLUMN (NTPCClusters, nTPCClusters, uint32_t)
 V0C trigger charge.
 
 o2::aod::run2::DECLARE_SOA_COLUMN (NSDDSSDClusters, nSDDSSDClusters, uint32_t)
 total number of TPC clusters (for ev sel)
 
 o2::aod::run2::oftv0::DECLARE_SOA_INDEX_COLUMN (Collision, collision)
 
 o2::aod::run2::oftv0::DECLARE_SOA_INDEX_COLUMN_FULL (PosTrack, posTrack, int, Tracks, "_Pos")
 Collision index.
 
 o2::aod::run2::oftv0::DECLARE_SOA_INDEX_COLUMN_FULL (NegTrack, negTrack, int, Tracks, "_Neg")
 Positive track.
 
 o2::aod::run2::oftv0::DECLARE_SOA_COLUMN (Px, px, float)
 Negative track.
 
 o2::aod::run2::oftv0::DECLARE_SOA_COLUMN (Py, py, float)
 momentum in x
 
 o2::aod::run2::oftv0::DECLARE_SOA_COLUMN (Pz, pz, float)
 momentum in y
 
 o2::aod::run2::oftv0::DECLARE_SOA_COLUMN (E, e, float)
 momentum in z
 
 o2::aod::run2::oftv0::DECLARE_SOA_COLUMN (Qt, qt, float)
 energy
 
 o2::aod::run2::oftv0::DECLARE_SOA_COLUMN (Alpha, alpha, float)
 Qt of AP.
 
 o2::aod::run2::oftv0::DECLARE_SOA_COLUMN (X, x, float)
 Alpha of AP.
 
 o2::aod::run2::oftv0::DECLARE_SOA_COLUMN (Y, y, float)
 conversion point x coordiante
 
 o2::aod::run2::oftv0::DECLARE_SOA_COLUMN (Z, z, float)
 conversion point y coordiante
 
 o2::aod::run2::oftv0::DECLARE_SOA_COLUMN (Chi2NDF, chi2NDF, float)
 conversion point z coordiante
 
 o2::aod::run2::oftv0::DECLARE_SOA_COLUMN (PsiPair, psiPair, float)
 chi^2 over NDF from KFParticle
 
 o2::aod::run2::oftv0::DECLARE_SOA_COLUMN (DCAr, dcaR, float)
 Psi pair.
 
 o2::aod::run2::oftv0::DECLARE_SOA_COLUMN (DCAz, dcaZ, float)
 DCA in radial direction.
 
 o2::aod::run2::oftv0::DECLARE_SOA_COLUMN (Mass, mass, float)
 DCA in z direction.
 
 o2::aod::DECLARE_SOA_TABLE (Run2BCInfos_000, "AOD", "RUN2BCINFO", run2::EventCuts, run2::TriggerMaskNext50, run2::L0TriggerInputMask, run2::SPDClustersL0, run2::SPDClustersL1, run2::SPDFiredChipsL0, run2::SPDFiredChipsL1, run2::SPDFiredFastOrL0, run2::SPDFiredFastOrL1, run2::V0TriggerChargeA, run2::V0TriggerChargeC)
 
 o2::aod::DECLARE_SOA_TABLE_VERSIONED (Run2BCInfos_001, "AOD", "RUN2BCINFO", 1, run2::EventCuts, run2::TriggerMaskNext50, run2::L0TriggerInputMask, run2::SPDClustersL0, run2::SPDClustersL1, run2::SPDFiredChipsL0, run2::SPDFiredChipsL1, run2::SPDFiredFastOrL0, run2::SPDFiredFastOrL1, run2::V0TriggerChargeA, run2::V0TriggerChargeC, run2::NTPCClusters, run2::NSDDSSDClusters)
 
 o2::aod::DECLARE_SOA_TABLE (Run2OTFV0s, "AOD", "Run2OTFV0", o2::soa::Index<>, run2::oftv0::CollisionId, run2::oftv0::PosTrackId, run2::oftv0::NegTrackId, run2::oftv0::Px, run2::oftv0::Py, run2::oftv0::Pz, run2::oftv0::E, run2::oftv0::Qt, run2::oftv0::Alpha, run2::oftv0::X, run2::oftv0::Y, run2::oftv0::Z, run2::oftv0::Chi2NDF, run2::oftv0::PsiPair, run2::oftv0::DCAr, run2::oftv0::DCAz, run2::oftv0::Mass)
 
 o2::aod::mccollision::DECLARE_SOA_INDEX_COLUMN (BC, bc)
 
 o2::aod::mccollision::DECLARE_SOA_COLUMN (GeneratorsID, generatorsID, short)
 BC index.
 
 o2::aod::mccollision::DECLARE_SOA_COLUMN (PosX, posX, float)
 disentangled generator IDs should be accessed using getGeneratorId, getSubGeneratorId and getSourceId
 
 o2::aod::mccollision::DECLARE_SOA_COLUMN (PosY, posY, float)
 X vertex position in cm.
 
 o2::aod::mccollision::DECLARE_SOA_COLUMN (PosZ, posZ, float)
 Y vertex position in cm.
 
 o2::aod::mccollision::DECLARE_SOA_COLUMN (T, t, float)
 Z vertex position in cm.
 
 o2::aod::mccollision::DECLARE_SOA_COLUMN (Weight, weight, float)
 Collision time relative to given bc in ns.
 
 o2::aod::mccollision::DECLARE_SOA_COLUMN (ImpactParameter, impactParameter, float)
 MC weight.
 
 o2::aod::mccollision::DECLARE_SOA_COLUMN (EventPlaneAngle, eventPlaneAngle, float)
 Impact parameter for A-A.
 
 o2::aod::mccollision::DECLARE_SOA_DYNAMIC_COLUMN (GetGeneratorId, getGeneratorId, [](short generatorsID) -> int { return o2::mcgenid::getGeneratorId(generatorsID);})
 Event plane angle for A-A.
 
 o2::aod::mccollision::DECLARE_SOA_DYNAMIC_COLUMN (GetSubGeneratorId, getSubGeneratorId, [](short generatorsID) -> int { return o2::mcgenid::getSubGeneratorId(generatorsID);})
 
 o2::aod::mccollision::DECLARE_SOA_DYNAMIC_COLUMN (GetSourceId, getSourceId, [](short generatorsID) -> int { return o2::mcgenid::getSourceId(generatorsID);})
 
 o2::aod::DECLARE_SOA_TABLE (McCollisions_000, "AOD", "MCCOLLISION", o2::soa::Index<>, mccollision::BCId, mccollision::GeneratorsID, mccollision::PosX, mccollision::PosY, mccollision::PosZ, mccollision::T, mccollision::Weight, mccollision::ImpactParameter, mccollision::GetGeneratorId< mccollision::GeneratorsID >, mccollision::GetSubGeneratorId< mccollision::GeneratorsID >, mccollision::GetSourceId< mccollision::GeneratorsID >)
 
 o2::aod::DECLARE_SOA_TABLE_VERSIONED (McCollisions_001, "AOD", "MCCOLLISION", 1, o2::soa::Index<>, mccollision::BCId, mccollision::GeneratorsID, mccollision::PosX, mccollision::PosY, mccollision::PosZ, mccollision::T, mccollision::Weight, mccollision::ImpactParameter, mccollision::EventPlaneAngle, mccollision::GetGeneratorId< mccollision::GeneratorsID >, mccollision::GetSubGeneratorId< mccollision::GeneratorsID >, mccollision::GetSourceId< mccollision::GeneratorsID >)
 
 o2::aod::mcparticle::DECLARE_SOA_INDEX_COLUMN (McCollision, mcCollision)
 
 o2::aod::mcparticle::DECLARE_SOA_COLUMN (PdgCode, pdgCode, int)
 MC collision of this particle.
 
 o2::aod::mcparticle::DECLARE_SOA_COLUMN (StatusCode, statusCode, int)
 PDG code.
 
 o2::aod::mcparticle::DECLARE_SOA_COLUMN (Flags, flags, uint8_t)
 Generators status code or physics process. Do not use directly. Use dynamic columns getGenStatusCode() or getProcess()
 
 o2::aod::mcparticle::DECLARE_SOA_SELF_INDEX_COLUMN_FULL (Mother0, mother0, int, "McParticles_Mother0")
 ALICE specific flags, see MCParticleFlags. Do not use directly. Use the dynamic columns, e.g. producedByGenerator()
 
 o2::aod::mcparticle::DECLARE_SOA_SELF_INDEX_COLUMN_FULL (Mother1, mother1, int, "McParticles_Mother1")
 Track index of the first mother.
 
 o2::aod::mcparticle::DECLARE_SOA_SELF_INDEX_COLUMN_FULL (Daughter0, daughter0, int, "McParticles_Daughter0")
 Track index of the last mother.
 
 o2::aod::mcparticle::DECLARE_SOA_SELF_INDEX_COLUMN_FULL (Daughter1, daughter1, int, "McParticles_Daughter1")
 Track index of the first daugther.
 
 o2::aod::mcparticle::DECLARE_SOA_SELF_ARRAY_INDEX_COLUMN (Mothers, mothers)
 Track index of the last daugther.
 
 o2::aod::mcparticle::DECLARE_SOA_SELF_SLICE_INDEX_COLUMN (Daughters, daughters)
 Mother tracks (possible empty) array. Iterate over mcParticle.mothers_as<aod::McParticles>())
 
 o2::aod::mcparticle::DECLARE_SOA_COLUMN (Weight, weight, float)
 Daughter tracks (possibly empty) slice. Check for non-zero with mcParticle.has_daughters(). Iterate over mcParticle.daughters_as<aod::McParticles>())
 
 o2::aod::mcparticle::DECLARE_SOA_COLUMN (Px, px, float)
 MC weight.
 
 o2::aod::mcparticle::DECLARE_SOA_COLUMN (Py, py, float)
 Momentum in x in GeV/c.
 
 o2::aod::mcparticle::DECLARE_SOA_COLUMN (Pz, pz, float)
 Momentum in y in GeV/c.
 
 o2::aod::mcparticle::DECLARE_SOA_COLUMN (E, e, float)
 Momentum in z in GeV/c.
 
 o2::aod::mcparticle::DECLARE_SOA_COLUMN (Vx, vx, float)
 Energy.
 
 o2::aod::mcparticle::DECLARE_SOA_COLUMN (Vy, vy, float)
 X production vertex in cm.
 
 o2::aod::mcparticle::DECLARE_SOA_COLUMN (Vz, vz, float)
 Y production vertex in cm.
 
 o2::aod::mcparticle::DECLARE_SOA_COLUMN (Vt, vt, float)
 Z production vertex in cm.
 
 o2::aod::mcparticle::DECLARE_SOA_DYNAMIC_COLUMN (ProducedByGenerator, producedByGenerator, [](uint8_t flags) -> bool { return(flags &o2::aod::mcparticle::enums::ProducedByTransport)==0x0;})
 Production time.
 
 o2::aod::mcparticle::DECLARE_SOA_DYNAMIC_COLUMN (FromBackgroundEvent, fromBackgroundEvent, [](uint8_t flags) -> bool { return(flags &o2::aod::mcparticle::enums::FromBackgroundEvent)==o2::aod::mcparticle::enums::FromBackgroundEvent;})
 
 o2::aod::mcparticle::DECLARE_SOA_DYNAMIC_COLUMN (GetGenStatusCode, getGenStatusCode, [](uint8_t flags, int statusCode) -> int { if((flags &o2::aod::mcparticle::enums::ProducedByTransport)==0x0) { return o2::mcgenstatus::getGenStatusCode(statusCode);} else { return -1;} })
 
 o2::aod::mcparticle::DECLARE_SOA_DYNAMIC_COLUMN (GetHepMCStatusCode, getHepMCStatusCode, [](uint8_t flags, int statusCode) -> int { if((flags &o2::aod::mcparticle::enums::ProducedByTransport)==0x0) { return o2::mcgenstatus::getHepMCStatusCode(statusCode);} else { return -1;} })
 
 o2::aod::mcparticle::DECLARE_SOA_DYNAMIC_COLUMN (IsPhysicalPrimary, isPhysicalPrimary, [](uint8_t flags) -> bool { return(flags &o2::aod::mcparticle::enums::PhysicalPrimary)==o2::aod::mcparticle::enums::PhysicalPrimary;})
 
 o2::aod::mcparticle::DECLARE_SOA_DYNAMIC_COLUMN (PVector, pVector, [](float px, float py, float pz) -> std::array< float, 3 > { return std::array< float, 3 >{px, py, pz};})
 
o2::constants::math::PI o2::aod::mcparticle::natan2 (-1.0f *aod::mcparticle::py, -1.0f *aod::mcparticle::px))
 
 o2::aod::mcparticle::DECLARE_SOA_EXPRESSION_COLUMN (Eta, eta, float, ifnode((nsqrt(aod::mcparticle::px *aod::mcparticle::px+aod::mcparticle::py *aod::mcparticle::py+aod::mcparticle::pz *aod::mcparticle::pz) - aod::mcparticle::pz)< static_cast< float >(1e-7), ifnode(aod::mcparticle::pz< 0.f, -100.f, 100.f), 0.5f *nlog((nsqrt(aod::mcparticle::px *aod::mcparticle::px+aod::mcparticle::py *aod::mcparticle::py+aod::mcparticle::pz *aod::mcparticle::pz)+aod::mcparticle::pz)/(nsqrt(aod::mcparticle::px *aod::mcparticle::px+aod::mcparticle::py *aod::mcparticle::py+aod::mcparticle::pz *aod::mcparticle::pz) - aod::mcparticle::pz))))
 
 o2::aod::mcparticle::DECLARE_SOA_EXPRESSION_COLUMN (Pt, pt, float, nsqrt(aod::mcparticle::px *aod::mcparticle::px+aod::mcparticle::py *aod::mcparticle::py))
 
 o2::aod::mcparticle::DECLARE_SOA_EXPRESSION_COLUMN (P, p, float, nsqrt(aod::mcparticle::px *aod::mcparticle::px+aod::mcparticle::py *aod::mcparticle::py+aod::mcparticle::pz *aod::mcparticle::pz))
 
 o2::aod::mcparticle::DECLARE_SOA_EXPRESSION_COLUMN (Y, y, float, ifnode((aod::mcparticle::e - aod::mcparticle::pz)< static_cast< float >(1e-7), ifnode(aod::mcparticle::pz< 0.f, -100.f, 100.f), 0.5f *nlog((aod::mcparticle::e+aod::mcparticle::pz)/(aod::mcparticle::e - aod::mcparticle::pz))))
 
 o2::aod::DECLARE_SOA_TABLE_FULL (StoredMcParticles_000, "McParticles", "AOD", "MCPARTICLE", o2::soa::Index<>, mcparticle::McCollisionId, mcparticle::PdgCode, mcparticle::StatusCode, mcparticle::Flags, mcparticle::Mother0Id, mcparticle::Mother1Id, mcparticle::Daughter0Id, mcparticle::Daughter1Id, mcparticle::Weight, mcparticle::Px, mcparticle::Py, mcparticle::Pz, mcparticle::E, mcparticle::Vx, mcparticle::Vy, mcparticle::Vz, mcparticle::Vt, mcparticle::PVector< mcparticle::Px, mcparticle::Py, mcparticle::Pz >, mcparticle::ProducedByGenerator< mcparticle::Flags >, mcparticle::FromBackgroundEvent< mcparticle::Flags >, mcparticle::GetGenStatusCode< mcparticle::Flags, mcparticle::StatusCode >, mcparticle::GetHepMCStatusCode< mcparticle::Flags, mcparticle::StatusCode >, mcparticle::GetProcess< mcparticle::Flags, mcparticle::StatusCode >, mcparticle::IsPhysicalPrimary< mcparticle::Flags >)
 
 o2::aod::DECLARE_SOA_TABLE_FULL_VERSIONED (StoredMcParticles_001, "McParticles", "AOD", "MCPARTICLE", 1, o2::soa::Index<>, mcparticle::McCollisionId, mcparticle::PdgCode, mcparticle::StatusCode, mcparticle::Flags, mcparticle::MothersIds, mcparticle::DaughtersIdSlice, mcparticle::Weight, mcparticle::Px, mcparticle::Py, mcparticle::Pz, mcparticle::E, mcparticle::Vx, mcparticle::Vy, mcparticle::Vz, mcparticle::Vt, mcparticle::PVector< mcparticle::Px, mcparticle::Py, mcparticle::Pz >, mcparticle::ProducedByGenerator< mcparticle::Flags >, mcparticle::FromBackgroundEvent< mcparticle::Flags >, mcparticle::GetGenStatusCode< mcparticle::Flags, mcparticle::StatusCode >, mcparticle::GetHepMCStatusCode< mcparticle::Flags, mcparticle::StatusCode >, mcparticle::GetProcess< mcparticle::Flags, mcparticle::StatusCode >, mcparticle::IsPhysicalPrimary< mcparticle::Flags >)
 
 o2::aod::DECLARE_SOA_EXTENDED_TABLE (McParticles_000, StoredMcParticles_000, "EXMCPARTICLE", 0, mcparticle::Phi, mcparticle::Eta, mcparticle::Pt, mcparticle::P, mcparticle::Y)
 
 o2::aod::DECLARE_SOA_EXTENDED_TABLE (McParticles_001, StoredMcParticles_001, "EXMCPARTICLE", 1, mcparticle::Phi, mcparticle::Eta, mcparticle::Pt, mcparticle::P, mcparticle::Y)
 
 o2::soa::DECLARE_EQUIVALENT_FOR_INDEX_NG ("COLLISION/0", "COLLISION/1")
 
 o2::soa::DECLARE_EQUIVALENT_FOR_INDEX_NG ("MCPARTICLE/0", "MCPARTICLE/1")
 
 o2::soa::DECLARE_EQUIVALENT_FOR_INDEX_NG ("TRACK/0", "TRACK_IU/0")
 
 o2::soa::DECLARE_EQUIVALENT_FOR_INDEX_NG ("TRACK/0", "TRACKEXTRA/0")
 
 o2::soa::DECLARE_EQUIVALENT_FOR_INDEX_NG ("TRACK_IU/0", "TRACKEXTRA/0")
 
 o2::soa::DECLARE_EQUIVALENT_FOR_INDEX_NG ("TRACK/0", "TRACKEXTRA/1")
 
 o2::soa::DECLARE_EQUIVALENT_FOR_INDEX_NG ("TRACK_IU/0", "TRACKEXTRA/1")
 
 o2::soa::DECLARE_EQUIVALENT_FOR_INDEX_NG ("TRACK/0", "TRACKEXTRA/2")
 
 o2::soa::DECLARE_EQUIVALENT_FOR_INDEX_NG ("TRACK_IU/0", "TRACKEXTRA/2")
 
 o2::soa::DECLARE_EQUIVALENT_FOR_INDEX_NG ("TRACKEXTRA/0", "TRACKEXTRA/1")
 
 o2::soa::DECLARE_EQUIVALENT_FOR_INDEX_NG ("TRACKEXTRA/0", "TRACKEXTRA/2")
 
 o2::soa::DECLARE_EQUIVALENT_FOR_INDEX_NG ("TRACKEXTRA/1", "TRACKEXTRA/2")
 
 o2::soa::DECLARE_EQUIVALENT_FOR_INDEX_NG ("HMPID/0", "HMPID/1")
 
 o2::soa::DECLARE_EQUIVALENT_FOR_INDEX_NG ("MFTTracks/0", "MFTTracks/1")
 
 o2::aod::mctracklabel::DECLARE_SOA_INDEX_COLUMN (McParticle, mcParticle)
 
 o2::aod::mctracklabel::DECLARE_SOA_COLUMN (McMask, mcMask, uint16_t)
 MC particle.
 
 o2::aod::DECLARE_SOA_TABLE (McTrackLabels, "AOD", "MCTRACKLABEL", mctracklabel::McParticleId, mctracklabel::McMask)
 
 o2::aod::mcmfttracklabel::DECLARE_SOA_INDEX_COLUMN (McParticle, mcParticle)
 
 o2::aod::mcmfttracklabel::DECLARE_SOA_COLUMN (McMask, mcMask, uint8_t)
 MC particle.
 
 o2::aod::DECLARE_SOA_TABLE (McMFTTrackLabels, "AOD", "MCMFTTRACKLABEL", mcmfttracklabel::McParticleId, mcmfttracklabel::McMask)
 
 o2::aod::mcfwdtracklabel::DECLARE_SOA_INDEX_COLUMN (McParticle, mcParticle)
 
 o2::aod::mcfwdtracklabel::DECLARE_SOA_COLUMN (McMask, mcMask, uint8_t)
 MC particle.
 
 o2::aod::DECLARE_SOA_TABLE (McFwdTrackLabels, "AOD", "MCFWDTRACKLABEL", mcfwdtracklabel::McParticleId, mcfwdtracklabel::McMask)
 
 o2::aod::mccalolabel::DECLARE_SOA_INDEX_COLUMN (McParticle, mcParticle)
 
 o2::aod::mccalolabel::DECLARE_SOA_ARRAY_INDEX_COLUMN (McParticle, mcParticle)
 MC particle.
 
 o2::aod::mccalolabel::DECLARE_SOA_COLUMN (McMask, mcMask, uint16_t)
 Array of MC particles that deposited energy in this calo cell.
 
 o2::aod::mccalolabel::DECLARE_SOA_COLUMN (AmplitudeA, amplitudeA, std::vector< float >)
 Bit mask to indicate detector mismatches (bit ON means mismatch). Bit 15: indicates negative label.
 
 o2::aod::mccollisionlabel::DECLARE_SOA_INDEX_COLUMN (McCollision, mcCollision)
 
 o2::aod::mccollisionlabel::DECLARE_SOA_COLUMN (McMask, mcMask, uint16_t)
 MC collision.
 
 o2::aod::DECLARE_SOA_TABLE (McCollisionLabels, "AOD", "MCCOLLISLABEL", mccollisionlabel::McCollisionId, mccollisionlabel::McMask)
 
 o2::aod::hepmcxsection::DECLARE_SOA_INDEX_COLUMN (McCollision, mcCollision)
 
 o2::aod::hepmcxsection::DECLARE_SOA_COLUMN (GeneratorsID, generatorsID, short)
 MC collision index.
 
 o2::aod::hepmcxsection::DECLARE_SOA_COLUMN (Accepted, accepted, uint64_t)
 
 o2::aod::hepmcxsection::DECLARE_SOA_COLUMN (Attempted, attempted, uint64_t)
 The number of events generated so far.
 
 o2::aod::hepmcxsection::DECLARE_SOA_COLUMN (XsectGen, xsectGen, float)
 The number of events attempted so far.
 
 o2::aod::hepmcxsection::DECLARE_SOA_COLUMN (XsectErr, xsectErr, float)
 Cross section in pb.
 
 o2::aod::hepmcxsection::DECLARE_SOA_COLUMN (PtHard, ptHard, float)
 Error associated with this cross section.
 
 o2::aod::hepmcxsection::DECLARE_SOA_COLUMN (NMPI, nMPI, int)
 PT-hard (event scale, for pp collisions)
 
 o2::aod::hepmcxsection::DECLARE_SOA_COLUMN (ProcessId, processId, int)
 number of MPIs (for pp collisions)
 
 o2::aod::DECLARE_SOA_TABLE (HepMCXSections, "AOD", "HEPMCXSECTION", o2::soa::Index<>, hepmcxsection::McCollisionId, hepmcxsection::GeneratorsID, hepmcxsection::Accepted, hepmcxsection::Attempted, hepmcxsection::XsectGen, hepmcxsection::XsectErr, hepmcxsection::PtHard, hepmcxsection::NMPI, hepmcxsection::ProcessId)
 
 o2::aod::hepmcpdfinfo::DECLARE_SOA_INDEX_COLUMN (McCollision, mcCollision)
 
 o2::aod::hepmcpdfinfo::DECLARE_SOA_COLUMN (GeneratorsID, generatorsID, short)
 MC collision index.
 
 o2::aod::hepmcpdfinfo::DECLARE_SOA_COLUMN (Id1, id1, int)
 
 o2::aod::hepmcpdfinfo::DECLARE_SOA_COLUMN (Id2, id2, int)
 flavour code of first parton
 
 o2::aod::hepmcpdfinfo::DECLARE_SOA_COLUMN (PdfId1, pdfId1, int)
 flavour code of second parton
 
 o2::aod::hepmcpdfinfo::DECLARE_SOA_COLUMN (PdfId2, pdfId2, int)
 LHAPDF set id of first parton.
 
 o2::aod::hepmcpdfinfo::DECLARE_SOA_COLUMN (X1, x1, float)
 LHAPDF set id of second parton.
 
 o2::aod::hepmcpdfinfo::DECLARE_SOA_COLUMN (X2, x2, float)
 fraction of beam momentum carried by first parton ("beam side")
 
 o2::aod::hepmcpdfinfo::DECLARE_SOA_COLUMN (ScalePdf, scalePdf, float)
 fraction of beam momentum carried by second parton ("target side")
 
 o2::aod::hepmcpdfinfo::DECLARE_SOA_COLUMN (Pdf1, pdf1, float)
 Q-scale used in evaluation of PDF's (in GeV)
 
 o2::aod::hepmcpdfinfo::DECLARE_SOA_COLUMN (Pdf2, pdf2, float)
 PDF (id1, x1, Q) = x*f(x)
 
 o2::aod::DECLARE_SOA_TABLE (HepMCPdfInfos, "AOD", "HEPMCPDFINFO", o2::soa::Index<>, hepmcpdfinfo::McCollisionId, hepmcpdfinfo::GeneratorsID, hepmcpdfinfo::Id1, hepmcpdfinfo::Id2, hepmcpdfinfo::PdfId1, hepmcpdfinfo::PdfId2, hepmcpdfinfo::X1, hepmcpdfinfo::X2, hepmcpdfinfo::ScalePdf, hepmcpdfinfo::Pdf1, hepmcpdfinfo::Pdf2)
 
 o2::aod::hepmcheavyion::DECLARE_SOA_INDEX_COLUMN (McCollision, mcCollision)
 
 o2::aod::hepmcheavyion::DECLARE_SOA_COLUMN (GeneratorsID, generatorsID, short)
 MC collision index.
 
 o2::aod::hepmcheavyion::DECLARE_SOA_COLUMN (NcollHard, ncollHard, int)
 
 o2::aod::hepmcheavyion::DECLARE_SOA_COLUMN (NpartProj, npartProj, int)
 Number of hard scatterings.
 
 o2::aod::hepmcheavyion::DECLARE_SOA_COLUMN (NpartTarg, npartTarg, int)
 Number of projectile participants.
 
 o2::aod::hepmcheavyion::DECLARE_SOA_COLUMN (Ncoll, ncoll, int)
 Number of target participants.
 
 o2::aod::hepmcheavyion::DECLARE_SOA_COLUMN (NNwoundedCollisions, nNwoundedCollisions, int)
 Number of NN (nucleon-nucleon) collisions.
 
 o2::aod::hepmcheavyion::DECLARE_SOA_COLUMN (NwoundedNCollisions, nwoundedNCollisions, int)
 Number of N-Nwounded collisions.
 
 o2::aod::hepmcheavyion::DECLARE_SOA_COLUMN (NwoundedNwoundedCollisions, nwoundedNwoundedCollisions, int)
 Number of Nwounded-N collisions.
 
 o2::aod::hepmcheavyion::DECLARE_SOA_COLUMN (SpectatorNeutrons, spectatorNeutrons, int)
 Number of Nwounded-Nwounded collisions.
 
 o2::aod::hepmcheavyion::DECLARE_SOA_COLUMN (SpectatorProtons, spectatorProtons, int)
 Number of spectator neutrons.
 
 o2::aod::hepmcheavyion::DECLARE_SOA_COLUMN (ImpactParameter, impactParameter, float)
 Number of spectator protons.
 
 o2::aod::hepmcheavyion::DECLARE_SOA_COLUMN (EventPlaneAngle, eventPlaneAngle, float)
 Impact Parameter(fm) of collision.
 
 o2::aod::hepmcheavyion::DECLARE_SOA_COLUMN (Eccentricity, eccentricity, float)
 Azimuthal angle of event plane.
 
 o2::aod::hepmcheavyion::DECLARE_SOA_COLUMN (SigmaInelNN, sigmaInelNN, float)
 eccentricity of participating nucleons in the transverse plane (as in phobos nucl-ex/0510031)
 
 o2::aod::hepmcheavyion::DECLARE_SOA_COLUMN (Centrality, centrality, float)
 nucleon-nucleon inelastic (including diffractive) cross-section
 
 o2::aod::DECLARE_SOA_TABLE (HepMCHeavyIons, "AOD", "HEPMCHEAVYION", o2::soa::Index<>, hepmcheavyion::McCollisionId, hepmcheavyion::GeneratorsID, hepmcheavyion::NcollHard, hepmcheavyion::NpartProj, hepmcheavyion::NpartTarg, hepmcheavyion::Ncoll, hepmcheavyion::NNwoundedCollisions, hepmcheavyion::NwoundedNCollisions, hepmcheavyion::NwoundedNwoundedCollisions, hepmcheavyion::SpectatorNeutrons, hepmcheavyion::SpectatorProtons, hepmcheavyion::ImpactParameter, hepmcheavyion::EventPlaneAngle, hepmcheavyion::Eccentricity, hepmcheavyion::SigmaInelNN, hepmcheavyion::Centrality)
 
 o2::aod::indices::DECLARE_SOA_INDEX_COLUMN (Collision, collision)
 
 o2::aod::indices::DECLARE_SOA_ARRAY_INDEX_COLUMN (Collision, collisions)
 
 o2::aod::indices::DECLARE_SOA_INDEX_COLUMN (BC, bc)
 
 o2::aod::indices::DECLARE_SOA_INDEX_COLUMN (Zdc, zdc)
 
 o2::aod::indices::DECLARE_SOA_INDEX_COLUMN (FV0A, fv0a)
 
 o2::aod::indices::DECLARE_SOA_INDEX_COLUMN (FV0C, fv0c)
 
 o2::aod::indices::DECLARE_SOA_INDEX_COLUMN (FT0, ft0)
 
 o2::aod::indices::DECLARE_SOA_INDEX_COLUMN (FDD, fdd)
 
 o2::aod::DECLARE_SOA_INDEX_TABLE_EXCLUSIVE (Run2MatchedExclusive, BCs, "MA_RN2_EX", INDEX_LIST_RUN2)
 
 o2::aod::DECLARE_SOA_INDEX_TABLE (Run2MatchedSparse, BCs, "MA_RN2_SP", INDEX_LIST_RUN2)
 
 o2::aod::DECLARE_SOA_INDEX_TABLE_EXCLUSIVE (Run3MatchedExclusive, BCs, "MA_RN3_EX", INDEX_LIST_RUN3)
 
 o2::aod::DECLARE_SOA_INDEX_TABLE (Run3MatchedSparse, BCs, "MA_RN3_SP", INDEX_LIST_RUN3)
 
 o2::aod::DECLARE_SOA_INDEX_TABLE_EXCLUSIVE (MatchedBCCollisionsExclusive, BCs, "MA_BCCOL_EX", indices::BCId, indices::CollisionId)
 
 o2::aod::DECLARE_SOA_INDEX_TABLE (MatchedBCCollisionsSparse, BCs, "MA_BCCOL_SP", indices::BCId, indices::CollisionId)
 
 o2::aod::DECLARE_SOA_INDEX_TABLE_EXCLUSIVE (MatchedBCCollisionsExclusiveMulti, BCs, "MA_BCCOLS_EX", indices::BCId, indices::CollisionIds)
 
 o2::aod::DECLARE_SOA_INDEX_TABLE (MatchedBCCollisionsSparseMulti, BCs, "MA_BCCOLS_SP", indices::BCId, indices::CollisionIds)
 
 o2::aod::DECLARE_SOA_INDEX_TABLE_EXCLUSIVE (Run3MatchedToBCExclusive, BCs, "MA_RN3_BC_EX", indices::BCId, indices::ZdcId, indices::FT0Id, indices::FV0AId, indices::FDDId)
 
 o2::aod::DECLARE_SOA_INDEX_TABLE (Run3MatchedToBCSparse, BCs, "MA_RN3_BC_SP", indices::BCId, indices::ZdcId, indices::FT0Id, indices::FV0AId, indices::FDDId)
 
 o2::aod::DECLARE_SOA_INDEX_TABLE (Run2MatchedToBCSparse, BCs, "MA_RN2_BC_SP", indices::BCId, indices::ZdcId, indices::FT0Id, indices::FV0AId, indices::FV0CId, indices::FDDId)
 
 o2::soa::DECLARE_EQUIVALENT_FOR_INDEX (aod::StoredTracks, aod::McTrackLabels)
 
 o2::soa::DECLARE_EQUIVALENT_FOR_INDEX (aod::StoredTracksIU, aod::McTrackLabels)
 
 o2::soa::DECLARE_EQUIVALENT_FOR_INDEX (aod::Collisions, aod::McCollisionLabels)
 

Variables

float x o2::aod::track::bool { return (std::fabs(x) < o2::constants::geom::XBeamPipeOuterRef)
 
uint8_t itsSharedClusterMap o2::aod::track::uint8_t
 
constexpr uint8_t o2::aod::track::bit = 1
 
return o2::aod::track::itsNSharedCls
 
gsl::span< const uint8_t > o2::aod::zdc::channelE
 
return o2::aod::zdc::thisenergy
 
uint8_t o2::aod::mcparticle::flags
 
uint8_t int statusCode o2::aod::mcparticle::int { if ((flags & o2::aod::mcparticle::enums::ProducedByTransport) == 0x0) { return 0 ; } else { return statusCode; } })
 

Macro Definition Documentation

◆ INDEX_LIST_RUN2

#define INDEX_LIST_RUN2   indices::CollisionId, indices::ZdcId, indices::BCId, indices::FT0Id, indices::FV0AId, indices::FV0CId, indices::FDDId

Definition at line 2122 of file AnalysisDataModel.h.

◆ INDEX_LIST_RUN3

#define INDEX_LIST_RUN3   indices::CollisionId, indices::ZdcId, indices::BCId, indices::FT0Id, indices::FV0AId, indices::FDDId

Definition at line 2126 of file AnalysisDataModel.h.