25 TMCThreadLocal TVirtualMCApplication *TVirtualMCApplication::fgInstance =
nullptr;
26 Bool_t TVirtualMCApplication::fLockMultiThreading = kFALSE;
33 TVirtualMCApplication::TVirtualMCApplication(
const char *name,
const char *title) : TNamed(name, title)
36 ::Fatal(
"TVirtualMCApplication::TVirtualMCApplication",
"Attempt to create two instances of singleton.");
40 if (fLockMultiThreading) {
41 ::Fatal(
"TVirtualMCApplication::TVirtualMCApplication",
"In multi-engine run ==> multithreading is disabled.");
56 TVirtualMCApplication::TVirtualMCApplication() : TNamed()
68 TVirtualMCApplication::~TVirtualMCApplication()
81 TVirtualMCApplication *TVirtualMCApplication::Instance()
91 void TVirtualMCApplication::RequestMCManager()
93 fMCManager =
new TMCManager();
94 fMCManager->Register(
this);
95 fMCManager->ConnectEnginePointer(&fMC);
96 fLockMultiThreading = kTRUE;
104 void TVirtualMCApplication::Register(TVirtualMC *mc)
107 if (fMC && !fMCManager) {
108 Fatal(
"Register",
"Attempt to register a second TVirtualMC which "
113 fMCManager->Register(mc);
122 TVirtualMC *TVirtualMCApplication::GetMC()
const