32 TMCThreadLocal TVirtualMC *TVirtualMC::fgMC =
nullptr;
38 TVirtualMC::TVirtualMC(
const char *name,
const char *title, Bool_t )
39 : TNamed(name, title), fApplication(nullptr), fId(0), fStack(nullptr), fManagerStack(nullptr), fDecayer(nullptr),
40 fRandom(nullptr), fMagField(nullptr)
42 fApplication = TVirtualMCApplication::Instance();
45 fApplication->Register(
this);
47 ::Fatal(
"TVirtualMC::TVirtualMC",
"No user MC application is defined.");
58 TVirtualMC::TVirtualMC()
59 : TNamed(), fApplication(nullptr), fId(0), fStack(nullptr), fManagerStack(nullptr), fDecayer(nullptr),
60 fRandom(nullptr), fMagField(nullptr)
69 TVirtualMC::~TVirtualMC()
83 TVirtualMC *TVirtualMC::GetMC()
93 void TVirtualMC::SetStack(TVirtualMCStack *stack)
103 void TVirtualMC::SetExternalDecayer(TVirtualMCDecayer *decayer)
113 void TVirtualMC::SetRandom(TRandom *random)
124 void TVirtualMC::SetMagField(TVirtualMagField *field)
134 void TVirtualMC::ProcessEvent()
136 Warning(
"ProcessEvent",
"Not implemented.");
144 void TVirtualMC::ProcessEvent(Int_t eventId)
146 ProcessEvent(eventId, kFALSE);
154 Int_t TVirtualMC::StepNumber()
const
156 Warning(
"StepNumber",
"Not implemented.");
165 Double_t TVirtualMC::TrackWeight()
const
167 Warning(
"Weight",
"Not implemented.");
176 void TVirtualMC::TrackPolarization(Double_t &polX, Double_t &polY, Double_t &polZ)
const
178 Warning(
"Polarization",
"Not implemented.");
189 void TVirtualMC::TrackPolarization(TVector3 &pol)
const
191 Warning(
"Polarization",
"Not implemented.");
202 void TVirtualMC::SetId(UInt_t
id)
211 void TVirtualMC::SetManagerStack(TMCManagerStack *stack)
213 fManagerStack = stack;
225 void TVirtualMC::ProcessEvent(Int_t eventId, Bool_t isInterruptible)
227 const char *interruptibleText = isInterruptible ?
"interruptible" :
"non-interruptible";
228 Warning(
"ProcessInterruptibleEvent",
"Process %s event %i. Not implemented.", interruptibleText, eventId);
237 void TVirtualMC::InterruptTrack()
239 Warning(
"InterruptTrack",
"Not implemented.");