29#include <G4ApplicationState.hh>
30#include <G4StateManager.hh>
31#include <G4Threading.hh>
32#include <G4VisExecutive.hh>
34#include <TVirtualMCGeometry.h>
48Bool_t CheckApplicationState(
const TString& methodName,
50 Bool_t allowSooner =
false, Bool_t allowJustAfter =
false)
59 if (currentState != requiredState &&
60 !((allowLater && currentState > requiredState) ||
61 (allowLater && previousState >= requiredState)) &&
62 !((allowSooner && currentState < requiredState) ||
63 (allowSooner && previousState <= requiredState)) &&
64 !(allowJustAfter && previousState == requiredState)) {
67 TString(
"MC::") + methodName +
68 +TString(
" can be called only from VMCApplication::") +
69 TString(stateManager->
GetStateName(requiredState).c_str());
70 if (allowLater) message += TString(
" or after");
71 if (allowSooner) message += TString(
" or before");
72 if (allowJustAfter) message += TString(
" or just after");
74 TString(
"while detected in VMCApplication::") +
75 TString(stateManager->
GetStateName(currentState).c_str());
77 message += TString(
" after VMCApplication::") +
78 TString(stateManager->
GetStateName(previousState).c_str());
88Bool_t CheckG4ApplicationState(
const TString& methodName,
89 G4ApplicationState requiredState, Bool_t allowLater =
false)
95 G4ApplicationState currentState =
96 G4StateManager::GetStateManager()->GetCurrentState();
98 if (currentState != requiredState &&
99 !(allowLater && currentState > requiredState)) {
102 static std::vector<TString> g4StateNames;
103 g4StateNames.push_back(
"G4State_PreInit");
104 g4StateNames.push_back(
"G4State_Init");
105 g4StateNames.push_back(
"G4State_Idle");
106 g4StateNames.push_back(
"G4State_GeomClosed");
107 g4StateNames.push_back(
"G4State_EventProc");
108 g4StateNames.push_back(
"G4State_Quit");
109 g4StateNames.push_back(
"G4State_Abort");
111 TString message = TString(
"MC::") + methodName +
112 +TString(
" can be called only when Geant4 is in state ") +
113 g4StateNames[requiredState];
114 if (allowLater) message += TString(
" or later");
116 g4StateNames[currentState];
131 <<
"============================================================="
132 << G4endl <<
" Geant4 Virtual Monte Carlo " << G4endl <<
" Version "
134 << G4endl <<
" WWW : http://root.cern.ch/drupal/content/geant4-vmc"
136 <<
"============================================================="
154 fRunConfiguration(configuration),
158 fUserGeometry(configuration->GetUserGeometry()),
159 fIsMT(configuration->IsMTApplication())
165 G4bool isMaster = !G4Threading::IsWorkerThread();
172 if (G4Threading::G4GetThreadId() == -2) {
177 TString newTitle = title;
178 newTitle.Append(
" : ");
231 G4cout <<
"Debug mode is switched on." << G4endl;
245 G4bool isMaster = !G4Threading::IsWorkerThread();
292 Float_t& dens, Float_t& radl, Float_t& absl, Float_t* ubuf, Int_t& nbuf)
297 imat, name, a, z, dens, radl, absl, ubuf, nbuf);
302 Double_t& dens, Double_t& radl, Double_t& absl, Double_t* ubuf, Int_t& nbuf)
307 imat, name, a, z, dens, radl, absl, ubuf, nbuf);
321 Double_t dens, Double_t radl, Double_t absl, Float_t* buf, Int_t nwbuf)
331 kmat, name, a, z, dens, radl, absl, buf, nwbuf);
336 Double_t dens, Double_t radl, Double_t absl, Double_t* buf, Int_t nwbuf)
346 kmat, name, a, z, dens, radl, absl, buf, nwbuf);
351 Double_t dens, Int_t nlmat, Float_t* wmat)
361 kmat, name, a, z, dens, nlmat, wmat);
363#if (defined(USE_ROOT_VMC) && (ROOT_VERSION_CODE < ROOT_VERSION(6, 18, 5)))
366 if (nlmat > 0)
return;
368 G4cout <<
"TGeant4::Mixture: work-around for updating wmat values"
372 for (G4int i = 0; i < nmat; ++i) {
373 amol += a[i] * wmat[i];
375 for (G4int i = 0; i < nmat; i++) {
376 wmat[i] *= a[i] / amol;
384 Double_t dens, Int_t nlmat, Double_t* wmat)
394 kmat, name, a, z, dens, nlmat, wmat);
399 Int_t ifield, Double_t fieldm, Double_t tmaxfd, Double_t stemax,
400 Double_t deemax, Double_t epsil, Double_t stmin, Float_t* ubuf, Int_t nbuf)
410 fieldm, tmaxfd, stemax, deemax, epsil, stmin, ubuf, nbuf);
415 Int_t ifield, Double_t fieldm, Double_t tmaxfd, Double_t stemax,
416 Double_t deemax, Double_t epsil, Double_t stmin, Double_t* ubuf, Int_t nbuf)
426 fieldm, tmaxfd, stemax, deemax, epsil, stmin, ubuf, nbuf);
431 Double_t thetaY, Double_t phiY, Double_t thetaZ, Double_t phiZ)
440 krot, thetaX, phiX, thetaY, phiY, thetaZ, phiZ);
445 const char* name,
const char* shape, Int_t nmed, Double_t* upar, Int_t np)
456 const char* name,
const char* shape, Int_t nmed, Float_t* upar, Int_t np)
467 const char* name,
const char* mother, Int_t ndiv, Int_t iaxis)
478 Int_t iaxis, Double_t c0i, Int_t numed)
485 name, mother, ndiv, iaxis, c0i, numed);
490 Int_t iaxis, Int_t numed, Int_t ndvmx)
497 name, mother, step, iaxis, numed, ndvmx);
502 Int_t iaxis, Double_t c0, Int_t numed, Int_t ndvmx)
509 name, mother, step, iaxis, c0, numed, ndvmx);
524 Double_t y, Double_t z, Int_t irot,
const char* konly)
531 name, nr, mother, x, y, z, irot, konly);
536 Double_t y, Double_t z, Int_t irot,
const char* konly, Double_t* upar,
545 name, nr, mother, x, y, z, irot, konly, upar, np);
550 Double_t y, Double_t z, Int_t irot,
const char* konly, Float_t* upar,
559 name, nr, mother, x, y, z, irot, konly, upar, np);
576 Float_t* absco, Float_t* effic, Float_t* rindex, Bool_t aspline,
584 itmed, npckov, ppckov, absco, effic, rindex, aspline, rspline);
589 Double_t* absco, Double_t* effic, Double_t* rindex, Bool_t aspline,
597 itmed, npckov, ppckov, absco, effic, rindex, aspline, rspline);
602 EMCOpSurfaceType surfaceType, EMCOpSurfaceFinish surfaceFinish,
610 name, model, surfaceType, surfaceFinish, sigmaAlpha);
615 int vol1CopyNo,
const char* vol2Name,
int vol2CopyNo,
616 const char* opSurfaceName)
623 name, vol1Name, vol1CopyNo, vol2Name, vol2CopyNo, opSurfaceName);
628 const char* name,
const char* volName,
const char* opSurfaceName)
635 name, volName, opSurfaceName);
640 Int_t np, Double_t* pp, Double_t* values, Bool_t createNewKey, Bool_t spline)
648 itmed, propertyName, np, pp, values, createNewKey, spline);
653 Int_t itmed,
const char* propertyName, Double_t value)
661 itmed, propertyName, value);
666 const char* propertyName, Int_t np, Double_t* pp, Double_t* values,
667 Bool_t createNewKey, Bool_t spline)
675 surfaceName, propertyName, np, pp, values, createNewKey, spline);
680 const TString& volumePath, TGeoHMatrix& matrix)
686 if (!CheckApplicationState(
"GetTransformation",
kInitGeometry,
true))
695 const TString& volumePath, TString& shapeType, TArrayD& par)
700 if (!CheckApplicationState(
"GetShape",
kInitGeometry,
true))
return false;
703 volumePath, shapeType, par);
708 Double_t& density, Double_t& radl, Double_t& inter, TArrayD& par)
714 imat, name, a, z, density, radl, inter, par);
719 Int_t& imat, Double_t& a, Double_t& z, Double_t& density, Double_t& radl,
720 Double_t& inter, TArrayD& par)
725 if (!CheckApplicationState(
"GetMaterial",
kInitGeometry,
true))
return false;
728 volumeName, name, imat, a, z, density, radl, inter, par);
733 Int_t& nmat, Int_t& isvol, Int_t& ifield, Double_t& fieldm, Double_t& tmaxfd,
734 Double_t& stemax, Double_t& deemax, Double_t& epsil, Double_t& stmin,
740 if (!CheckApplicationState(
"GetMedium",
kInitGeometry,
true))
return false;
743 nmat, isvol, ifield, fieldm, tmaxfd, stemax, deemax, epsil, stmin, par);
769 if (!CheckApplicationState(
"SetUserParameters",
kInitGeometry,
false,
true))
780 if (!CheckApplicationState(
"VolId",
kInitGeometry,
true))
return 0;
792 if (!CheckApplicationState(
"VolName",
kInitGeometry,
true))
return "";
806 if (!CheckApplicationState(
"MediumId", requiredState,
true))
return 0;
817 if (!CheckApplicationState(
"NofVolumes",
kInitGeometry,
true))
return 0;
827 if (!CheckApplicationState(
"NofVolDaughters",
kInitGeometry,
true))
return 0;
837 if (!CheckApplicationState(
"VolDaughterName",
kInitGeometry,
true))
return "";
847 if (!CheckApplicationState(
"VolDaughterCopyNo",
kInitGeometry,
true))
858 if (!CheckApplicationState(
"VolId2Mate",
kInitGeometry,
true))
return 0;
869 const TString& volName, TVirtualMCSensitiveDetector* sd)
871 if (!CheckApplicationState(
"SetSensitiveDetector",
kConstructSD))
return;
878 const TString& volName)
const
880 if (!CheckApplicationState(
"SetSensitiveDetector",
kConstructSD,
true))
889 if (!CheckApplicationState(
"SetSensitiveDetector",
kConstructSD,
true))
904 if (!CheckApplicationState(
"Gstpar",
kInitGeometry,
false,
false,
true))
915 if (!CheckApplicationState(
"SetCut",
kPreInit))
return false;
925 if (!CheckApplicationState(
"SetProcess",
kPreInit))
return false;
932 TMCParticleType , Double_t , Double_t ,
938 "Deprecated function: the function with long argument list should be used "
946 TMCParticleType mcType, Double_t mass, Double_t charge, Double_t lifetime,
947 const TString& pType, Double_t width, Int_t iSpin, Int_t iParity,
948 Int_t iConjugation, Int_t iIsospin, Int_t iIsospinZ, Int_t gParity,
949 Int_t lepton, Int_t baryon, Bool_t stable, Bool_t shortlived,
950 const TString& subType, Int_t antiEncoding, Double_t magMoment,
955 if (!CheckApplicationState(
"DefineParticle",
kAddParticles))
return false;
958 lifetime, pType, width, iSpin, iParity, iConjugation, iIsospin, iIsospinZ,
959 gParity, lepton, baryon, stable, shortlived, subType, antiEncoding,
960 magMoment, excitation);
965 Double_t excEnergy, Double_t mass)
970 if (!CheckApplicationState(
"DefineIon",
kAddIons))
return false;
982 !CheckApplicationState(
"SetUserDecay",
kAddIons))
993 if (!CheckApplicationState(
"SetDecayMode",
kAddParticles))
return false;
1012 if (!CheckG4ApplicationState(
"IdFromPDG", G4State_Idle,
true))
return 0;
1023 if (!CheckG4ApplicationState(
"PDGFromId", G4State_Idle,
true))
return 0;
1033 if (!CheckG4ApplicationState(
"ParticleName", G4State_Idle,
true))
return "";
1043 if (!CheckG4ApplicationState(
"ParticleName", G4State_Idle,
true))
return 0;
1053 if (!CheckG4ApplicationState(
"ParticleCharge", G4State_Idle,
true))
return 0;
1063 if (!CheckG4ApplicationState(
"ParticleLifeTime", G4State_Idle,
true))
1074 if (!CheckG4ApplicationState(
"ParticleMCType", G4State_Idle,
true))
1075 return kPTUndefined;
1107 Double_t psi, Double_t u0, Double_t v0, Double_t ul, Double_t vl)
1289 Double_t , Double_t , Double_t , Double_t ,
Definition of the enumeration TG4ApplicationState.
Definition of the TG4GeometryManager class.
Definition of the TG4Globals class and basic container types.
Definition of the TG4OpGeometryManager class.
Definition of the TG4PhysicsManager class.
Definition of the TG4RunConfiguration class.
Definition of the TG4RunManager.h class.
Definition of the TG4SDManager class.
Definition of the TG4StateManager class.
Definition of the TG4StepManager class.
Definition of the code version and release date.
#define GEANT4_VMC_RELEASE_DATE
#define GEANT4_VMC_RELEASE
Definition of the TG4VisManager class.
Definition of the TGeant4 class.
The manager class for building Geant4 geometry depending on a selected user input.
TVirtualMCGeometry * GetMCGeometry() const
void SetIsUserMaxStep(G4bool isUserMaxStep)
TG4OpGeometryManager * GetOpManager() const
static void Warning(const TString &className, const TString &methodName, const TString &text)
virtual void SetCerenkov(Int_t itmed, Int_t npckov, Float_t *ppckov, Float_t *absco, Float_t *effic, Float_t *rindex, Bool_t aspline, Bool_t rspline)
virtual Bool_t GetMaterial(Int_t imat, TString &name, Double_t &a, Double_t &z, Double_t &density, Double_t &radl, Double_t &inter, TArrayD &par)
virtual void SetMaterialProperty(Int_t itmed, const char *propertyName, Int_t np, Double_t *pp, Double_t *values, Bool_t createNewKey, Bool_t spline)
virtual void Gfmate(Int_t imat, char *name, Float_t &a, Float_t &z, Float_t &dens, Float_t &radl, Float_t &absl, Float_t *ubuf, Int_t &nbuf)
virtual void SetSkinSurface(const char *name, const char *volName, const char *opSurfaceName)
virtual void SetBorderSurface(const char *name, const char *vol1Name, int vol1CopyNo, const char *vol2Name, int vol2CopyNo, const char *opSurfaceName)
virtual void DefineOpSurface(const char *name, EMCOpSurfaceModel model, EMCOpSurfaceType surfaceType, EMCOpSurfaceFinish surfaceFinish, Double_t sigmaAlpha)
Geant4 implementation of the TVirtualMC interface methods for building Geant4 physics and access to i...
Bool_t SetDecayMode(Int_t pdg, Float_t bratio[6], Int_t mode[6][3])
Double_t ParticleCharge(Int_t pdg) const
TMCParticleType ParticleMCType(Int_t pdg) const
Int_t PDGFromId(Int_t mcID) const
Double_t ParticleMass(Int_t pdg) const
Double_t ParticleLifeTime(Int_t pdg) const
Bool_t SetCut(const char *cutName, Float_t cutValue)
void SetUserDecay(Int_t pdg)
TString ParticleName(Int_t pdg) const
Bool_t DefineIon(const char *name, Int_t Z, Int_t A, Int_t Q, Double_t excEnergy, Double_t mass)
Bool_t SetProcess(const char *controlName, Int_t controlValue)
Int_t IdFromPDG(Int_t pdgID) const
Bool_t DefineParticle(Int_t pdg, const char *name, TMCParticleType mcType, Double_t mass, Double_t charge, Double_t lifetime, const TString &pType, Double_t width, Int_t iSpin, Int_t iParity, Int_t iConjugation, Int_t iIsospin, Int_t iIsospinZ, Int_t gParity, Int_t lepton, Int_t baryon, Bool_t stable, Bool_t shortlived=kFALSE, const TString &subType="", Int_t antiEncoding=0, Double_t magMoment=0.0, Double_t excitation=0.0)
Float_t Xsec(char *reac, Float_t energy, Int_t part, Int_t mate)
void Gstpar(Int_t itmed, const char *param, Float_t parval)
Takes care of creating Geant4 user action classes using VMC.
TString GetPhysicsListSelection() const
Return physics list selection.
Geant4 implementation of the TVirtualMC interface methods for access to Geant4 at run level.
void ProcessGeantCommand(G4String command)
void SetRandomSeed()
picks up random seed from ROOT gRandom and propagates to Geant4
Bool_t SecondariesAreOrdered() const
Int_t CurrentEvent() const
void ProcessGeantMacro(G4String macroName)
Bool_t ProcessRun(G4int nofEvents)
Geant4 implementation of the TVirtualMC interface methods for access to Geant4 geometry related with ...
Int_t NofVolDaughters(const char *volName) const
const char * VolDaughterName(const char *volName, Int_t i) const
TVirtualMCSensitiveDetector * GetSensitiveDetector(const TString &volName) const
void SetSensitiveDetector(const TString &volName, TVirtualMCSensitiveDetector *sd)
void SetExclusiveSDScoring(Bool_t exclusiveSDScoring)
Int_t VolDaughterCopyNo(const char *volName, Int_t i) const
const char * VolName(Int_t id) const
Int_t VolId(const Text_t *volName) const
Int_t VolId2Mate(Int_t volumeId) const
The manager class for application state.
TG4ApplicationState GetPreviousState() const
static G4String GetStateName(TG4ApplicationState state)
void SetNewState(TG4ApplicationState state)
static TG4StateManager * Instance()
TG4ApplicationState GetCurrentState() const
Geant4 implementation of the TVirtualMC interface methods for access to Geant4 at step level.
Bool_t IsCollectTracks() const
void SetCollectTracks(Bool_t collectTracks)
Visualization manager class.
void Gsatt(const char *name, const char *att, Int_t val)
void DrawOneSpec(const char *name)
void Gdraw(const char *name, Float_t theta, Float_t phi, Float_t psi, Float_t u0, Float_t v0, Float_t ul, Float_t vl)
Implementation of the TVirtualMC interface for Geant4.
virtual Int_t PDGFromId(Int_t mcID) const
virtual const char * VolDaughterName(const char *volName, Int_t i) const
virtual Bool_t SetProcess(const char *flagName, Int_t flagValue)
TG4StepManager * fStepManager
step manager
virtual Double_t Xsec(char *reac, Double_t energy, Int_t part, Int_t mate)
TG4StateManager * fStateManager
application state manager
TG4GeometryManager * fGeometryManager
geometry manager
virtual void Medium(Int_t &kmed, const char *name, Int_t nmat, Int_t isvol, Int_t ifield, Double_t fieldm, Double_t tmaxfd, Double_t stemax, Double_t deemax, Double_t epsil, Double_t stmin, Float_t *ubuf, Int_t nbuf)
Int_t fMediumCounter
global medium counter
virtual void BuildPhysics()
virtual void Material(Int_t &kmat, const char *name, Double_t a, Double_t z, Double_t dens, Double_t radl, Double_t absl, Float_t *buf, Int_t nwbuf)
virtual TMCParticleType ParticleMCType(Int_t pdg) const
static TVirtualMCApplication * fgMasterApplicationInstance
master application instance
TG4RunManager * fRunManager
run manager
virtual Double_t ParticleMass(Int_t pdg) const
virtual void Gsposp(const char *name, Int_t nr, const char *mother, Double_t x, Double_t y, Double_t z, Int_t irot, const char *konly, Double_t *upar, Int_t np)
virtual void SetMaterialProperty(Int_t itmed, const char *propertyName, Int_t np, Double_t *pp, Double_t *values, Bool_t createNewKey=false, Bool_t spline=false)
virtual Bool_t GetShape(const TString &volumePath, TString &shapeType, TArrayD &par)
virtual void Gdraw(const char *, Double_t theta, Double_t phi, Double_t psi, Double_t u0, Double_t v0, Double_t ul, Double_t vl)
virtual Double_t ParticleLifeTime(Int_t pdg) const
Bool_t fIsMT
multi-threading mode
virtual void SetExclusiveSDScoring(Bool_t exclusiveSDScoring)
TG4PhysicsManager * fPhysicsManager
physics manager
virtual void WriteEuclid(const char *fileName, const char *topVol, Int_t number, Int_t nlevel)
virtual void Gfmate(Int_t imat, char *name, Float_t &a, Float_t &z, Float_t &dens, Float_t &radl, Float_t &absl, Float_t *ubuf, Int_t &nbuf)
virtual void Gsdvn(const char *name, const char *mother, Int_t ndiv, Int_t iaxis)
virtual Bool_t IsCollectTracks() const
virtual void SetUserDecay(Int_t)
virtual Bool_t DefineIon(const char *name, Int_t Z, Int_t A, Int_t Q, Double_t excEnergy, Double_t mass)
virtual void DefineOpSurface(const char *name, EMCOpSurfaceModel model, EMCOpSurfaceType surfaceType, EMCOpSurfaceFinish surfaceFinish, Double_t sigmaAlpha)
virtual void FinishGeometry()
Int_t fMatrixCounter
global matrix counter
virtual Int_t IdFromPDG(Int_t pdgID) const
virtual void ProcessEvent()
virtual Bool_t GetTransformation(const TString &volumePath, TGeoHMatrix &matrix)
virtual void Gdopt(const char *name, const char *value)
virtual void Gsdvt(const char *name, const char *mother, Double_t step, Int_t iaxis, Int_t numed, Int_t ndvmx)
virtual Int_t GetMedium() const
virtual void SetRootGeometry()
virtual void Gsdvt2(const char *name, const char *mother, Double_t step, Int_t iaxis, Double_t c0, Int_t numed, Int_t ndvmx)
virtual void Gckmat(Int_t itmed, char *natmed)
virtual const char * VolName(Int_t id) const
TG4RunConfiguration * fRunConfiguration
run configuration
virtual void SetClipBox(const char *name, Double_t xmin, Double_t xmax, Double_t ymin, Double_t ymax, Double_t zmin, Double_t zmax)
virtual void Gsatt(const char *name, const char *att, Int_t val)
virtual void SetSkinSurface(const char *name, const char *volName, const char *opSurfaceName)
virtual void DrawOneSpec(const char *name)
virtual void SetBorderSurface(const char *name, const char *vol1Name, int vol1CopyNo, const char *vol2Name, int vol2CopyNo, const char *opSurfaceName)
virtual Bool_t DefineParticle(Int_t pdg, const char *name, TMCParticleType mcType, Double_t mass, Double_t charge, Double_t lifetime)
virtual Bool_t SetDecayMode(Int_t pdg, Float_t bratio[6], Int_t mode[6][3])
virtual Bool_t GetMaterial(Int_t imat, TString &name, Double_t &a, Double_t &z, Double_t &density, Double_t &radl, Double_t &inter, TArrayD &par)
virtual void SetUserParameters(Bool_t isUserParameters)
virtual Int_t Gsvolu(const char *name, const char *shape, Int_t nmed, Double_t *upar, Int_t np)
virtual Int_t VolId2Mate(Int_t id) const
virtual Bool_t ProcessRun(Int_t nofEvents)
TString fUserGeometry
user geometry
G4VisExecutive * fVisExecutive
Geant4 visualization manager.
virtual void Gspos(const char *name, Int_t nr, const char *mother, Double_t x, Double_t y, Double_t z, Int_t irot, const char *konly="ONLY")
Int_t fMaterialCounter
global material counter
virtual Int_t MediumId(const Text_t *medName) const
TG4VisManager * fVisManager
visualization manager
virtual TString ParticleName(Int_t pdg) const
virtual void SetCollectTracks(Bool_t collectTracks)
virtual Bool_t SecondariesAreOrdered() const
void ProcessGeantCommand(const char *commandPath)
TG4SDManager * fSDManager
sensitive detectors manager
virtual void InitMT(Int_t threadRank)
TGeant4()
Not implemented.
virtual void Gsdvn2(const char *name, const char *mother, Int_t ndiv, Int_t iaxis, Double_t c0i, Int_t numed)
virtual void Gsord(const char *name, Int_t iax)
virtual void SetSensitiveDetector(const TString &volName, TVirtualMCSensitiveDetector *sd)
virtual Int_t VolId(const Text_t *volName) const
virtual Int_t NofVolumes() const
virtual Bool_t SetCut(const char *cutName, Double_t cutValue)
virtual Int_t CurrentEvent() const
void ProcessGeantMacro(const char *macroName)
virtual void SetCerenkov(Int_t itmed, Int_t npckov, Float_t *ppckov, Float_t *absco, Float_t *effic, Float_t *rindex, Bool_t aspline=false, Bool_t rspline=false)
virtual Int_t NofVolDaughters(const char *volName) const
virtual void Mixture(Int_t &kmat, const char *name, Float_t *a, Float_t *z, Double_t dens, Int_t nlmat, Float_t *wmat)
virtual Bool_t IsRootGeometrySupported() const
virtual void Gstpar(Int_t itmed, const char *param, Double_t parval)
virtual void DefaultRange()
TGeant4 * CloneForWorker() const
static TGeant4 * fgMasterInstance
master instance
virtual Int_t VolDaughterCopyNo(const char *volName, Int_t i) const
virtual void Gdman(Double_t u, Double_t v, const char *type)
virtual void Matrix(Int_t &krot, Double_t thetaX, Double_t phiX, Double_t thetaY, Double_t phiY, Double_t thetaZ, Double_t phiZ)
virtual TVirtualMCSensitiveDetector * GetSensitiveDetector(const TString &volName) const
virtual Double_t ParticleCharge(Int_t pdg) const
virtual void Gdhead(Int_t isel, const char *name, Double_t chrsiz)
virtual void Gsbool(const char *onlyVolName, const char *manyVolName)
TG4ApplicationState
Enumeration for application states.
@ kConstructSD
in ConstructSensitiveDetectors
@ kConstructGeometry
in ConstructGeometry
@ kAddParticles
in AddParticles
@ kNotInApplication
not in VMC application
@ kInitGeometry
in InitGeometry
@ kConstructOpGeometry
in ConstructOpGeometry