1616// / \author Federica Zanone <federica.zanone@cern.ch>, Heidelberg University
1717// / \author Yunfan Liu <yunfan.liu@cern.ch>, China University of Geosciences
1818// / \author Fabio Catalano <fabio.catalano@cern.ch>, University of Houston
19+ // / \author Ruiqi Yin <ruiqi.yin@cern.ch>, Fudan University
1920
2021#include " Framework/AnalysisTask.h"
2122#include " Framework/runDataProcessing.h"
@@ -151,6 +152,7 @@ DECLARE_SOA_COLUMN(OmegacChi2OverNdf, omegacChi2OverNdf, float);
151152DECLARE_SOA_COLUMN (MassV0Chi2OverNdf, massV0Chi2OverNdf, float );
152153DECLARE_SOA_COLUMN (MassCascChi2OverNdf, massCascChi2OverNdf, float );
153154DECLARE_SOA_COLUMN (CascRejectInvmass, cascRejectInvmass, float );
155+ DECLARE_SOA_COLUMN (OutputMlOmegac, outputMlOmegac, float );
154156} // namespace full
155157
156158DECLARE_SOA_TABLE (HfToOmegaPiEvs, " AOD" , " HFTOOMEPIEV" ,
@@ -198,7 +200,7 @@ DECLARE_SOA_TABLE(HfKfOmegacFulls, "AOD", "HFKFOMEGACFULL",
198200 full::V0Ndf, full::CascNdf, full::OmegacNdf,
199201 full::MassV0Ndf, full::MassCascNdf,
200202 full::V0Chi2OverNdf, full::CascChi2OverNdf, full::OmegacChi2OverNdf,
201- full::MassV0Chi2OverNdf, full::MassCascChi2OverNdf, full::CascRejectInvmass,
203+ full::MassV0Chi2OverNdf, full::MassCascChi2OverNdf, full::CascRejectInvmass, full::OutputMlOmegac,
202204 full::FlagMcMatchRec, full::OriginRec, full::CollisionMatched, hf_track_index::HFflag);
203205
204206DECLARE_SOA_TABLE (HfKfOmegacLites, " AOD" , " HFKFOMEGACLITE" ,
@@ -214,14 +216,18 @@ DECLARE_SOA_TABLE(HfKfOmegacLites, "AOD", "HFKFOMEGACLITE",
214216 full::V0Chi2OverNdf, full::CascChi2OverNdf, full::OmegacChi2OverNdf,
215217 full::CascRejectInvmass,
216218 full::FlagMcMatchRec, full::OriginRec, full::CollisionMatched, hf_track_index::HFflag);
219+
220+ DECLARE_SOA_TABLE (HfKfOmegacMl, " AOD" , " HFKFOMEGACML" ,
221+ full::InvMassCharmBaryon, full::KfptOmegac, full::KfptPiFromOmegac, full::OutputMlOmegac, full::FlagMcMatchRec, full::OriginRec, full::CollisionMatched, hf_track_index::HFflag);
217222} // namespace o2::aod
218223
219224// / Writes the full information in an output TTree
220- struct HfTreeCreatorOmegacToOmegaPi { // FIXME: Rename to HfTreeCreatorOmegac0ToOmegaPi
225+ struct HfTreeCreatorOmegac0ToOmegaPi {
221226
222227 Produces<o2::aod::HfOmegac0ToOmegaPiLites> rowCandidateLite;
223228 Produces<o2::aod::HfKfOmegacFulls> rowKfCandidateFull;
224229 Produces<o2::aod::HfKfOmegacLites> rowKfCandidateLite;
230+ Produces<o2::aod::HfKfOmegacMl> rowKfCandidateMl;
225231 Produces<o2::aod::HfToOmegaPiEvs> rowEv;
226232
227233 Configurable<float > zPvCut{" zPvCut" , 10 ., " Cut on absolute value of primary vertex z coordinate" };
@@ -381,6 +387,7 @@ struct HfTreeCreatorOmegacToOmegaPi { // FIXME: Rename to HfTreeCreatorOmegac0To
381387 candidate.massV0Chi2OverNdf (),
382388 candidate.massCascChi2OverNdf (),
383389 candidate.cascRejectInvmass (),
390+ candidate.mlValueOmegac (),
384391 flagMc,
385392 originMc,
386393 collisionMatched,
@@ -431,6 +438,23 @@ struct HfTreeCreatorOmegacToOmegaPi { // FIXME: Rename to HfTreeCreatorOmegac0To
431438 }
432439 } // fillKfCandidateLite end
433440
441+ template <typename T>
442+ void fillKfCandidateMl (const T& candidate, int8_t flagMc, int8_t originMc, bool collisionMatched)
443+ {
444+ if (candidate.resultSelections () && candidate.statusPidCharmBaryon () && candidate.statusInvMassLambda () && candidate.statusInvMassCascade () && candidate.statusInvMassCharmBaryon ()) {
445+
446+ rowKfCandidateMl (
447+ candidate.invMassCharmBaryon (),
448+ candidate.kfptOmegac (),
449+ candidate.kfptPiFromOmegac (),
450+ candidate.mlValueOmegac (),
451+ flagMc,
452+ originMc,
453+ collisionMatched,
454+ candidate.hfflag ());
455+ }
456+ } // fillCandidateMl end
457+
434458 void processDataLite (Colls const & collisions, Tracks const &,
435459 soa::Filtered<soa::Join<aod::HfCandToOmegaPi, aod::HfSelToOmegaPi>> const & candidates)
436460 {
@@ -446,7 +470,7 @@ struct HfTreeCreatorOmegacToOmegaPi { // FIXME: Rename to HfTreeCreatorOmegac0To
446470 fillCandidateLite (candidate, -7 , RecoDecay::OriginType::None, false );
447471 }
448472 }
449- PROCESS_SWITCH (HfTreeCreatorOmegacToOmegaPi , processDataLite, " Process data" , true );
473+ PROCESS_SWITCH (HfTreeCreatorOmegac0ToOmegaPi , processDataLite, " Process data" , false );
450474
451475 void processKfDataFull (Colls const & collisions, Tracks const &, CandKfSel const & candidates)
452476 {
@@ -462,7 +486,7 @@ struct HfTreeCreatorOmegacToOmegaPi { // FIXME: Rename to HfTreeCreatorOmegac0To
462486 fillKfCandidate (candidate, -7 , RecoDecay::OriginType::None, false );
463487 }
464488 }
465- PROCESS_SWITCH (HfTreeCreatorOmegacToOmegaPi , processKfDataFull, " Process KF data" , false );
489+ PROCESS_SWITCH (HfTreeCreatorOmegac0ToOmegaPi , processKfDataFull, " Process KF data" , false );
466490
467491 void processKfDataLite (Colls const & collisions, Tracks const &, CandKfSel const & candidates)
468492 {
@@ -478,7 +502,23 @@ struct HfTreeCreatorOmegacToOmegaPi { // FIXME: Rename to HfTreeCreatorOmegac0To
478502 fillKfCandidateLite (candidate, -7 , RecoDecay::OriginType::None, false );
479503 }
480504 }
481- PROCESS_SWITCH (HfTreeCreatorOmegacToOmegaPi, processKfDataLite, " Process KF data Lite" , false );
505+ PROCESS_SWITCH (HfTreeCreatorOmegac0ToOmegaPi, processKfDataLite, " Process KF data Lite" , false );
506+
507+ void processKfCandidateMl (Colls const & collisions, Tracks const &, CandKfSel const & candidates)
508+ {
509+ // Filling event properties
510+ rowEv.reserve (collisions.size ());
511+ for (const auto & collision : collisions) {
512+ fillEvent (collision, zPvCut);
513+ }
514+
515+ // Filling candidate properties
516+ rowKfCandidateFull.reserve (candidates.size ());
517+ for (const auto & candidate : candidates) {
518+ fillKfCandidateMl (candidate, -7 , RecoDecay::OriginType::None, false );
519+ }
520+ }
521+ PROCESS_SWITCH (HfTreeCreatorOmegac0ToOmegaPi, processKfCandidateMl, " Process KF data ML" , true );
482522
483523 void processMcLite (Colls const & collisions, Tracks const &,
484524 soa::Filtered<soa::Join<aod::HfCandToOmegaPi, aod::HfSelToOmegaPi, aod::HfToOmegaPiMCRec>> const & candidates)
@@ -495,7 +535,7 @@ struct HfTreeCreatorOmegacToOmegaPi { // FIXME: Rename to HfTreeCreatorOmegac0To
495535 fillCandidateLite (candidate, candidate.flagMcMatchRec (), candidate.originRec (), candidate.collisionMatched ());
496536 }
497537 }
498- PROCESS_SWITCH (HfTreeCreatorOmegacToOmegaPi , processMcLite, " Process MC" , false );
538+ PROCESS_SWITCH (HfTreeCreatorOmegac0ToOmegaPi , processMcLite, " Process MC" , false );
499539
500540 void processKFMcFull (Colls const & collisions, Tracks const &, CascKfMcSel const & candidates)
501541 {
@@ -517,7 +557,7 @@ struct HfTreeCreatorOmegacToOmegaPi { // FIXME: Rename to HfTreeCreatorOmegac0To
517557 }
518558 }
519559 }
520- PROCESS_SWITCH (HfTreeCreatorOmegacToOmegaPi , processKFMcFull, " Process KF MC" , false );
560+ PROCESS_SWITCH (HfTreeCreatorOmegac0ToOmegaPi , processKFMcFull, " Process KF MC" , false );
521561
522562 void processKFMcLite (Colls const & collisions, Tracks const &, CascKfMcSel const & candidates)
523563 {
@@ -539,12 +579,12 @@ struct HfTreeCreatorOmegacToOmegaPi { // FIXME: Rename to HfTreeCreatorOmegac0To
539579 }
540580 }
541581 }
542- PROCESS_SWITCH (HfTreeCreatorOmegacToOmegaPi , processKFMcLite, " Process KF MC Lite" , false );
582+ PROCESS_SWITCH (HfTreeCreatorOmegac0ToOmegaPi , processKFMcLite, " Process KF MC Lite" , false );
543583
544584}; // end of struct
545585
546586WorkflowSpec defineDataProcessing (ConfigContext const & cfgc)
547587{
548588 return WorkflowSpec{
549- adaptAnalysisTask<HfTreeCreatorOmegacToOmegaPi >(cfgc)};
589+ adaptAnalysisTask<HfTreeCreatorOmegac0ToOmegaPi >(cfgc)};
550590}
0 commit comments