1515// /
1616// / \author Federica Zanone <federica.zanone@cern.ch>, Heidelberg University
1717// / \author Yunfan Liu <yunfan.liu@cern.ch>, China University of Geosciences
18+ // / \author Fabio Catalano <fabio.catalano@cern.ch>, University of Houston
1819
1920#include " Framework/AnalysisTask.h"
2021#include " Framework/runDataProcessing.h"
2627
2728using namespace o2 ;
2829using namespace o2 ::framework;
30+ using namespace o2 ::framework::expressions;
2931
3032namespace o2 ::aod
3133{
@@ -176,7 +178,7 @@ DECLARE_SOA_TABLE(HfOmegac0ToOmegaPiLites, "AOD", "HFTOOMEPILITE",
176178 full::PidTpcInfoStored, full::PidTofInfoStored,
177179 full::TpcNSigmaPiFromCharmBaryon, full::TpcNSigmaKaFromCasc, full::TpcNSigmaPiFromLambda, full::TpcNSigmaPrFromLambda,
178180 full::TofNSigmaPiFromCharmBaryon, full::TofNSigmaKaFromCasc, full::TofNSigmaPiFromLambda, full::TofNSigmaPrFromLambda,
179- full::FlagMcMatchRec, full::OriginRec, full::CollisionMatched);
181+ full::FlagMcMatchRec, full::OriginRec, full::CollisionMatched, hf_track_index::HFflag );
180182
181183DECLARE_SOA_TABLE (HfKfOmegacFulls, " AOD" , " HFKFOMEGACFULL" ,
182184 full::NSigmaTPCPiFromOmegac, full::NSigmaTOFPiFromOmegac, full::NSigmaTPCKaFromCasc, full::NSigmaTOFKaFromCasc,
@@ -197,7 +199,7 @@ DECLARE_SOA_TABLE(HfKfOmegacFulls, "AOD", "HFKFOMEGACFULL",
197199 full::MassV0Ndf, full::MassCascNdf,
198200 full::V0Chi2OverNdf, full::CascChi2OverNdf, full::OmegacChi2OverNdf,
199201 full::MassV0Chi2OverNdf, full::MassCascChi2OverNdf, full::CascRejectInvmass,
200- full::FlagMcMatchRec, full::OriginRec, full::CollisionMatched);
202+ full::FlagMcMatchRec, full::OriginRec, full::CollisionMatched, hf_track_index::HFflag );
201203
202204DECLARE_SOA_TABLE (HfKfOmegacLites, " AOD" , " HFKFOMEGACLITE" ,
203205 full::NSigmaTPCPiFromOmegac, full::NSigmaTOFPiFromOmegac, full::NSigmaTPCKaFromCasc, full::NSigmaTOFKaFromCasc,
@@ -211,7 +213,7 @@ DECLARE_SOA_TABLE(HfKfOmegacLites, "AOD", "HFKFOMEGACLITE",
211213 full::CosThetaStarPiFromOmegac, full::CtOmegac, full::EtaOmegac,
212214 full::V0Chi2OverNdf, full::CascChi2OverNdf, full::OmegacChi2OverNdf,
213215 full::CascRejectInvmass,
214- full::FlagMcMatchRec, full::OriginRec, full::CollisionMatched);
216+ full::FlagMcMatchRec, full::OriginRec, full::CollisionMatched, hf_track_index::HFflag );
215217} // namespace o2::aod
216218
217219// / Writes the full information in an output TTree
@@ -225,8 +227,12 @@ struct HfTreeCreatorOmegacToOmegaPi {
225227 Configurable<float > zPvCut{" zPvCut" , 10 ., " Cut on absolute value of primary vertex z coordinate" };
226228 Configurable<bool > keepOnlyMcSignal{" keepOnlyMcSignal" , true , " Fill MC tree only with signal candidates" };
227229
228- using MyTrackTable = soa::Join<aod::Tracks, aod::TrackSelection, aod::TracksExtra>;
229- using MyEventTable = soa::Join<aod::Collisions, aod::EvSels>;
230+ using Tracks = soa::Join<aod::Tracks, aod::TrackSelection, aod::TracksExtra>;
231+ using Colls = soa::Join<aod::Collisions, aod::EvSels>;
232+ using CandKfSel = soa::Filtered<soa::Join<aod::HfCandToOmegaPi, aod::HfOmegacKf, aod::HfSelToOmegaPi>>;
233+ using CascKfMcSel = soa::Filtered<soa::Join<aod::HfCandToOmegaPi, aod::HfOmegacKf, aod::HfSelToOmegaPi, aod::HfToOmegaPiMCRec>>;
234+
235+ Filter filterOmegaCToOmegaPiFlag = (o2::aod::hf_track_index::hfflag & static_cast <uint8_t >(BIT(aod::hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaPi))) != static_cast <uint8_t >(0 );
230236
231237 void init (InitContext const &)
232238 {
@@ -247,8 +253,8 @@ struct HfTreeCreatorOmegacToOmegaPi {
247253 candidate.xPv (),
248254 candidate.yPv (),
249255 candidate.zPv (),
250- candidate.template collision_as <MyEventTable >().numContrib (),
251- candidate.template collision_as <MyEventTable >().chi2 (),
256+ candidate.template collision_as <Colls >().numContrib (),
257+ candidate.template collision_as <Colls >().chi2 (),
252258 candidate.xDecayVtxCharmBaryon (),
253259 candidate.yDecayVtxCharmBaryon (),
254260 candidate.zDecayVtxCharmBaryon (),
@@ -294,8 +300,8 @@ struct HfTreeCreatorOmegacToOmegaPi {
294300 candidate.errorDecayLengthCharmBaryon (),
295301 candidate.impactParCascXY () / candidate.errImpactParCascXY (),
296302 candidate.impactParBachFromCharmBaryonXY () / candidate.errImpactParBachFromCharmBaryonXY (),
297- candidate.template bachelorFromCharmBaryon_as <MyTrackTable >().isGlobalTrackWoDCA (),
298- candidate.template bachelorFromCharmBaryon_as <MyTrackTable >().itsNCls (),
303+ candidate.template bachelorFromCharmBaryon_as <Tracks >().isGlobalTrackWoDCA (),
304+ candidate.template bachelorFromCharmBaryon_as <Tracks >().itsNCls (),
299305 candidate.pidTpcInfoStored (),
300306 candidate.pidTofInfoStored (),
301307 candidate.tpcNSigmaPiFromCharmBaryon (),
@@ -308,7 +314,8 @@ struct HfTreeCreatorOmegacToOmegaPi {
308314 candidate.tofNSigmaPrFromLambda (),
309315 flagMc,
310316 originMc,
311- collisionMatched);
317+ collisionMatched,
318+ candidate.hfflag ());
312319 }
313320 }
314321
@@ -376,7 +383,8 @@ struct HfTreeCreatorOmegacToOmegaPi {
376383 candidate.cascRejectInvmass (),
377384 flagMc,
378385 originMc,
379- collisionMatched);
386+ collisionMatched,
387+ candidate.hfflag ());
380388 }
381389 }
382390
@@ -418,12 +426,13 @@ struct HfTreeCreatorOmegacToOmegaPi {
418426 candidate.cascRejectInvmass (),
419427 flagMc,
420428 originMc,
421- collisionMatched);
429+ collisionMatched,
430+ candidate.hfflag ());
422431 }
423432 } // fillKfCandidateLite end
424433
425- void processDataLite (MyEventTable const & collisions, MyTrackTable const &,
426- soa::Join<aod::HfCandToOmegaPi, aod::HfSelToOmegaPi> const & candidates)
434+ void processDataLite (Colls const & collisions, Tracks const &,
435+ soa::Filtered<soa:: Join<aod::HfCandToOmegaPi, aod::HfSelToOmegaPi> > const & candidates)
427436 {
428437 // Filling event properties
429438 rowEv.reserve (collisions.size ());
@@ -439,8 +448,7 @@ struct HfTreeCreatorOmegacToOmegaPi {
439448 }
440449 PROCESS_SWITCH (HfTreeCreatorOmegacToOmegaPi, processDataLite, " Process data" , true );
441450
442- void processKfDataFull (MyEventTable const & collisions, MyTrackTable const &,
443- soa::Join<aod::HfCandToOmegaPi, aod::HfOmegacKf, aod::HfSelToOmegaPi> const & candidates)
451+ void processKfDataFull (Colls const & collisions, Tracks const &, CandKfSel const & candidates)
444452 {
445453 // Filling event properties
446454 rowEv.reserve (collisions.size ());
@@ -456,8 +464,7 @@ struct HfTreeCreatorOmegacToOmegaPi {
456464 }
457465 PROCESS_SWITCH (HfTreeCreatorOmegacToOmegaPi, processKfDataFull, " Process KF data" , false );
458466
459- void processKfDataLite (MyEventTable const & collisions, MyTrackTable const &,
460- soa::Join<aod::HfCandToOmegaPi, aod::HfOmegacKf, aod::HfSelToOmegaPi> const & candidates)
467+ void processKfDataLite (Colls const & collisions, Tracks const &, CandKfSel const & candidates)
461468 {
462469 // Filling event properties
463470 rowEv.reserve (collisions.size ());
@@ -473,8 +480,8 @@ struct HfTreeCreatorOmegacToOmegaPi {
473480 }
474481 PROCESS_SWITCH (HfTreeCreatorOmegacToOmegaPi, processKfDataLite, " Process KF data Lite" , false );
475482
476- void processMcLite (MyEventTable const & collisions, MyTrackTable const &,
477- soa::Join<aod::HfCandToOmegaPi, aod::HfSelToOmegaPi, aod::HfToOmegaPiMCRec> const & candidates)
483+ void processMcLite (Colls const & collisions, Tracks const &,
484+ soa::Filtered<soa:: Join<aod::HfCandToOmegaPi, aod::HfSelToOmegaPi, aod::HfToOmegaPiMCRec> > const & candidates)
478485 {
479486 // Filling event properties
480487 rowEv.reserve (collisions.size ());
@@ -490,8 +497,7 @@ struct HfTreeCreatorOmegacToOmegaPi {
490497 }
491498 PROCESS_SWITCH (HfTreeCreatorOmegacToOmegaPi, processMcLite, " Process MC" , false );
492499
493- void processKFMcFull (MyEventTable const & collisions, MyTrackTable const &,
494- soa::Join<aod::HfCandToOmegaPi, aod::HfOmegacKf, aod::HfSelToOmegaPi, aod::HfToOmegaPiMCRec> const & candidates)
500+ void processKFMcFull (Colls const & collisions, Tracks const &, CascKfMcSel const & candidates)
495501 {
496502 // Filling event properties
497503 rowEv.reserve (collisions.size ());
@@ -513,8 +519,7 @@ struct HfTreeCreatorOmegacToOmegaPi {
513519 }
514520 PROCESS_SWITCH (HfTreeCreatorOmegacToOmegaPi, processKFMcFull, " Process KF MC" , false );
515521
516- void processKFMcLite (MyEventTable const & collisions, MyTrackTable const &,
517- soa::Join<aod::HfCandToOmegaPi, aod::HfOmegacKf, aod::HfSelToOmegaPi, aod::HfToOmegaPiMCRec> const & candidates)
522+ void processKFMcLite (Colls const & collisions, Tracks const &, CascKfMcSel const & candidates)
518523 {
519524 // Filling event properties
520525 rowEv.reserve (collisions.size ());
0 commit comments