Skip to content

Commit 5eeeec4

Browse files
committed
Remove superfluous seeding code for GeneratorPythia8 generators
This commit harmonizes the seeding procedure of generators based on o2::eventgen::GeneratorPythia8, following a development done in O2 (AliceO2Group/AliceO2#13281) In principle, o2::eventgen::GeneratorPythia8 now performs it's own seeding within the Init function. This seeding makes sure to integrate with the `--seed` command line option of our event generation executable. The commit: * Removes seeding code in O2DPG when it would override the default behaviour from O2. * Uses a new dedicated function `setInitialSeed` instead of manipulating Pythia8 with config strings (in situations in which the user targets seeding based on ALIEN_PROC_ID for instance). * Ensures that event generation becomes more repeatable in situations when the same `--seed` is given to the event generation executable. This may help to debug crashes on the GRID etc.
1 parent 121572c commit 5eeeec4

22 files changed

+24
-189
lines changed

MC/config/PWGDQ/external/generator/GeneratorBeautyToJpsi_EvtGen.C

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,7 @@ FairGenerator*
3232
printf("PDG %d \n", std::stoi(spdg));
3333
}
3434
gen->SetForceDecay(kEvtBJpsiDiElectron);
35-
36-
// set random seed
37-
gen->readString("Random:setSeed on");
38-
uint random_seed;
39-
unsigned long long int random_value = 0;
40-
ifstream urandom("/dev/urandom", ios::in|ios::binary);
41-
urandom.read(reinterpret_cast<char*>(&random_value), sizeof(random_seed));
42-
gen->readString(Form("Random:seed = %d", random_value % 900000001));
43-
35+
4436
// print debug
4537
// gen->PrintDebug();
4638

@@ -70,13 +62,6 @@ FairGenerator*
7062
printf("PDG %d \n", std::stoi(spdg));
7163
}
7264
gen->SetForceDecay(kEvtBJpsiDiMuon);
73-
// set random seed
74-
gen->readString("Random:setSeed on");
75-
uint random_seed;
76-
unsigned long long int random_value = 0;
77-
ifstream urandom("/dev/urandom", ios::in|ios::binary);
78-
urandom.read(reinterpret_cast<char*>(&random_value), sizeof(random_seed));
79-
gen->readString(Form("Random:seed = %d", random_value % 900000001));
8065
// print debug
8166
// gen->PrintDebug();
8267

MC/config/PWGDQ/external/generator/GeneratorBeautyToMu_EvtGen.C

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,6 @@ GeneratorBeautyToMu_EvtGenFwdY(double rapidityMin = -4.3, double rapidityMax = -
3232
}
3333
if(forcedecay) gen->SetForceDecay(kEvtSemiMuonic);
3434
else gen->SetForceDecay(kEvtAll);
35-
// set random seed
36-
gen->readString("Random:setSeed on");
37-
uint random_seed;
38-
unsigned long long int random_value = 0;
39-
ifstream urandom("/dev/urandom", ios::in|ios::binary);
40-
urandom.read(reinterpret_cast<char*>(&random_value), sizeof(random_seed));
41-
gen->readString(Form("Random:seed = %d", random_value % 900000001));
4235
// print debug
4336
// gen->PrintDebug();
4437

MC/config/PWGDQ/external/generator/GeneratorBeautyToPsiAndJpsi_EvtGen.C

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,6 @@ FairGenerator*
3232
printf("PDG %d \n", std::stoi(spdg));
3333
}
3434
gen->SetForceDecay(kEvtBPsiAndJpsiDiElectron);
35-
36-
// set random seed
37-
gen->readString("Random:setSeed on");
38-
uint random_seed;
39-
unsigned long long int random_value = 0;
40-
ifstream urandom("/dev/urandom", ios::in|ios::binary);
41-
urandom.read(reinterpret_cast<char*>(&random_value), sizeof(random_seed));
42-
gen->readString(Form("Random:seed = %d", random_value % 900000001));
43-
4435
// print debug
4536
// gen->PrintDebug();
4637

@@ -70,13 +61,6 @@ FairGenerator*
7061
printf("PDG %d \n", std::stoi(spdg));
7162
}
7263
gen->SetForceDecay(kEvtBPsiAndJpsiDiMuon);
73-
// set random seed
74-
gen->readString("Random:setSeed on");
75-
uint random_seed;
76-
unsigned long long int random_value = 0;
77-
ifstream urandom("/dev/urandom", ios::in|ios::binary);
78-
urandom.read(reinterpret_cast<char*>(&random_value), sizeof(random_seed));
79-
gen->readString(Form("Random:seed = %d", random_value % 900000001));
8064
// print debug
8165
// gen->PrintDebug();
8266

