13#include "TVirtualMC.h"
14#include <fairlogger/Logger.h>
19void VMCSeederService::initSeederFunction(
TVirtualMC const* vmc)
21 if (strcmp(vmc->GetName(),
"TGeant3TGeo") == 0) {
24 }
else if (strcmp(vmc->GetName(),
"TGeant4") == 0) {
26 std::string G4func(
"std::function<void()> G4func() { gSystem->Load(\"libgeant4vmc\"); return [](){ ((TGeant4*)TVirtualMC::GetMC())->SetRandomSeed(); };}");
27 mSeederFcn = o2::conf::JITAndEvalFunction<SeederFcn>(G4func,
"G4func()",
"std::function<void()>",
"VMCSEEDERFUNC123");
29 LOG(warn) <<
"Unknown VMC engine or unimplemented VMC seeding function";
35VMCSeederService::VMCSeederService()
37 auto vmc = TVirtualMC::GetMC();
39 LOG(info) <<
"Seeder initializing for " << vmc->GetName();
40 initSeederFunction(vmc);
42 LOG(fatal) <<
" Seeder could not be initialized (no VMC instance found)";
LOG(info)<< "Compressed in "<< sw.CpuTime()<< " s"