@@ -126,42 +126,42 @@ DECLARE_SOA_COLUMN(NProngsContributorsPV, nProngsContributorsPV, uint8_t);
126126DECLARE_SOA_COLUMN (BitmapProngsContributorsPV, bitmapProngsContributorsPV, uint8_t ); // ! bitmap with booleans indicating prongs contributing to the primary-vertex reconstruction
127127
128128// / prong PID nsigma
129- DECLARE_SOA_COLUMN (NSigTrkPi0, nSigTrkPi0, float ); // !
130- DECLARE_SOA_COLUMN (NSigTrkKa0, nSigTrkKa0, float ); // !
131- DECLARE_SOA_COLUMN (NSigTrkPr0, nSigTrkPr0, float ); // !
132- DECLARE_SOA_COLUMN (NSigTrkPi1, nSigTrkPi1, float ); // !
133- DECLARE_SOA_COLUMN (NSigTrkKa1, nSigTrkKa1, float ); // !
134- DECLARE_SOA_COLUMN (NSigTrkPr1, nSigTrkPr1, float ); // !
135- DECLARE_SOA_COLUMN (NSigTrkPi2, nSigTrkPi2, float ); // !
136- DECLARE_SOA_COLUMN (NSigTrkKa2, nSigTrkKa2, float ); // !
137- DECLARE_SOA_COLUMN (NSigTrkPr2, nSigTrkPr2, float ); // !
138- DECLARE_SOA_COLUMN (NSigRichPi0, nSigRichPi0, float ); // !
139- DECLARE_SOA_COLUMN (NSigRichKa0, nSigRichKa0, float ); // !
140- DECLARE_SOA_COLUMN (NSigRichPr0, nSigRichPr0, float ); // !
141- DECLARE_SOA_COLUMN (NSigRichPi1, nSigRichPi1, float ); // !
142- DECLARE_SOA_COLUMN (NSigRichKa1, nSigRichKa1, float ); // !
143- DECLARE_SOA_COLUMN (NSigRichPr1, nSigRichPr1, float ); // !
144- DECLARE_SOA_COLUMN (NSigRichPi2, nSigRichPi2, float ); // !
145- DECLARE_SOA_COLUMN (NSigRichKa2, nSigRichKa2, float ); // !
146- DECLARE_SOA_COLUMN (NSigRichPr2, nSigRichPr2, float ); // !
147- DECLARE_SOA_COLUMN (NSigInnTofPi0, nSigInnTofPi0, float ); // !
148- DECLARE_SOA_COLUMN (NSigInnTofKa0, nSigInnTofKa0, float ); // !
149- DECLARE_SOA_COLUMN (NSigInnTofPr0, nSigInnTofPr0, float ); // !
150- DECLARE_SOA_COLUMN (NSigInnTofPi1, nSigInnTofPi1, float ); // !
151- DECLARE_SOA_COLUMN (NSigInnTofKa1, nSigInnTofKa1, float ); // !
152- DECLARE_SOA_COLUMN (NSigInnTofPr1, nSigInnTofPr1, float ); // !
153- DECLARE_SOA_COLUMN (NSigInnTofPi2, nSigInnTofPi2, float ); // !
154- DECLARE_SOA_COLUMN (NSigInnTofKa2, nSigInnTofKa2, float ); // !
155- DECLARE_SOA_COLUMN (NSigInnTofPr2, nSigInnTofPr2, float ); // !
156- DECLARE_SOA_COLUMN (NSigOutTofPi0, nSigOutTofPi0, float ); // !
157- DECLARE_SOA_COLUMN (NSigOutTofKa0, nSigOutTofKa0, float ); // !
158- DECLARE_SOA_COLUMN (NSigOutTofPr0, nSigOutTofPr0, float ); // !
159- DECLARE_SOA_COLUMN (NSigOutTofPi1, nSigOutTofPi1, float ); // !
160- DECLARE_SOA_COLUMN (NSigOutTofKa1, nSigOutTofKa1, float ); // !
161- DECLARE_SOA_COLUMN (NSigOutTofPr1, nSigOutTofPr1, float ); // !
162- DECLARE_SOA_COLUMN (NSigOutTofPi2, nSigOutTofPi2, float ); // !
163- DECLARE_SOA_COLUMN (NSigOutTofKa2, nSigOutTofKa2, float ); // !
164- DECLARE_SOA_COLUMN (NSigOutTofPr2, nSigOutTofPr2, float ); // !
129+ DECLARE_SOA_COLUMN (NSigTrkPi0, nSigTrkPi0, float ); // !
130+ DECLARE_SOA_COLUMN (NSigTrkKa0, nSigTrkKa0, float ); // !
131+ DECLARE_SOA_COLUMN (NSigTrkPr0, nSigTrkPr0, float ); // !
132+ DECLARE_SOA_COLUMN (NSigTrkPi1, nSigTrkPi1, float ); // !
133+ DECLARE_SOA_COLUMN (NSigTrkKa1, nSigTrkKa1, float ); // !
134+ DECLARE_SOA_COLUMN (NSigTrkPr1, nSigTrkPr1, float ); // !
135+ DECLARE_SOA_COLUMN (NSigTrkPi2, nSigTrkPi2, float ); // !
136+ DECLARE_SOA_COLUMN (NSigTrkKa2, nSigTrkKa2, float ); // !
137+ DECLARE_SOA_COLUMN (NSigTrkPr2, nSigTrkPr2, float ); // !
138+ DECLARE_SOA_COLUMN (NSigRichPi0, nSigRichPi0, float ); // !
139+ DECLARE_SOA_COLUMN (NSigRichKa0, nSigRichKa0, float ); // !
140+ DECLARE_SOA_COLUMN (NSigRichPr0, nSigRichPr0, float ); // !
141+ DECLARE_SOA_COLUMN (NSigRichPi1, nSigRichPi1, float ); // !
142+ DECLARE_SOA_COLUMN (NSigRichKa1, nSigRichKa1, float ); // !
143+ DECLARE_SOA_COLUMN (NSigRichPr1, nSigRichPr1, float ); // !
144+ DECLARE_SOA_COLUMN (NSigRichPi2, nSigRichPi2, float ); // !
145+ DECLARE_SOA_COLUMN (NSigRichKa2, nSigRichKa2, float ); // !
146+ DECLARE_SOA_COLUMN (NSigRichPr2, nSigRichPr2, float ); // !
147+ DECLARE_SOA_COLUMN (NSigInnTofPi0, nSigInnTofPi0, float ); // !
148+ DECLARE_SOA_COLUMN (NSigInnTofKa0, nSigInnTofKa0, float ); // !
149+ DECLARE_SOA_COLUMN (NSigInnTofPr0, nSigInnTofPr0, float ); // !
150+ DECLARE_SOA_COLUMN (NSigInnTofPi1, nSigInnTofPi1, float ); // !
151+ DECLARE_SOA_COLUMN (NSigInnTofKa1, nSigInnTofKa1, float ); // !
152+ DECLARE_SOA_COLUMN (NSigInnTofPr1, nSigInnTofPr1, float ); // !
153+ DECLARE_SOA_COLUMN (NSigInnTofPi2, nSigInnTofPi2, float ); // !
154+ DECLARE_SOA_COLUMN (NSigInnTofKa2, nSigInnTofKa2, float ); // !
155+ DECLARE_SOA_COLUMN (NSigInnTofPr2, nSigInnTofPr2, float ); // !
156+ DECLARE_SOA_COLUMN (NSigOutTofPi0, nSigOutTofPi0, float ); // !
157+ DECLARE_SOA_COLUMN (NSigOutTofKa0, nSigOutTofKa0, float ); // !
158+ DECLARE_SOA_COLUMN (NSigOutTofPr0, nSigOutTofPr0, float ); // !
159+ DECLARE_SOA_COLUMN (NSigOutTofPi1, nSigOutTofPi1, float ); // !
160+ DECLARE_SOA_COLUMN (NSigOutTofKa1, nSigOutTofKa1, float ); // !
161+ DECLARE_SOA_COLUMN (NSigOutTofPr1, nSigOutTofPr1, float ); // !
162+ DECLARE_SOA_COLUMN (NSigOutTofPi2, nSigOutTofPi2, float ); // !
163+ DECLARE_SOA_COLUMN (NSigOutTofKa2, nSigOutTofKa2, float ); // !
164+ DECLARE_SOA_COLUMN (NSigOutTofPr2, nSigOutTofPr2, float ); // !
165165
166166// candidate properties
167167DECLARE_SOA_DYNAMIC_COLUMN (Pt, pt, // !
@@ -204,13 +204,9 @@ DECLARE_SOA_DYNAMIC_COLUMN(ImpactParameterXY, impactParameterXY, //!
204204 [](float xVtxP, float yVtxP, float zVtxP, float xVtxS, float yVtxS, float zVtxS, float px, float py, float pz) -> float { return RecoDecay::impParXY (std::array{xVtxP, yVtxP, zVtxP}, std::array{xVtxS, yVtxS, zVtxS}, std::array{px, py, pz}); });
205205
206206// ML scores columns
207- DECLARE_SOA_COLUMN (MlScore0MassHypo0, mlScore0MassHypo0, float ); // !
208- DECLARE_SOA_COLUMN (MlScore1MassHypo0, mlScore1MassHypo0, float ); // !
209- DECLARE_SOA_COLUMN (MlScore2MassHypo0, mlScore2MassHypo0, float ); // !
210- DECLARE_SOA_COLUMN (MlScore0MassHypo1, mlScore0MassHypo1, float ); // !
211- DECLARE_SOA_COLUMN (MlScore1MassHypo1, mlScore1MassHypo1, float ); // !
212- DECLARE_SOA_COLUMN (MlScore2MassHypo1, mlScore2MassHypo1, float ); // !
213-
207+ DECLARE_SOA_COLUMN (MlScore0, mlScore0, float ); // !
208+ DECLARE_SOA_COLUMN (MlScore1, mlScore1, float ); // !
209+ DECLARE_SOA_COLUMN (MlScore2, mlScore2, float ); // !
214210} // namespace a3_hf_cand
215211
216212// general columns
@@ -396,30 +392,68 @@ DECLARE_SOA_TABLE(Alice3Cand3Ps, "AOD", "ALICE3CAND3P", //!
396392 a3_hf_cand::PxProng2, a3_hf_cand::PyProng2, a3_hf_cand::PzProng2>,
397393 a3_hf_cand_3prong::E<a3_hf_cand_3prong::Px, a3_hf_cand_3prong::Py, a3_hf_cand_3prong::Pz>
398394 );
399-
400- // // extended table with expression columns that can be used as arguments of dynamic columns
401- // DECLARE_SOA_EXTENDED_TABLE_USER(Alice3Ext3Ps, Alice3Cand3Ps, "ALICE3EXT3P", //!
402- // a3_hf_cand_3prong::Px, a3_hf_cand_3prong::Py, a3_hf_cand_3prong::Pz);
403-
404- // using Alice3Cand3Ps = Alice3Ext3Ps;
405395
406396namespace a3_hf_sel_3prong
407397{
408- DECLARE_SOA_COLUMN (IsSelCandMassHypo0, isSelCandMassHypo0, bool ); // !
409- DECLARE_SOA_COLUMN (IsSelCandMassHypo1, isSelCandMassHypo1, bool ); // !
398+ DECLARE_SOA_COLUMN (IsSel, isSel, bool ); // !
399+
400+ // PID selection
401+ enum PidSelections {
402+ None = 0 ,
403+ // Per-prong selections
404+ TrkProng0,
405+ RichProng0,
406+ InTofProng0,
407+ OutTofProng0,
408+ TrkProng1,
409+ RichProng1,
410+ InTofProng1,
411+ OutTofProng1,
412+ TrkProng2,
413+ RichProng2,
414+ InTofProng2,
415+ OutTofProng2,
416+ // Single-system selections
417+ AllTrk,
418+ AllRich,
419+ AllInTof,
420+ AllOutTof,
421+ // Two-system combinations
422+ AllTrkAndRich,
423+ AllTrkAndInTof,
424+ AllTrkAndOutTof,
425+ AllRichAndInTof,
426+ AllRichAndOutTof,
427+ AllInTofAndOutTof,
428+ // Three-system combinations
429+ AllTrkAndRichAndInTof,
430+ AllTrkAndRichAndOutTof,
431+ AllTrkAndInTofAndOutTof,
432+ AllRichAndInTofAndOutTof,
433+ // All four systems
434+ AllTrkAndRichAndInTofAndOutTof,
435+ NPidSelections
436+ };
437+ DECLARE_SOA_COLUMN (PidBitMask, pidBitMask, uint32_t ); // !
410438} // namespace a3_hf_sel_3prong
411439DECLARE_SOA_TABLE (Alice3Sel3Ps, " AOD" , " ALICE3SEL3P" , // !
412- a3_hf_sel_3prong::IsSelCandMassHypo0 ,
413- a3_hf_sel_3prong::IsSelCandMassHypo1 );
440+ a3_hf_sel_3prong::IsSel ,
441+ a3_hf_sel_3prong::PidBitMask );
414442
415- namespace a3_hf_mc_truth_3prong
443+ namespace a3_mc_truth
416444{
417- DECLARE_SOA_COLUMN (OriginMcRec, originMcRec, int ); // ! 0 for bkg, 1 for true particle, 2 for true antiparticle // TODO: add prompt/non-prompt
418- DECLARE_SOA_COLUMN (FlagMcRec, mcTruthInfo, int ); // ! 0 for bkg, 1 for true particle, 2 for true antiparticle // TODO: add prompt/non-prompt
419- } // namespace a3_hf_mc_truth_3prong
420- DECLARE_SOA_TABLE (Alice3McTruth3Ps, " AOD" , " ALICE3MCTRUTH3P" , // !
421- a3_hf_mc_truth_3prong::OriginMcRec,
422- a3_hf_mc_truth_3prong::FlagMcRec); // !
445+ DECLARE_SOA_COLUMN (OriginMcRec, originMcRec, int );
446+ DECLARE_SOA_COLUMN (FlagMcRec, flagMcRec, int );
447+ DECLARE_SOA_COLUMN (OriginMcGen, originMcGen, int );
448+ DECLARE_SOA_COLUMN (FlagMcGen, flagMcGen, int );
449+ } // namespace a3_mc_truth
450+ DECLARE_SOA_TABLE (Alice3McRecFlags, " AOD" , " ALICE3MCRECFLAG" , // !
451+ a3_mc_truth::OriginMcRec,
452+ a3_mc_truth::FlagMcRec);
453+
454+ DECLARE_SOA_TABLE (Alice3McGenFlags, " AOD" , " ALICE3MCGENFLAG" , // !
455+ a3_mc_truth::OriginMcGen,
456+ a3_mc_truth::FlagMcGen);
423457
424458DECLARE_SOA_TABLE (Alice3PidLcs, " AOD" , " ALICE3PIDLC" , // !
425459 a3_hf_cand::NSigTrkPr0,
@@ -436,12 +470,9 @@ DECLARE_SOA_TABLE(Alice3PidLcs, "AOD", "ALICE3PIDLC", //!
436470 a3_hf_cand::NSigOutTofPi2);
437471
438472DECLARE_SOA_TABLE (Alice3Ml3Ps, " AOD" , " ALICE3ML3P" , // !
439- a3_hf_cand::MlScore0MassHypo0,
440- a3_hf_cand::MlScore1MassHypo0,
441- a3_hf_cand::MlScore2MassHypo0,
442- a3_hf_cand::MlScore0MassHypo1,
443- a3_hf_cand::MlScore1MassHypo1,
444- a3_hf_cand::MlScore2MassHypo1);
473+ a3_hf_cand::MlScore0,
474+ a3_hf_cand::MlScore1,
475+ a3_hf_cand::MlScore2);
445476
446477} // namespace o2::aod
447478
0 commit comments