Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions MC/config/ALICE3/ini/ditto_oo_536tev.ini
Original file line number Diff line number Diff line change
@@ -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_OO_536.root")
2 changes: 1 addition & 1 deletion MC/config/ALICE3/ini/ditto_pbpb_536tev.ini
Original file line number Diff line number Diff line change
@@ -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")
4 changes: 4 additions & 0 deletions MC/config/ALICE3/ini/ditto_pbpb_536tev_inj.ini
Original file line number Diff line number Diff line change
@@ -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")
2 changes: 1 addition & 1 deletion MC/config/ALICE3/ini/ditto_pp_136tev.ini
Original file line number Diff line number Diff line change
@@ -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")
4 changes: 4 additions & 0 deletions MC/config/ALICE3/ini/ditto_pp_136tev_inj.ini
Original file line number Diff line number Diff line change
@@ -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")
23 changes: 14 additions & 9 deletions MC/config/ALICE3/pythia8/generator_DittoMC.C
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand All @@ -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::uint64_t>(std::strtoull(alienProcId, nullptr, 10));
} else {
}
else
{
config.mSeed = static_cast<std::uint64_t>(std::time(nullptr));
}

Expand All @@ -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);
}
Loading