MC/config/PWGDQ/external/generator/GeneratorBeautyToPsi_EvtGen.C

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,6 @@ FairGenerator*
3232
printf("PDG %d \n", std::stoi(spdg));
3333
}
3434
gen->SetForceDecay(kEvtBPsiDiElectron);
35-
// set random seed
36-
gen->readString("Random:setSeed on");
37-
uint random_seed;
38-
unsigned long long int random_value = 0;
39-
ifstream urandom("/dev/urandom", ios::in|ios::binary);
40-
urandom.read(reinterpret_cast<char*>(&random_value), sizeof(random_seed));
41-
gen->readString(Form("Random:seed = %d", random_value % 900000001));
4235
// print debug
4336
// gen->PrintDebug();
4437

@@ -68,13 +61,6 @@ FairGenerator*
6861
printf("PDG %d \n", std::stoi(spdg));
6962
}
7063
gen->SetForceDecay(kEvtBPsiDiMuon);
71-
// set random seed
72-
gen->readString("Random:setSeed on");
73-
uint random_seed;
74-
unsigned long long int random_value = 0;
75-
ifstream urandom("/dev/urandom", ios::in|ios::binary);
76-
urandom.read(reinterpret_cast<char*>(&random_value), sizeof(random_seed));
77-
gen->readString(Form("Random:seed = %d", random_value % 900000001));
7864
// print debug
7965
// gen->PrintDebug();
8066

MC/config/PWGDQ/external/generator/GeneratorBplusToJpsiKaon_EvtGen.C

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,6 @@ FairGenerator*
3333
gen->SetDecayTable(Form("%s/BPLUSTOKAONJPSITOELE.DEC", pathO2.Data()));
3434
// print debug
3535
// gen->PrintDebug();
36-
// set random seed
37-
gen->readString("Random:setSeed on");
38-
uint random_seed;
39-
unsigned long long int random_value = 0;
40-
ifstream urandom("/dev/urandom", ios::in|ios::binary);
41-
urandom.read(reinterpret_cast<char*>(&random_value), sizeof(random_seed));
42-
gen->readString(Form("Random:seed = %d", random_value % 900000001));
43-
36+
4437
return gen;
4538
}

MC/config/PWGDQ/external/generator/GeneratorCharmToMu_EvtGen.C

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,6 @@ GeneratorCharmToMu_EvtGenFwdY(double rapidityMin = -4.3, double rapidityMax = -2
3131
printf("PDG %d \n",std::stoi(spdg));
3232
}
3333
gen->SetForceDecay(kEvtSemiMuonic);
34-
// set random seed
35-
gen->readString("Random:setSeed on");
36-
uint random_seed;
37-
unsigned long long int random_value = 0;
38-
ifstream urandom("/dev/urandom", ios::in|ios::binary);
39-
urandom.read(reinterpret_cast<char*>(&random_value), sizeof(random_seed));
40-
gen->readString(Form("Random:seed = %d", random_value % 900000001));
4134
// print debug
4235
// gen->PrintDebug();
4336

MC/config/PWGDQ/external/generator/generator_pythia8_NonPromptSignals_gaptriggered_dq.C

Lines changed: 10 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public:
6464

6565
protected:
6666

67-
Bool_t generateEvent() override
67+
Bool_t generateEvent() override
6868
{
6969
// reset event
7070
bool genOk = false;
@@ -90,13 +90,15 @@ Bool_t generateEvent() override
9090
return true;
9191
}
9292

93-
Bool_t Init() override
93+
Bool_t Init() override
9494
{
95-
if(mConfigMBdecays.Contains("cfg")) pythiaMBgen.readFile(mConfigMBdecays.Data());
96-
GeneratorPythia8::Init();
97-
pythiaMBgen.init();
98-
return true;
99-
}
95+
if(mConfigMBdecays.Contains("cfg")) {
96+
pythiaMBgen.readFile(mConfigMBdecays.Data());
97+
}
98+
GeneratorPythia8::Init();
99+
pythiaMBgen.init();
100+
return true;
101+
}
100102

101103
// search for q-qbar mother with at least one q in a selected rapidity window
102104
bool findHeavyQuarkPair(Pythia8::Event& event)
@@ -181,14 +183,6 @@ FairGenerator*
181183
}
182184
gen->SetForceDecay(kEvtBJpsiDiElectron);
183185

184-
// set random seed
185-
gen->readString("Random:setSeed on");
186-
uint random_seed;
187-
unsigned long long int random_value = 0;
188-
ifstream urandom("/dev/urandom", ios::in|ios::binary);
189-
urandom.read(reinterpret_cast<char*>(&random_value), sizeof(random_seed));
190-
gen->readString(Form("Random:seed = %d", random_value % 900000001));
191-
192186
// print debug
193187
// gen->PrintDebug();
194188

@@ -219,14 +213,6 @@ FairGenerator*
219213
}
220214
gen->SetForceDecay(kEvtBPsiAndJpsiDiElectron);
221215

222-
// set random seed
223-
gen->readString("Random:setSeed on");
224-
uint random_seed;
225-
unsigned long long int random_value = 0;
226-
ifstream urandom("/dev/urandom", ios::in|ios::binary);
227-
urandom.read(reinterpret_cast<char*>(&random_value), sizeof(random_seed));
228-
gen->readString(Form("Random:seed = %d", random_value % 900000001));
229-
230216
// print debug
231217
// gen->PrintDebug();
232218

