Skip to content

Commit f7602c2

Browse files
authored
Add MC gen event process functions
1 parent 7a838d4 commit f7602c2

1 file changed

Lines changed: 92 additions & 0 deletions

File tree

PWGCF/TwoParticleCorrelations/Tasks/longrangecorrDerived.cxx

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -502,6 +502,38 @@ struct LongrangecorrDerived {
502502
} // pair loop
503503
} // process MC mixed
504504

505+
template <typename TTriggers, typename TAssocs>
506+
void processMcGenSame(McCollsTable::iterator const& mccollision, TTriggers const& triggers, TAssocs const& assocs)
507+
{
508+
if (std::abs(mccollision.posZ()) >= cfgSel.cfgVtxCut) {
509+
return;
510+
}
511+
fillCollQA(mccollision);
512+
auto multiplicity = mccollision.multiplicity();
513+
fillCorrHist<CorrelationContainer::kCFStepAll>(same, triggers, assocs, false, mccollision.posZ(), multiplicity, 1.0);
514+
} // process MC gen same
515+
516+
template <typename... TrackTypes>
517+
void processMcGenMixed(McCollsTable const& mccollisions, TrackTypes&&... tracks)
518+
{
519+
auto getMultiplicity = [this](auto& collision) {
520+
(void)this;
521+
return collision.multiplicity();
522+
};
523+
using MixedBinning = FlexibleBinningPolicy<std::tuple<decltype(getMultiplicity)>, aod::mccollision::PosZ, decltype(getMultiplicity)>;
524+
MixedBinning binningOnVtxAndMult{{getMultiplicity}, {cfgAxis.axisVtxZME, cfgAxis.axisMultME}, true};
525+
auto tracksTuple = std::make_tuple(std::forward<TrackTypes>(tracks)...);
526+
using TupleAtrack = std::tuple_element<0, decltype(tracksTuple)>::type;
527+
using TupleBtrack = std::tuple_element<std::tuple_size_v<decltype(tracksTuple)> - 1, decltype(tracksTuple)>::type;
528+
Pair<McCollsTable, TupleAtrack, TupleBtrack, MixedBinning> pairs{binningOnVtxAndMult, cfgSel.cfgNmixedevent, -1, mccollisions, tracksTuple, &cache};
529+
for (auto it = pairs.begin(); it != pairs.end(); it++) {
530+
auto& [col1, tracks1, col2, tracks2] = *it;
531+
float eventweight = 1.0f / it.currentWindowNeighbours();
532+
auto multiplicity = getMultiplicity(col1);
533+
fillCorrHist<CorrelationContainer::kCFStepAll>(mixed, tracks1, tracks2, true, col1.posZ(), multiplicity, eventweight);
534+
} // pair loop
535+
} // process MC gen mixed
536+
505537
void processTpcft0aSE(CollsTable::iterator const& col, TrksTable const& tracks, Ft0aTrksTable const& ft0as)
506538
{
507539
processSame(col, tracks, ft0as);
@@ -700,6 +732,56 @@ struct LongrangecorrDerived {
700732
processMcMixed(mccollisions, collisions, ft0as, ft0cs);
701733
}
702734

735+
void processMcGenTpcft0aSE(McCollsTable::iterator const& mccollision, McTrksTable const& tracks, McFt0aTrksTable const& ft0as)
736+
{
737+
processMcGenSame(mccollision, tracks, ft0as);
738+
}
739+
740+
void processMcGenTpcft0cSE(McCollsTable::iterator const& mccollision, McTrksTable const& tracks, McFt0cTrksTable const& ft0cs)
741+
{
742+
processMcGenSame(mccollision, tracks, ft0cs);
743+
}
744+
745+
void processMcGenTpcmftSE(McCollsTable::iterator const& mccollision, McTrksTable const& tracks, McMftTrksTable const& mfts)
746+
{
747+
processMcGenSame(mccollision, tracks, mfts);
748+
}
749+
750+
void processMcGenMftft0aSE(McCollsTable::iterator const& mccollision, McMftTrksTable const& mfts, McFt0aTrksTable const& ft0as)
751+
{
752+
processMcGenSame(mccollision, mfts, ft0as);
753+
}
754+
755+
void processMcGenFt0aft0cSE(McCollsTable::iterator const& mccollision, McFt0aTrksTable const& ft0as, McFt0cTrksTable const& ft0cs)
756+
{
757+
processMcGenSame(mccollision, ft0as, ft0cs);
758+
}
759+
760+
void processMcGenTpcft0aME(McCollsTable const& mccollisions, McTrksTable const& tracks, McFt0aTrksTable const& ft0as)
761+
{
762+
processMcGenMixed(mccollisions, tracks, ft0as);
763+
}
764+
765+
void processMcGenTpcft0cME(McCollsTable const& mccollisions, McTrksTable const& tracks, McFt0cTrksTable const& ft0cs)
766+
{
767+
processMcGenMixed(mccollisions, tracks, ft0cs);
768+
}
769+
770+
void processMcGenTpcmftME(McCollsTable const& mccollisions, McTrksTable const& tracks, McMftTrksTable const& mfts)
771+
{
772+
processMcGenMixed(mccollisions, tracks, mfts);
773+
}
774+
775+
void processMcGenMftft0aME(McCollsTable const& mccollisions, McMftTrksTable const& mfts, McFt0aTrksTable const& ft0as)
776+
{
777+
processMcGenMixed(mccollisions, mfts, ft0as);
778+
}
779+
780+
void processMcGenFt0aft0cME(McCollsTable const& mccollisions, McFt0aTrksTable const& ft0as, McFt0cTrksTable const& ft0cs)
781+
{
782+
processMcGenMixed(mccollisions, ft0as, ft0cs);
783+
}
784+
703785
PROCESS_SWITCH(LongrangecorrDerived, processTpcft0aSE, "same event TPC vs FT0A", false);
704786
PROCESS_SWITCH(LongrangecorrDerived, processTpcft0aME, "mixed event TPC vs FT0A", false);
705787
PROCESS_SWITCH(LongrangecorrDerived, processTpcft0cSE, "same event TPC vs FT0C", false);
@@ -736,6 +818,16 @@ struct LongrangecorrDerived {
736818
PROCESS_SWITCH(LongrangecorrDerived, processMcMftft0aME, "mixed MC event MFT vs FT0A", false);
737819
PROCESS_SWITCH(LongrangecorrDerived, processMcFt0aft0cSE, "same MC event FT0A vs FT0C", false);
738820
PROCESS_SWITCH(LongrangecorrDerived, processMcFt0aft0cME, "mixed MC event FT0A vs FT0C", false);
821+
PROCESS_SWITCH(LongrangecorrDerived, processMcGenTpcft0aSE, "same MC gen event TPC vs FT0A", false);
822+
PROCESS_SWITCH(LongrangecorrDerived, processMcGenTpcft0aME, "mixed MC gen event TPC vs FT0A", false);
823+
PROCESS_SWITCH(LongrangecorrDerived, processMcGenTpcft0cSE, "same MC gen event TPC vs FT0C", false);
824+
PROCESS_SWITCH(LongrangecorrDerived, processMcGenTpcft0cME, "mixed MC gen event TPC vs FT0C", false);
825+
PROCESS_SWITCH(LongrangecorrDerived, processMcGenTpcmftSE, "same MC gen event TPC vs MFT", false);
826+
PROCESS_SWITCH(LongrangecorrDerived, processMcGenTpcmftME, "mixed MC gen event TPC vs MFT", false);
827+
PROCESS_SWITCH(LongrangecorrDerived, processMcGenMftft0aSE, "same MC gen event MFT vs FT0A", false);
828+
PROCESS_SWITCH(LongrangecorrDerived, processMcGenMftft0aME, "mixed MC gen event MFT vs FT0A", false);
829+
PROCESS_SWITCH(LongrangecorrDerived, processMcGenFt0aft0cSE, "same MC gen event FT0A vs FT0C", false);
830+
PROCESS_SWITCH(LongrangecorrDerived, processMcGenFt0aft0cME, "mixed MC gen event FT0A vs FT0C", false);
739831
};
740832

741833
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)

0 commit comments

Comments
 (0)