@@ -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 ;
@@ -648,7 +648,7 @@ struct HfTaskFlow {
648648 addHistograms<Data, TpcMft, ChPartChPart>();
649649 addMftHistograms ();
650650 registry.add (" Data/hEfficiencyTrigger" , " " , {HistType::kTH3D , {{configAxis.axisPtTrigger }, {configAxis.axisEtaTrigger }, {configAxis.axisVertex }}});
651- registry.add (" Data/hEfficiencyAssociated" , " " , {HistType::kTH3D , {{configAxis.axisPtTrigger }, {configAxis.axisEtaTrigger }, {configAxis.axisVertex }}});
651+ registry.add (" Data/hEfficiencyAssociated" , " " , {HistType::kTH3D , {{configAxis.axisPtAssoc }, {configAxis.axisEtaAssociated }, {configAxis.axisVertex }}});
652652
653653 if (!configTask.doEtaDependentFlow && !configTask.doVariationContainers ) {
654654 registry.add (" Trig_hist_TPC_MFT" , " " , {HistType::kTHnSparseF , {{configAxis.axisSamples , configAxis.axisVertex , configAxis.axisPtTrigger }}});
@@ -869,7 +869,7 @@ struct HfTaskFlow {
869869 if (doprocessSameMcGen) {
870870
871871 registry.add (" MC/hEfficiencyTrigger" , " " , {HistType::kTH3D , {{configAxis.axisPtTrigger }, {configAxis.axisEtaTrigger }, {configAxis.axisVertex }}});
872- registry.add (" MC/hEfficiencyAssociated" , " " , {HistType::kTH3D , {{configAxis.axisPtTrigger }, {configAxis.axisEtaTrigger }, {configAxis.axisVertex }}});
872+ registry.add (" MC/hEfficiencyAssociated" , " " , {HistType::kTH3D , {{configAxis.axisPtTrigger }, {configAxis.axisEtaAssociated }, {configAxis.axisVertex }}});
873873
874874 if (configTask.chooseCorrelationCase .value == static_cast <int >(CorrelationCase::TpcTpc)) {
875875 addHistograms<Mc, TpcTpc, ChPartChPart>();
@@ -902,27 +902,6 @@ struct HfTaskFlow {
902902 }
903903 }
904904
905- // =========================
906- // Initialization of histograms and CorrelationContainers for McGen cases
907- // =========================
908-
909- // if (doprocessSameMcGen) {
910-
911- // if (!configTask.doEtaDependentFlow && !configTask.doVariationContainers) {
912- // registry.add("Trig_hist", "", {HistType::kTHnSparseF, {{configAxis.axisSamples, configAxis.axisVertex, configAxis.axisPtTrigger}}});
913- // sameEvent.setObject(new CorrelationContainer("sameEvent", "sameEvent", corrAxis, effAxis, {}));
914- // mixedEvent.setObject(new CorrelationContainer("mixedEvent", "mixedEvent", corrAxis, effAxis, {}));
915- // } else if (configTask.doEtaDependentFlow){
916- // registry.add("Trig_hist", "", {HistType::kTHnSparseF, {{configAxis.axisSamples, configAxis.axisVertex, configAxis.axisEtaTrigger}}});
917- // sameEvent.setObject(new CorrelationContainer("sameEvent", "sameEvent", corrAxisEta, effAxis, {}));
918- // mixedEvent.setObject(new CorrelationContainer("mixedEvent", "mixedEvent", corrAxisEta, effAxis, {}));
919- // } else {
920- // registry.add("Trig_hist", "", {HistType::kTHnSparseF, {{configAxis.axisSamples, configAxis.axisVertex, configAxis.axisPtTrigger}}});
921- // sameEvent.setObject(new CorrelationContainer("sameEvent", "sameEvent", corrAxisVariations, effAxis, {}));
922- // mixedEvent.setObject(new CorrelationContainer("mixedEvent", "mixedEvent", corrAxisVariations, effAxis, {}));
923- // }
924- // }
925-
926905 } // End of init() function
927906
928907 // =========================
@@ -1191,10 +1170,10 @@ struct HfTaskFlow {
11911170 float efficiencyTpc = 1 .;
11921171
11931172 if (mEfficiencyTpc ) {
1194- int etaBin = mEfficiencyTpc ->GetXaxis ()->FindBin (eta );
1195- int ptBin = mEfficiencyTpc ->FindBin (pt );
1173+ int ptBin = mEfficiencyTpc ->GetXaxis ()->FindBin (pt );
1174+ int etaBin = mEfficiencyTpc ->GetYaxis ()-> FindBin (eta );
11961175 int vertexBin = mEfficiencyTpc ->GetZaxis ()->FindBin (vertex);
1197- efficiencyTpc = mEfficiencyTpc ->GetBinContent (etaBin, ptBin , vertexBin);
1176+ efficiencyTpc = mEfficiencyTpc ->GetBinContent (ptBin, etaBin , vertexBin);
11981177 }
11991178
12001179 if (efficiencyTpc == 0 ) {
@@ -1211,10 +1190,10 @@ struct HfTaskFlow {
12111190 float efficiencyMft = 1 .;
12121191
12131192 if (mEfficiencyMft ) {
1214- int etaBin = mEfficiencyMft ->GetXaxis ()->FindBin (eta );
1215- int ptBin = mEfficiencyMft ->FindBin (pt );
1193+ int ptBin = mEfficiencyMft ->GetXaxis ()->FindBin (pt );
1194+ int etaBin = mEfficiencyMft ->GetYaxis ()-> FindBin (eta );
12161195 int vertexBin = mEfficiencyMft ->GetZaxis ()->FindBin (vertex);
1217- efficiencyMft = mEfficiencyMft ->GetBinContent (etaBin, ptBin , vertexBin);
1196+ efficiencyMft = mEfficiencyMft ->GetBinContent (ptBin, etaBin , vertexBin);
12181197 }
12191198
12201199 if (efficiencyMft == 0 ) {
@@ -2658,9 +2637,10 @@ struct HfTaskFlow {
26582637
26592638 auto bc = collision1.template bc_as <aod::BCsWithTimestamps>();
26602639 loadEfficiencyCorrection (bc.timestamp ());
2640+ auto tracksForMultiplicity = tracksTpc.sliceByCached (o2::aod::track::collisionId, collision1.globalIndex (), cache);
26612641 auto multiplicity = 0 ;
26622642 if (configCollision.useMultiplicityFromTracks ) {
2663- multiplicity = tracksTpc .size ();
2643+ multiplicity = tracksForMultiplicity .size ();
26642644 } else {
26652645 multiplicity = getMultiplicityEstimator (collision1, false );
26662646 }
@@ -2685,8 +2665,8 @@ struct HfTaskFlow {
26852665 } // end of for loop
26862666 }
26872667
2688- template <typename TCollisions, typename TTracksTrig, typename TTracksAssoc, typename TPreslice>
2689- 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,
26902670 TTracksTrig const & tracks1, TTracksAssoc const & tracks2, TPreslice const & preslice,
26912671 OutputObj<CorrelationContainer>& corrContainer, int fitType, aod::BCsWithTimestamps const &)
26922672 {
@@ -2721,36 +2701,39 @@ struct HfTaskFlow {
27212701 auto bc = collision1.template bc_as <aod::BCsWithTimestamps>();
27222702 loadEfficiencyCorrection (bc.timestamp ());
27232703
2724- if constexpr (std::is_same_v<aod::FV0As, TTracksAssoc>) { // IF ASSOCIATED PARTICLE FROM FV0A
2725- 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()) {
27262706
2727- auto slicedTriggerTracks = tracks1.sliceBy (preslice, collision1.globalIndex ());
2728- 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();
27292710
2730- auto multiplicity = 0 ;
2731- if (configCollision.useMultiplicityFromTracks ) {
2732- multiplicity = tracks1 .size ();
2733- } else {
2734- multiplicity = getMultiplicityEstimator (collision1, false );
2735- }
2711+ // auto multiplicity = 0;
2712+ // if (configCollision.useMultiplicityFromTracks) {
2713+ // multiplicity = tracksForMultiplicity .size();
2714+ // } else {
2715+ // multiplicity = getMultiplicityEstimator(collision1, false);
2716+ // }
27362717
2737- if (multiplicity < configCollision.minMultiplicity || multiplicity >= configCollision.maxMultiplicity ) {
2738- return ;
2739- }
2718+ // if (multiplicity < configCollision.minMultiplicity || multiplicity >= configCollision.maxMultiplicity) {
2719+ // return;
2720+ // }
27402721
2741- corrContainer->fillEvent (multiplicity, step);
2742- fillCorrelationsFIT (corrContainer, step, slicedTriggerTracks, fv0, tracks2, multiplicity, collision1.posZ (), false , fitType);
2743- }
2744- } // 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
27452726
27462727 if constexpr (std::is_same_v<aod::FT0s, TTracksAssoc>) {
27472728 if (collision1.has_foundFT0 () && collision2.has_foundFT0 ()) {
27482729
27492730 auto slicedTriggerTracks = tracks1.sliceBy (preslice, collision1.globalIndex ());
2731+ auto tracksForMultiplicity = tracksTpc.sliceByCached (o2::aod::track::collisionId, collision1.globalIndex (), cache);
27502732 const auto & ft0 = collision2.foundFT0 ();
2733+
27512734 auto multiplicity = 0 ;
27522735 if (configCollision.useMultiplicityFromTracks ) {
2753- multiplicity = tracks1 .size ();
2736+ multiplicity = tracksForMultiplicity .size ();
27542737 } else {
27552738 multiplicity = getMultiplicityEstimator (collision1, false );
27562739 }
@@ -2806,13 +2789,13 @@ struct HfTaskFlow {
28062789
28072790 auto bc = collision1.template bc_as <aod::BCsWithTimestamps>();
28082791 loadEfficiencyCorrection (bc.timestamp ());
2792+ auto tracksForMultiplicity = tracksTpc.sliceByCached (o2::aod::track::collisionId, collision1.globalIndex (), cache);
28092793 auto multiplicity = 0 ;
28102794 if (configCollision.useMultiplicityFromTracks ) {
2811- multiplicity = tracksTpc .size ();
2795+ multiplicity = tracksForMultiplicity .size ();
28122796 } else {
28132797 multiplicity = getMultiplicityEstimator (collision1, false );
28142798 }
2815-
28162799 if (multiplicity < configCollision.minMultiplicity || multiplicity >= configCollision.maxMultiplicity ) {
28172800 return ;
28182801 }
@@ -4066,9 +4049,9 @@ struct HfTaskFlow {
40664049 aod::BCsWithTimestamps const & bcs)
40674050 {
40684051 if (!configTask.doEtaDependentFlow && !configTask.doVariationContainers ) {
4069- mixCollisionsFIT (collisions, CorrelationContainer::kCFStepReconstructed , tracks, ft0s, perColTracks, mixedEvent, isFT0A, bcs);
4052+ mixCollisionsFIT (collisions, CorrelationContainer::kCFStepReconstructed , tracks, tracks, ft0s, perColTracks, mixedEvent, isFT0A, bcs);
40704053 } else {
4071- mixCollisionsFIT (collisions, CorrelationContainer::kCFStepReconstructed , tracks, ft0s, perColTracks, mixedEventTpcFt0a, isFT0A, bcs);
4054+ mixCollisionsFIT (collisions, CorrelationContainer::kCFStepReconstructed , tracks, tracks, ft0s, perColTracks, mixedEventTpcFt0a, isFT0A, bcs);
40724055 }
40734056 }
40744057 PROCESS_SWITCH (HfTaskFlow, processMixedTpcFt0aChCh, " DATA : Process mixed-event correlations for TPC-FT0-A h-h case" , false );
@@ -4079,10 +4062,11 @@ struct HfTaskFlow {
40794062
40804063 void processMixedTpcFt0aD0Ch (FilteredCollisionsWSelMult const & collisions,
40814064 HfCandidatesSelD0 const & candidates,
4065+ FilteredTracksWDcaSel const & tracks,
40824066 aod::FT0s const & ft0s,
40834067 aod::BCsWithTimestamps const & bcs)
40844068 {
4085- mixCollisionsFIT (collisions, CorrelationContainer::kCFStepReconstructed , candidates, ft0s, perColD0s, mixedEventHf, isFT0A, bcs);
4069+ mixCollisionsFIT (collisions, CorrelationContainer::kCFStepReconstructed , tracks, candidates, ft0s, perColD0s, mixedEventHf, isFT0A, bcs);
40864070 }
40874071 PROCESS_SWITCH (HfTaskFlow, processMixedTpcFt0aD0Ch, " DATA : Process mixed-event correlations for TPC-FT0-A D0-h case" , false );
40884072
@@ -4092,10 +4076,11 @@ struct HfTaskFlow {
40924076
40934077 void processMixedTpcFt0aLcCh (FilteredCollisionsWSelMult const & collisions,
40944078 HfCandidatesSelLc const & candidates,
4079+ FilteredTracksWDcaSel const & tracks,
40954080 aod::FT0s const & ft0s,
40964081 aod::BCsWithTimestamps const & bcs)
40974082 {
4098- mixCollisionsFIT (collisions, CorrelationContainer::kCFStepReconstructed , candidates, ft0s, perColLcs, mixedEventHf, isFT0A, bcs);
4083+ mixCollisionsFIT (collisions, CorrelationContainer::kCFStepReconstructed , tracks, candidates, ft0s, perColLcs, mixedEventHf, isFT0A, bcs);
40994084 }
41004085 PROCESS_SWITCH (HfTaskFlow, processMixedTpcFt0aLcCh, " DATA : Process mixed-event correlations for TPC-FT0-A Lc-h case" , false );
41014086
@@ -4105,13 +4090,14 @@ struct HfTaskFlow {
41054090
41064091 void processMixedMftFt0aChCh (FilteredCollisionsWSelMult const & collisions,
41074092 FilteredMftTracks const & mftTracks,
4093+ FilteredTracksWDcaSel const & tracks,
41084094 aod::FT0s const & ft0s,
41094095 aod::BCsWithTimestamps const & bcs)
41104096 {
41114097 if (!configTask.doEtaDependentFlow && !configTask.doVariationContainers ) {
4112- mixCollisionsFIT (collisions, CorrelationContainer::kCFStepReconstructed , mftTracks, ft0s, perColMftTracks, mixedEvent, isFT0A, bcs);
4098+ mixCollisionsFIT (collisions, CorrelationContainer::kCFStepReconstructed , tracks, mftTracks, ft0s, perColMftTracks, mixedEvent, isFT0A, bcs);
41134099 } else {
4114- mixCollisionsFIT (collisions, CorrelationContainer::kCFStepReconstructed , mftTracks, ft0s, perColMftTracks, mixedEventMftFt0a, isFT0A, bcs);
4100+ mixCollisionsFIT (collisions, CorrelationContainer::kCFStepReconstructed , tracks, mftTracks, ft0s, perColMftTracks, mixedEventMftFt0a, isFT0A, bcs);
41154101 }
41164102 }
41174103 PROCESS_SWITCH (HfTaskFlow, processMixedMftFt0aChCh, " DATA : Process mixed-event correlations for MFT-FT0-A h-h case" , false );
@@ -4170,7 +4156,7 @@ struct HfTaskFlow {
41704156 aod::FT0s const & ft0s,
41714157 aod::BCsWithTimestamps const & bcs)
41724158 {
4173- mixCollisionsFIT (collisions, CorrelationContainer::kCFStepReconstructed , tracks, ft0s, perColTracks, mixedEvent, isFT0C, bcs);
4159+ mixCollisionsFIT (collisions, CorrelationContainer::kCFStepReconstructed , tracks, tracks, ft0s, perColTracks, mixedEvent, isFT0C, bcs);
41744160 }
41754161 PROCESS_SWITCH (HfTaskFlow, processMixedTpcFt0cChCh, " DATA : Process mixed-event correlations for TPC-FT0C h-h case" , false );
41764162
@@ -4180,10 +4166,11 @@ struct HfTaskFlow {
41804166
41814167 void processMixedTpcFt0cD0Ch (FilteredCollisionsWSelMult const & collisions,
41824168 HfCandidatesSelD0 const & candidates,
4169+ FilteredTracksWDcaSel const & tracks,
41834170 aod::FT0s const & ft0s,
41844171 aod::BCsWithTimestamps const & bcs)
41854172 {
4186- mixCollisionsFIT (collisions, CorrelationContainer::kCFStepReconstructed , candidates, ft0s, perColD0s, mixedEventHf, isFT0C, bcs);
4173+ mixCollisionsFIT (collisions, CorrelationContainer::kCFStepReconstructed , tracks, candidates, ft0s, perColD0s, mixedEventHf, isFT0C, bcs);
41874174 }
41884175 PROCESS_SWITCH (HfTaskFlow, processMixedTpcFt0cD0Ch, " DATA : Process mixed-event correlations for TPC-FT0C D0-h case" , false );
41894176
@@ -4193,10 +4180,11 @@ struct HfTaskFlow {
41934180
41944181 void processMixedTpcFt0cLcCh (FilteredCollisionsWSelMult const & collisions,
41954182 HfCandidatesSelLc const & candidates,
4183+ FilteredTracksWDcaSel const & tracks,
41964184 aod::FT0s const & ft0s,
41974185 aod::BCsWithTimestamps const & bcs)
41984186 {
4199- mixCollisionsFIT (collisions, CorrelationContainer::kCFStepReconstructed , candidates, ft0s, perColLcs, mixedEventHf, isFT0C, bcs);
4187+ mixCollisionsFIT (collisions, CorrelationContainer::kCFStepReconstructed , tracks, candidates, ft0s, perColLcs, mixedEventHf, isFT0C, bcs);
42004188 }
42014189 PROCESS_SWITCH (HfTaskFlow, processMixedTpcFt0cLcCh, " DATA : Process mixed-event correlations for TPC-FT0C Lc-h case" , false );
42024190
0 commit comments