@@ -130,6 +130,8 @@ struct lambdaTwoPartPolarization {
130130 ConfigurableAxis cosSigAxis{" cosSigAxis" , {110 , -1.05 , 1.05 }, " Signal cosine axis" };
131131 ConfigurableAxis cosAccAxis{" cosAccAxis" , {110 , -7.05 , 7.05 }, " Accepatance cosine axis" };
132132
133+ ConfigurableAxis vertexAxis{" vertexAxis" , {5 , -10 , 10 }, " vertex axis for mixing" };
134+
133135 TF1* fMultPVCutLow = nullptr ;
134136 TF1* fMultPVCutHigh = nullptr ;
135137
@@ -403,6 +405,57 @@ struct lambdaTwoPartPolarization {
403405 FillHistograms (collision, collision, V0s, V0s);
404406 }
405407 PROCESS_SWITCH (lambdaTwoPartPolarization, processDataSame, " Process Event for same data" , true );
408+
409+ SliceCache cache;
410+ using BinningTypeVertexContributorFT0M = ColumnBinningPolicy<aod::collision::PosZ, aod::cent::CentFT0M>;
411+ using BinningTypeVertexContributorFT0C = ColumnBinningPolicy<aod::collision::PosZ, aod::cent::CentFT0C>;
412+ void processDataMixedT0C (EventCandidates const & collisions,
413+ TrackCandidates const & /* tracks*/ , aod::V0Datas const & V0s, aod::BCsWithTimestamps const &)
414+ {
415+ auto tracksTuple = std::make_tuple (V0s);
416+ BinningTypeVertexContributorFT0C binningOnPositions{{vertexAxis, centAxis}, true };
417+ SameKindPair<EventCandidates, V0TrackCandidate, BinningTypeVertexContributorFT0C> pair{binningOnPositions, cfgNoMixedEvents, -1 , collisions, tracksTuple, &cache};
418+ for (auto & [c1, tracks1, c2, tracks2] : pair) {
419+ centrality = c1.centFT0C ();
420+ auto bc = c1.bc_as <aod::BCsWithTimestamps>();
421+ if (cfgAccCor) {
422+ AccMap = ccdb->getForTimeStamp <TProfile2D>(cfgAccCorPath.value , bc.timestamp ());
423+ }
424+ if (!eventSelected (c1))
425+ continue ;
426+ if (!eventSelected (c2))
427+ continue ;
428+ if (c1.bcId () == c2.bcId ())
429+ continue ;
430+
431+ FillHistograms (c1, c2, tracks1, tracks2);
432+ }
433+ }
434+ PROCESS_SWITCH (lambdaTwoPartPolarization, processDataMixedT0C, " Process Event for mixed data in PbPb" , false );
435+
436+ void processDataMixedT0M (EventCandidates const & collisions,
437+ TrackCandidates const & /* tracks*/ , aod::V0Datas const & V0s, aod::BCsWithTimestamps const &)
438+ {
439+ auto tracksTuple = std::make_tuple (V0s);
440+ BinningTypeVertexContributorFT0M binningOnPositions{{vertexAxis, centAxis}, true };
441+ SameKindPair<EventCandidates, V0TrackCandidate, BinningTypeVertexContributorFT0M> pair{binningOnPositions, cfgNoMixedEvents, -1 , collisions, tracksTuple, &cache};
442+ for (auto & [c1, tracks1, c2, tracks2] : pair) {
443+ centrality = c1.centFT0M ();
444+ auto bc = c1.bc_as <aod::BCsWithTimestamps>();
445+ if (cfgAccCor) {
446+ AccMap = ccdb->getForTimeStamp <TProfile2D>(cfgAccCorPath.value , bc.timestamp ());
447+ }
448+ if (!eventSelected (c1))
449+ continue ;
450+ if (!eventSelected (c2))
451+ continue ;
452+ if (c1.bcId () == c2.bcId ())
453+ continue ;
454+
455+ FillHistograms (c1, c2, tracks1, tracks2);
456+ }
457+ }
458+ PROCESS_SWITCH (lambdaTwoPartPolarization, processDataMixedT0M, " Process Event for mixed data in pp" , false );
406459};
407460
408461WorkflowSpec defineDataProcessing (ConfigContext const & cfgc)
0 commit comments