@@ -324,7 +324,7 @@ struct HfTaskFlow {
324324 o2::fv0::Geometry* fv0Det{};
325325 std::vector<float > cstFT0RelGain{};
326326 RCTFlagsChecker rctChecker;
327- RCTFlagsChecker correlationAnalysisRctChecker{kFT0Bad , kITSBad , kTPCBadTracking , kTPCBadPID , kMFTBad };
327+ RCTFlagsChecker correlationAnalysisRctChecker{kFT0Bad , kITSBad , kTPCBadTracking , kTPCBadPID , kMFTBad , kITSLimAccMCRepr , kMFTLimAccMCRepr , kTPCLimAccMCRepr };
328328
329329 TH3D * mEfficiencyTpc = nullptr ;
330330 TH3D * mEfficiencyMft = nullptr ;
@@ -2637,9 +2637,10 @@ struct HfTaskFlow {
26372637
26382638 auto bc = collision1.template bc_as <aod::BCsWithTimestamps>();
26392639 loadEfficiencyCorrection (bc.timestamp ());
2640+ auto tracksForMultiplicity = tracksTpc.sliceByCached (o2::aod::track::collisionId, collision1.globalIndex (), cache);
26402641 auto multiplicity = 0 ;
26412642 if (configCollision.useMultiplicityFromTracks ) {
2642- multiplicity = tracksTpc .size ();
2643+ multiplicity = tracksForMultiplicity .size ();
26432644 } else {
26442645 multiplicity = getMultiplicityEstimator (collision1, false );
26452646 }
@@ -2664,8 +2665,8 @@ struct HfTaskFlow {
26642665 } // end of for loop
26652666 }
26662667
2667- template <typename TCollisions, typename TTracksTrig, typename TTracksAssoc, typename TPreslice>
2668- void mixCollisionsFIT (TCollisions const & collisions, CorrelationContainer::CFStep step,
2668+ template <typename TCollisions, typename TTracksTpc, typename TTracksTrig, typename TTracksAssoc, typename TPreslice>
2669+ void mixCollisionsFIT (TCollisions const & collisions, CorrelationContainer::CFStep step, TTracksTpc const & tracksTpc,
26692670 TTracksTrig const & tracks1, TTracksAssoc const & tracks2, TPreslice const & preslice,
26702671 OutputObj<CorrelationContainer>& corrContainer, int fitType, aod::BCsWithTimestamps const &)
26712672 {
@@ -2700,36 +2701,39 @@ struct HfTaskFlow {
27002701 auto bc = collision1.template bc_as <aod::BCsWithTimestamps>();
27012702 loadEfficiencyCorrection (bc.timestamp ());
27022703
2703- if constexpr (std::is_same_v<aod::FV0As, TTracksAssoc>) { // IF ASSOCIATED PARTICLE FROM FV0A
2704- if (collision1.has_foundFV0 () && collision2.has_foundFV0 ()) {
2704+ // if constexpr (std::is_same_v<aod::FV0As, TTracksAssoc>) { // IF ASSOCIATED PARTICLE FROM FV0A
2705+ // if (collision1.has_foundFV0() && collision2.has_foundFV0()) {
27052706
2706- auto slicedTriggerTracks = tracks1.sliceBy (preslice, collision1.globalIndex ());
2707- const auto & fv0 = collision2.foundFV0 ();
2707+ // auto slicedTriggerTracks = tracks1.sliceBy(preslice, collision1.globalIndex());
2708+ // auto tracksForMultiplicity = tracksTpc.sliceByCached(o2::aod::track::collisionId, collision1.globalIndex(), cache);
2709+ // const auto& fv0 = collision2.foundFV0();
27082710
2709- auto multiplicity = 0 ;
2710- if (configCollision.useMultiplicityFromTracks ) {
2711- multiplicity = tracks1 .size ();
2712- } else {
2713- multiplicity = getMultiplicityEstimator (collision1, false );
2714- }
2711+ // auto multiplicity = 0;
2712+ // if (configCollision.useMultiplicityFromTracks) {
2713+ // multiplicity = tracksForMultiplicity .size();
2714+ // } else {
2715+ // multiplicity = getMultiplicityEstimator(collision1, false);
2716+ // }
27152717
2716- if (multiplicity < configCollision.minMultiplicity || multiplicity >= configCollision.maxMultiplicity ) {
2717- return ;
2718- }
2718+ // if (multiplicity < configCollision.minMultiplicity || multiplicity >= configCollision.maxMultiplicity) {
2719+ // return;
2720+ // }
27192721
2720- corrContainer->fillEvent (multiplicity, step);
2721- fillCorrelationsFIT (corrContainer, step, slicedTriggerTracks, fv0, tracks2, multiplicity, collision1.posZ (), false , fitType);
2722- }
2723- } // end of if condition for FV0s
2722+ // corrContainer->fillEvent(multiplicity, step);
2723+ // fillCorrelationsFIT(corrContainer, step, slicedTriggerTracks, fv0, tracks2, multiplicity, collision1.posZ(), false, fitType);
2724+ // }
2725+ // } // end of if condition for FV0s
27242726
27252727 if constexpr (std::is_same_v<aod::FT0s, TTracksAssoc>) {
27262728 if (collision1.has_foundFT0 () && collision2.has_foundFT0 ()) {
27272729
27282730 auto slicedTriggerTracks = tracks1.sliceBy (preslice, collision1.globalIndex ());
2731+ auto tracksForMultiplicity = tracksTpc.sliceByCached (o2::aod::track::collisionId, collision1.globalIndex (), cache);
27292732 const auto & ft0 = collision2.foundFT0 ();
2733+
27302734 auto multiplicity = 0 ;
27312735 if (configCollision.useMultiplicityFromTracks ) {
2732- multiplicity = tracks1 .size ();
2736+ multiplicity = tracksForMultiplicity .size ();
27332737 } else {
27342738 multiplicity = getMultiplicityEstimator (collision1, false );
27352739 }
@@ -2785,13 +2789,13 @@ struct HfTaskFlow {
27852789
27862790 auto bc = collision1.template bc_as <aod::BCsWithTimestamps>();
27872791 loadEfficiencyCorrection (bc.timestamp ());
2792+ auto tracksForMultiplicity = tracksTpc.sliceByCached (o2::aod::track::collisionId, collision1.globalIndex (), cache);
27882793 auto multiplicity = 0 ;
27892794 if (configCollision.useMultiplicityFromTracks ) {
2790- multiplicity = tracksTpc .size ();
2795+ multiplicity = tracksForMultiplicity .size ();
27912796 } else {
27922797 multiplicity = getMultiplicityEstimator (collision1, false );
27932798 }
2794-
27952799 if (multiplicity < configCollision.minMultiplicity || multiplicity >= configCollision.maxMultiplicity ) {
27962800 return ;
27972801 }
@@ -4045,9 +4049,9 @@ struct HfTaskFlow {
40454049 aod::BCsWithTimestamps const & bcs)
40464050 {
40474051 if (!configTask.doEtaDependentFlow && !configTask.doVariationContainers ) {
4048- mixCollisionsFIT (collisions, CorrelationContainer::kCFStepReconstructed , tracks, ft0s, perColTracks, mixedEvent, isFT0A, bcs);
4052+ mixCollisionsFIT (collisions, CorrelationContainer::kCFStepReconstructed , tracks, tracks, ft0s, perColTracks, mixedEvent, isFT0A, bcs);
40494053 } else {
4050- mixCollisionsFIT (collisions, CorrelationContainer::kCFStepReconstructed , tracks, ft0s, perColTracks, mixedEventTpcFt0a, isFT0A, bcs);
4054+ mixCollisionsFIT (collisions, CorrelationContainer::kCFStepReconstructed , tracks, tracks, ft0s, perColTracks, mixedEventTpcFt0a, isFT0A, bcs);
40514055 }
40524056 }
40534057 PROCESS_SWITCH (HfTaskFlow, processMixedTpcFt0aChCh, " DATA : Process mixed-event correlations for TPC-FT0-A h-h case" , false );
@@ -4058,10 +4062,11 @@ struct HfTaskFlow {
40584062
40594063 void processMixedTpcFt0aD0Ch (FilteredCollisionsWSelMult const & collisions,
40604064 HfCandidatesSelD0 const & candidates,
4065+ FilteredTracksWDcaSel const & tracks,
40614066 aod::FT0s const & ft0s,
40624067 aod::BCsWithTimestamps const & bcs)
40634068 {
4064- mixCollisionsFIT (collisions, CorrelationContainer::kCFStepReconstructed , candidates, ft0s, perColD0s, mixedEventHf, isFT0A, bcs);
4069+ mixCollisionsFIT (collisions, CorrelationContainer::kCFStepReconstructed , tracks, candidates, ft0s, perColD0s, mixedEventHf, isFT0A, bcs);
40654070 }
40664071 PROCESS_SWITCH (HfTaskFlow, processMixedTpcFt0aD0Ch, " DATA : Process mixed-event correlations for TPC-FT0-A D0-h case" , false );
40674072
@@ -4071,10 +4076,11 @@ struct HfTaskFlow {
40714076
40724077 void processMixedTpcFt0aLcCh (FilteredCollisionsWSelMult const & collisions,
40734078 HfCandidatesSelLc const & candidates,
4079+ FilteredTracksWDcaSel const & tracks,
40744080 aod::FT0s const & ft0s,
40754081 aod::BCsWithTimestamps const & bcs)
40764082 {
4077- mixCollisionsFIT (collisions, CorrelationContainer::kCFStepReconstructed , candidates, ft0s, perColLcs, mixedEventHf, isFT0A, bcs);
4083+ mixCollisionsFIT (collisions, CorrelationContainer::kCFStepReconstructed , tracks, candidates, ft0s, perColLcs, mixedEventHf, isFT0A, bcs);
40784084 }
40794085 PROCESS_SWITCH (HfTaskFlow, processMixedTpcFt0aLcCh, " DATA : Process mixed-event correlations for TPC-FT0-A Lc-h case" , false );
40804086
@@ -4084,13 +4090,14 @@ struct HfTaskFlow {
40844090
40854091 void processMixedMftFt0aChCh (FilteredCollisionsWSelMult const & collisions,
40864092 FilteredMftTracks const & mftTracks,
4093+ FilteredTracksWDcaSel const & tracks,
40874094 aod::FT0s const & ft0s,
40884095 aod::BCsWithTimestamps const & bcs)
40894096 {
40904097 if (!configTask.doEtaDependentFlow && !configTask.doVariationContainers ) {
4091- mixCollisionsFIT (collisions, CorrelationContainer::kCFStepReconstructed , mftTracks, ft0s, perColMftTracks, mixedEvent, isFT0A, bcs);
4098+ mixCollisionsFIT (collisions, CorrelationContainer::kCFStepReconstructed , tracks, mftTracks, ft0s, perColMftTracks, mixedEvent, isFT0A, bcs);
40924099 } else {
4093- mixCollisionsFIT (collisions, CorrelationContainer::kCFStepReconstructed , mftTracks, ft0s, perColMftTracks, mixedEventMftFt0a, isFT0A, bcs);
4100+ mixCollisionsFIT (collisions, CorrelationContainer::kCFStepReconstructed , tracks, mftTracks, ft0s, perColMftTracks, mixedEventMftFt0a, isFT0A, bcs);
40944101 }
40954102 }
40964103 PROCESS_SWITCH (HfTaskFlow, processMixedMftFt0aChCh, " DATA : Process mixed-event correlations for MFT-FT0-A h-h case" , false );
@@ -4149,7 +4156,7 @@ struct HfTaskFlow {
41494156 aod::FT0s const & ft0s,
41504157 aod::BCsWithTimestamps const & bcs)
41514158 {
4152- mixCollisionsFIT (collisions, CorrelationContainer::kCFStepReconstructed , tracks, ft0s, perColTracks, mixedEvent, isFT0C, bcs);
4159+ mixCollisionsFIT (collisions, CorrelationContainer::kCFStepReconstructed , tracks, tracks, ft0s, perColTracks, mixedEvent, isFT0C, bcs);
41534160 }
41544161 PROCESS_SWITCH (HfTaskFlow, processMixedTpcFt0cChCh, " DATA : Process mixed-event correlations for TPC-FT0C h-h case" , false );
41554162
@@ -4159,10 +4166,11 @@ struct HfTaskFlow {
41594166
41604167 void processMixedTpcFt0cD0Ch (FilteredCollisionsWSelMult const & collisions,
41614168 HfCandidatesSelD0 const & candidates,
4169+ FilteredTracksWDcaSel const & tracks,
41624170 aod::FT0s const & ft0s,
41634171 aod::BCsWithTimestamps const & bcs)
41644172 {
4165- mixCollisionsFIT (collisions, CorrelationContainer::kCFStepReconstructed , candidates, ft0s, perColD0s, mixedEventHf, isFT0C, bcs);
4173+ mixCollisionsFIT (collisions, CorrelationContainer::kCFStepReconstructed , tracks, candidates, ft0s, perColD0s, mixedEventHf, isFT0C, bcs);
41664174 }
41674175 PROCESS_SWITCH (HfTaskFlow, processMixedTpcFt0cD0Ch, " DATA : Process mixed-event correlations for TPC-FT0C D0-h case" , false );
41684176
@@ -4172,10 +4180,11 @@ struct HfTaskFlow {
41724180
41734181 void processMixedTpcFt0cLcCh (FilteredCollisionsWSelMult const & collisions,
41744182 HfCandidatesSelLc const & candidates,
4183+ FilteredTracksWDcaSel const & tracks,
41754184 aod::FT0s const & ft0s,
41764185 aod::BCsWithTimestamps const & bcs)
41774186 {
4178- mixCollisionsFIT (collisions, CorrelationContainer::kCFStepReconstructed , candidates, ft0s, perColLcs, mixedEventHf, isFT0C, bcs);
4187+ mixCollisionsFIT (collisions, CorrelationContainer::kCFStepReconstructed , tracks, candidates, ft0s, perColLcs, mixedEventHf, isFT0C, bcs);
41794188 }
41804189 PROCESS_SWITCH (HfTaskFlow, processMixedTpcFt0cLcCh, " DATA : Process mixed-event correlations for TPC-FT0C Lc-h case" , false );
41814190
0 commit comments