@@ -54,10 +54,12 @@ struct FemtoProducerDerivedToDerived {
5454 using FemtoOmegas = o2::soa::Join<o2::aod::FOmegas, o2::aod::FOmegaMasks>;
5555 using FemtoSigma = o2::soa::Join<o2::aod::FSigmas, o2::aod::FSigmaMasks>;
5656 using FemtoSigmaPlus = o2::soa::Join<o2::aod::FSigmaPlus, o2::aod::FSigmaPlusMasks>;
57+ using FemtoSigmaPlusExtended = o2::soa::Join<FemtoSigmaPlus, o2::aod::FSigmaPlusExtras>;
5758
5859 using FemtoMcTracks = o2::soa::Join<FemtoTracks, o2::aod::FTrackLabels>;
5960 using FemtoMcSigma = o2::soa::Join<FemtoSigma, o2::aod::FSigmaLabels>;
6061 using FemtoMcSigmaPlus = o2::soa::Join<FemtoSigmaPlus, o2::aod::FSigmaPlusLabels>;
62+ using FemtoMcSigmaPlusExtended = o2::soa::Join<FemtoSigmaPlusExtended, o2::aod::FSigmaPlusLabels>;
6163 using FemtoMcParticles = o2::soa::Join<o2::aod::FMcParticles, o2::aod::FMcMotherLabels>;
6264
6365 o2::framework::SliceCache cache;
@@ -121,6 +123,8 @@ struct FemtoProducerDerivedToDerived {
121123 kinkbuilder::ConfSigmaPlusSelection1 sigmaPlusSelection1;
122124 o2::framework::Partition<FemtoSigmaPlus> sigmaPlusPartition = MAKE_SIGMAPLUS_PARTITION (sigmaPlusSelection1);
123125 o2::framework::Preslice<FemtoSigmaPlus> perColSigmaPlus = o2::aod::femtobase::stored::fColId ;
126+ o2::framework::Partition<FemtoSigmaPlusExtended> sigmaPlusExtendedPartition = MAKE_SIGMAPLUS_PARTITION (sigmaPlusSelection1);
127+ o2::framework::Preslice<FemtoSigmaPlusExtended> perColSigmaPlusExtended = o2::aod::femtobase::stored::fColId ;
124128
125129 // cascade builder
126130 cascadebuilder::CascadeBuilderDerivedToDerived cascadeBuilder;
@@ -149,6 +153,8 @@ struct FemtoProducerDerivedToDerived {
149153
150154 o2::framework::Partition<FemtoMcSigmaPlus> mcSigmaPlusPartition = MAKE_SIGMAPLUS_PARTITION (sigmaPlusSelection1);
151155 o2::framework::Preslice<FemtoMcSigmaPlus> perColMcSigmaPlus = o2::aod::femtobase::stored::fColId ;
156+ o2::framework::Partition<FemtoMcSigmaPlusExtended> mcSigmaPlusExtendedPartition = MAKE_SIGMAPLUS_PARTITION (sigmaPlusSelection1);
157+ o2::framework::Preslice<FemtoMcSigmaPlusExtended> perColMcSigmaPlusExtended = o2::aod::femtobase::stored::fColId ;
152158
153159 void init (o2::framework::InitContext& /* context*/ )
154160 {
@@ -158,10 +164,10 @@ struct FemtoProducerDerivedToDerived {
158164 static_cast <int >(doprocessLambdas) +
159165 static_cast <int >(doprocessTracksXis) + static_cast <int >(doprocessTracksOmegas) +
160166 static_cast <int >(doprocessTracksK0shorts) + static_cast <int >(doprocessTracksSigma) +
161- static_cast <int >(doprocessTracksSigmaPlus) +
167+ static_cast <int >(doprocessTracksSigmaPlus) + static_cast < int >(doprocessTracksSigmaPlusExtended) +
162168 static_cast <int >(doprocessTracksRho0) + static_cast <int >(doprocessTracksPhi) +
163169 static_cast <int >(doprocessTracksMc) + static_cast <int >(doprocessTracksSigmaMc) +
164- static_cast <int >(doprocessTracksSigmaPlusMc);
170+ static_cast <int >(doprocessTracksSigmaPlusMc) + static_cast < int >(doprocessTracksSigmaPlusExtendedMc) ;
165171 if (activeProcesses != 1 ) {
166172 LOG (fatal) << " Exactly one process function must be activated (got " << activeProcesses << " )." ;
167173 }
@@ -292,6 +298,18 @@ struct FemtoProducerDerivedToDerived {
292298 }
293299 PROCESS_SWITCH (FemtoProducerDerivedToDerived, processTracksSigmaPlus, " Process sigmaPlus and tracks" , false );
294300
301+ void processTracksSigmaPlusExtended (FilteredFemtoCollision const & col, FemtoTracks const & tracks, FemtoSigmaPlusExtended const & sigmaplus)
302+ {
303+ if (trackBuilder.collisionHasTooFewTracks (col, tracks, trackPartition1, trackPartition2, cache) || kinkBuilder.collisionHasTooFewSigmaPlus (col, sigmaplus, sigmaPlusExtendedPartition, cache)) {
304+ return ;
305+ }
306+ trackBuilder.reset (tracks);
307+ collisionBuilder.processCollision (col, collisionBuilderProducts);
308+ trackBuilder.processTracks (col, tracks, trackPartition1, trackPartition2, cache, trackBuilderProducts, collisionBuilderProducts);
309+ kinkBuilder.processSigmaPlus (col, sigmaplus, tracks, sigmaPlusExtendedPartition, trackBuilder, cache, kinkBuilderProducts, trackBuilderProducts, collisionBuilderProducts);
310+ }
311+ PROCESS_SWITCH (FemtoProducerDerivedToDerived, processTracksSigmaPlusExtended, " Process sigmaPlus (with SigmaPlusExtras) and tracks" , false );
312+
295313 void processTracksRho0 (FilteredFemtoCollision const & col, FemtoTracks const & tracks, FemtoRho0s const & rho0s)
296314 {
297315 if (trackBuilder.collisionHasTooFewTracks (col, tracks, trackPartition1, trackPartition2, cache) || resonanceBuilder.collisionHasTooFewRho0s (col, rho0s, rho0Partition, cache)) {
@@ -396,6 +414,32 @@ struct FemtoProducerDerivedToDerived {
396414 }
397415 }
398416 PROCESS_SWITCH (FemtoProducerDerivedToDerived, processTracksSigmaPlusMc, " Process sigmaPlus and tracks with MC information" , false );
417+
418+ void processTracksSigmaPlusExtendedMc (FilteredFemtoMcCollisions const & cols,
419+ FemtoMcTracks const & tracks,
420+ FemtoMcSigmaPlusExtended const & sigmaplus,
421+ o2::aod::FMcCols const & mcCols,
422+ FemtoMcParticles const & mcParticles,
423+ o2::aod::FMcMothers const & mcMothers,
424+ o2::aod::FMcPartMoths const & mcPartonicMothers)
425+ {
426+ mcBuilder.reset (mcCols, mcParticles);
427+
428+ for (auto const & col : cols) {
429+ if (trackBuilder.collisionHasTooFewTracks (col, tracks, mcTrackPartition1, mcTrackPartition2, cache) || kinkBuilder.collisionHasTooFewSigmaPlus (col, sigmaplus, mcSigmaPlusExtendedPartition, cache)) {
430+ continue ;
431+ }
432+ trackBuilder.reset (tracks);
433+ collisionBuilder.processCollision (col, collisionBuilderProducts);
434+ mcBuilder.fillCollisionWithLabel (col, mcCols, mcBuilderProducts);
435+ trackBuilder.processTracksWithMc (col, tracks, mcTrackPartition1, mcTrackPartition2, cache,
436+ trackBuilderProducts, collisionBuilderProducts,
437+ mcBuilder, mcCols, mcParticles, mcMothers, mcPartonicMothers, mcBuilderProducts);
438+ kinkBuilder.processSigmaPlusWithMc (col, sigmaplus, tracks, mcSigmaPlusExtendedPartition, trackBuilder, cache, kinkBuilderProducts, trackBuilderProducts, collisionBuilderProducts,
439+ mcBuilder, mcCols, mcParticles, mcMothers, mcPartonicMothers, mcBuilderProducts);
440+ }
441+ }
442+ PROCESS_SWITCH (FemtoProducerDerivedToDerived, processTracksSigmaPlusExtendedMc, " Process sigmaPlus (with SigmaPlusExtras) and tracks with MC information" , false );
399443};
400444
401445o2::framework::WorkflowSpec defineDataProcessing (o2::framework::ConfigContext const & context)
0 commit comments