From f36c8315cf76cc964ca5bc432163f34600cb8c10 Mon Sep 17 00:00:00 2001 From: Francesco Mazzaschi Date: Fri, 31 Jul 2026 10:36:00 +0200 Subject: [PATCH 1/2] Add double-omega generator --- MC/config/PWGLF/ini/GeneratorLFDoubleOmegaPbPb.ini | 6 ++++++ MC/config/PWGLF/pythia8/generator/double_omega.gun | 3 +++ 2 files changed, 9 insertions(+) create mode 100644 MC/config/PWGLF/ini/GeneratorLFDoubleOmegaPbPb.ini create mode 100644 MC/config/PWGLF/pythia8/generator/double_omega.gun diff --git a/MC/config/PWGLF/ini/GeneratorLFDoubleOmegaPbPb.ini b/MC/config/PWGLF/ini/GeneratorLFDoubleOmegaPbPb.ini new file mode 100644 index 000000000..eca344f65 --- /dev/null +++ b/MC/config/PWGLF/ini/GeneratorLFDoubleOmegaPbPb.ini @@ -0,0 +1,6 @@ +[GeneratorExternal] +fileName=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator_pythia8_longlived_gaptriggered.C +funcName=generateLongLivedGapTriggered("${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/exotic_nuclei_pbpb.gun", 1) + +[GeneratorPythia8] +config=${O2_ROOT}/share/Generators/egconfig/pythia8_hi.cfg diff --git a/MC/config/PWGLF/pythia8/generator/double_omega.gun b/MC/config/PWGLF/pythia8/generator/double_omega.gun new file mode 100644 index 000000000..1e0be0edb --- /dev/null +++ b/MC/config/PWGLF/pythia8/generator/double_omega.gun @@ -0,0 +1,3 @@ +# PDG N ptMin ptMax yMin yMax +1060020020 20 0.2 10 -1 1 +-1060020020 20 0.2 10 -1 1 \ No newline at end of file From 8edf3bef70427ce5c715f451ab76006de033fa14 Mon Sep 17 00:00:00 2001 From: Francesco Mazzaschi Date: Mon, 3 Aug 2026 15:27:31 +0200 Subject: [PATCH 2/2] Add tests --- .../PWGLF/ini/GeneratorLFDoubleOmegaPbPb.ini | 2 +- .../ini/tests/GeneratorLFDoubleOmegaPbPb.C | 53 +++++++++++++++++++ .../PWGLF/pythia8/generator/double_omega.gun | 3 -- 3 files changed, 54 insertions(+), 4 deletions(-) create mode 100644 MC/config/PWGLF/ini/tests/GeneratorLFDoubleOmegaPbPb.C delete mode 100644 MC/config/PWGLF/pythia8/generator/double_omega.gun diff --git a/MC/config/PWGLF/ini/GeneratorLFDoubleOmegaPbPb.ini b/MC/config/PWGLF/ini/GeneratorLFDoubleOmegaPbPb.ini index eca344f65..445dbf7c5 100644 --- a/MC/config/PWGLF/ini/GeneratorLFDoubleOmegaPbPb.ini +++ b/MC/config/PWGLF/ini/GeneratorLFDoubleOmegaPbPb.ini @@ -1,6 +1,6 @@ [GeneratorExternal] fileName=${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator_pythia8_longlived_gaptriggered.C -funcName=generateLongLivedGapTriggered("${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGLF/pythia8/generator/exotic_nuclei_pbpb.gun", 1) +funcName=generateLongLivedGapTriggered({1060020020}, 1, 20, 0.2, 10, -1, 1, true, false) [GeneratorPythia8] config=${O2_ROOT}/share/Generators/egconfig/pythia8_hi.cfg diff --git a/MC/config/PWGLF/ini/tests/GeneratorLFDoubleOmegaPbPb.C b/MC/config/PWGLF/ini/tests/GeneratorLFDoubleOmegaPbPb.C new file mode 100644 index 000000000..4b9f6f898 --- /dev/null +++ b/MC/config/PWGLF/ini/tests/GeneratorLFDoubleOmegaPbPb.C @@ -0,0 +1,53 @@ +int External() +{ + std::string path{"o2sim_Kine.root"}; + std::vector possiblePDGs = {1060020020, -1060020020}; + + int nPossiblePDGs = possiblePDGs.size(); + + 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"); + if (!tree) + { + std::cerr << "Cannot find tree o2sim in file " << path << "\n"; + return 1; + } + std::vector *tracks{}; + tree->SetBranchAddress("MCTrack", &tracks); + + std::vector injectedPDGs; + + auto nEvents = tree->GetEntries(); + for (int i = 0; i < nEvents; i++) + { + auto check = tree->GetEntry(i); + for (int idxMCTrack = 0; idxMCTrack < tracks->size(); ++idxMCTrack) + { + auto track = tracks->at(idxMCTrack); + auto pdg = track.GetPdgCode(); + auto it = std::find(possiblePDGs.begin(), possiblePDGs.end(), pdg); + if (it != possiblePDGs.end() && track.isPrimary()) // found + { + injectedPDGs.push_back(pdg); + } + } + } + std::cout << "--------------------------------\n"; + std::cout << "# Events: " << nEvents << "\n"; + if(injectedPDGs.empty()){ + std::cerr << "No injected particles\n"; + return 1; // At least one of the injected particles should be generated + } + for (int i = 0; i < nPossiblePDGs; i++) + { + std::cout << "# Injected double omegas \n"; + std::cout << possiblePDGs[i] << ": " << std::count(injectedPDGs.begin(), injectedPDGs.end(), possiblePDGs[i]) << "\n"; + } + return 0; +} diff --git a/MC/config/PWGLF/pythia8/generator/double_omega.gun b/MC/config/PWGLF/pythia8/generator/double_omega.gun deleted file mode 100644 index 1e0be0edb..000000000 --- a/MC/config/PWGLF/pythia8/generator/double_omega.gun +++ /dev/null @@ -1,3 +0,0 @@ -# PDG N ptMin ptMax yMin yMax -1060020020 20 0.2 10 -1 1 --1060020020 20 0.2 10 -1 1 \ No newline at end of file