Skip to content

Commit b6de1a3

Browse files
Refactor mixed event handling for track selection
Updated mixed event handling to use selected partition for track 1 based on PDG code. This change applies to multiple decay channels and ensures correct partitioning for mixed events.
1 parent 1284ea0 commit b6de1a3

1 file changed

Lines changed: 100 additions & 60 deletions

File tree

PWGHF/HFC/Tasks/taskCharmHadronsTrackFemtoDream.cxx

Lines changed: 100 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -920,15 +920,19 @@ struct HfTaskCharmHadronsTrackFemtoDream {
920920
}
921921
}
922922
if (mixSetting.doMixEvent) {
923+
auto* partitionTrk1Selected = &partitionTrk1;
924+
if (trackSel.pdgCodeTrack1.value == kKPlus) {
925+
partitionTrk1Selected = &partitionTrk1Ka;
926+
}
923927
switch (mixSetting.mixingBinPolicy) {
924928
case femtodreamcollision::kMult:
925-
doMixedEvent<false, DecayChannel::LcToPKPi, FilteredCollisions>(cols, partitionCharmHadron3Prong, partitionTrk1, parts, colBinningMult);
929+
doMixedEvent<false, DecayChannel::LcToPKPi, FilteredCollisions>(cols, partitionCharmHadron3Prong, *partitionTrk1Selected, parts, colBinningMult);
926930
break;
927931
case femtodreamcollision::kMultPercentile:
928-
doMixedEvent<false, DecayChannel::LcToPKPi, FilteredCollisions>(cols, partitionCharmHadron3Prong, partitionTrk1, parts, colBinningMultPercentile);
932+
doMixedEvent<false, DecayChannel::LcToPKPi, FilteredCollisions>(cols, partitionCharmHadron3Prong, *partitionTrk1Selected, parts, colBinningMultPercentile);
929933
break;
930934
case femtodreamcollision::kMultMultPercentile:
931-
doMixedEvent<false, DecayChannel::LcToPKPi, FilteredCollisions>(cols, partitionCharmHadron3Prong, partitionTrk1, parts, colBinningMultMultPercentile);
935+
doMixedEvent<false, DecayChannel::LcToPKPi, FilteredCollisions>(cols, partitionCharmHadron3Prong, *partitionTrk1Selected, parts, colBinningMultMultPercentile);
932936
break;
933937
default:
934938
LOG(fatal) << "Invalid binning policiy specifed. Breaking...";
@@ -962,15 +966,19 @@ struct HfTaskCharmHadronsTrackFemtoDream {
962966
}
963967
}
964968
if (mixSetting.doMixEvent) {
969+
auto* partitionTrk1Selected = &partitionTrk1;
970+
if (trackSel.pdgCodeTrack1.value == kKPlus) {
971+
partitionTrk1Selected = &partitionTrk1Ka;
972+
}
965973
switch (mixSetting.mixingBinPolicy) {
966974
case femtodreamcollision::kMult:
967-
doMixedEvent<false, DecayChannel::DplusToPiKPi, FilteredCollisions>(cols, partitionCharmHadron3Prong, partitionTrk1, parts, colBinningMult);
975+
doMixedEvent<false, DecayChannel::DplusToPiKPi, FilteredCollisions>(cols, partitionCharmHadron3Prong, *partitionTrk1Selected, parts, colBinningMult);
968976
break;
969977
case femtodreamcollision::kMultPercentile:
970-
doMixedEvent<false, DecayChannel::DplusToPiKPi, FilteredCollisions>(cols, partitionCharmHadron3Prong, partitionTrk1, parts, colBinningMultPercentile);
978+
doMixedEvent<false, DecayChannel::DplusToPiKPi, FilteredCollisions>(cols, partitionCharmHadron3Prong, *partitionTrk1Selected, parts, colBinningMultPercentile);
971979
break;
972980
case femtodreamcollision::kMultMultPercentile:
973-
doMixedEvent<false, DecayChannel::DplusToPiKPi, FilteredCollisions>(cols, partitionCharmHadron3Prong, partitionTrk1, parts, colBinningMultMultPercentile);
981+
doMixedEvent<false, DecayChannel::DplusToPiKPi, FilteredCollisions>(cols, partitionCharmHadron3Prong, *partitionTrk1Selected, parts, colBinningMultMultPercentile);
974982
break;
975983
default:
976984
LOG(fatal) << "Invalid binning policiy specifed. Breaking...";
@@ -1003,15 +1011,19 @@ struct HfTaskCharmHadronsTrackFemtoDream {
10031011
}
10041012
}
10051013
if (mixSetting.doMixEvent) {
1014+
auto* partitionTrk1Selected = &partitionTrk1;
1015+
if (trackSel.pdgCodeTrack1.value == kKPlus) {
1016+
partitionTrk1Selected = &partitionTrk1Ka;
1017+
}
10061018
switch (mixSetting.mixingBinPolicy) {
10071019
case femtodreamcollision::kMult:
1008-
doMixedEvent<false, DecayChannel::D0ToPiK, FilteredCollisions>(cols, partitionCharmHadron2Prong, partitionTrk1, parts, colBinningMult);
1020+
doMixedEvent<false, DecayChannel::D0ToPiK, FilteredCollisions>(cols, partitionCharmHadron2Prong, *partitionTrk1Selected, parts, colBinningMult);
10091021
break;
10101022
case femtodreamcollision::kMultPercentile:
1011-
doMixedEvent<false, DecayChannel::D0ToPiK, FilteredCollisions>(cols, partitionCharmHadron2Prong, partitionTrk1, parts, colBinningMultPercentile);
1023+
doMixedEvent<false, DecayChannel::D0ToPiK, FilteredCollisions>(cols, partitionCharmHadron2Prong, *partitionTrk1Selected, parts, colBinningMultPercentile);
10121024
break;
10131025
case femtodreamcollision::kMultMultPercentile:
1014-
doMixedEvent<false, DecayChannel::D0ToPiK, FilteredCollisions>(cols, partitionCharmHadron2Prong, partitionTrk1, parts, colBinningMultMultPercentile);
1026+
doMixedEvent<false, DecayChannel::D0ToPiK, FilteredCollisions>(cols, partitionCharmHadron2Prong, *partitionTrk1Selected, parts, colBinningMultMultPercentile);
10151027
break;
10161028
default:
10171029
LOG(fatal) << "Invalid binning policiy specifed. Breaking...";
@@ -1044,15 +1056,19 @@ struct HfTaskCharmHadronsTrackFemtoDream {
10441056
}
10451057
}
10461058
if (mixSetting.doMixEvent) {
1059+
auto* partitionTrk1Selected = &partitionTrk1;
1060+
if (trackSel.pdgCodeTrack1.value == kKPlus) {
1061+
partitionTrk1Selected = &partitionTrk1Ka;
1062+
}
10471063
switch (mixSetting.mixingBinPolicy) {
10481064
case femtodreamcollision::kMult:
1049-
doMixedEvent<false, DecayChannel::DstarToD0Pi, FilteredCollisions>(cols, partitionCharmHadronDstar, partitionTrk1, parts, colBinningMult);
1065+
doMixedEvent<false, DecayChannel::DstarToD0Pi, FilteredCollisions>(cols, partitionCharmHadronDstar, *partitionTrk1Selected, parts, colBinningMult);
10501066
break;
10511067
case femtodreamcollision::kMultPercentile:
1052-
doMixedEvent<false, DecayChannel::DstarToD0Pi, FilteredCollisions>(cols, partitionCharmHadronDstar, partitionTrk1, parts, colBinningMultPercentile);
1068+
doMixedEvent<false, DecayChannel::DstarToD0Pi, FilteredCollisions>(cols, partitionCharmHadronDstar, *partitionTrk1Selected, parts, colBinningMultPercentile);
10531069
break;
10541070
case femtodreamcollision::kMultMultPercentile:
1055-
doMixedEvent<false, DecayChannel::DstarToD0Pi, FilteredCollisions>(cols, partitionCharmHadronDstar, partitionTrk1, parts, colBinningMultMultPercentile);
1071+
doMixedEvent<false, DecayChannel::DstarToD0Pi, FilteredCollisions>(cols, partitionCharmHadronDstar, *partitionTrk1Selected, parts, colBinningMultMultPercentile);
10561072
break;
10571073
default:
10581074
LOG(fatal) << "Invalid binning policiy specifed. Breaking...";
@@ -1123,18 +1139,24 @@ struct HfTaskCharmHadronsTrackFemtoDream {
11231139
}
11241140
doSameEvent<true, DecayChannel::LcToPKPi, FilteredCharmMcCand3Prongs>(sliceMcCharmHad, sliceMcTrk1, parts, col);
11251141
}
1126-
switch (mixSetting.mixingBinPolicy) {
1127-
case femtodreamcollision::kMult:
1128-
doMixedEvent<true, DecayChannel::LcToPKPi, FilteredMcColisions>(cols, partitionMcCharmHadron3Prong, partitionMcTrk1, parts, colBinningMult);
1129-
break;
1130-
case femtodreamcollision::kMultPercentile:
1131-
doMixedEvent<true, DecayChannel::LcToPKPi, FilteredMcColisions>(cols, partitionMcCharmHadron3Prong, partitionMcTrk1, parts, colBinningMultPercentile);
1132-
break;
1133-
case femtodreamcollision::kMultMultPercentile:
1134-
doMixedEvent<true, DecayChannel::LcToPKPi, FilteredMcColisions>(cols, partitionMcCharmHadron3Prong, partitionMcTrk1, parts, colBinningMultMultPercentile);
1135-
break;
1136-
default:
1137-
LOG(fatal) << "Invalid binning policiy specifed. Breaking...";
1142+
if (mixSetting.doMixEvent) {
1143+
auto* partitionTrk1Selected = &partitionMcTrk1;
1144+
if (trackSel.pdgCodeTrack1.value == kKPlus) {
1145+
partitionTrk1Selected = &partitionMcTrk1Ka;
1146+
}
1147+
switch (mixSetting.mixingBinPolicy) {
1148+
case femtodreamcollision::kMult:
1149+
doMixedEvent<true, DecayChannel::LcToPKPi, FilteredMcColisions>(cols, partitionMcCharmHadron3Prong, *partitionTrk1Selected, parts, colBinningMult);
1150+
break;
1151+
case femtodreamcollision::kMultPercentile:
1152+
doMixedEvent<true, DecayChannel::LcToPKPi, FilteredMcColisions>(cols, partitionMcCharmHadron3Prong, *partitionTrk1Selected, parts, colBinningMultPercentile);
1153+
break;
1154+
case femtodreamcollision::kMultMultPercentile:
1155+
doMixedEvent<true, DecayChannel::LcToPKPi, FilteredMcColisions>(cols, partitionMcCharmHadron3Prong, *partitionTrk1Selected, parts, colBinningMultMultPercentile);
1156+
break;
1157+
default:
1158+
LOG(fatal) << "Invalid binning policiy specifed. Breaking...";
1159+
}
11381160
}
11391161
}
11401162
PROCESS_SWITCH(HfTaskCharmHadronsTrackFemtoDream, processMcLcTrk, "Enable processing LcToPKPi and Tracks correlation for Monte Carlo", false);
@@ -1158,18 +1180,24 @@ struct HfTaskCharmHadronsTrackFemtoDream {
11581180
}
11591181
doSameEvent<true, DecayChannel::DplusToPiKPi, FilteredCharmMcCand3Prongs>(sliceMcCharmHad, sliceMcTrk1, parts, col);
11601182
}
1161-
switch (mixSetting.mixingBinPolicy) {
1162-
case femtodreamcollision::kMult:
1163-
doMixedEvent<true, DecayChannel::DplusToPiKPi, FilteredMcColisions>(cols, partitionMcCharmHadron3Prong, partitionMcTrk1, parts, colBinningMult);
1164-
break;
1165-
case femtodreamcollision::kMultPercentile:
1166-
doMixedEvent<true, DecayChannel::DplusToPiKPi, FilteredMcColisions>(cols, partitionMcCharmHadron3Prong, partitionMcTrk1, parts, colBinningMultPercentile);
1167-
break;
1168-
case femtodreamcollision::kMultMultPercentile:
1169-
doMixedEvent<true, DecayChannel::DplusToPiKPi, FilteredMcColisions>(cols, partitionMcCharmHadron3Prong, partitionMcTrk1, parts, colBinningMultMultPercentile);
1170-
break;
1171-
default:
1172-
LOG(fatal) << "Invalid binning policiy specifed. Breaking...";
1183+
if (mixSetting.doMixEvent) {
1184+
auto* partitionTrk1Selected = &partitionMcTrk1;
1185+
if (trackSel.pdgCodeTrack1.value == kKPlus) {
1186+
partitionTrk1Selected = &partitionMcTrk1Ka;
1187+
}
1188+
switch (mixSetting.mixingBinPolicy) {
1189+
case femtodreamcollision::kMult:
1190+
doMixedEvent<true, DecayChannel::DplusToPiKPi, FilteredMcColisions>(cols, partitionMcCharmHadron3Prong, *partitionTrk1Selected, parts, colBinningMult);
1191+
break;
1192+
case femtodreamcollision::kMultPercentile:
1193+
doMixedEvent<true, DecayChannel::DplusToPiKPi, FilteredMcColisions>(cols, partitionMcCharmHadron3Prong, *partitionTrk1Selected, parts, colBinningMultPercentile);
1194+
break;
1195+
case femtodreamcollision::kMultMultPercentile:
1196+
doMixedEvent<true, DecayChannel::DplusToPiKPi, FilteredMcColisions>(cols, partitionMcCharmHadron3Prong, *partitionTrk1Selected, parts, colBinningMultMultPercentile);
1197+
break;
1198+
default:
1199+
LOG(fatal) << "Invalid binning policiy specifed. Breaking...";
1200+
}
11731201
}
11741202
}
11751203
PROCESS_SWITCH(HfTaskCharmHadronsTrackFemtoDream, processMcDplusTrk, "Enable processing DplusToPiKPi and Tracks correlation for Monte Carlo", false);
@@ -1193,18 +1221,24 @@ struct HfTaskCharmHadronsTrackFemtoDream {
11931221
}
11941222
doSameEvent<true, DecayChannel::D0ToPiK, FilteredCharmMcCand2Prongs>(sliceMcCharmHad, sliceMcTrk1, parts, col);
11951223
}
1196-
switch (mixSetting.mixingBinPolicy) {
1197-
case femtodreamcollision::kMult:
1198-
doMixedEvent<true, DecayChannel::D0ToPiK, FilteredMcColisions>(cols, partitionMcCharmHadron2Prong, partitionMcTrk1, parts, colBinningMult);
1199-
break;
1200-
case femtodreamcollision::kMultPercentile:
1201-
doMixedEvent<true, DecayChannel::D0ToPiK, FilteredMcColisions>(cols, partitionMcCharmHadron2Prong, partitionMcTrk1, parts, colBinningMultPercentile);
1202-
break;
1203-
case femtodreamcollision::kMultMultPercentile:
1204-
doMixedEvent<true, DecayChannel::D0ToPiK, FilteredMcColisions>(cols, partitionMcCharmHadron2Prong, partitionMcTrk1, parts, colBinningMultMultPercentile);
1205-
break;
1206-
default:
1207-
LOG(fatal) << "Invalid binning policiy specifed. Breaking...";
1224+
if (mixSetting.doMixEvent) {
1225+
auto* partitionTrk1Selected = &partitionMcTrk1;
1226+
if (trackSel.pdgCodeTrack1.value == kKPlus) {
1227+
partitionTrk1Selected = &partitionMcTrk1Ka;
1228+
}
1229+
switch (mixSetting.mixingBinPolicy) {
1230+
case femtodreamcollision::kMult:
1231+
doMixedEvent<true, DecayChannel::D0ToPiK, FilteredMcColisions>(cols, partitionMcCharmHadron2Prong, *partitionTrk1Selected, parts, colBinningMult);
1232+
break;
1233+
case femtodreamcollision::kMultPercentile:
1234+
doMixedEvent<true, DecayChannel::D0ToPiK, FilteredMcColisions>(cols, partitionMcCharmHadron2Prong, *partitionTrk1Selected, parts, colBinningMultPercentile);
1235+
break;
1236+
case femtodreamcollision::kMultMultPercentile:
1237+
doMixedEvent<true, DecayChannel::D0ToPiK, FilteredMcColisions>(cols, partitionMcCharmHadron2Prong, *partitionTrk1Selected, parts, colBinningMultMultPercentile);
1238+
break;
1239+
default:
1240+
LOG(fatal) << "Invalid binning policiy specifed. Breaking...";
1241+
}
12081242
}
12091243
}
12101244
PROCESS_SWITCH(HfTaskCharmHadronsTrackFemtoDream, processMcD0Trk, "Enable processing D0ToPiK and Tracks correlation for Monte Carlo", false);
@@ -1228,18 +1262,24 @@ struct HfTaskCharmHadronsTrackFemtoDream {
12281262
}
12291263
doSameEvent<true, DecayChannel::DstarToD0Pi, FilteredCharmMcCandDstars>(sliceMcCharmHad, sliceMcTrk1, parts, col);
12301264
}
1231-
switch (mixSetting.mixingBinPolicy) {
1232-
case femtodreamcollision::kMult:
1233-
doMixedEvent<true, DecayChannel::DstarToD0Pi, FilteredMcColisions>(cols, partitionMcCharmHadronDstar, partitionMcTrk1, parts, colBinningMult);
1234-
break;
1235-
case femtodreamcollision::kMultPercentile:
1236-
doMixedEvent<true, DecayChannel::DstarToD0Pi, FilteredMcColisions>(cols, partitionMcCharmHadronDstar, partitionMcTrk1, parts, colBinningMultPercentile);
1237-
break;
1238-
case femtodreamcollision::kMultMultPercentile:
1239-
doMixedEvent<true, DecayChannel::DstarToD0Pi, FilteredMcColisions>(cols, partitionMcCharmHadronDstar, partitionMcTrk1, parts, colBinningMultMultPercentile);
1240-
break;
1241-
default:
1242-
LOG(fatal) << "Invalid binning policiy specifed. Breaking...";
1265+
if (mixSetting.doMixEvent) {
1266+
auto* partitionTrk1Selected = &partitionMcTrk1;
1267+
if (trackSel.pdgCodeTrack1.value == kKPlus) {
1268+
partitionTrk1Selected = &partitionMcTrk1Ka;
1269+
}
1270+
switch (mixSetting.mixingBinPolicy) {
1271+
case femtodreamcollision::kMult:
1272+
doMixedEvent<true, DecayChannel::DstarToD0Pi, FilteredMcColisions>(cols, partitionMcCharmHadronDstar, *partitionTrk1Selected, parts, colBinningMult);
1273+
break;
1274+
case femtodreamcollision::kMultPercentile:
1275+
doMixedEvent<true, DecayChannel::DstarToD0Pi, FilteredMcColisions>(cols, partitionMcCharmHadronDstar, *partitionTrk1Selected, parts, colBinningMultPercentile);
1276+
break;
1277+
case femtodreamcollision::kMultMultPercentile:
1278+
doMixedEvent<true, DecayChannel::DstarToD0Pi, FilteredMcColisions>(cols, partitionMcCharmHadronDstar, *partitionTrk1Selected, parts, colBinningMultMultPercentile);
1279+
break;
1280+
default:
1281+
LOG(fatal) << "Invalid binning policiy specifed. Breaking...";
1282+
}
12431283
}
12441284
}
12451285
PROCESS_SWITCH(HfTaskCharmHadronsTrackFemtoDream, processMcDstarTrk, "Enable processing DstarToD0Pi and Tracks correlation for Monte Carlo", false);

0 commit comments

Comments
 (0)