Skip to content

Commit 12ac3bb

Browse files
committed
solved multiplicity issues
1 parent b5c6881 commit 12ac3bb

1 file changed

Lines changed: 42 additions & 33 deletions

File tree

PWGHF/HFC/Tasks/taskFlow.cxx

Lines changed: 42 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)