From 671612eae154523f07ea9050844938f0d4c8830d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Jacazio?= Date: Mon, 28 Sep 2026 18:27:37 +0200 Subject: [PATCH 1/2] Add dittoMC oo --- MC/config/ALICE3/ini/ditto_oo_536tev.ini | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 MC/config/ALICE3/ini/ditto_oo_536tev.ini diff --git a/MC/config/ALICE3/ini/ditto_oo_536tev.ini b/MC/config/ALICE3/ini/ditto_oo_536tev.ini new file mode 100644 index 000000000..98db2f886 --- /dev/null +++ b/MC/config/ALICE3/ini/ditto_oo_536tev.ini @@ -0,0 +1,4 @@ +#---> pythia8_pp_136tev +[GeneratorExternal] +fileName=${O2DPG_MC_CONFIG_ROOT}/MC/config/ALICE3/pythia8/generator_DittoMC.C +funcName=generator_DittoMC("https://github.com/njacazio/DittoMC/releases/download/v1.0.0/Ditto_tune_pythia8_OO_536.root") From e731750a8d9c948fcf0181a7734ceb71ed842233 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Jacazio?= Date: Fri, 2 Oct 2026 09:06:23 +0200 Subject: [PATCH 2/2] Add Ditto with injection --- MC/config/ALICE3/ini/ditto_oo_536tev.ini | 2 +- MC/config/ALICE3/ini/ditto_pbpb_536tev.ini | 2 +- .../ALICE3/ini/ditto_pbpb_536tev_inj.ini | 4 ++++ MC/config/ALICE3/ini/ditto_pp_136tev.ini | 2 +- MC/config/ALICE3/ini/ditto_pp_136tev_inj.ini | 4 ++++ MC/config/ALICE3/pythia8/generator_DittoMC.C | 23 +++++++++++-------- 6 files changed, 25 insertions(+), 12 deletions(-) create mode 100644 MC/config/ALICE3/ini/ditto_pbpb_536tev_inj.ini create mode 100644 MC/config/ALICE3/ini/ditto_pp_136tev_inj.ini diff --git a/MC/config/ALICE3/ini/ditto_oo_536tev.ini b/MC/config/ALICE3/ini/ditto_oo_536tev.ini index 98db2f886..3fe23499a 100644 --- a/MC/config/ALICE3/ini/ditto_oo_536tev.ini +++ b/MC/config/ALICE3/ini/ditto_oo_536tev.ini @@ -1,4 +1,4 @@ #---> pythia8_pp_136tev [GeneratorExternal] fileName=${O2DPG_MC_CONFIG_ROOT}/MC/config/ALICE3/pythia8/generator_DittoMC.C -funcName=generator_DittoMC("https://github.com/njacazio/DittoMC/releases/download/v1.0.0/Ditto_tune_pythia8_OO_536.root") +funcName=generator_DittoMC("https://github.com/njacazio/DittoMC/releases/download/v1.0.1/Ditto_tune_pythia8_OO_536.root") diff --git a/MC/config/ALICE3/ini/ditto_pbpb_536tev.ini b/MC/config/ALICE3/ini/ditto_pbpb_536tev.ini index 301eed05f..70d1ddbab 100644 --- a/MC/config/ALICE3/ini/ditto_pbpb_536tev.ini +++ b/MC/config/ALICE3/ini/ditto_pbpb_536tev.ini @@ -1,4 +1,4 @@ #---> pythia8_pp_136tev [GeneratorExternal] fileName=${O2DPG_MC_CONFIG_ROOT}/MC/config/ALICE3/pythia8/generator_DittoMC.C -funcName=generator_DittoMC("https://github.com/njacazio/DittoMC/releases/download/v1.0.0/Ditto_tune_pythia8_PbPb_536tev.root") +funcName=generator_DittoMC("https://github.com/njacazio/DittoMC/releases/download/v1.0.1/Ditto_tune_pythia8_PbPb_536tev.root") diff --git a/MC/config/ALICE3/ini/ditto_pbpb_536tev_inj.ini b/MC/config/ALICE3/ini/ditto_pbpb_536tev_inj.ini new file mode 100644 index 000000000..4ae5c8b87 --- /dev/null +++ b/MC/config/ALICE3/ini/ditto_pbpb_536tev_inj.ini @@ -0,0 +1,4 @@ +#---> pythia8_pp_136tev +[GeneratorExternal] +fileName=${O2DPG_MC_CONFIG_ROOT}/MC/config/ALICE3/pythia8/generator_DittoMC.C +funcName=generator_DittoMC("https://github.com/njacazio/DittoMC/releases/download/v1.0.1/Ditto_tune_pythia8_PbPb_536tev.root", "https://github.com/njacazio/DittoMC/releases/download/v1.0.1/signal_pbpb.root") diff --git a/MC/config/ALICE3/ini/ditto_pp_136tev.ini b/MC/config/ALICE3/ini/ditto_pp_136tev.ini index 39b752dc3..a6ac925af 100644 --- a/MC/config/ALICE3/ini/ditto_pp_136tev.ini +++ b/MC/config/ALICE3/ini/ditto_pp_136tev.ini @@ -1,4 +1,4 @@ #---> pythia8_pp_136tev [GeneratorExternal] fileName=${O2DPG_MC_CONFIG_ROOT}/MC/config/ALICE3/pythia8/generator_DittoMC.C -funcName=generator_DittoMC("https://github.com/njacazio/DittoMC/releases/download/v1.0.0/Ditto_tune_pythia8_inel_136tev.root") +funcName=generator_DittoMC("https://github.com/njacazio/DittoMC/releases/download/v1.0.1/Ditto_tune_pythia8_inel_136tev.root") diff --git a/MC/config/ALICE3/ini/ditto_pp_136tev_inj.ini b/MC/config/ALICE3/ini/ditto_pp_136tev_inj.ini new file mode 100644 index 000000000..068718d16 --- /dev/null +++ b/MC/config/ALICE3/ini/ditto_pp_136tev_inj.ini @@ -0,0 +1,4 @@ +#---> pythia8_pp_136tev +[GeneratorExternal] +fileName=${O2DPG_MC_CONFIG_ROOT}/MC/config/ALICE3/pythia8/generator_DittoMC.C +funcName=generator_DittoMC("https://github.com/njacazio/DittoMC/releases/download/v1.0.1/Ditto_tune_pythia8_inel_136tev.root", "https://github.com/njacazio/DittoMC/releases/download/v1.0.1/signal.root") diff --git a/MC/config/ALICE3/pythia8/generator_DittoMC.C b/MC/config/ALICE3/pythia8/generator_DittoMC.C index 27fd8b66d..62da98509 100644 --- a/MC/config/ALICE3/pythia8/generator_DittoMC.C +++ b/MC/config/ALICE3/pythia8/generator_DittoMC.C @@ -11,9 +11,9 @@ // Ditto event generator class GeneratorDittoMC : public o2::eventgen::GeneratorPythia8 { - public: +public: /// Constructor - explicit GeneratorDittoMC(const TString& tuneFile) : mGenerator(makeConfig(tuneFile)) + explicit GeneratorDittoMC(const TString &tuneFile, const TString &signalFile) : mGenerator(makeConfig(tuneFile, signalFile)) { // We use the Pythia8 event only as the container passed to the O2 // GeneratorPythia8 machinery. Particle production is handled by Ditto. @@ -31,22 +31,27 @@ class GeneratorDittoMC : public o2::eventgen::GeneratorPythia8 /// Destructor ~GeneratorDittoMC() override = default; - private: +private: /// Build the Ditto runtime configuration. - static Ditto::Config makeConfig(const TString& tuneFile) + static Ditto::Config makeConfig(const TString &tuneFile, const TString &signalFile) { - if (tuneFile.IsNull()) { + if (tuneFile.IsNull()) + { throw std::runtime_error("Ditto tune file must be specified"); } Ditto::Config config; config.mTuneFile = tuneFile.Data(); + config.mSignalFile = signalFile.Data(); // Use the Grid process ID as the Ditto seed when available. // Outside the Grid, seed 0 is used. - if (const char* alienProcId = std::getenv("ALIEN_PROC_ID")) { + if (const char *alienProcId = std::getenv("ALIEN_PROC_ID")) + { config.mSeed = static_cast(std::strtoull(alienProcId, nullptr, 10)); - } else { + } + else + { config.mSeed = static_cast(std::time(nullptr)); } @@ -58,7 +63,7 @@ class GeneratorDittoMC : public o2::eventgen::GeneratorPythia8 Ditto::Generator mGenerator; }; -FairGenerator* generator_DittoMC(const TString& tuneFile) +FairGenerator *generator_DittoMC(const TString &tuneFile, const TString &signalFile = "") { - return new GeneratorDittoMC(tuneFile); + return new GeneratorDittoMC(tuneFile, signalFile); }