@@ -261,15 +247,7 @@ FairGenerator*
261247
//gen->SetDecayTable(Form("%s/BPLUSTOKAONJPSITOELE.DEC", pathO2.Data()));
262248
gen->SetDecayTable(Form("%s/BPLUSTOKAONJPSITOELEALLMODES.DEC", pathO2.Data())); // decay table including decay modes for correlated background
263249
// print debug
264-
// gen->PrintDebug();
265-
// set random seed
266-
gen->readString("Random:setSeed on");
267-
uint random_seed;
268-
unsigned long long int random_value = 0;
269-
ifstream urandom("/dev/urandom", ios::in|ios::binary);
270-
urandom.read(reinterpret_cast<char*>(&random_value), sizeof(random_seed));
271-
gen->readString(Form("Random:seed = %d", random_value % 900000001));
272-
250+
// gen->PrintDebug();
273251
return gen;
274252
}
275253

@@ -298,14 +276,6 @@ FairGenerator*
298276
}
299277
gen->SetForceDecay(kEvtBJpsiDiMuon);
300278

301-
// set random seed
302-
gen->readString("Random:setSeed on");
303-
uint random_seed;
304-
unsigned long long int random_value = 0;
305-
ifstream urandom("/dev/urandom", ios::in|ios::binary);
306-
urandom.read(reinterpret_cast<char*>(&random_value), sizeof(random_seed));
307-
gen->readString(Form("Random:seed = %d", random_value % 900000001));
308-
309279
// print debug
310280
// gen->PrintDebug();
311281

@@ -337,17 +307,8 @@ FairGenerator*
337307
}
338308
gen->SetForceDecay(kEvtBPsiAndJpsiDiMuon);
339309

340-
// set random seed
341-
gen->readString("Random:setSeed on");
342-
uint random_seed;
343-
unsigned long long int random_value = 0;
344-
ifstream urandom("/dev/urandom", ios::in|ios::binary);
345-
urandom.read(reinterpret_cast<char*>(&random_value), sizeof(random_seed));
346-
gen->readString(Form("Random:seed = %d", random_value % 900000001));
347-
348310
// print debug
349311
// gen->PrintDebug();
350-
351312
return gen;
352313
}
353314

MC/config/PWGEM/external/generator/GeneratorBeautyToEle_EvtGen.C

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,6 @@ GeneratorBeautyToEle_EvtGen(double rapidityMin = -2., double rapidityMax = 2., b
3434
if(forcedecay) gen->SetForceDecay(kEvtSemiElectronic);
3535
else gen->SetForceDecay(kEvtAll);
3636
//}
37-
// set random seed
38-
gen->readString("Random:setSeed on");
39-
uint random_seed;
40-
unsigned long long int random_value = 0;
41-
ifstream urandom("/dev/urandom", ios::in|ios::binary);
42-
urandom.read(reinterpret_cast<char*>(&random_value), sizeof(random_seed));
43-
gen->readString(Form("Random:seed = %d", random_value % 900000001));
4437
// print debug
4538
// gen->PrintDebug();
4639

MC/config/PWGEM/external/generator/GeneratorCharmToEle_EvtGen.C

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,6 @@ GeneratorCharmToEle_EvtGen(double rapidityMin = -2., double rapidityMax = 2., bo
3131
printf("PDG %d \n",std::stoi(spdg));
3232
}
3333
gen->SetForceDecay(kEvtSemiElectronic);
34-
// set random seed
35-
gen->readString("Random:setSeed on");
36-
uint random_seed;
37-
unsigned long long int random_value = 0;
38-
ifstream urandom("/dev/urandom", ios::in|ios::binary);
39-
urandom.read(reinterpret_cast<char*>(&random_value), sizeof(random_seed));
40-
gen->readString(Form("Random:seed = %d", random_value % 900000001));
4134
// print debug
4235
// gen->PrintDebug();
4336

MC/config/PWGEM/external/generator/GeneratorHFToEleFull_EvtGen.C

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,6 @@ GeneratorHFToEleFull_EvtGen(bool forcedecay = true, bool allHF = true)
3333
}
3434
if(forcedecay) gen->SetForceDecay(kEvtSemiElectronic);
3535
else gen->SetForceDecay(kEvtAll);
36-
// set random seed
37-
gen->readString("Random:setSeed on");
38-
uint random_seed;
39-
unsigned long long int random_value = 0;
40-
ifstream urandom("/dev/urandom", ios::in|ios::binary);
41-
urandom.read(reinterpret_cast<char*>(&random_value), sizeof(random_seed));
42-
gen->readString(Form("Random:seed = %d", random_value % 900000001));
4336
// print debug
4437
// gen->PrintDebug();
4538

0 commit comments

Comments
 (0)