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