From 14842329149b793ce011242faed33e36541712e3 Mon Sep 17 00:00:00 2001 From: wuctlby Date: Tue, 17 Jun 2025 15:30:12 +0200 Subject: [PATCH 1/7] recover the pr --- .../GeneratorHF_D2H_ccbar_and_bbbar_gap5_Mode2_pp_ref.ini | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 MC/config/PWGHF/ini/GeneratorHF_D2H_ccbar_and_bbbar_gap5_Mode2_pp_ref.ini diff --git a/MC/config/PWGHF/ini/GeneratorHF_D2H_ccbar_and_bbbar_gap5_Mode2_pp_ref.ini b/MC/config/PWGHF/ini/GeneratorHF_D2H_ccbar_and_bbbar_gap5_Mode2_pp_ref.ini new file mode 100644 index 000000000..1d0d23364 --- /dev/null +++ b/MC/config/PWGHF/ini/GeneratorHF_D2H_ccbar_and_bbbar_gap5_Mode2_pp_ref.ini @@ -0,0 +1,8 @@ +### The external generator derives from GeneratorPythia8. +[GeneratorExternal] +fileName=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGHF/external/generator/generator_pythia8_gaptriggered_hf.C +funcName=GeneratorPythia8GapTriggeredCharmAndBeauty(5, -1.5, 1.5) + +[GeneratorPythia8] +config=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGHF/pythia8/generator/pythia8_charmhadronic_with_decays_Mode2_pp_ref.cfg +includePartonEvent=true From 74c9a01ef75dd99139ebb9d194cb0198f943024f Mon Sep 17 00:00:00 2001 From: wuctlby Date: Sat, 21 Jun 2025 17:19:08 +0200 Subject: [PATCH 2/7] add .c test marco for pp reference and update the corresponding marcos for PbPb and pp --- .../GeneratorHF_D2H_ccbar_and_bbbar_PbPb.C | 69 ++++++- ...neratorHF_D2H_ccbar_and_bbbar_gap5_Mode2.C | 75 ++++++- ...HF_D2H_ccbar_and_bbbar_gap5_Mode2_pp_ref.C | 189 ++++++++++++++++++ 3 files changed, 319 insertions(+), 14 deletions(-) create mode 100644 MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_gap5_Mode2_pp_ref.C diff --git a/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_PbPb.C b/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_PbPb.C index 497b80acd..5b7e32708 100644 --- a/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_PbPb.C +++ b/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_PbPb.C @@ -8,13 +8,68 @@ int External() { std::vector checkPdgHadron{411, 421, 431, 4122, 4132, 4232, 4332}; std::map>> checkHadronDecays{ // sorted pdg of daughters - {411, {{-321, 211, 211}, {-313, 211}, {211, 311}, {211, 333}}}, // D+ - {421, {{-321, 211}, {-321, 111, 211}}}, // D0 - {431, {{211, 333}, {-313, 321}}}, // Ds+ - {4122, {{-313, 2212}, {-321, 2224}, {211, 102134}, {-321, 211, 2212}, {311, 2212}}}, // Lc+ - {4132, {{211, 3312}}}, // Xic0 - {4232, {{-313, 2212}, {-321, 3324}, {211, 211, 3312}, {-321, 211, 2212}}}, // Xic+ - {4332, {{211, 3334}}} // Omegac+ + {411, { + {-321, 211, 211}, // K- π+ π+ (non-resonant) + {-10311, 211}, // antiK*0(1430) π+ + {-313, 211}, // K*0(892) π+ + {-321, 211, 211, 111}, // K- π+ π+ π0 + {333, 211}, // φ π+ (needed for signal) + {-313, 321}, // K*0(892) K+ + {-10311, 321}, // K*0(1430) K+ + {-321, 321, 211}, // K- K+ π+ (non-resonant) + {113, 211}, // ρ0 π+ + {225, 211}, // f2(1270) π+ + {-211, 211, 211} // π- π+ π+ (non-resonant) + }}, + {421, { + {-321, 211}, // K- π+ (non-resonant) + {-321, 111, 211}, // K- π+ π0 + {213, -321}, // ρ+ K- + {-313, 111}, // antiK*0(892) π0 + {-323, 211}, // K*-(892) π+ + {-211, 211}, // π- π+ + {213, -211}, // ρ+ π- + {-211, 211, 111}, // π- π+ π0 + {-321, 321} // K- K+ + }}, + {431, { + {211, 333}, // φ π+ + {-313, 321}, // antiK*(892) K+ + {333, 213}, // φ ρ + {113, 211}, // ρ π+ + {225, 211}, // f2(1270) π+ + {-211, 211, 211}, // π- π+ π+ (s-wave) + {313, 211}, // K*(892)0 π+ + {10221, 321}, // f0(1370) K+ + {113, 321}, // ρ0 K+ + {-211, 321, 211}, // π- K+ π+ (non-resonant) + {221, 211} // η π+ + }}, + {4122, { + {2212, -321, 211}, // p K- π+ (non-resonant) + {2212, -313}, // p K*0(892) + {2224, -321}, // Δ++ K- + {102134, 211}, // Λ(1520) K- + {2212, 311}, // p K0S + {2212, -321, 211, 111}, // p K- π+ π0 + {2212, -211, 211}, // p π- π+ + {2212, 333} // p φ + }}, + {4232, { + {2122, -321, 211}, // p K- π+ + {2212, -313}, // p K*0(892) + {3312, 211, 211}, // Ξ- π+ π+ + {2212, 333}, // p φ + {3222, -211, 211} // Σ+ π- π+ + {3324, 211} // Ξ*0 π+ + }}, + {4132, { + {3312, 211} // Xic0 -> Xi- π+ + }}, + {4332, { + {3334, 211}, // Omegac+ -> Omega- π+ + {3312, 211} // Omegac+ -> Xi- π+ + }} }; TFile file(path.c_str(), "READ"); diff --git a/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_gap5_Mode2.C b/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_gap5_Mode2.C index e5c0bf08d..81dd4c500 100644 --- a/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_gap5_Mode2.C +++ b/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_gap5_Mode2.C @@ -7,13 +7,74 @@ int External() { std::vector checkPdgHadron{411, 421, 431, 4122, 4132, 4232, 4332}; std::map>> checkHadronDecays{ // sorted pdg of daughters - {411, {{-321, 211, 211}, {-313, 211}, {211, 311}, {211, 333}}}, // D+ - {421, {{-321, 211}, {-321, 111, 211}}}, // D0 - {431, {{211, 333}, {-313, 321}}}, // Ds+ - {4122, {{-313, 2212}, {-321, 2224}, {211, 102134}, {-321, 211, 2212}, {311, 2212}}}, // Lc+ - {4132, {{211, 3312}}}, // Xic0 - {4232, {{-313, 2212}, {-321, 3324}, {211, 211, 3312}, {-321, 211, 2212}}}, // Xic+ - {4332, {{211, 3334}}} // Omegac+ + {421, { + {-321, 211}, // D0 -> K-, pi+ + {-321, 211, 111}, // D0 -> K-, pi+, pi0 + {213, -321}, // D0 -> rho(770)+, K- + {-313, 111}, // D0 -> Kbar^*(892)0, pi0 + {-323, 211}, // D0 -> K^*(892)-, pi+ + {-211, 211}, // D0 -> pi-, pi+ + {213, -211}, // D0 -> rho(770)+, pi- + {-211, 211, 111}, // D0 -> pi-, pi+, pi0 + {-321, 321}, // D0 -> K-, K+ + }}, + + {411, { + {-321, 211, 211}, // D+ -> K-, pi+, pi+ + {-10311, 211}, // D+ -> Kbar0^*(1430)0, pi+ + {-313, 211}, // D+ -> Kbar^*(892)0, pi+ + {-321, 211, 211, 111}, // D+ -> K-, pi+, pi+, pi0 + {333, 211}, // D+ -> phi(1020)0, pi+ + {-313, 321}, // D+ -> Kbar^*(892)0, K+ + {-10311, 321}, // D+ -> Kbar0^*(1430)0, K+ + {-321, 321, 211}, // D+ -> K-, K+, pi+ + {113, 211}, // D+ -> rho(770)0, pi+ + {225, 211}, // D+ -> f2(1270)0, pi+ + {-211, 211, 211}, // D+ -> pi-, pi+, pi+ + }}, + + {431, { + {333, 211}, // Ds+ -> phi(1020)0, pi+ + {-313, 321}, // Ds+ -> Kbar^*(892)0, K+ + {333, 213}, // Ds+ -> phi(1020)0, rho(770)+ + {113, 211}, // Ds+ -> rho(770)0, pi+ + {225, 211}, // Ds+ -> f2(1270)0, pi+ + {-211, 211, 211}, // Ds+ -> pi-, pi+, pi+ + {313, 211}, // Ds+ -> K^*(892)0, pi+ + {10221, 321}, // Ds+ -> f0(1370)0, K+ + {113, 321}, // Ds+ -> rho(770)0, K+ + {-211, 321, 211}, // Ds+ -> pi-, K+, pi+ + {221, 211}, // Ds+ -> eta, pi+ + }}, + + {4122, { + {2212, -321, 211}, // Lambdac+ -> p, K-, pi+ + {2212, -313}, // Lambdac+ -> p, Kbar^*(892)0 + {2224, -321}, // Lambdac+ -> Delta(1232)++, K- + {102134, 211}, // Lambdac+ -> 102134, pi+ + {2212, 311}, // Lambdac+ -> p, K0 + {2212, -321, 211, 111}, // Lambdac+ -> p, K-, pi+, pi0 + {2212, -211, 211}, // Lambdac+ -> p, pi-, pi+ + {2212, 333}, // Lambdac+ -> p, phi(1020)0 + }}, + + {4232, { + {2212, -321, 211}, // Xic+ -> p, K-, pi+ + {2212, -313}, // Xic+ -> p, Kbar^*(892)0 + {3312, 211, 211}, // Xic+ -> Xi-, pi+, pi+ + {2212, 333}, // Xic+ -> p, phi(1020)0 + {3222, -211, 211}, // Xic+ -> Sigma+, pi-, pi+ + {3324, 211}, // Xic+ -> Xi(1530)0, pi+ + }}, + + {4132, { + {3312, 211}, // Xic0 -> Xi-, pi+ + }}, + + {4332, { + {3334, 211}, // Omegac0 -> Omega-, pi+ + {3312, 211}, // Omegac0 -> Xi-, pi+ + }}, }; TFile file(path.c_str(), "READ"); diff --git a/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_gap5_Mode2_pp_ref.C b/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_gap5_Mode2_pp_ref.C new file mode 100644 index 000000000..0ec3f2818 --- /dev/null +++ b/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_gap5_Mode2_pp_ref.C @@ -0,0 +1,189 @@ +int External() { + std::string path{"/home/wuct/ALICE/mc_production/test/standard/ppref/test/tf1/sgn_Kine.root"}; + + int checkPdgQuarkOne{4}; + int checkPdgQuarkTwo{5}; + float ratioTrigger = 1./5; // one event triggered out of 5 + + std::vector checkPdgHadron{411, 421, 431, 4122, 4132, 4232, 4332}; + std::map>> checkHadronDecays{ // sorted pdg of daughters + {421, { + {-321, 211}, // D0 -> K-, pi+ + {-321, 211, 111}, // D0 -> K-, pi+, pi0 + {213, -321}, // D0 -> rho(770)+, K- + {-313, 111}, // D0 -> Kbar^*(892)0, pi0 + {-323, 211}, // D0 -> K^*(892)-, pi+ + {-211, 211}, // D0 -> pi-, pi+ + {213, -211}, // D0 -> rho(770)+, pi- + {-211, 211, 111}, // D0 -> pi-, pi+, pi0 + {-321, 321}, // D0 -> K-, K+ + }}, + + {411, { + {-321, 211, 211}, // D+ -> K-, pi+, pi+ + {-10311, 211}, // D+ -> Kbar0^*(1430)0, pi+ + {-313, 211}, // D+ -> Kbar^*(892)0, pi+ + {-321, 211, 211, 111}, // D+ -> K-, pi+, pi+, pi0 + {333, 211}, // D+ -> phi(1020)0, pi+ + {-313, 321}, // D+ -> Kbar^*(892)0, K+ + {-10311, 321}, // D+ -> Kbar0^*(1430)0, K+ + {-321, 321, 211}, // D+ -> K-, K+, pi+ + {113, 211}, // D+ -> rho(770)0, pi+ + {225, 211}, // D+ -> f2(1270)0, pi+ + {-211, 211, 211}, // D+ -> pi-, pi+, pi+ + }}, + + {431, { + {333, 211}, // Ds+ -> phi(1020)0, pi+ + {-313, 321}, // Ds+ -> Kbar^*(892)0, K+ + {333, 213}, // Ds+ -> phi(1020)0, rho(770)+ + {113, 211}, // Ds+ -> rho(770)0, pi+ + {225, 211}, // Ds+ -> f2(1270)0, pi+ + {-211, 211, 211}, // Ds+ -> pi-, pi+, pi+ + {313, 211}, // Ds+ -> K^*(892)0, pi+ + {10221, 321}, // Ds+ -> f0(1370)0, K+ + {113, 321}, // Ds+ -> rho(770)0, K+ + {-211, 321, 211}, // Ds+ -> pi-, K+, pi+ + {221, 211}, // Ds+ -> eta, pi+ + }}, + + {4122, { + {2212, -321, 211}, // Lambdac+ -> p, K-, pi+ + {2212, -313}, // Lambdac+ -> p, Kbar^*(892)0 + {2224, -321}, // Lambdac+ -> Delta(1232)++, K- + {102134, 211}, // Lambdac+ -> 102134, pi+ + {2212, 311}, // Lambdac+ -> p, K0 + {2212, -321, 211, 111}, // Lambdac+ -> p, K-, pi+, pi0 + {2212, -211, 211}, // Lambdac+ -> p, pi-, pi+ + {2212, 333}, // Lambdac+ -> p, phi(1020)0 + }}, + + {4232, { + {2212, -321, 211}, // Xic+ -> p, K-, pi+ + {2212, -313}, // Xic+ -> p, Kbar^*(892)0 + {3312, 211, 211}, // Xic+ -> Xi-, pi+, pi+ + {2212, 333}, // Xic+ -> p, phi(1020)0 + {3222, -211, 211}, // Xic+ -> Sigma+, pi-, pi+ + {3324, 211}, // Xic+ -> Xi(1530)0, pi+ + }}, + + {4132, { + {3312, 211}, // Xic0 -> Xi-, pi+ + }}, + + {4332, { + {3334, 211}, // Omegac0 -> Omega-, pi+ + {3312, 211}, // Omegac0 -> Xi-, pi+ + }}, + }; + + TFile file(path.c_str(), "READ"); + if (file.IsZombie()) { + std::cerr << "Cannot open ROOT file " << path << "\n"; + return 1; + } + + auto tree = (TTree *)file.Get("o2sim"); + std::vector *tracks{}; + tree->SetBranchAddress("MCTrack", &tracks); + o2::dataformats::MCEventHeader *eventHeader = nullptr; + tree->SetBranchAddress("MCEventHeader.", &eventHeader); + + int nEventsMB{}, nEventsInjOne{}, nEventsInjTwo{}; + int nQuarksOne{}, nQuarksTwo{}, nSignals{}, nSignalGoodDecay{}; + auto nEvents = tree->GetEntries(); + + for (int i = 0; i < nEvents; i++) { + tree->GetEntry(i); + + // check subgenerator information + if (eventHeader->hasInfo(o2::mcgenid::GeneratorProperty::SUBGENERATORID)) { + bool isValid = false; + int subGeneratorId = eventHeader->getInfo(o2::mcgenid::GeneratorProperty::SUBGENERATORID, isValid); + if (subGeneratorId == 0) { + nEventsMB++; + } else if (subGeneratorId == checkPdgQuarkOne) { + nEventsInjOne++; + } else if (subGeneratorId == checkPdgQuarkTwo) { + nEventsInjTwo++; + } + } + + for (auto &track : *tracks) { + auto pdg = track.GetPdgCode(); + if (std::abs(pdg) == checkPdgQuarkOne) { + nQuarksOne++; + continue; + } + if (std::abs(pdg) == checkPdgQuarkTwo) { + nQuarksTwo++; + continue; + } + if (std::find(checkPdgHadron.begin(), checkPdgHadron.end(), std::abs(pdg)) != checkPdgHadron.end()) { // found signal + nSignals++; // count signal PDG + + std::vector pdgsDecay{}; + std::vector pdgsDecayAntiPart{}; + for (int j{track.getFirstDaughterTrackId()}; j <= track.getLastDaughterTrackId(); ++j) { + auto pdgDau = tracks->at(j).GetPdgCode(); + pdgsDecay.push_back(pdgDau); + if (pdgDau != 333) { // phi is antiparticle of itself + pdgsDecayAntiPart.push_back(-pdgDau); + } else { + pdgsDecayAntiPart.push_back(pdgDau); + } + } + + std::sort(pdgsDecay.begin(), pdgsDecay.end()); + std::sort(pdgsDecayAntiPart.begin(), pdgsDecayAntiPart.end()); + + for (auto &decay : checkHadronDecays[std::abs(pdg)]) { + if (pdgsDecay == decay || pdgsDecayAntiPart == decay) { + nSignalGoodDecay++; + break; + } + } + } + } + } + + std::cout << "--------------------------------\n"; + std::cout << "# Events: " << nEvents << "\n"; + std::cout << "# MB events: " << nEventsMB << "\n"; + std::cout << Form("# events injected with %d quark pair: ", checkPdgQuarkOne) << nEventsInjOne << "\n"; + std::cout << Form("# events injected with %d quark pair: ", checkPdgQuarkTwo) << nEventsInjTwo << "\n"; + std::cout << Form("# %d (anti)quarks: ", checkPdgQuarkOne) << nQuarksOne << "\n"; + std::cout << Form("# %d (anti)quarks: ", checkPdgQuarkTwo) << nQuarksTwo << "\n"; + std::cout <<"# signal hadrons: " << nSignals << "\n"; + std::cout <<"# signal hadrons decaying in the correct channel: " << nSignalGoodDecay << "\n"; + + if (nEventsMB < nEvents * (1 - ratioTrigger) * 0.95 || nEventsMB > nEvents * (1 - ratioTrigger) * 1.05) { // we put some tolerance since the number of generated events is small + std::cerr << "Number of generated MB events different than expected\n"; + return 1; + } + if (nEventsInjOne < nEvents * ratioTrigger * 0.5 * 0.95 || nEventsInjOne > nEvents * ratioTrigger * 0.5 * 1.05) { + std::cerr << "Number of generated events injected with " << checkPdgQuarkOne << " different than expected\n"; + return 1; + } + if (nEventsInjTwo < nEvents * ratioTrigger * 0.5 * 0.95 || nEventsInjTwo > nEvents * ratioTrigger * 0.5 * 1.05) { + std::cerr << "Number of generated events injected with " << checkPdgQuarkTwo << " different than expected\n"; + return 1; + } + + if (nQuarksOne < nEvents * ratioTrigger) { // we expect anyway more because the same quark is repeated several time, after each gluon radiation + std::cerr << "Number of generated (anti)quarks " << checkPdgQuarkOne << " lower than expected\n"; + return 1; + } + if (nQuarksTwo < nEvents * ratioTrigger) { // we expect anyway more because the same quark is repeated several time, after each gluon radiation + std::cerr << "Number of generated (anti)quarks " << checkPdgQuarkTwo << " lower than expected\n"; + return 1; + } + + float fracForcedDecays = float(nSignalGoodDecay) / nSignals; + if (fracForcedDecays < 0.9) { // we put some tolerance (e.g. due to oscillations which might change the final state) + std::cerr << "Fraction of signals decaying into the correct channel " << fracForcedDecays << " lower than expected\n"; + return 1; + } + + return 0; +} From 41fd1047991ffd9625ef7d283e7e3d99a754b84e Mon Sep 17 00:00:00 2001 From: wuctlby Date: Sat, 21 Jun 2025 17:21:52 +0200 Subject: [PATCH 3/7] recover the path variable and update the comments of checkHadronDecays --- .../GeneratorHF_D2H_ccbar_and_bbbar_PbPb.C | 128 +++++++++--------- ...HF_D2H_ccbar_and_bbbar_gap5_Mode2_pp_ref.C | 2 +- 2 files changed, 68 insertions(+), 62 deletions(-) diff --git a/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_PbPb.C b/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_PbPb.C index 5b7e32708..55d435400 100644 --- a/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_PbPb.C +++ b/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_PbPb.C @@ -8,68 +8,74 @@ int External() { std::vector checkPdgHadron{411, 421, 431, 4122, 4132, 4232, 4332}; std::map>> checkHadronDecays{ // sorted pdg of daughters - {411, { - {-321, 211, 211}, // K- π+ π+ (non-resonant) - {-10311, 211}, // antiK*0(1430) π+ - {-313, 211}, // K*0(892) π+ - {-321, 211, 211, 111}, // K- π+ π+ π0 - {333, 211}, // φ π+ (needed for signal) - {-313, 321}, // K*0(892) K+ - {-10311, 321}, // K*0(1430) K+ - {-321, 321, 211}, // K- K+ π+ (non-resonant) - {113, 211}, // ρ0 π+ - {225, 211}, // f2(1270) π+ - {-211, 211, 211} // π- π+ π+ (non-resonant) - }}, {421, { - {-321, 211}, // K- π+ (non-resonant) - {-321, 111, 211}, // K- π+ π0 - {213, -321}, // ρ+ K- - {-313, 111}, // antiK*0(892) π0 - {-323, 211}, // K*-(892) π+ - {-211, 211}, // π- π+ - {213, -211}, // ρ+ π- - {-211, 211, 111}, // π- π+ π0 - {-321, 321} // K- K+ - }}, - {431, { - {211, 333}, // φ π+ - {-313, 321}, // antiK*(892) K+ - {333, 213}, // φ ρ - {113, 211}, // ρ π+ - {225, 211}, // f2(1270) π+ - {-211, 211, 211}, // π- π+ π+ (s-wave) - {313, 211}, // K*(892)0 π+ - {10221, 321}, // f0(1370) K+ - {113, 321}, // ρ0 K+ - {-211, 321, 211}, // π- K+ π+ (non-resonant) - {221, 211} // η π+ - }}, - {4122, { - {2212, -321, 211}, // p K- π+ (non-resonant) - {2212, -313}, // p K*0(892) - {2224, -321}, // Δ++ K- - {102134, 211}, // Λ(1520) K- - {2212, 311}, // p K0S - {2212, -321, 211, 111}, // p K- π+ π0 - {2212, -211, 211}, // p π- π+ - {2212, 333} // p φ - }}, - {4232, { - {2122, -321, 211}, // p K- π+ - {2212, -313}, // p K*0(892) - {3312, 211, 211}, // Ξ- π+ π+ - {2212, 333}, // p φ - {3222, -211, 211} // Σ+ π- π+ - {3324, 211} // Ξ*0 π+ - }}, - {4132, { - {3312, 211} // Xic0 -> Xi- π+ - }}, - {4332, { - {3334, 211}, // Omegac+ -> Omega- π+ - {3312, 211} // Omegac+ -> Xi- π+ - }} + {-321, 211}, // D0 -> K-, pi+ + {-321, 211, 111}, // D0 -> K-, pi+, pi0 + {213, -321}, // D0 -> rho(770)+, K- + {-313, 111}, // D0 -> Kbar^*(892)0, pi0 + {-323, 211}, // D0 -> K^*(892)-, pi+ + {-211, 211}, // D0 -> pi-, pi+ + {213, -211}, // D0 -> rho(770)+, pi- + {-211, 211, 111}, // D0 -> pi-, pi+, pi0 + {-321, 321}, // D0 -> K-, K+ + }}, + + {411, { + {-321, 211, 211}, // D+ -> K-, pi+, pi+ + {-10311, 211}, // D+ -> Kbar0^*(1430)0, pi+ + {-313, 211}, // D+ -> Kbar^*(892)0, pi+ + {-321, 211, 211, 111}, // D+ -> K-, pi+, pi+, pi0 + {333, 211}, // D+ -> phi(1020)0, pi+ + {-313, 321}, // D+ -> Kbar^*(892)0, K+ + {-10311, 321}, // D+ -> Kbar0^*(1430)0, K+ + {-321, 321, 211}, // D+ -> K-, K+, pi+ + {113, 211}, // D+ -> rho(770)0, pi+ + {225, 211}, // D+ -> f2(1270)0, pi+ + {-211, 211, 211}, // D+ -> pi-, pi+, pi+ + }}, + + {431, { + {333, 211}, // Ds+ -> phi(1020)0, pi+ + {-313, 321}, // Ds+ -> Kbar^*(892)0, K+ + {333, 213}, // Ds+ -> phi(1020)0, rho(770)+ + {113, 211}, // Ds+ -> rho(770)0, pi+ + {225, 211}, // Ds+ -> f2(1270)0, pi+ + {-211, 211, 211}, // Ds+ -> pi-, pi+, pi+ + {313, 211}, // Ds+ -> K^*(892)0, pi+ + {10221, 321}, // Ds+ -> f0(1370)0, K+ + {113, 321}, // Ds+ -> rho(770)0, K+ + {-211, 321, 211}, // Ds+ -> pi-, K+, pi+ + {221, 211}, // Ds+ -> eta, pi+ + }}, + + {4122, { + {2212, -321, 211}, // Lambdac+ -> p, K-, pi+ + {2212, -313}, // Lambdac+ -> p, Kbar^*(892)0 + {2224, -321}, // Lambdac+ -> Delta(1232)++, K- + {102134, 211}, // Lambdac+ -> 102134, pi+ + {2212, 311}, // Lambdac+ -> p, K0 + {2212, -321, 211, 111}, // Lambdac+ -> p, K-, pi+, pi0 + {2212, -211, 211}, // Lambdac+ -> p, pi-, pi+ + {2212, 333}, // Lambdac+ -> p, phi(1020)0 + }}, + + {4232, { + {2212, -321, 211}, // Xic+ -> p, K-, pi+ + {2212, -313}, // Xic+ -> p, Kbar^*(892)0 + {3312, 211, 211}, // Xic+ -> Xi-, pi+, pi+ + {2212, 333}, // Xic+ -> p, phi(1020)0 + {3222, -211, 211}, // Xic+ -> Sigma+, pi-, pi+ + {3324, 211}, // Xic+ -> Xi(1530)0, pi+ + }}, + + {4132, { + {3312, 211}, // Xic0 -> Xi-, pi+ + }}, + + {4332, { + {3334, 211}, // Omegac0 -> Omega-, pi+ + {3312, 211}, // Omegac0 -> Xi-, pi+ + }}, }; TFile file(path.c_str(), "READ"); diff --git a/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_gap5_Mode2_pp_ref.C b/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_gap5_Mode2_pp_ref.C index 0ec3f2818..81dd4c500 100644 --- a/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_gap5_Mode2_pp_ref.C +++ b/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_gap5_Mode2_pp_ref.C @@ -1,5 +1,5 @@ int External() { - std::string path{"/home/wuct/ALICE/mc_production/test/standard/ppref/test/tf1/sgn_Kine.root"}; + std::string path{"o2sim_Kine.root"}; int checkPdgQuarkOne{4}; int checkPdgQuarkTwo{5}; From f767edc9f5979e6884f78942635bb73d259064f0 Mon Sep 17 00:00:00 2001 From: wuctlby Date: Sat, 21 Jun 2025 17:41:33 +0200 Subject: [PATCH 4/7] update the format --- .../GeneratorHF_D2H_ccbar_and_bbbar_PbPb.C | 96 +++++++++---------- ...neratorHF_D2H_ccbar_and_bbbar_gap5_Mode2.C | 96 +++++++++---------- ...HF_D2H_ccbar_and_bbbar_gap5_Mode2_pp_ref.C | 96 +++++++++---------- 3 files changed, 144 insertions(+), 144 deletions(-) diff --git a/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_PbPb.C b/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_PbPb.C index 55d435400..3a1f77dd6 100644 --- a/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_PbPb.C +++ b/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_PbPb.C @@ -9,72 +9,72 @@ int External() { std::vector checkPdgHadron{411, 421, 431, 4122, 4132, 4232, 4332}; std::map>> checkHadronDecays{ // sorted pdg of daughters {421, { - {-321, 211}, // D0 -> K-, pi+ - {-321, 211, 111}, // D0 -> K-, pi+, pi0 - {213, -321}, // D0 -> rho(770)+, K- - {-313, 111}, // D0 -> Kbar^*(892)0, pi0 - {-323, 211}, // D0 -> K^*(892)-, pi+ - {-211, 211}, // D0 -> pi-, pi+ - {213, -211}, // D0 -> rho(770)+, pi- - {-211, 211, 111}, // D0 -> pi-, pi+, pi0 - {-321, 321}, // D0 -> K-, K+ + {-321, 211}, // D0 -> K-, pi+ + {-321, 211, 111}, // D0 -> K-, pi+, pi0 + {213, -321}, // D0 -> rho(770)+, K- + {-313, 111}, // D0 -> Kbar^*(892)0, pi0 + {-323, 211}, // D0 -> K^*(892)-, pi+ + {-211, 211}, // D0 -> pi-, pi+ + {213, -211}, // D0 -> rho(770)+, pi- + {-211, 211, 111}, // D0 -> pi-, pi+, pi0 + {-321, 321}, // D0 -> K-, K+ }}, {411, { - {-321, 211, 211}, // D+ -> K-, pi+, pi+ - {-10311, 211}, // D+ -> Kbar0^*(1430)0, pi+ - {-313, 211}, // D+ -> Kbar^*(892)0, pi+ - {-321, 211, 211, 111}, // D+ -> K-, pi+, pi+, pi0 - {333, 211}, // D+ -> phi(1020)0, pi+ - {-313, 321}, // D+ -> Kbar^*(892)0, K+ - {-10311, 321}, // D+ -> Kbar0^*(1430)0, K+ - {-321, 321, 211}, // D+ -> K-, K+, pi+ - {113, 211}, // D+ -> rho(770)0, pi+ - {225, 211}, // D+ -> f2(1270)0, pi+ - {-211, 211, 211}, // D+ -> pi-, pi+, pi+ + {-321, 211, 211}, // D+ -> K-, pi+, pi+ + {-10311, 211}, // D+ -> Kbar0^*(1430)0, pi+ + {-313, 211}, // D+ -> Kbar^*(892)0, pi+ + {-321, 211, 211, 111}, // D+ -> K-, pi+, pi+, pi0 + {333, 211}, // D+ -> phi(1020)0, pi+ + {-313, 321}, // D+ -> Kbar^*(892)0, K+ + {-10311, 321}, // D+ -> Kbar0^*(1430)0, K+ + {-321, 321, 211}, // D+ -> K-, K+, pi+ + {113, 211}, // D+ -> rho(770)0, pi+ + {225, 211}, // D+ -> f2(1270)0, pi+ + {-211, 211, 211}, // D+ -> pi-, pi+, pi+ }}, {431, { - {333, 211}, // Ds+ -> phi(1020)0, pi+ - {-313, 321}, // Ds+ -> Kbar^*(892)0, K+ - {333, 213}, // Ds+ -> phi(1020)0, rho(770)+ - {113, 211}, // Ds+ -> rho(770)0, pi+ - {225, 211}, // Ds+ -> f2(1270)0, pi+ - {-211, 211, 211}, // Ds+ -> pi-, pi+, pi+ - {313, 211}, // Ds+ -> K^*(892)0, pi+ - {10221, 321}, // Ds+ -> f0(1370)0, K+ - {113, 321}, // Ds+ -> rho(770)0, K+ - {-211, 321, 211}, // Ds+ -> pi-, K+, pi+ - {221, 211}, // Ds+ -> eta, pi+ + {333, 211}, // Ds+ -> phi(1020)0, pi+ + {-313, 321}, // Ds+ -> Kbar^*(892)0, K+ + {333, 213}, // Ds+ -> phi(1020)0, rho(770)+ + {113, 211}, // Ds+ -> rho(770)0, pi+ + {225, 211}, // Ds+ -> f2(1270)0, pi+ + {-211, 211, 211}, // Ds+ -> pi-, pi+, pi+ + {313, 211}, // Ds+ -> K^*(892)0, pi+ + {10221, 321}, // Ds+ -> f0(1370)0, K+ + {113, 321}, // Ds+ -> rho(770)0, K+ + {-211, 321, 211}, // Ds+ -> pi-, K+, pi+ + {221, 211}, // Ds+ -> eta, pi+ }}, {4122, { - {2212, -321, 211}, // Lambdac+ -> p, K-, pi+ - {2212, -313}, // Lambdac+ -> p, Kbar^*(892)0 - {2224, -321}, // Lambdac+ -> Delta(1232)++, K- - {102134, 211}, // Lambdac+ -> 102134, pi+ - {2212, 311}, // Lambdac+ -> p, K0 - {2212, -321, 211, 111}, // Lambdac+ -> p, K-, pi+, pi0 - {2212, -211, 211}, // Lambdac+ -> p, pi-, pi+ - {2212, 333}, // Lambdac+ -> p, phi(1020)0 + {2212, -321, 211}, // Lambdac+ -> p, K-, pi+ + {2212, -313}, // Lambdac+ -> p, Kbar^*(892)0 + {2224, -321}, // Lambdac+ -> Delta(1232)++, K- + {102134, 211}, // Lambdac+ -> 102134, pi+ + {2212, 311}, // Lambdac+ -> p, K0 + {2212, -321, 211, 111}, // Lambdac+ -> p, K-, pi+, pi0 + {2212, -211, 211}, // Lambdac+ -> p, pi-, pi+ + {2212, 333}, // Lambdac+ -> p, phi(1020)0 }}, {4232, { - {2212, -321, 211}, // Xic+ -> p, K-, pi+ - {2212, -313}, // Xic+ -> p, Kbar^*(892)0 - {3312, 211, 211}, // Xic+ -> Xi-, pi+, pi+ - {2212, 333}, // Xic+ -> p, phi(1020)0 - {3222, -211, 211}, // Xic+ -> Sigma+, pi-, pi+ - {3324, 211}, // Xic+ -> Xi(1530)0, pi+ + {2212, -321, 211}, // Xic+ -> p, K-, pi+ + {2212, -313}, // Xic+ -> p, Kbar^*(892)0 + {3312, 211, 211}, // Xic+ -> Xi-, pi+, pi+ + {2212, 333}, // Xic+ -> p, phi(1020)0 + {3222, -211, 211}, // Xic+ -> Sigma+, pi-, pi+ + {3324, 211}, // Xic+ -> Xi(1530)0, pi+ }}, {4132, { - {3312, 211}, // Xic0 -> Xi-, pi+ + {3312, 211}, // Xic0 -> Xi-, pi+ }}, {4332, { - {3334, 211}, // Omegac0 -> Omega-, pi+ - {3312, 211}, // Omegac0 -> Xi-, pi+ + {3334, 211}, // Omegac0 -> Omega-, pi+ + {3312, 211}, // Omegac0 -> Xi-, pi+ }}, }; diff --git a/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_gap5_Mode2.C b/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_gap5_Mode2.C index 81dd4c500..674b9a0d9 100644 --- a/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_gap5_Mode2.C +++ b/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_gap5_Mode2.C @@ -8,72 +8,72 @@ int External() { std::vector checkPdgHadron{411, 421, 431, 4122, 4132, 4232, 4332}; std::map>> checkHadronDecays{ // sorted pdg of daughters {421, { - {-321, 211}, // D0 -> K-, pi+ - {-321, 211, 111}, // D0 -> K-, pi+, pi0 - {213, -321}, // D0 -> rho(770)+, K- - {-313, 111}, // D0 -> Kbar^*(892)0, pi0 - {-323, 211}, // D0 -> K^*(892)-, pi+ - {-211, 211}, // D0 -> pi-, pi+ - {213, -211}, // D0 -> rho(770)+, pi- - {-211, 211, 111}, // D0 -> pi-, pi+, pi0 - {-321, 321}, // D0 -> K-, K+ + {-321, 211}, // D0 -> K-, pi+ + {-321, 211, 111}, // D0 -> K-, pi+, pi0 + {213, -321}, // D0 -> rho(770)+, K- + {-313, 111}, // D0 -> Kbar^*(892)0, pi0 + {-323, 211}, // D0 -> K^*(892)-, pi+ + {-211, 211}, // D0 -> pi-, pi+ + {213, -211}, // D0 -> rho(770)+, pi- + {-211, 211, 111}, // D0 -> pi-, pi+, pi0 + {-321, 321}, // D0 -> K-, K+ }}, {411, { - {-321, 211, 211}, // D+ -> K-, pi+, pi+ - {-10311, 211}, // D+ -> Kbar0^*(1430)0, pi+ - {-313, 211}, // D+ -> Kbar^*(892)0, pi+ - {-321, 211, 211, 111}, // D+ -> K-, pi+, pi+, pi0 - {333, 211}, // D+ -> phi(1020)0, pi+ - {-313, 321}, // D+ -> Kbar^*(892)0, K+ - {-10311, 321}, // D+ -> Kbar0^*(1430)0, K+ - {-321, 321, 211}, // D+ -> K-, K+, pi+ - {113, 211}, // D+ -> rho(770)0, pi+ - {225, 211}, // D+ -> f2(1270)0, pi+ - {-211, 211, 211}, // D+ -> pi-, pi+, pi+ + {-321, 211, 211}, // D+ -> K-, pi+, pi+ + {-10311, 211}, // D+ -> Kbar0^*(1430)0, pi+ + {-313, 211}, // D+ -> Kbar^*(892)0, pi+ + {-321, 211, 211, 111}, // D+ -> K-, pi+, pi+, pi0 + {333, 211}, // D+ -> phi(1020)0, pi+ + {-313, 321}, // D+ -> Kbar^*(892)0, K+ + {-10311, 321}, // D+ -> Kbar0^*(1430)0, K+ + {-321, 321, 211}, // D+ -> K-, K+, pi+ + {113, 211}, // D+ -> rho(770)0, pi+ + {225, 211}, // D+ -> f2(1270)0, pi+ + {-211, 211, 211}, // D+ -> pi-, pi+, pi+ }}, {431, { - {333, 211}, // Ds+ -> phi(1020)0, pi+ - {-313, 321}, // Ds+ -> Kbar^*(892)0, K+ - {333, 213}, // Ds+ -> phi(1020)0, rho(770)+ - {113, 211}, // Ds+ -> rho(770)0, pi+ - {225, 211}, // Ds+ -> f2(1270)0, pi+ - {-211, 211, 211}, // Ds+ -> pi-, pi+, pi+ - {313, 211}, // Ds+ -> K^*(892)0, pi+ - {10221, 321}, // Ds+ -> f0(1370)0, K+ - {113, 321}, // Ds+ -> rho(770)0, K+ - {-211, 321, 211}, // Ds+ -> pi-, K+, pi+ - {221, 211}, // Ds+ -> eta, pi+ + {333, 211}, // Ds+ -> phi(1020)0, pi+ + {-313, 321}, // Ds+ -> Kbar^*(892)0, K+ + {333, 213}, // Ds+ -> phi(1020)0, rho(770)+ + {113, 211}, // Ds+ -> rho(770)0, pi+ + {225, 211}, // Ds+ -> f2(1270)0, pi+ + {-211, 211, 211}, // Ds+ -> pi-, pi+, pi+ + {313, 211}, // Ds+ -> K^*(892)0, pi+ + {10221, 321}, // Ds+ -> f0(1370)0, K+ + {113, 321}, // Ds+ -> rho(770)0, K+ + {-211, 321, 211}, // Ds+ -> pi-, K+, pi+ + {221, 211}, // Ds+ -> eta, pi+ }}, {4122, { - {2212, -321, 211}, // Lambdac+ -> p, K-, pi+ - {2212, -313}, // Lambdac+ -> p, Kbar^*(892)0 - {2224, -321}, // Lambdac+ -> Delta(1232)++, K- - {102134, 211}, // Lambdac+ -> 102134, pi+ - {2212, 311}, // Lambdac+ -> p, K0 - {2212, -321, 211, 111}, // Lambdac+ -> p, K-, pi+, pi0 - {2212, -211, 211}, // Lambdac+ -> p, pi-, pi+ - {2212, 333}, // Lambdac+ -> p, phi(1020)0 + {2212, -321, 211}, // Lambdac+ -> p, K-, pi+ + {2212, -313}, // Lambdac+ -> p, Kbar^*(892)0 + {2224, -321}, // Lambdac+ -> Delta(1232)++, K- + {102134, 211}, // Lambdac+ -> 102134, pi+ + {2212, 311}, // Lambdac+ -> p, K0 + {2212, -321, 211, 111}, // Lambdac+ -> p, K-, pi+, pi0 + {2212, -211, 211}, // Lambdac+ -> p, pi-, pi+ + {2212, 333}, // Lambdac+ -> p, phi(1020)0 }}, {4232, { - {2212, -321, 211}, // Xic+ -> p, K-, pi+ - {2212, -313}, // Xic+ -> p, Kbar^*(892)0 - {3312, 211, 211}, // Xic+ -> Xi-, pi+, pi+ - {2212, 333}, // Xic+ -> p, phi(1020)0 - {3222, -211, 211}, // Xic+ -> Sigma+, pi-, pi+ - {3324, 211}, // Xic+ -> Xi(1530)0, pi+ + {2212, -321, 211}, // Xic+ -> p, K-, pi+ + {2212, -313}, // Xic+ -> p, Kbar^*(892)0 + {3312, 211, 211}, // Xic+ -> Xi-, pi+, pi+ + {2212, 333}, // Xic+ -> p, phi(1020)0 + {3222, -211, 211}, // Xic+ -> Sigma+, pi-, pi+ + {3324, 211}, // Xic+ -> Xi(1530)0, pi+ }}, {4132, { - {3312, 211}, // Xic0 -> Xi-, pi+ + {3312, 211}, // Xic0 -> Xi-, pi+ }}, {4332, { - {3334, 211}, // Omegac0 -> Omega-, pi+ - {3312, 211}, // Omegac0 -> Xi-, pi+ + {3334, 211}, // Omegac0 -> Omega-, pi+ + {3312, 211}, // Omegac0 -> Xi-, pi+ }}, }; diff --git a/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_gap5_Mode2_pp_ref.C b/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_gap5_Mode2_pp_ref.C index 81dd4c500..674b9a0d9 100644 --- a/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_gap5_Mode2_pp_ref.C +++ b/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_gap5_Mode2_pp_ref.C @@ -8,72 +8,72 @@ int External() { std::vector checkPdgHadron{411, 421, 431, 4122, 4132, 4232, 4332}; std::map>> checkHadronDecays{ // sorted pdg of daughters {421, { - {-321, 211}, // D0 -> K-, pi+ - {-321, 211, 111}, // D0 -> K-, pi+, pi0 - {213, -321}, // D0 -> rho(770)+, K- - {-313, 111}, // D0 -> Kbar^*(892)0, pi0 - {-323, 211}, // D0 -> K^*(892)-, pi+ - {-211, 211}, // D0 -> pi-, pi+ - {213, -211}, // D0 -> rho(770)+, pi- - {-211, 211, 111}, // D0 -> pi-, pi+, pi0 - {-321, 321}, // D0 -> K-, K+ + {-321, 211}, // D0 -> K-, pi+ + {-321, 211, 111}, // D0 -> K-, pi+, pi0 + {213, -321}, // D0 -> rho(770)+, K- + {-313, 111}, // D0 -> Kbar^*(892)0, pi0 + {-323, 211}, // D0 -> K^*(892)-, pi+ + {-211, 211}, // D0 -> pi-, pi+ + {213, -211}, // D0 -> rho(770)+, pi- + {-211, 211, 111}, // D0 -> pi-, pi+, pi0 + {-321, 321}, // D0 -> K-, K+ }}, {411, { - {-321, 211, 211}, // D+ -> K-, pi+, pi+ - {-10311, 211}, // D+ -> Kbar0^*(1430)0, pi+ - {-313, 211}, // D+ -> Kbar^*(892)0, pi+ - {-321, 211, 211, 111}, // D+ -> K-, pi+, pi+, pi0 - {333, 211}, // D+ -> phi(1020)0, pi+ - {-313, 321}, // D+ -> Kbar^*(892)0, K+ - {-10311, 321}, // D+ -> Kbar0^*(1430)0, K+ - {-321, 321, 211}, // D+ -> K-, K+, pi+ - {113, 211}, // D+ -> rho(770)0, pi+ - {225, 211}, // D+ -> f2(1270)0, pi+ - {-211, 211, 211}, // D+ -> pi-, pi+, pi+ + {-321, 211, 211}, // D+ -> K-, pi+, pi+ + {-10311, 211}, // D+ -> Kbar0^*(1430)0, pi+ + {-313, 211}, // D+ -> Kbar^*(892)0, pi+ + {-321, 211, 211, 111}, // D+ -> K-, pi+, pi+, pi0 + {333, 211}, // D+ -> phi(1020)0, pi+ + {-313, 321}, // D+ -> Kbar^*(892)0, K+ + {-10311, 321}, // D+ -> Kbar0^*(1430)0, K+ + {-321, 321, 211}, // D+ -> K-, K+, pi+ + {113, 211}, // D+ -> rho(770)0, pi+ + {225, 211}, // D+ -> f2(1270)0, pi+ + {-211, 211, 211}, // D+ -> pi-, pi+, pi+ }}, {431, { - {333, 211}, // Ds+ -> phi(1020)0, pi+ - {-313, 321}, // Ds+ -> Kbar^*(892)0, K+ - {333, 213}, // Ds+ -> phi(1020)0, rho(770)+ - {113, 211}, // Ds+ -> rho(770)0, pi+ - {225, 211}, // Ds+ -> f2(1270)0, pi+ - {-211, 211, 211}, // Ds+ -> pi-, pi+, pi+ - {313, 211}, // Ds+ -> K^*(892)0, pi+ - {10221, 321}, // Ds+ -> f0(1370)0, K+ - {113, 321}, // Ds+ -> rho(770)0, K+ - {-211, 321, 211}, // Ds+ -> pi-, K+, pi+ - {221, 211}, // Ds+ -> eta, pi+ + {333, 211}, // Ds+ -> phi(1020)0, pi+ + {-313, 321}, // Ds+ -> Kbar^*(892)0, K+ + {333, 213}, // Ds+ -> phi(1020)0, rho(770)+ + {113, 211}, // Ds+ -> rho(770)0, pi+ + {225, 211}, // Ds+ -> f2(1270)0, pi+ + {-211, 211, 211}, // Ds+ -> pi-, pi+, pi+ + {313, 211}, // Ds+ -> K^*(892)0, pi+ + {10221, 321}, // Ds+ -> f0(1370)0, K+ + {113, 321}, // Ds+ -> rho(770)0, K+ + {-211, 321, 211}, // Ds+ -> pi-, K+, pi+ + {221, 211}, // Ds+ -> eta, pi+ }}, {4122, { - {2212, -321, 211}, // Lambdac+ -> p, K-, pi+ - {2212, -313}, // Lambdac+ -> p, Kbar^*(892)0 - {2224, -321}, // Lambdac+ -> Delta(1232)++, K- - {102134, 211}, // Lambdac+ -> 102134, pi+ - {2212, 311}, // Lambdac+ -> p, K0 - {2212, -321, 211, 111}, // Lambdac+ -> p, K-, pi+, pi0 - {2212, -211, 211}, // Lambdac+ -> p, pi-, pi+ - {2212, 333}, // Lambdac+ -> p, phi(1020)0 + {2212, -321, 211}, // Lambdac+ -> p, K-, pi+ + {2212, -313}, // Lambdac+ -> p, Kbar^*(892)0 + {2224, -321}, // Lambdac+ -> Delta(1232)++, K- + {102134, 211}, // Lambdac+ -> 102134, pi+ + {2212, 311}, // Lambdac+ -> p, K0 + {2212, -321, 211, 111}, // Lambdac+ -> p, K-, pi+, pi0 + {2212, -211, 211}, // Lambdac+ -> p, pi-, pi+ + {2212, 333}, // Lambdac+ -> p, phi(1020)0 }}, {4232, { - {2212, -321, 211}, // Xic+ -> p, K-, pi+ - {2212, -313}, // Xic+ -> p, Kbar^*(892)0 - {3312, 211, 211}, // Xic+ -> Xi-, pi+, pi+ - {2212, 333}, // Xic+ -> p, phi(1020)0 - {3222, -211, 211}, // Xic+ -> Sigma+, pi-, pi+ - {3324, 211}, // Xic+ -> Xi(1530)0, pi+ + {2212, -321, 211}, // Xic+ -> p, K-, pi+ + {2212, -313}, // Xic+ -> p, Kbar^*(892)0 + {3312, 211, 211}, // Xic+ -> Xi-, pi+, pi+ + {2212, 333}, // Xic+ -> p, phi(1020)0 + {3222, -211, 211}, // Xic+ -> Sigma+, pi-, pi+ + {3324, 211}, // Xic+ -> Xi(1530)0, pi+ }}, {4132, { - {3312, 211}, // Xic0 -> Xi-, pi+ + {3312, 211}, // Xic0 -> Xi-, pi+ }}, {4332, { - {3334, 211}, // Omegac0 -> Omega-, pi+ - {3312, 211}, // Omegac0 -> Xi-, pi+ + {3334, 211}, // Omegac0 -> Omega-, pi+ + {3312, 211}, // Omegac0 -> Xi-, pi+ }}, }; From b866290f3b6bdd8ab32f04703e5ae85ce83ab796 Mon Sep 17 00:00:00 2001 From: wuctlby Date: Mon, 23 Jun 2025 16:42:23 +0200 Subject: [PATCH 5/7] correct the configuraton file for pp ref on Xic0 and OmegaC --- .../pythia8_charmhadronic_with_decays_Mode2_pp_ref.cfg | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/MC/config/PWGHF/pythia8/generator/pythia8_charmhadronic_with_decays_Mode2_pp_ref.cfg b/MC/config/PWGHF/pythia8/generator/pythia8_charmhadronic_with_decays_Mode2_pp_ref.cfg index 00743a912..ec089da80 100644 --- a/MC/config/PWGHF/pythia8/generator/pythia8_charmhadronic_with_decays_Mode2_pp_ref.cfg +++ b/MC/config/PWGHF/pythia8/generator/pythia8_charmhadronic_with_decays_Mode2_pp_ref.cfg @@ -125,11 +125,11 @@ BeamRemnants:saturation 5 4232:addChannel = 1 0.12500 0 3324 211 ### add Xic0 decays absent in PYTHIA8 decay table -4132:addChannel = 1 0.0143 0 3312 211 +4132:oneChannel = 1 1.00000 0 3312 211 ### add OmegaC decays absent in PYTHIA8 decay table -4332:addChannel = 1 0.5 0 3334 211 -4332:addChannel = 1 0.5 0 3312 211 +4332:oneChannel = 1 0.50000 0 3334 211 +4332:addChannel = 1 0.50000 0 3312 211 # Allow the decay of resonances in the decay chain ### K*0(892) -> K- π+ From fc535d58ee2c03ad0cf9978e3d5b09332d8cc2c7 Mon Sep 17 00:00:00 2001 From: wuctlby Date: Mon, 23 Jun 2025 17:51:26 +0200 Subject: [PATCH 6/7] correct the test files for pp, ppref and PbPb --- .../PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_PbPb.C | 3 ++- .../ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_gap5_Mode2.C | 5 +++-- .../GeneratorHF_D2H_ccbar_and_bbbar_gap5_Mode2_pp_ref.C | 5 +++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_PbPb.C b/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_PbPb.C index 3a1f77dd6..d3f861f24 100644 --- a/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_PbPb.C +++ b/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_PbPb.C @@ -128,7 +128,7 @@ int External() { for (int j{track.getFirstDaughterTrackId()}; j <= track.getLastDaughterTrackId(); ++j) { auto pdgDau = tracks->at(j).GetPdgCode(); pdgsDecay.push_back(pdgDau); - if (pdgDau != 333) { // phi is antiparticle of itself + if (pdgDau != 333 && pdgDau != 111 && pdgDau != 221 && pdgDau != 113 && pdgDau != 225) { // phi is antiparticle of itself pdgsDecayAntiPart.push_back(-pdgDau); } else { pdgsDecayAntiPart.push_back(pdgDau); @@ -139,6 +139,7 @@ int External() { std::sort(pdgsDecayAntiPart.begin(), pdgsDecayAntiPart.end()); for (auto &decay : checkHadronDecays[std::abs(pdg)]) { + std::sort(decay.begin(), decay.end()); if (pdgsDecay == decay || pdgsDecayAntiPart == decay) { nSignalGoodDecay++; break; diff --git a/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_gap5_Mode2.C b/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_gap5_Mode2.C index 674b9a0d9..73ca51134 100644 --- a/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_gap5_Mode2.C +++ b/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_gap5_Mode2.C @@ -24,7 +24,7 @@ int External() { {-10311, 211}, // D+ -> Kbar0^*(1430)0, pi+ {-313, 211}, // D+ -> Kbar^*(892)0, pi+ {-321, 211, 211, 111}, // D+ -> K-, pi+, pi+, pi0 - {333, 211}, // D+ -> phi(1020)0, pi+ + {333, 211}, // D+ -> phi(1020)0, pi+ {-313, 321}, // D+ -> Kbar^*(892)0, K+ {-10311, 321}, // D+ -> Kbar0^*(1430)0, K+ {-321, 321, 211}, // D+ -> K-, K+, pi+ @@ -127,7 +127,7 @@ int External() { for (int j{track.getFirstDaughterTrackId()}; j <= track.getLastDaughterTrackId(); ++j) { auto pdgDau = tracks->at(j).GetPdgCode(); pdgsDecay.push_back(pdgDau); - if (pdgDau != 333) { // phi is antiparticle of itself + if (pdgDau != 333 && pdgDau != 111 && pdgDau != 221 && pdgDau != 113 && pdgDau != 225) { // phi is antiparticle of itself pdgsDecayAntiPart.push_back(-pdgDau); } else { pdgsDecayAntiPart.push_back(pdgDau); @@ -138,6 +138,7 @@ int External() { std::sort(pdgsDecayAntiPart.begin(), pdgsDecayAntiPart.end()); for (auto &decay : checkHadronDecays[std::abs(pdg)]) { + std::sort(decay.begin(), decay.end()); if (pdgsDecay == decay || pdgsDecayAntiPart == decay) { nSignalGoodDecay++; break; diff --git a/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_gap5_Mode2_pp_ref.C b/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_gap5_Mode2_pp_ref.C index 674b9a0d9..6f13ae05e 100644 --- a/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_gap5_Mode2_pp_ref.C +++ b/MC/config/PWGHF/ini/tests/GeneratorHF_D2H_ccbar_and_bbbar_gap5_Mode2_pp_ref.C @@ -34,7 +34,7 @@ int External() { }}, {431, { - {333, 211}, // Ds+ -> phi(1020)0, pi+ + {211, 333}, // Ds+ -> phi(1020)0, pi+ {-313, 321}, // Ds+ -> Kbar^*(892)0, K+ {333, 213}, // Ds+ -> phi(1020)0, rho(770)+ {113, 211}, // Ds+ -> rho(770)0, pi+ @@ -127,7 +127,7 @@ int External() { for (int j{track.getFirstDaughterTrackId()}; j <= track.getLastDaughterTrackId(); ++j) { auto pdgDau = tracks->at(j).GetPdgCode(); pdgsDecay.push_back(pdgDau); - if (pdgDau != 333) { // phi is antiparticle of itself + if (pdgDau != 333 && pdgDau != 111 && pdgDau != 221 && pdgDau != 113 && pdgDau != 225) { // phi is antiparticle of itself pdgsDecayAntiPart.push_back(-pdgDau); } else { pdgsDecayAntiPart.push_back(pdgDau); @@ -138,6 +138,7 @@ int External() { std::sort(pdgsDecayAntiPart.begin(), pdgsDecayAntiPart.end()); for (auto &decay : checkHadronDecays[std::abs(pdg)]) { + std::sort(decay.begin(), decay.end()); if (pdgsDecay == decay || pdgsDecayAntiPart == decay) { nSignalGoodDecay++; break; From 61de3b5f352cd65257cf33c8fb86555ebf56a0c9 Mon Sep 17 00:00:00 2001 From: wuctlby Date: Mon, 23 Jun 2025 17:59:00 +0200 Subject: [PATCH 7/7] correct the method of `addChannel` --- .../generator/pythia8_charmhadronic_with_decays_Mode2.cfg | 4 ++-- ...pythia8_charmhadronic_with_decays_Mode2_hardQCD_5TeV.cfg | 4 ++-- .../pythia8_charmhadronic_with_decays_Mode2_pp_ref.cfg | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/MC/config/PWGHF/pythia8/generator/pythia8_charmhadronic_with_decays_Mode2.cfg b/MC/config/PWGHF/pythia8/generator/pythia8_charmhadronic_with_decays_Mode2.cfg index 95402f146..7c03e2d0f 100644 --- a/MC/config/PWGHF/pythia8/generator/pythia8_charmhadronic_with_decays_Mode2.cfg +++ b/MC/config/PWGHF/pythia8/generator/pythia8_charmhadronic_with_decays_Mode2.cfg @@ -125,10 +125,10 @@ BeamRemnants:saturation 5 4232:addChannel = 1 0.12500 0 3324 211 ### add Xic0 decays absent in PYTHIA8 decay table -4132:addChannel = 1 0.0143 0 3312 211 +4132:oneChannel = 1 0.0143 0 3312 211 ### add OmegaC decays absent in PYTHIA8 decay table -4332:addChannel = 1 0.5 0 3334 211 +4332:oneChannel = 1 0.5 0 3334 211 4332:addChannel = 1 0.5 0 3312 211 # Allow the decay of resonances in the decay chain diff --git a/MC/config/PWGHF/pythia8/generator/pythia8_charmhadronic_with_decays_Mode2_hardQCD_5TeV.cfg b/MC/config/PWGHF/pythia8/generator/pythia8_charmhadronic_with_decays_Mode2_hardQCD_5TeV.cfg index d75c500ac..81da1a4ba 100644 --- a/MC/config/PWGHF/pythia8/generator/pythia8_charmhadronic_with_decays_Mode2_hardQCD_5TeV.cfg +++ b/MC/config/PWGHF/pythia8/generator/pythia8_charmhadronic_with_decays_Mode2_hardQCD_5TeV.cfg @@ -129,10 +129,10 @@ BeamRemnants:saturation 5 4232:addChannel = 1 0.12500 0 3324 211 ### add Xic0 decays absent in PYTHIA8 decay table -4132:addChannel = 1 0.0143 0 3312 211 +4132:oneChannel = 1 0.0143 0 3312 211 ### add OmegaC decays absent in PYTHIA8 decay table -4332:addChannel = 1 0.5 0 3334 211 +4332:oneChannel = 1 0.5 0 3334 211 4332:addChannel = 1 0.5 0 3312 211 # Allow the decay of resonances in the decay chain diff --git a/MC/config/PWGHF/pythia8/generator/pythia8_charmhadronic_with_decays_Mode2_pp_ref.cfg b/MC/config/PWGHF/pythia8/generator/pythia8_charmhadronic_with_decays_Mode2_pp_ref.cfg index ec089da80..16d19709f 100644 --- a/MC/config/PWGHF/pythia8/generator/pythia8_charmhadronic_with_decays_Mode2_pp_ref.cfg +++ b/MC/config/PWGHF/pythia8/generator/pythia8_charmhadronic_with_decays_Mode2_pp_ref.cfg @@ -125,11 +125,11 @@ BeamRemnants:saturation 5 4232:addChannel = 1 0.12500 0 3324 211 ### add Xic0 decays absent in PYTHIA8 decay table -4132:oneChannel = 1 1.00000 0 3312 211 +4132:oneChannel = 1 0.0143 0 3312 211 ### add OmegaC decays absent in PYTHIA8 decay table -4332:oneChannel = 1 0.50000 0 3334 211 -4332:addChannel = 1 0.50000 0 3312 211 +4332:oneChannel = 1 0.5 0 3334 211 +4332:addChannel = 1 0.5 0 3312 211 # Allow the decay of resonances in the decay chain ### K*0(892) -> K- π+