@@ -326,6 +326,112 @@ DECLARE_SOA_TABLE(McVtx3BodyDatas, "AOD", "MC3BODYDATA", //!
326326using Vtx3BodyDatasCovs = soa::Join<Vtx3BodyDatas, Vtx3BodyCovs>;
327327using Vtx3BodyDatasCovsIndexed = soa::Join<Vtx3BodyDatas, Vtx3BodyCovs, Decay3BodyIndices>;
328328
329+ namespace nuclei3body
330+ {
331+ DECLARE_SOA_INDEX_COLUMN_FULL (Helium3Track, helium3Track, int , Tracks, " _He3" ); // !
332+ DECLARE_SOA_INDEX_COLUMN_FULL (Daughter1Track, daughter1Track, int , Tracks, " _D1" ); // !
333+ DECLARE_SOA_INDEX_COLUMN_FULL (Daughter2Track, daughter2Track, int , Tracks, " _D2" ); // !
334+ DECLARE_SOA_INDEX_COLUMN (Collision, collision); // !
335+
336+ DECLARE_SOA_COLUMN (SignHe3, signHe3, int8_t ); // ! He3 charge sign
337+ DECLARE_SOA_COLUMN (SignDaughter1, signDaughter1, int8_t ); // ! daughter 1 charge sign
338+ DECLARE_SOA_COLUMN (SignDaughter2, signDaughter2, int8_t ); // ! daughter 2 charge sign
339+ DECLARE_SOA_COLUMN (Pt, pt, float ); // ! candidate transverse momentum
340+ DECLARE_SOA_COLUMN (Eta, eta, float ); // ! candidate pseudorapidity
341+ DECLARE_SOA_COLUMN (Phi, phi, float ); // ! candidate azimuth
342+ DECLARE_SOA_COLUMN (PHe3, pHe3, float ); // ! magnitude of fitted, charge-corrected He3 momentum
343+ DECLARE_SOA_COLUMN (PDaughter1, pDaughter1, float ); // ! magnitude of fitted daughter 1 momentum
344+ DECLARE_SOA_COLUMN (PDaughter2, pDaughter2, float ); // ! magnitude of fitted daughter 2 momentum
345+ DECLARE_SOA_COLUMN (Chi2, chi2, float ); // ! DCA-fitter chi2 at PCA
346+ DECLARE_SOA_COLUMN (DcaDaughters, dcaDaughters, float ); // ! square root of DCA-fitter chi2 at PCA
347+ DECLARE_SOA_COLUMN (CosPA, cosPA, float ); // ! cosine of pointing angle
348+ DECLARE_SOA_COLUMN (DecayLength, decayLength, float ); // ! PV-to-SV distance
349+
350+ DECLARE_SOA_COLUMN (DcaXYHe3ToPv, dcaXYHe3ToPv, float ); // ! He3 DCAxy to PV
351+ DECLARE_SOA_COLUMN (DcaZHe3ToPv, dcaZHe3ToPv, float ); // ! He3 DCAz to PV
352+ DECLARE_SOA_COLUMN (DcaXYDaughter1ToPv, dcaXYDaughter1ToPv, float ); // ! daughter 1 DCAxy to PV
353+ DECLARE_SOA_COLUMN (DcaZDaughter1ToPv, dcaZDaughter1ToPv, float ); // ! daughter 1 DCAz to PV
354+ DECLARE_SOA_COLUMN (DcaXYDaughter2ToPv, dcaXYDaughter2ToPv, float ); // ! daughter 2 DCAxy to PV
355+ DECLARE_SOA_COLUMN (DcaZDaughter2ToPv, dcaZDaughter2ToPv, float ); // ! daughter 2 DCAz to PV
356+
357+ DECLARE_SOA_COLUMN (TpcNSigmaHe3, tpcNSigmaHe3, float ); // ! custom He3 TPC n-sigma
358+ DECLARE_SOA_COLUMN (TofNSigmaHe3, tofNSigmaHe3, float ); // ! He3 TOF n-sigma; sentinel without TOF
359+ DECLARE_SOA_COLUMN (TpcNSigmaPiDaughter1, tpcNSigmaPiDaughter1, float );
360+ DECLARE_SOA_COLUMN (TpcNSigmaKaDaughter1, tpcNSigmaKaDaughter1, float );
361+ DECLARE_SOA_COLUMN (TpcNSigmaPrDaughter1, tpcNSigmaPrDaughter1, float );
362+ DECLARE_SOA_COLUMN (TofNSigmaPiDaughter1, tofNSigmaPiDaughter1, float );
363+ DECLARE_SOA_COLUMN (TofNSigmaKaDaughter1, tofNSigmaKaDaughter1, float );
364+ DECLARE_SOA_COLUMN (TofNSigmaPrDaughter1, tofNSigmaPrDaughter1, float );
365+ DECLARE_SOA_COLUMN (TpcNSigmaPiDaughter2, tpcNSigmaPiDaughter2, float );
366+ DECLARE_SOA_COLUMN (TpcNSigmaKaDaughter2, tpcNSigmaKaDaughter2, float );
367+ DECLARE_SOA_COLUMN (TpcNSigmaPrDaughter2, tpcNSigmaPrDaughter2, float );
368+ DECLARE_SOA_COLUMN (TofNSigmaPiDaughter2, tofNSigmaPiDaughter2, float );
369+ DECLARE_SOA_COLUMN (TofNSigmaKaDaughter2, tofNSigmaKaDaughter2, float );
370+ DECLARE_SOA_COLUMN (TofNSigmaPrDaughter2, tofNSigmaPrDaughter2, float );
371+
372+ DECLARE_SOA_COLUMN (TpcNClsHe3, tpcNClsHe3, uint16_t );
373+ DECLARE_SOA_COLUMN (TpcNClsDaughter1, tpcNClsDaughter1, uint16_t );
374+ DECLARE_SOA_COLUMN (TpcNClsDaughter2, tpcNClsDaughter2, uint16_t );
375+ DECLARE_SOA_COLUMN (TpcCrossedRowsHe3, tpcCrossedRowsHe3, uint16_t );
376+ DECLARE_SOA_COLUMN (TpcCrossedRowsDaughter1, tpcCrossedRowsDaughter1, uint16_t );
377+ DECLARE_SOA_COLUMN (TpcCrossedRowsDaughter2, tpcCrossedRowsDaughter2, uint16_t );
378+ DECLARE_SOA_COLUMN (ItsNClsHe3, itsNClsHe3, uint8_t );
379+ DECLARE_SOA_COLUMN (ItsNClsDaughter1, itsNClsDaughter1, uint8_t );
380+ DECLARE_SOA_COLUMN (ItsNClsDaughter2, itsNClsDaughter2, uint8_t );
381+
382+ DECLARE_SOA_COLUMN (McLabelHe3, mcLabelHe3, int );
383+ DECLARE_SOA_COLUMN (McLabelDaughter1, mcLabelDaughter1, int );
384+ DECLARE_SOA_COLUMN (McLabelDaughter2, mcLabelDaughter2, int );
385+ DECLARE_SOA_COLUMN (McPdgHe3, mcPdgHe3, int );
386+ DECLARE_SOA_COLUMN (McPdgDaughter1, mcPdgDaughter1, int );
387+ DECLARE_SOA_COLUMN (McPdgDaughter2, mcPdgDaughter2, int );
388+ DECLARE_SOA_COLUMN (McMatchStatus, mcMatchStatus, uint8_t ); // ! 0 missing label, 1 no common mother, 2 common mother, 3 configured decay
389+ DECLARE_SOA_COLUMN (McMotherLabel, mcMotherLabel, int );
390+ DECLARE_SOA_COLUMN (McMotherPdg, mcMotherPdg, int );
391+ DECLARE_SOA_COLUMN (GenMotherPt, genMotherPt, float );
392+ DECLARE_SOA_COLUMN (GenMotherEta, genMotherEta, float );
393+ DECLARE_SOA_COLUMN (GenMotherPhi, genMotherPhi, float );
394+ DECLARE_SOA_COLUMN (GenDecayLength, genDecayLength, float );
395+ } // namespace nuclei3body
396+
397+ #define NUCLEI_THREE_BODY_RECO_COLUMNS \
398+ nuclei3body::Helium3TrackId, nuclei3body::Daughter1TrackId, \
399+ nuclei3body::Daughter2TrackId, nuclei3body::CollisionId, \
400+ nuclei3body::SignHe3, nuclei3body::SignDaughter1, nuclei3body::SignDaughter2, \
401+ nuclei3body::Pt, nuclei3body::Eta, nuclei3body::Phi, \
402+ nuclei3body::PHe3, nuclei3body::PDaughter1, nuclei3body::PDaughter2, \
403+ nuclei3body::Chi2, nuclei3body::DcaDaughters, nuclei3body::CosPA, \
404+ nuclei3body::DecayLength, \
405+ nuclei3body::DcaXYHe3ToPv, nuclei3body::DcaZHe3ToPv, \
406+ nuclei3body::DcaXYDaughter1ToPv, nuclei3body::DcaZDaughter1ToPv, \
407+ nuclei3body::DcaXYDaughter2ToPv, nuclei3body::DcaZDaughter2ToPv, \
408+ nuclei3body::TpcNSigmaHe3, nuclei3body::TofNSigmaHe3, \
409+ nuclei3body::TpcNSigmaPiDaughter1, nuclei3body::TpcNSigmaKaDaughter1, \
410+ nuclei3body::TpcNSigmaPrDaughter1, nuclei3body::TofNSigmaPiDaughter1, \
411+ nuclei3body::TofNSigmaKaDaughter1, nuclei3body::TofNSigmaPrDaughter1, \
412+ nuclei3body::TpcNSigmaPiDaughter2, nuclei3body::TpcNSigmaKaDaughter2, \
413+ nuclei3body::TpcNSigmaPrDaughter2, nuclei3body::TofNSigmaPiDaughter2, \
414+ nuclei3body::TofNSigmaKaDaughter2, nuclei3body::TofNSigmaPrDaughter2, \
415+ nuclei3body::TpcNClsHe3, nuclei3body::TpcNClsDaughter1, nuclei3body::TpcNClsDaughter2, \
416+ nuclei3body::TpcCrossedRowsHe3, nuclei3body::TpcCrossedRowsDaughter1, \
417+ nuclei3body::TpcCrossedRowsDaughter2, nuclei3body::ItsNClsHe3, \
418+ nuclei3body::ItsNClsDaughter1, nuclei3body::ItsNClsDaughter2
419+
420+ DECLARE_SOA_TABLE (NucleiThreeBodyDatas, " AOD" , " NUC3BODYDATA" ,
421+ o2::soa::Index<>,
422+ NUCLEI_THREE_BODY_RECO_COLUMNS );
423+
424+ DECLARE_SOA_TABLE (McNucleiThreeBodyDatas, " AOD" , " MCNUC3BODY" ,
425+ o2::soa::Index<>,
426+ NUCLEI_THREE_BODY_RECO_COLUMNS ,
427+ nuclei3body::McLabelHe3, nuclei3body::McLabelDaughter1, nuclei3body::McLabelDaughter2,
428+ nuclei3body::McPdgHe3, nuclei3body::McPdgDaughter1, nuclei3body::McPdgDaughter2,
429+ nuclei3body::McMatchStatus, nuclei3body::McMotherLabel, nuclei3body::McMotherPdg,
430+ nuclei3body::GenMotherPt, nuclei3body::GenMotherEta,
431+ nuclei3body::GenMotherPhi, nuclei3body::GenDecayLength);
432+
433+ #undef NUCLEI_THREE_BODY_RECO_COLUMNS
434+
329435} // namespace o2::aod
330436
331437#endif // PWGLF_DATAMODEL_VTX3BODYTABLES_H_
0 commit comments