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