Skip to content

Commit c8c9734

Browse files
committed
First commit for deltay - deltaphi correlations
1 parent 81b6a8f commit c8c9734

File tree

1 file changed

+210
-76
lines changed

1 file changed

+210
-76
lines changed

PWGLF/Tasks/Strangeness/phik0shortanalysis.cxx

Lines changed: 210 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -936,6 +936,20 @@ struct Phik0shortanalysis {
936936
return true;
937937
}
938938

939+
template <typename T>
940+
bool selectionPhi(const T& posTrack, const T& negTrack)
941+
{
942+
// To be possibly completed
943+
return !posTrack.empty() && !negTrack.empty();
944+
}
945+
946+
template <typename T1, typename T2>
947+
bool selectionPhiWPDG(const T1& posTrack, const T1& negTrack, const T2& mcParticles)
948+
{
949+
// To be possibly completed
950+
return !posTrack.empty() && !negTrack.empty();
951+
}
952+
939953
template <typename T1, typename T2>
940954
bool eventHasRecoPhi(const T1& posTracks, const T2& negTracks)
941955
{
@@ -1108,7 +1122,7 @@ struct Phik0shortanalysis {
11081122
}
11091123

11101124
template <typename T>
1111-
bool isGenParticleCharged(const T& mcParticle)
1125+
bool selectionChargedGenParticle(const T& mcParticle)
11121126
{
11131127
if (!mcParticle.isPhysicalPrimary() || std::abs(mcParticle.eta()) > trackConfigs.etaMax)
11141128
return false;
@@ -2709,7 +2723,7 @@ struct Phik0shortanalysis {
27092723

27102724
if (fillMcPartsForAllReco) {
27112725
for (const auto& mcParticle : mcParticlesThisMcColl) {
2712-
if (!isGenParticleCharged(mcParticle))
2726+
if (!selectionChargedGenParticle(mcParticle))
27132727
continue;
27142728

27152729
mcEventHist.fill(HIST("h6GenMCAllAssocRecoEtaDistribution"), collision.posZ(), mcCollision.centFT0M(), mcParticle.eta(), mcParticle.phi(), kSpAll, kNoGenpTVar);
@@ -2745,7 +2759,7 @@ struct Phik0shortanalysis {
27452759
}
27462760

27472761
for (const auto& mcParticle : mcParticlesThisMcColl) {
2748-
if (!isGenParticleCharged(mcParticle))
2762+
if (!selectionChargedGenParticle(mcParticle))
27492763
continue;
27502764

27512765
int pid = fromPDGToEnum(mcParticle.pdgCode());
@@ -3019,6 +3033,105 @@ struct Phik0shortanalysis {
30193033

30203034
PROCESS_SWITCH(Phik0shortanalysis, processPhiK0SPionMCClosure2D, "Process function for Phi-K0S and Phi-Pion Correlations in MCClosure2D", false);
30213035

3036+
void processPhiK0SMixingEvent2D(SelCollisions const& collisions, FullTracks const& fullTracks, FullV0s const& V0s, V0DauTracks const&)
3037+
{
3038+
auto tracksV0sTuple = std::make_tuple(fullTracks, V0s);
3039+
Pair<SelCollisions, FullTracks, FullV0s, BinningTypeVertexCent> pairPhiK0S{binningOnVertexAndCent, cfgNoMixedEvents, -1, collisions, tracksV0sTuple, &cache};
3040+
3041+
for (auto const& [collision1, tracks1, collision2, v0s2] : pairPhiK0S) {
3042+
float multiplicity = collision1.centFT0M();
3043+
3044+
Partition<FullTracks> posMixTracks = aod::track::signed1Pt > trackConfigs.cfgCutCharge;
3045+
posMixTracks.bindTable(tracks1);
3046+
Partition<FullTracks> negMixTracks = aod::track::signed1Pt < trackConfigs.cfgCutCharge;
3047+
negMixTracks.bindTable(tracks1);
3048+
3049+
for (const auto& [posTrack1, negTrack1, v0] : o2::soa::combinations(o2::soa::CombinationsFullIndexPolicy(posMixTracks, negMixTracks, v0s2))) {
3050+
if (!selectionTrackResonance<false>(posTrack1, true) || !selectionPIDKaonpTdependent(posTrack1))
3051+
continue;
3052+
if (!selectionTrackResonance<false>(negTrack1, true) || !selectionPIDKaonpTdependent(negTrack1))
3053+
continue;
3054+
if (posTrack1.globalIndex() == negTrack1.globalIndex())
3055+
continue;
3056+
3057+
ROOT::Math::PxPyPzMVector recPhi = recMother(posTrack1, negTrack1, massKa, massKa);
3058+
if (recPhi.Pt() < phiConfigs.minPhiPt)
3059+
continue;
3060+
if (std::abs(recPhi.Rapidity()) > deltaYConfigs.cfgYAcceptance)
3061+
continue;
3062+
3063+
const auto& posDaughterTrack = v0.posTrack_as<V0DauTracks>();
3064+
const auto& negDaughterTrack = v0.negTrack_as<V0DauTracks>();
3065+
3066+
if (!selectionV0(v0, posDaughterTrack, negDaughterTrack))
3067+
continue;
3068+
if (v0Configs.cfgFurtherV0Selection && !furtherSelectionV0(v0, collision2))
3069+
continue;
3070+
if (std::abs(v0.yK0Short()) > deltaYConfigs.cfgYAcceptance)
3071+
continue;
3072+
3073+
float efficiencyPhiK0S = 1.0f;
3074+
if (applyEfficiency) {
3075+
efficiencyPhiK0S = effMapPhi->Interpolate(multiplicity, recPhi.Pt(), recPhi.Rapidity()) * effMapK0S->Interpolate(multiplicity, v0.pt(), v0.yK0Short());
3076+
if (efficiencyPhiK0S == 0)
3077+
efficiencyPhiK0S = 1.0f;
3078+
}
3079+
float weightPhiK0S = applyEfficiency ? 1.0f / efficiencyPhiK0S : 1.0f;
3080+
mePhiK0SHist.fill(HIST("h5PhiK0SMENewProc"), v0.yK0Short() - recPhi.Rapidity(), multiplicity, v0.pt(), v0.mK0Short(), recPhi.M(), weightPhiK0S);
3081+
}
3082+
}
3083+
}
3084+
3085+
PROCESS_SWITCH(Phik0shortanalysis, processPhiK0SMixingEvent2D, "Process Mixed Event for Phi-K0S Analysis 2D", false);
3086+
3087+
void processPhiPionMixingEvent2D(SelCollisions const& collisions, FullTracks const& fullTracks)
3088+
{
3089+
auto tracksTuple = std::make_tuple(fullTracks);
3090+
SameKindPair<SelCollisions, FullTracks, BinningTypeVertexCent> pairPhiPion{binningOnVertexAndCent, cfgNoMixedEvents, -1, collisions, tracksTuple, &cache};
3091+
3092+
for (auto const& [collision1, tracks1, collision2, tracks2] : pairPhiPion) {
3093+
float multiplicity = collision1.centFT0M();
3094+
3095+
Partition<FullTracks> posMixTracks = aod::track::signed1Pt > trackConfigs.cfgCutCharge;
3096+
posMixTracks.bindTable(tracks1);
3097+
Partition<FullTracks> negMixTracks = aod::track::signed1Pt < trackConfigs.cfgCutCharge;
3098+
negMixTracks.bindTable(tracks1);
3099+
3100+
for (const auto& [posTrack1, negTrack1, track] : o2::soa::combinations(o2::soa::CombinationsFullIndexPolicy(posMixTracks, negMixTracks, tracks2))) {
3101+
if (!selectionTrackResonance<false>(posTrack1, true) || !selectionPIDKaonpTdependent(posTrack1))
3102+
continue;
3103+
if (!selectionTrackResonance<false>(negTrack1, true) || !selectionPIDKaonpTdependent(negTrack1))
3104+
continue;
3105+
if (posTrack1.globalIndex() == negTrack1.globalIndex())
3106+
continue;
3107+
3108+
ROOT::Math::PxPyPzMVector recPhi = recMother(posTrack1, negTrack1, massKa, massKa);
3109+
if (recPhi.Pt() < phiConfigs.minPhiPt)
3110+
continue;
3111+
if (std::abs(recPhi.Rapidity()) > deltaYConfigs.cfgYAcceptance)
3112+
continue;
3113+
3114+
if (!selectionPion<true, false>(track, false))
3115+
continue;
3116+
if (std::abs(track.rapidity(massPi)) > deltaYConfigs.cfgYAcceptance)
3117+
continue;
3118+
3119+
float efficiencyPhiPion = 1.0f;
3120+
if (applyEfficiency) {
3121+
efficiencyPhiPion = track.pt() < trackConfigs.pTToUseTOF ? effMapPhi->Interpolate(multiplicity, recPhi.Pt(), recPhi.Rapidity()) * effMapPionTPC->Interpolate(multiplicity, track.pt(), track.rapidity(massPi)) : effMapPhi->Interpolate(multiplicity, recPhi.Pt(), recPhi.Rapidity()) * effMapPionTPCTOF->Interpolate(multiplicity, track.pt(), track.rapidity(massPi));
3122+
if (efficiencyPhiPion == 0)
3123+
efficiencyPhiPion = 1.0f;
3124+
}
3125+
float weightPhiPion = applyEfficiency ? 1.0f / efficiencyPhiPion : 1.0f;
3126+
mePhiPionHist.fill(HIST("h5PhiPiTPCMENewProc"), track.rapidity(massPi) - recPhi.Rapidity(), multiplicity, track.pt(), track.tpcNSigmaPi(), recPhi.M(), weightPhiPion);
3127+
if (track.hasTOF())
3128+
mePhiPionHist.fill(HIST("h5PhiPiTOFMENewProc"), track.rapidity(massPi) - recPhi.Rapidity(), multiplicity, track.pt(), track.tofNSigmaPi(), recPhi.M(), weightPhiPion);
3129+
}
3130+
}
3131+
}
3132+
3133+
PROCESS_SWITCH(Phik0shortanalysis, processPhiPionMixingEvent2D, "Process Mixed Event for Phi-Pion Analysis 2D", false);
3134+
30223135
void processAllPartMC(MCCollisions const& mcCollisions, SimCollisions const& collisions, FullMCTracks const& fullMCTracks, FullMCV0s const& V0s, V0DauMCTracks const&, aod::McParticles const& mcParticles)
30233136
{
30243137

@@ -3253,104 +3366,125 @@ struct Phik0shortanalysis {
32533366

32543367
PROCESS_SWITCH(Phik0shortanalysis, processAllPartMC, "Process function for all particles (not for phi if triggered on it) in MC", false);
32553368

3256-
void processPhiK0SMixingEvent(SelCollisions const& collisions, FullTracks const& fullTracks, FullV0s const& V0s, V0DauTracks const&)
3369+
// New 2D analysis procedure
3370+
void processPhiK0SPionDeltayDeltaphiData2D(SelCollisions::iterator const& collision, FullTracks const& fullTracks, FullV0s const& V0s, V0DauTracks const&)
32573371
{
3258-
auto tracksV0sTuple = std::make_tuple(fullTracks, V0s);
3259-
Pair<SelCollisions, FullTracks, FullV0s, BinningTypeVertexCent> pairPhiK0S{binningOnVertexAndCent, cfgNoMixedEvents, -1, collisions, tracksV0sTuple, &cache};
3372+
// Check if the event selection is passed
3373+
if (!acceptEventQA<false>(collision, true))
3374+
return;
32603375

3261-
for (auto const& [collision1, tracks1, collision2, v0s2] : pairPhiK0S) {
3262-
float multiplicity = collision1.centFT0M();
3376+
float multiplicity = collision.centFT0M();
3377+
dataEventHist.fill(HIST("hMultiplicityPercent"), multiplicity);
32633378

3264-
Partition<FullTracks> posMixTracks = aod::track::signed1Pt > trackConfigs.cfgCutCharge;
3265-
posMixTracks.bindTable(tracks1);
3266-
Partition<FullTracks> negMixTracks = aod::track::signed1Pt < trackConfigs.cfgCutCharge;
3267-
negMixTracks.bindTable(tracks1);
3379+
// Defining positive and negative tracks for phi reconstruction
3380+
auto posThisColl = posTracks->sliceByCached(aod::track::collisionId, collision.globalIndex(), cache);
3381+
auto negThisColl = negTracks->sliceByCached(aod::track::collisionId, collision.globalIndex(), cache);
32683382

3269-
for (const auto& [posTrack1, negTrack1, v0] : o2::soa::combinations(o2::soa::CombinationsFullIndexPolicy(posMixTracks, negMixTracks, v0s2))) {
3270-
if (!selectionTrackResonance<false>(posTrack1, true) || !selectionPIDKaonpTdependent(posTrack1))
3271-
continue;
3272-
if (!selectionTrackResonance<false>(negTrack1, true) || !selectionPIDKaonpTdependent(negTrack1))
3273-
continue;
3274-
if (posTrack1.globalIndex() == negTrack1.globalIndex())
3275-
continue;
3383+
if (!eventHasRecoPhi(posThisColl, negThisColl))
3384+
return;
32763385

3277-
ROOT::Math::PxPyPzMVector recPhi = recMother(posTrack1, negTrack1, massKa, massKa);
3278-
if (recPhi.Pt() < phiConfigs.minPhiPt)
3279-
continue;
3280-
if (std::abs(recPhi.Rapidity()) > deltaYConfigs.cfgYAcceptance)
3281-
continue;
3386+
dataEventHist.fill(HIST("hEventSelection"), 4); // at least a Phi candidate in the event
32823387

3283-
const auto& posDaughterTrack = v0.posTrack_as<V0DauTracks>();
3284-
const auto& negDaughterTrack = v0.negTrack_as<V0DauTracks>();
3388+
bool isCountedPhi = false;
3389+
bool isFilledhV0 = false;
32853390

3286-
if (!selectionV0(v0, posDaughterTrack, negDaughterTrack))
3287-
continue;
3288-
if (v0Configs.cfgFurtherV0Selection && !furtherSelectionV0(v0, collision2))
3391+
// Loop over all positive tracks
3392+
for (const auto& track1 : posThisColl) {
3393+
if (!selectionTrackResonance<false>(track1, true) || !selectionPIDKaonpTdependent(track1))
3394+
continue; // topological and PID selection
3395+
3396+
dataPhiHist.fill(HIST("hEta"), track1.eta());
3397+
dataPhiHist.fill(HIST("hNsigmaKaonTPC"), track1.tpcInnerParam(), track1.tpcNSigmaKa());
3398+
dataPhiHist.fill(HIST("hNsigmaKaonTOF"), track1.tpcInnerParam(), track1.tofNSigmaKa());
3399+
3400+
auto track1ID = track1.globalIndex();
3401+
3402+
// Loop over all negative tracks
3403+
for (const auto& track2 : negThisColl) {
3404+
if (!selectionTrackResonance<false>(track2, true) || !selectionPIDKaonpTdependent(track2))
3405+
continue; // topological and PID selection
3406+
3407+
auto track2ID = track2.globalIndex();
3408+
if (track2ID == track1ID)
3409+
continue; // condition to avoid double counting of pair
3410+
3411+
ROOT::Math::PxPyPzMVector recPhi = recMother(track1, track2, massKa, massKa);
3412+
if (recPhi.Pt() < phiConfigs.minPhiPt || recPhi.Pt() > phiConfigs.maxPhiPt)
32893413
continue;
3290-
if (std::abs(v0.yK0Short()) > deltaYConfigs.cfgYAcceptance)
3414+
if (std::abs(recPhi.Rapidity()) > deltaYConfigs.cfgYAcceptance)
32913415
continue;
32923416

3293-
float efficiencyPhiK0S = 1.0f;
3417+
if (!isCountedPhi)
3418+
isCountedPhi = true;
3419+
3420+
float efficiencyPhi = 1.0f;
32943421
if (applyEfficiency) {
3295-
efficiencyPhiK0S = effMapPhi->Interpolate(multiplicity, recPhi.Pt(), recPhi.Rapidity()) * effMapK0S->Interpolate(multiplicity, v0.pt(), v0.yK0Short());
3296-
if (efficiencyPhiK0S == 0)
3297-
efficiencyPhiK0S = 1.0f;
3422+
efficiencyPhi = effMapPhi->Interpolate(multiplicity, recPhi.Pt(), recPhi.Rapidity());
3423+
if (efficiencyPhi == 0)
3424+
efficiencyPhi = 1.0f;
32983425
}
3299-
float weightPhiK0S = applyEfficiency ? 1.0f / efficiencyPhiK0S : 1.0f;
3300-
mePhiK0SHist.fill(HIST("h5PhiK0SMENewProc"), v0.yK0Short() - recPhi.Rapidity(), multiplicity, v0.pt(), v0.mK0Short(), recPhi.M(), weightPhiK0S);
3301-
}
3302-
}
3303-
}
3426+
float weightPhi = applyEfficiency ? 1.0f / efficiencyPhi : 1.0f;
3427+
dataPhiHist.fill(HIST("h3PhiDataNewProc"), multiplicity, recPhi.Pt(), recPhi.M(), weightPhi);
33043428

3305-
PROCESS_SWITCH(Phik0shortanalysis, processPhiK0SMixingEvent, "Process Mixed Event for Phi-K0S Analysis", false);
3429+
// V0 already reconstructed by the builder
3430+
for (const auto& v0 : V0s) {
3431+
const auto& posDaughterTrack = v0.posTrack_as<V0DauTracks>();
3432+
const auto& negDaughterTrack = v0.negTrack_as<V0DauTracks>();
33063433

3307-
void processPhiPionMixingEvent(SelCollisions const& collisions, FullTracks const& fullTracks)
3308-
{
3309-
auto tracksTuple = std::make_tuple(fullTracks);
3310-
SameKindPair<SelCollisions, FullTracks, BinningTypeVertexCent> pairPhiPion{binningOnVertexAndCent, cfgNoMixedEvents, -1, collisions, tracksTuple, &cache};
3434+
// Cut on V0 dynamic columns
3435+
if (!selectionV0(v0, posDaughterTrack, negDaughterTrack))
3436+
continue;
3437+
if (v0Configs.cfgFurtherV0Selection && !furtherSelectionV0(v0, collision))
3438+
continue;
33113439

3312-
for (auto const& [collision1, tracks1, collision2, tracks2] : pairPhiPion) {
3313-
float multiplicity = collision1.centFT0M();
3440+
if (!isFilledhV0) {
3441+
dataK0SHist.fill(HIST("hDCAV0Daughters"), v0.dcaV0daughters());
3442+
dataK0SHist.fill(HIST("hV0CosPA"), v0.v0cosPA());
33143443

3315-
Partition<FullTracks> posMixTracks = aod::track::signed1Pt > trackConfigs.cfgCutCharge;
3316-
posMixTracks.bindTable(tracks1);
3317-
Partition<FullTracks> negMixTracks = aod::track::signed1Pt < trackConfigs.cfgCutCharge;
3318-
negMixTracks.bindTable(tracks1);
3444+
// Filling the PID of the V0 daughters in the region of the K0 peak
3445+
if (v0Configs.lowMK0S < v0.mK0Short() && v0.mK0Short() < v0Configs.upMK0S) {
3446+
dataK0SHist.fill(HIST("hNSigmaPosPionFromK0S"), posDaughterTrack.tpcInnerParam(), posDaughterTrack.tpcNSigmaPi());
3447+
dataK0SHist.fill(HIST("hNSigmaNegPionFromK0S"), negDaughterTrack.tpcInnerParam(), negDaughterTrack.tpcNSigmaPi());
3448+
}
3449+
}
33193450

3320-
for (const auto& [posTrack1, negTrack1, track] : o2::soa::combinations(o2::soa::CombinationsFullIndexPolicy(posMixTracks, negMixTracks, tracks2))) {
3321-
if (!selectionTrackResonance<false>(posTrack1, true) || !selectionPIDKaonpTdependent(posTrack1))
3322-
continue;
3323-
if (!selectionTrackResonance<false>(negTrack1, true) || !selectionPIDKaonpTdependent(negTrack1))
3324-
continue;
3325-
if (posTrack1.globalIndex() == negTrack1.globalIndex())
3326-
continue;
3451+
if (std::abs(v0.yK0Short()) > deltaYConfigs.cfgYAcceptance)
3452+
continue;
33273453

3328-
ROOT::Math::PxPyPzMVector recPhi = recMother(posTrack1, negTrack1, massKa, massKa);
3329-
if (recPhi.Pt() < phiConfigs.minPhiPt)
3330-
continue;
3331-
if (std::abs(recPhi.Rapidity()) > deltaYConfigs.cfgYAcceptance)
3332-
continue;
3454+
float efficiencyPhiK0S = 1.0f;
3455+
if (applyEfficiency) {
3456+
efficiencyPhiK0S = effMapPhi->Interpolate(multiplicity, recPhi.Pt(), recPhi.Rapidity()) * effMapK0S->Interpolate(multiplicity, v0.pt(), v0.yK0Short());
3457+
if (efficiencyPhiK0S == 0)
3458+
efficiencyPhiK0S = 1.0f;
3459+
}
3460+
float weightPhiK0S = applyEfficiency ? 1.0f / efficiencyPhiK0S : 1.0f;
3461+
dataPhiK0SHist.fill(HIST("h5PhiK0SData2PartCorr"), multiplicity, recPhi.Pt(), v0.pt(), recPhi.Rapidity() - v0.yK0Short(), recPhi.Phi() - v0.phi(), weightPhiK0S);
3462+
}
33333463

3334-
if (!selectionPion<true, false>(track, false))
3335-
continue;
3336-
if (std::abs(track.rapidity(massPi)) > deltaYConfigs.cfgYAcceptance)
3337-
continue;
3464+
isFilledhV0 = true;
33383465

3339-
float efficiencyPhiPion = 1.0f;
3340-
if (applyEfficiency) {
3341-
efficiencyPhiPion = track.pt() < trackConfigs.pTToUseTOF ? effMapPhi->Interpolate(multiplicity, recPhi.Pt(), recPhi.Rapidity()) * effMapPionTPC->Interpolate(multiplicity, track.pt(), track.rapidity(massPi)) : effMapPhi->Interpolate(multiplicity, recPhi.Pt(), recPhi.Rapidity()) * effMapPionTPCTOF->Interpolate(multiplicity, track.pt(), track.rapidity(massPi));
3342-
if (efficiencyPhiPion == 0)
3343-
efficiencyPhiPion = 1.0f;
3466+
// Loop over all primary pion candidates
3467+
for (const auto& track : fullTracks) {
3468+
if (!selectionPion<true, false>(track, false))
3469+
continue;
3470+
3471+
if (std::abs(track.rapidity(massPi)) > deltaYConfigs.cfgYAcceptance)
3472+
continue;
3473+
3474+
float efficiencyPhiPion = 1.0f;
3475+
if (applyEfficiency) {
3476+
efficiencyPhiPion = track.pt() < trackConfigs.pTToUseTOF ? effMapPhi->Interpolate(multiplicity, recPhi.Pt(), recPhi.Rapidity()) * effMapPionTPC->Interpolate(multiplicity, track.pt(), track.rapidity(massPi)) : effMapPhi->Interpolate(multiplicity, recPhi.Pt(), recPhi.Rapidity()) * effMapPionTPCTOF->Interpolate(multiplicity, track.pt(), track.rapidity(massPi));
3477+
if (efficiencyPhiPion == 0)
3478+
efficiencyPhiPion = 1.0f;
3479+
}
3480+
float weightPhiPion = applyEfficiency ? 1.0f / efficiencyPhiPion : 1.0f;
3481+
dataPhiPionHist.fill(HIST("h5PhiPiData2PartCorr"), multiplicity, recPhi.Pt(), track.pt(), recPhi.Rapidity() - track.rapidity(massPi), recPhi.Phi() - track.phi(), weightPhiPion);
33443482
}
3345-
float weightPhiPion = applyEfficiency ? 1.0f / efficiencyPhiPion : 1.0f;
3346-
mePhiPionHist.fill(HIST("h5PhiPiTPCMENewProc"), track.rapidity(massPi) - recPhi.Rapidity(), multiplicity, track.pt(), track.tpcNSigmaPi(), recPhi.M(), weightPhiPion);
3347-
if (track.hasTOF())
3348-
mePhiPionHist.fill(HIST("h5PhiPiTOFMENewProc"), track.rapidity(massPi) - recPhi.Rapidity(), multiplicity, track.pt(), track.tofNSigmaPi(), recPhi.M(), weightPhiPion);
33493483
}
33503484
}
33513485
}
33523486

3353-
PROCESS_SWITCH(Phik0shortanalysis, processPhiPionMixingEvent, "Process Mixed Event for Phi-Pion Analysis", false);
3487+
PROCESS_SWITCH(Phik0shortanalysis, processPhiK0SPionDeltayDeltaphiData2D, "Process function for Phi-K0S and Phi-Pion Deltay and Deltaphi 2D Correlations in Data", false);
33543488
};
33553489

33563490
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)

0 commit comments

Comments
 (0)