From f797e8ab0ab3cac8d4163478342aaf6d0d19d23d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Jacazio?= Date: Wed, 16 Sep 2026 21:15:55 +0200 Subject: [PATCH 1/3] Add DittoMC --- MC/config/ALICE3/ini/ditto_pp_136tev.ini | 6 ++ MC/config/ALICE3/pythia8/generator_DittoMC.C | 62 ++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 MC/config/ALICE3/ini/ditto_pp_136tev.ini create mode 100644 MC/config/ALICE3/pythia8/generator_DittoMC.C diff --git a/MC/config/ALICE3/ini/ditto_pp_136tev.ini b/MC/config/ALICE3/ini/ditto_pp_136tev.ini new file mode 100644 index 000000000..cefe555d6 --- /dev/null +++ b/MC/config/ALICE3/ini/ditto_pp_136tev.ini @@ -0,0 +1,6 @@ +[Diamond] +width[2]=6.0 + +[GeneratorExternal] +fileName=${O2DPG_MC_CONFIG_ROOT}/MC/config/ALICE3/pythia8/generator_DittoMC.C +funcName=generator_DittoMC("Ditto_tune_pythia8_inel_136tev.root") diff --git a/MC/config/ALICE3/pythia8/generator_DittoMC.C b/MC/config/ALICE3/pythia8/generator_DittoMC.C new file mode 100644 index 000000000..d454a9383 --- /dev/null +++ b/MC/config/ALICE3/pythia8/generator_DittoMC.C @@ -0,0 +1,62 @@ +#include "Ditto.h" + +#include +#include +#include +#include + +#if !defined(__CLING__) || defined(__ROOTCLING__) + +#include + +#include +#include + +#include +#include + +#endif + +// Ditto event generator + +class GeneratorDittoMC : public o2::eventgen::GeneratorPythia8 +{ + public: + /// Constructor + GeneratorDittoMC(const TString& tuneFile) : mGenerator(makeConfig(tuneFile)) + { + mPythia.readString("ProcessLevel:all = off"); + } + + bool generateEvent() override + { + mGenerator.generate(); + mGenerator.loadParticles(mPythia.event, true); + return true; + } + + /// Destructor + ~GeneratorDittoMC() = default; + + private: + static Ditto::Config makeConfig(const TString& tuneFile) + { + Ditto::Config config; + if (tuneFile.IsNull()) { + throw std::runtime_error("DITTO_TUNE_FILE must point to a Ditto tune file"); + } + config.tuneFile = tuneFile; + + const char* alienProcId = std::getenv("ALIEN_PROC_ID"); + config.seed = alienProcId ? static_cast(std::atoll(alienProcId)) : 0; + Printf("Using Ditto tune: %s and seed: %lu\n", config.tuneFile.c_str(), config.seed); + return config; + } + + Ditto::Generator mGenerator; +}; + +FairGenerator* generator_DittoMC(const TString& tuneFile) +{ + return new GeneratorDittoMC(tuneFile); +} From ac62decc6a1239fdf536191ef221213bb2699215 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Jacazio?= Date: Mon, 21 Sep 2026 14:55:01 +0200 Subject: [PATCH 2/3] Update ditto_pp_136tev.ini --- MC/config/ALICE3/ini/ditto_pp_136tev.ini | 3 --- 1 file changed, 3 deletions(-) diff --git a/MC/config/ALICE3/ini/ditto_pp_136tev.ini b/MC/config/ALICE3/ini/ditto_pp_136tev.ini index cefe555d6..eed87b70f 100644 --- a/MC/config/ALICE3/ini/ditto_pp_136tev.ini +++ b/MC/config/ALICE3/ini/ditto_pp_136tev.ini @@ -1,6 +1,3 @@ -[Diamond] -width[2]=6.0 - [GeneratorExternal] fileName=${O2DPG_MC_CONFIG_ROOT}/MC/config/ALICE3/pythia8/generator_DittoMC.C funcName=generator_DittoMC("Ditto_tune_pythia8_inel_136tev.root") From dc3262a7f33f130c5a17f008fe05f1c521bc6afa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Jacazio?= Date: Tue, 22 Sep 2026 17:14:08 +0200 Subject: [PATCH 3/3] Add test --- MC/config/ALICE3/ini/tests/ditto_pp_136tev.C | 1 + 1 file changed, 1 insertion(+) create mode 120000 MC/config/ALICE3/ini/tests/ditto_pp_136tev.C diff --git a/MC/config/ALICE3/ini/tests/ditto_pp_136tev.C b/MC/config/ALICE3/ini/tests/ditto_pp_136tev.C new file mode 120000 index 000000000..4103e578f --- /dev/null +++ b/MC/config/ALICE3/ini/tests/ditto_pp_136tev.C @@ -0,0 +1 @@ +pythia8_pp_ropes.C \ No newline at end of file