Skip to content

Commit 5d2ea8a

Browse files
[PWGLF] Updated task for Event Mixing (#13174)
Co-authored-by: Navneet <navneet.kumar@cern.ch>
1 parent cbd6f32 commit 5d2ea8a

File tree

1 file changed

+39
-18
lines changed

1 file changed

+39
-18
lines changed

PWGLF/Tasks/Resonances/chargedkstaranalysis.cxx

Lines changed: 39 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -898,28 +898,49 @@ struct chargedkstaranalysis {
898898
PROCESS_SWITCH(chargedkstaranalysis, processDataSE, "Process Event for data without Partitioning", true);
899899

900900
SliceCache cache;
901-
using BinningTypeVtxZT0M = ColumnBinningPolicy<aod::collision::PosZ, aod::cent::CentFT0M>;
902-
903-
// using BinningTypeVtxZT0M = ColumnBinningPolicy<aod::collision::PosZ, aod::mult::MultFV0M<aod::mult::MultFV0A, aod::mult::MultFV0C>>;
904-
BinningTypeVtxZT0M colBinning{{cfgvtxbins, cfgmultbins}, true};
905-
void processDataME(EventCandidates const& collisions, TrackCandidates const& tracks, V0Candidates const& v0s)
901+
using BinningTypeVertexContributor = ColumnBinningPolicy<aod::collision::PosZ, aod::cent::CentFT0M>;
902+
BinningTypeVertexContributor binningOnPositions{{cfgvtxbins, cfgmultbins}, true};
903+
Pair<EventCandidates, TrackCandidates, V0Candidates, BinningTypeVertexContributor> pair{binningOnPositions, nEvtMixing, -1, &cache};
904+
void processDataME(EventCandidates const& /*collisions*/, TrackCandidates const& /*tracks*/, V0Candidates const& /*V0s*/)
906905
{
907-
Preslice<aod::Tracks> perCollision = aod::track::collisionId;
908-
Preslice<aod::V0s> perCollisionV0 = aod::v0::collisionId;
909-
auto tracksV0sTuple = std::make_tuple(tracks, v0s);
910-
911-
Pair<EventCandidates, TrackCandidates, V0Candidates, BinningTypeVtxZT0M> pair{colBinning, nEvtMixing, -1, collisions, tracksV0sTuple, &cache};
912-
// restrk1 is a TrackCandidates table of tracks belonging to collision c1 (aod::Collision::iterator)
913-
// resov0s2 is a V0Candidates table of V0s belonging to collision c2 (aod::Collision::iterator)
914-
for (const auto& [c1, restrk1, c2, resov0s2] : pair) {
915-
if (!colCuts.isSelected(c1) || !colCuts.isSelected(c2)) {
916-
// Default event selection
906+
for (auto& [c1, tracks1, c2, tracks2] : pair) {
907+
908+
if (!colCuts.isSelected(c1)) {
917909
continue;
918910
}
919-
colCuts.fillQA(c1);
920-
fillHistograms<false, true>(c1, restrk1, resov0s2);
911+
if (!colCuts.isSelected(c2)) {
912+
continue;
913+
}
914+
915+
for (auto& [t1, t2] : o2::soa::combinations(
916+
o2::soa::CombinationsFullIndexPolicy(tracks1, tracks2))) {
917+
// Here t1 corressponds to bachelor track and t2 corressponds to v0s.
918+
if (!isTrackSelected(t1))
919+
continue;
920+
if (!trackCut(t1))
921+
continue;
922+
if (!selectionPIDPion(t1))
923+
continue;
924+
925+
auto posDauTrack = t2.template posTrack_as<TrackCandidates>();
926+
auto negDauTrack = t2.template negTrack_as<TrackCandidates>();
927+
if (!cfgByPassDauPIDSelection && !selectionPIDPion(posDauTrack)) // Perhaps it's already applied in trackCut (need to check QA plots)
928+
continue;
929+
if (!cfgByPassDauPIDSelection && !selectionPIDPion(negDauTrack))
930+
continue;
931+
if (!selectionK0s(c2, t2))
932+
continue;
933+
934+
ROOT::Math::PxPyPzMVector lResoSecondary, lDecayDaughter_bach, lResoKstar;
935+
lDecayDaughter_bach = ROOT::Math::PxPyPzMVector(t1.px(), t1.py(), t1.pz(), massPi);
936+
lResoSecondary = ROOT::Math::PxPyPzMVector(t2.px(), t2.py(), t2.pz(), massK0s);
937+
lResoKstar = lResoSecondary + lDecayDaughter_bach;
938+
939+
if (lResoKstar.Rapidity() > cKstarMaxRap || lResoKstar.Rapidity() < cKstarMinRap)
940+
continue;
941+
histos.fill(HIST("hInvmass_KstarME"), c1.centFT0M(), lResoKstar.Pt(), lResoKstar.M());
942+
}
921943
}
922-
// fillHistograms<false, false>(collision, tracks, v0s); // second order
923944
}
924945
PROCESS_SWITCH(chargedkstaranalysis, processDataME, "Process Event for data without Partitioning", true);
925946

0 commit comments

Comments
 (0)