VMC Version 2.0
|
Abstract Monte Carlo interface. More...
#include <TVirtualMC.h>
Public Member Functions | |
TVirtualMC (const char *name, const char *title, Bool_t isRootGeometrySupported=kFALSE) | |
Standard constructor. | |
TVirtualMC () | |
Default constructor. | |
virtual | ~TVirtualMC () |
Destructor. | |
virtual Bool_t | IsRootGeometrySupported () const =0 |
Info about supporting geometry defined via Root. | |
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)=0 |
Define a material. | |
virtual void | Material (Int_t &kmat, const char *name, Double_t a, Double_t z, Double_t dens, Double_t radl, Double_t absl, Double_t *buf, Int_t nwbuf)=0 |
The same as previous but in double precision. | |
virtual void | Mixture (Int_t &kmat, const char *name, Float_t *a, Float_t *z, Double_t dens, Int_t nlmat, Float_t *wmat)=0 |
Define a mixture or a compound with a number kmat composed by the basic nlmat materials defined by arrays a, z and wmat. | |
virtual void | Mixture (Int_t &kmat, const char *name, Double_t *a, Double_t *z, Double_t dens, Int_t nlmat, Double_t *wmat)=0 |
The same as previous but in double precision. | |
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)=0 |
Define a medium. | |
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, Double_t *ubuf, Int_t nbuf)=0 |
The same as previous but in double precision. | |
virtual void | Matrix (Int_t &krot, Double_t thetaX, Double_t phiX, Double_t thetaY, Double_t phiY, Double_t thetaZ, Double_t phiZ)=0 |
Define a rotation matrix. | |
virtual void | Gstpar (Int_t itmed, const char *param, Double_t parval)=0 |
Change the value of cut or mechanism param to a new value parval for tracking medium itmed. | |
virtual Int_t | Gsvolu (const char *name, const char *shape, Int_t nmed, Float_t *upar, Int_t np)=0 |
Create a new volume. | |
virtual Int_t | Gsvolu (const char *name, const char *shape, Int_t nmed, Double_t *upar, Int_t np)=0 |
The same as previous but in double precision. | |
virtual void | Gsdvn (const char *name, const char *mother, Int_t ndiv, Int_t iaxis)=0 |
Create a new volume by dividing an existing one. | |
virtual void | Gsdvn2 (const char *name, const char *mother, Int_t ndiv, Int_t iaxis, Double_t c0i, Int_t numed)=0 |
Create a new volume by dividing an existing one. | |
virtual void | Gsdvt (const char *name, const char *mother, Double_t step, Int_t iaxis, Int_t numed, Int_t ndvmx)=0 |
Create a new volume by dividing an existing one Divide mother into divisions called name along axis iaxis in steps of step. | |
virtual void | Gsdvt2 (const char *name, const char *mother, Double_t step, Int_t iaxis, Double_t c0, Int_t numed, Int_t ndvmx)=0 |
Create a new volume by dividing an existing one Divides mother into divisions called name along axis iaxis starting at coordinate value c0 with step size step. | |
virtual void | Gsord (const char *name, Int_t iax)=0 |
Flag volume name whose contents will have to be ordered along axis iax, by setting the search flag to -iax (Geant3 only) | |
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")=0 |
Position a volume into an existing one. | |
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, Float_t *upar, Int_t np)=0 |
Place a copy of generic volume name with user number nr inside mother, with its parameters upar(1..np) | |
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)=0 |
The same as previous but in double precision. | |
virtual void | Gsbool (const char *onlyVolName, const char *manyVolName)=0 |
Helper function for resolving MANY. | |
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)=0 |
Define the tables for UV photon tracking in medium itmed. | |
virtual void | SetCerenkov (Int_t itmed, Int_t npckov, Double_t *ppckov, Double_t *absco, Double_t *effic, Double_t *rindex, Bool_t aspline=false, Bool_t rspline=false)=0 |
The same as previous but in double precision. | |
virtual void | DefineOpSurface (const char *name, EMCOpSurfaceModel model, EMCOpSurfaceType surfaceType, EMCOpSurfaceFinish surfaceFinish, Double_t sigmaAlpha)=0 |
Define the optical surface. | |
virtual void | SetBorderSurface (const char *name, const char *vol1Name, int vol1CopyNo, const char *vol2Name, int vol2CopyNo, const char *opSurfaceName)=0 |
Define the optical surface border. | |
virtual void | SetSkinSurface (const char *name, const char *volName, const char *opSurfaceName)=0 |
Define the optical skin surface. | |
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)=0 |
Define material property via a table of values. | |
virtual void | SetMaterialProperty (Int_t itmed, const char *propertyName, Double_t value)=0 |
Define material property via a value. | |
virtual void | SetMaterialProperty (const char *surfaceName, const char *propertyName, Int_t np, Double_t *pp, Double_t *values, Bool_t createNewKey=false, Bool_t spline=false)=0 |
Define optical surface property via a table of values. | |
virtual Bool_t | GetTransformation (const TString &volumePath, TGeoHMatrix &matrix)=0 |
Return the transformation matrix between the volume specified by the path volumePath and the top or master volume. | |
virtual Bool_t | GetShape (const TString &volumePath, TString &shapeType, TArrayD &par)=0 |
Return the name of the shape (shapeType) and its parameters par for the volume specified by the path volumePath . | |
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)=0 |
Return the material parameters for the material specified by the material Id. | |
virtual Bool_t | GetMaterial (const TString &volumeName, TString &name, Int_t &imat, Double_t &a, Double_t &z, Double_t &density, Double_t &radl, Double_t &inter, TArrayD &par)=0 |
Return the material parameters for the volume specified by the volumeName. | |
virtual Bool_t | GetMedium (const TString &volumeName, TString &name, Int_t &imed, 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, TArrayD &par)=0 |
Return the medium parameters for the volume specified by the volumeName. | |
virtual void | WriteEuclid (const char *filnam, const char *topvol, Int_t number, Int_t nlevel)=0 |
Write out the geometry of the detector in EUCLID file format. | |
virtual void | SetRootGeometry ()=0 |
Set geometry from Root (built via TGeo) | |
virtual void | SetUserParameters (Bool_t isUserParameters)=0 |
Activate the parameters defined in tracking media (DEEMAX, STMIN, STEMAX), which are, be default, ignored. | |
virtual Int_t | VolId (const char *volName) const =0 |
Return the unique numeric identifier for volume name volName. | |
virtual const char * | VolName (Int_t id) const =0 |
Return the volume name for a given volume identifier id. | |
virtual Int_t | MediumId (const char *mediumName) const =0 |
Return the unique numeric identifier for medium name mediumName. | |
virtual Int_t | NofVolumes () const =0 |
Return total number of volumes in the geometry. | |
virtual Int_t | VolId2Mate (Int_t id) const =0 |
Return material number for a given volume id. | |
virtual Int_t | NofVolDaughters (const char *volName) const =0 |
Return number of daughters of the volume specified by volName. | |
virtual const char * | VolDaughterName (const char *volName, Int_t i) const =0 |
Return the name of i-th daughter of the volume specified by volName. | |
virtual Int_t | VolDaughterCopyNo (const char *volName, Int_t i) const =0 |
Return the copyNo of i-th daughter of the volume specified by volName. | |
virtual void | SetSensitiveDetector (const TString &volName, TVirtualMCSensitiveDetector *sd)=0 |
Set a sensitive detector to a volume. | |
virtual TVirtualMCSensitiveDetector * | GetSensitiveDetector (const TString &volName) const =0 |
Get a sensitive detector of a volume. | |
virtual void | SetExclusiveSDScoring (Bool_t exclusiveSDScoring)=0 |
The scoring option: if true, scoring is performed only via user defined sensitive detectors and MCApplication::Stepping is not called. | |
virtual Bool_t | SetCut (const char *cutName, Double_t cutValue)=0 |
Set transport cuts for particles. | |
virtual Bool_t | SetProcess (const char *flagName, Int_t flagValue)=0 |
Set process control. | |
virtual Bool_t | DefineParticle (Int_t pdg, const char *name, TMCParticleType mcType, Double_t mass, Double_t charge, Double_t lifetime)=0 |
Set a user defined particle Function is ignored if particle with specified pdg already exists and error report is printed. | |
virtual 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)=0 |
Set a user defined particle Function is ignored if particle with specified pdg already exists and error report is printed. | |
virtual Bool_t | DefineIon (const char *name, Int_t Z, Int_t A, Int_t Q, Double_t excEnergy, Double_t mass=0.)=0 |
Set a user defined ion. | |
virtual Bool_t | SetDecayMode (Int_t pdg, Float_t bratio[6], Int_t mode[6][3])=0 |
Set a user phase space decay for a particle. | |
virtual Double_t | Xsec (char *, Double_t, Int_t, Int_t)=0 |
Calculate X-sections (Geant3 only) Deprecated. | |
virtual Int_t | IdFromPDG (Int_t pdg) const =0 |
Return MC specific code from a PDG and pseudo ENDF code (pdg) | |
virtual Int_t | PDGFromId (Int_t id) const =0 |
Return PDG code and pseudo ENDF code from MC specific code (id) | |
virtual TString | ParticleName (Int_t pdg) const =0 |
Return name of the particle specified by pdg. | |
virtual Double_t | ParticleMass (Int_t pdg) const =0 |
Return mass of the particle specified by pdg. | |
virtual Double_t | ParticleCharge (Int_t pdg) const =0 |
Return charge (in e units) of the particle specified by pdg. | |
virtual Double_t | ParticleLifeTime (Int_t pdg) const =0 |
Return life time of the particle specified by pdg. | |
virtual TMCParticleType | ParticleMCType (Int_t pdg) const =0 |
Return VMC type of the particle specified by pdg. | |
virtual void | StopTrack ()=0 |
Stop the transport of the current particle and skip to the next. | |
virtual void | StopEvent ()=0 |
Stop simulation of the current event and skip to the next. | |
virtual void | StopRun ()=0 |
Stop simulation of the current event and set the abort run flag to true. | |
virtual void | SetMaxStep (Double_t)=0 |
Set the maximum step allowed till the particle is in the current medium. | |
virtual void | SetMaxNStep (Int_t)=0 |
Set the maximum number of steps till the particle is in the current medium. | |
virtual void | SetUserDecay (Int_t pdg)=0 |
Force the decays of particles to be done with Pythia and not with the Geant routines. | |
virtual void | ForceDecayTime (Float_t)=0 |
Force the decay time of the current particle. | |
virtual Int_t | CurrentVolID (Int_t ©No) const =0 |
Return the current volume ID and copy number. | |
virtual Int_t | CurrentVolOffID (Int_t off, Int_t ©No) const =0 |
Return the current volume off upward in the geometrical tree ID and copy number. | |
virtual const char * | CurrentVolName () const =0 |
Return the current volume name. | |
virtual const char * | CurrentVolOffName (Int_t off) const =0 |
Return the current volume off upward in the geometrical tree name and copy number' if name=0 no name is returned. | |
virtual const char * | CurrentVolPath ()=0 |
Return the path in geometry tree for the current volume. | |
virtual Bool_t | CurrentBoundaryNormal (Double_t &x, Double_t &y, Double_t &z) const =0 |
If track is on a geometry boundary, fill the normal vector of the crossing volume surface and return true, return false otherwise. | |
virtual Int_t | CurrentMaterial (Float_t &a, Float_t &z, Float_t &dens, Float_t &radl, Float_t &absl) const =0 |
Return the parameters of the current material during transport. | |
virtual Int_t | CurrentMedium () const =0 |
virtual Int_t | CurrentEvent () const =0 |
Return the number of the current event. | |
virtual void | Gmtod (Float_t *xm, Float_t *xd, Int_t iflag)=0 |
Computes coordinates xd in daughter reference system from known coordinates xm in mother reference system. | |
virtual void | Gmtod (Double_t *xm, Double_t *xd, Int_t iflag)=0 |
The same as previous but in double precision. | |
virtual void | Gdtom (Float_t *xd, Float_t *xm, Int_t iflag)=0 |
Computes coordinates xm in mother reference system from known coordinates xd in daughter reference system. | |
virtual void | Gdtom (Double_t *xd, Double_t *xm, Int_t iflag)=0 |
The same as previous but in double precision. | |
virtual Double_t | MaxStep () const =0 |
Return the maximum step length in the current medium. | |
virtual Int_t | GetMaxNStep () const =0 |
Return the maximum number of steps allowed in the current medium. | |
virtual void | TrackPosition (TLorentzVector &position) const =0 |
Return the current position in the master reference frame of the track being transported. | |
virtual void | TrackPosition (Double_t &x, Double_t &y, Double_t &z) const =0 |
Only return spatial coordinates (as double) | |
virtual void | TrackPosition (Float_t &x, Float_t &y, Float_t &z) const =0 |
Only return spatial coordinates (as float) | |
virtual void | TrackMomentum (TLorentzVector &momentum) const =0 |
Return the direction and the momentum (GeV/c) of the track currently being transported. | |
virtual void | TrackMomentum (Double_t &px, Double_t &py, Double_t &pz, Double_t &etot) const =0 |
Return the direction and the momentum (GeV/c) of the track currently being transported (as double) | |
virtual void | TrackMomentum (Float_t &px, Float_t &py, Float_t &pz, Float_t &etot) const =0 |
Return the direction and the momentum (GeV/c) of the track currently being transported (as float) | |
virtual Double_t | TrackStep () const =0 |
Return the length in centimeters of the current step (in cm) | |
virtual Double_t | TrackLength () const =0 |
Return the length of the current track from its origin (in cm) | |
virtual Double_t | TrackTime () const =0 |
Return the current time of flight of the track being transported (in s) | |
virtual Double_t | Edep () const =0 |
Return the energy lost in the current step. | |
virtual Double_t | NIELEdep () const =0 |
Return the non-ionising energy lost (NIEL) in the current step. | |
virtual Int_t | StepNumber () const =0 |
Return the current step number. | |
virtual Double_t | TrackWeight () const =0 |
Get the current weight. | |
virtual void | TrackPolarization (Double_t &polX, Double_t &polY, Double_t &polZ) const =0 |
Get the current polarization. | |
virtual void | TrackPolarization (TVector3 &pol) const =0 |
Get the current polarization. | |
virtual Int_t | TrackPid () const =0 |
Return the PDG of the particle transported. | |
virtual Double_t | TrackCharge () const =0 |
Return the charge of the track currently transported. | |
virtual Double_t | TrackMass () const =0 |
Return the mass of the track currently transported. | |
virtual Double_t | Etot () const =0 |
Return the total energy of the current track. | |
virtual Bool_t | IsNewTrack () const =0 |
Return true when the track performs the first step. | |
virtual Bool_t | IsTrackInside () const =0 |
Return true if the track is not at the boundary of the current volume. | |
virtual Bool_t | IsTrackEntering () const =0 |
Return true if this is the first step of the track in the current volume. | |
virtual Bool_t | IsTrackExiting () const =0 |
Return true if this is the last step of the track in the current volume. | |
virtual Bool_t | IsTrackOut () const =0 |
Return true if the track is out of the setup. | |
virtual Bool_t | IsTrackDisappeared () const =0 |
Return true if the current particle has disappeared either because it decayed or because it underwent an inelastic collision. | |
virtual Bool_t | IsTrackStop () const =0 |
Return true if the track energy has fallen below the threshold. | |
virtual Bool_t | IsTrackAlive () const =0 |
Return true if the current particle is alive and will continue to be transported. | |
virtual Int_t | NSecondaries () const =0 |
Return the number of secondary particles generated in the current step. | |
virtual void | GetSecondary (Int_t isec, Int_t &particleId, TLorentzVector &position, TLorentzVector &momentum)=0 |
Return the parameters of the secondary track number isec produced in the current step. | |
virtual TMCProcess | ProdProcess (Int_t isec) const =0 |
Return the VMC code of the process that has produced the secondary particles in the current step. | |
virtual Int_t | StepProcesses (TArrayI &proc) const =0 |
Return the array of the VMC code of the processes active in the current step. | |
virtual Bool_t | SecondariesAreOrdered () const =0 |
Return the information about the transport order needed by the stack. | |
virtual void | Init ()=0 |
Initialize MC. | |
virtual void | BuildPhysics ()=0 |
Initialize MC physics. | |
virtual void | ProcessEvent ()=0 |
Process one event. | |
virtual void | ProcessEvent (Int_t eventId) |
Process one event with given eventIs. | |
virtual Bool_t | ProcessRun (Int_t nevent)=0 |
Process one run and return true if run has finished successfully, return false in other cases (run aborted by user) | |
virtual void | TerminateRun () |
Additional cleanup after a run can be done here (optional) | |
virtual void | InitLego ()=0 |
Set switches for lego transport. | |
virtual void | SetCollectTracks (Bool_t collectTracks)=0 |
(In)Activate collecting TGeo tracks | |
virtual Bool_t | IsCollectTracks () const =0 |
Return the info if collecting tracks is activated. | |
virtual Bool_t | IsMT () const |
Return the info if multi-threading is supported/activated. | |
virtual void | SetStack (TVirtualMCStack *stack) |
Set the particle stack. | |
virtual void | SetExternalDecayer (TVirtualMCDecayer *decayer) |
Set the external decayer. | |
virtual void | SetRandom (TRandom *random) |
Set the random number generator. | |
virtual void | SetMagField (TVirtualMagField *field) |
Set the magnetic field. | |
TVirtualMCStack * | GetStack () const |
Return the particle stack. | |
TMCManagerStack * | GetManagerStack () const |
Return the particle stack managed by the TMCManager (if any) | |
TVirtualMCDecayer * | GetDecayer () const |
Return the external decayer. | |
TRandom * | GetRandom () const |
Return the random number generator. | |
TVirtualMagField * | GetMagField () const |
Return the magnetic field. | |
Int_t | GetId () const |
Return the VMC's ID. | |
Static Public Member Functions | |
static TVirtualMC * | GetMC () |
Static access method. | |
Protected Attributes | |
TVirtualMCApplication * | fApplication |
User MC application. | |
Private Member Functions | |
void | SetId (UInt_t id) |
Set the VMC id. | |
void | SetManagerStack (TMCManagerStack *stack) |
Set container holding additional information for transported TParticles. | |
virtual void | ProcessEvent (Int_t eventId, Bool_t isInterruptible)=0 |
An interruptible event can be paused and resumed at any time. | |
virtual void | InterruptTrack ()=0 |
That triggers stopping the transport of the current track without dispatching to common routines like TVirtualMCApplication::PostTrack() etc. | |
TVirtualMC (const TVirtualMC &mc) | |
TVirtualMC & | operator= (const TVirtualMC &) |
Private Attributes | |
Int_t | fId |
Unique identification of this VMC. | |
TVirtualMCStack * | fStack |
Particles stack. | |
TMCManagerStack * | fManagerStack |
Stack handled by the TMCManager. | |
TVirtualMCDecayer * | fDecayer |
External decayer. | |
TRandom * | fRandom |
Random number generator. | |
TVirtualMagField * | fMagField |
Magnetic field. | |
Static Private Attributes | |
static TMCThreadLocal TVirtualMC * | fgMC = nullptr |
Static TVirtualMC pointer. | |
Friends | |
class | TMCManager |
Abstract Monte Carlo interface.
Virtual MC provides a virtual interface to Monte Carlo. It enables the user to build a virtual Monte Carlo application independent of any actual underlying Monte Carlo implementation itself.
A user will have to implement a class derived from the abstract Monte Carlo application class, and provide functions like ConstructGeometry(), BeginEvent(), FinishEvent(), ... . The concrete Monte Carlo (Geant3, Geant4) is selected at run time - when processing a ROOT macro where the concrete Monte Carlo is instantiated.
Definition at line 49 of file TVirtualMC.h.
TVirtualMC::TVirtualMC | ( | const char * | name, |
const char * | title, | ||
Bool_t | isRootGeometrySupported = kFALSE |
||
) |
Standard constructor.
isRootGeometrySupported = True if implementation of TVirtualMC supports geometry defined with TGeo
Definition at line 62 of file TVirtualMC.cxx.
TVirtualMC::TVirtualMC | ( | ) |
Default constructor.
Definition at line 84 of file TVirtualMC.cxx.
|
virtual |
Destructor.
Definition at line 95 of file TVirtualMC.cxx.
|
private |
|
static |
Static access method.
Definition at line 109 of file TVirtualMC.cxx.
|
pure virtual |
Info about supporting geometry defined via Root.
|
pure virtual |
Define a material.
|
pure virtual |
The same as previous but in double precision.
|
pure virtual |
Define a mixture or a compound with a number kmat composed by the basic nlmat materials defined by arrays a, z and wmat.
If nlmat > 0 then wmat contains the proportion by weights of each basic material in the mixture.
If nlmat < 0 then wmat contains the number of atoms of a given kind into the molecule of the compound. In this case, wmat in output is changed to relative weights.
|
pure virtual |
The same as previous but in double precision.
|
pure virtual |
Define a medium.
|
pure virtual |
The same as previous but in double precision.
|
pure virtual |
Define a rotation matrix.
|
pure virtual |
Change the value of cut or mechanism param to a new value parval for tracking medium itmed.
In Geant3, the data structure JTMED contains the standard tracking parameters (CUTS and flags to control the physics processes) which are used by default for all tracking media. It is possible to redefine individually with this function any of these parameters for a given tracking medium.
|
pure virtual |
Create a new volume.
|
pure virtual |
The same as previous but in double precision.
|
pure virtual |
Create a new volume by dividing an existing one.
It divides a previously defined volume
|
pure virtual |
Create a new volume by dividing an existing one.
Divide mother into ndiv divisions called name along axis iaxis starting at coordinate value c0i. The new volume created will be medium number numed.
|
pure virtual |
Create a new volume by dividing an existing one Divide mother into divisions called name along axis iaxis in steps of step.
If not exactly divisible will make as many as possible and will center them with respect to the mother. Divisions will have medium number numed. If numed is 0, numed of mother is taken. ndvmx is the expected maximum number of divisions (If 0, no protection tests are performed in Geant3)
|
pure virtual |
Create a new volume by dividing an existing one Divides mother into divisions called name along axis iaxis starting at coordinate value c0 with step size step.
The new volume created will have medium number numed. If numed is 0, numed of mother is taken. ndvmx is the expected maximum number of divisions (If 0, no protection tests are performed in Geant3)
|
pure virtual |
Flag volume name whose contents will have to be ordered along axis iax, by setting the search flag to -iax (Geant3 only)
|
pure virtual |
Position a volume into an existing one.
It positions a previously defined volume in the mother.
|
pure virtual |
Place a copy of generic volume name with user number nr inside mother, with its parameters upar(1..np)
|
pure virtual |
The same as previous but in double precision.
|
pure virtual |
Helper function for resolving MANY.
Specify the ONLY volume that overlaps with the specified MANY and has to be substracted. (Geant4 only)
|
pure virtual |
Define the tables for UV photon tracking in medium itmed.
Please note that it is the user's responsibility to provide all the coefficients:
|
pure virtual |
The same as previous but in double precision.
|
pure virtual |
Define the optical surface.
|
pure virtual |
Define the optical surface border.
|
pure virtual |
Define the optical skin surface.
|
pure virtual |
Define material property via a table of values.
|
pure virtual |
Define material property via a value.
|
pure virtual |
Define optical surface property via a table of values.
|
pure virtual |
Return the transformation matrix between the volume specified by the path volumePath and the top or master volume.
|
pure virtual |
Return the name of the shape (shapeType) and its parameters par for the volume specified by the path volumePath .
|
pure virtual |
Return the material parameters for the material specified by the material Id.
|
pure virtual |
Return the material parameters for the volume specified by the volumeName.
|
pure virtual |
Return the medium parameters for the volume specified by the volumeName.
|
pure virtual |
Write out the geometry of the detector in EUCLID file format.
|
pure virtual |
Set geometry from Root (built via TGeo)
|
pure virtual |
Activate the parameters defined in tracking media (DEEMAX, STMIN, STEMAX), which are, be default, ignored.
In Geant4 case, only STEMAX is taken into account. In FLUKA, all tracking media parameters are ignored.
|
pure virtual |
Return the unique numeric identifier for volume name volName.
|
pure virtual |
Return the volume name for a given volume identifier id.
|
pure virtual |
Return the unique numeric identifier for medium name mediumName.
|
pure virtual |
Return total number of volumes in the geometry.
|
pure virtual |
Return material number for a given volume id.
|
pure virtual |
Return number of daughters of the volume specified by volName.
|
pure virtual |
Return the name of i-th daughter of the volume specified by volName.
|
pure virtual |
Return the copyNo of i-th daughter of the volume specified by volName.
|
pure virtual |
Set a sensitive detector to a volume.
|
pure virtual |
Get a sensitive detector of a volume.
|
pure virtual |
The scoring option: if true, scoring is performed only via user defined sensitive detectors and MCApplication::Stepping is not called.
|
pure virtual |
Set transport cuts for particles.
|
pure virtual |
Set process control.
|
pure virtual |
Set a user defined particle Function is ignored if particle with specified pdg already exists and error report is printed.
|
pure virtual |
Set a user defined particle Function is ignored if particle with specified pdg already exists and error report is printed.
|
pure virtual |
Set a user defined ion.
|
pure virtual |
Set a user phase space decay for a particle.
|
pure virtual |
Calculate X-sections (Geant3 only) Deprecated.
|
pure virtual |
Return MC specific code from a PDG and pseudo ENDF code (pdg)
|
pure virtual |
Return PDG code and pseudo ENDF code from MC specific code (id)
|
pure virtual |
Return name of the particle specified by pdg.
|
pure virtual |
Return mass of the particle specified by pdg.
|
pure virtual |
Return charge (in e units) of the particle specified by pdg.
|
pure virtual |
Return life time of the particle specified by pdg.
|
pure virtual |
Return VMC type of the particle specified by pdg.
|
pure virtual |
Stop the transport of the current particle and skip to the next.
|
pure virtual |
Stop simulation of the current event and skip to the next.
|
pure virtual |
Stop simulation of the current event and set the abort run flag to true.
|
pure virtual |
Set the maximum step allowed till the particle is in the current medium.
|
pure virtual |
Set the maximum number of steps till the particle is in the current medium.
|
pure virtual |
Force the decays of particles to be done with Pythia and not with the Geant routines.
|
pure virtual |
Force the decay time of the current particle.
|
pure virtual |
Return the current volume ID and copy number.
|
pure virtual |
Return the current volume off upward in the geometrical tree ID and copy number.
|
pure virtual |
Return the current volume name.
|
pure virtual |
Return the current volume off upward in the geometrical tree name and copy number' if name=0 no name is returned.
|
pure virtual |
Return the path in geometry tree for the current volume.
|
pure virtual |
If track is on a geometry boundary, fill the normal vector of the crossing volume surface and return true, return false otherwise.
|
pure virtual |
Return the parameters of the current material during transport.
|
pure virtual |
|
pure virtual |
Return the number of the current event.
|
pure virtual |
Computes coordinates xd in daughter reference system from known coordinates xm in mother reference system.
|
pure virtual |
The same as previous but in double precision.
|
pure virtual |
Computes coordinates xm in mother reference system from known coordinates xd in daughter reference system.
|
pure virtual |
The same as previous but in double precision.
|
pure virtual |
Return the maximum step length in the current medium.
|
pure virtual |
Return the maximum number of steps allowed in the current medium.
|
pure virtual |
Return the current position in the master reference frame of the track being transported.
Referenced by TMCManager::TransferTrack().
|
pure virtual |
Only return spatial coordinates (as double)
|
pure virtual |
Only return spatial coordinates (as float)
|
pure virtual |
Return the direction and the momentum (GeV/c) of the track currently being transported.
Referenced by TMCManager::TransferTrack().
|
pure virtual |
Return the direction and the momentum (GeV/c) of the track currently being transported (as double)
|
pure virtual |
Return the direction and the momentum (GeV/c) of the track currently being transported (as float)
|
pure virtual |
Return the length in centimeters of the current step (in cm)
|
pure virtual |
Return the length of the current track from its origin (in cm)
Referenced by TMCManager::TransferTrack().
|
pure virtual |
Return the current time of flight of the track being transported (in s)
|
pure virtual |
Return the energy lost in the current step.
|
pure virtual |
Return the non-ionising energy lost (NIEL) in the current step.
|
pure virtual |
Return the current step number.
Referenced by TMCManager::TransferTrack().
|
pure virtual |
Get the current weight.
Referenced by TMCManager::TransferTrack().
|
pure virtual |
Get the current polarization.
Referenced by TMCManager::TransferTrack().
|
pure virtual |
Get the current polarization.
|
pure virtual |
Return the PDG of the particle transported.
|
pure virtual |
Return the charge of the track currently transported.
|
pure virtual |
Return the mass of the track currently transported.
|
pure virtual |
Return the total energy of the current track.
|
pure virtual |
Return true when the track performs the first step.
|
pure virtual |
Return true if the track is not at the boundary of the current volume.
|
pure virtual |
Return true if this is the first step of the track in the current volume.
|
pure virtual |
Return true if this is the last step of the track in the current volume.
|
pure virtual |
Return true if the track is out of the setup.
|
pure virtual |
Return true if the current particle has disappeared either because it decayed or because it underwent an inelastic collision.
|
pure virtual |
Return true if the track energy has fallen below the threshold.
|
pure virtual |
Return true if the current particle is alive and will continue to be transported.
|
pure virtual |
Return the number of secondary particles generated in the current step.
|
pure virtual |
Return the parameters of the secondary track number isec produced in the current step.
|
pure virtual |
Return the VMC code of the process that has produced the secondary particles in the current step.
|
pure virtual |
Return the array of the VMC code of the processes active in the current step.
|
pure virtual |
Return the information about the transport order needed by the stack.
|
pure virtual |
Initialize MC.
|
pure virtual |
Initialize MC physics.
|
pure virtual |
Process one event.
Referenced by ProcessEvent(), and TMCManager::Run().
|
virtual |
Process one event with given eventIs.
Process one event with given eventId.
Definition at line 119 of file TVirtualMC.cxx.
|
pure virtual |
Process one run and return true if run has finished successfully, return false in other cases (run aborted by user)
|
inlinevirtual |
Additional cleanup after a run can be done here (optional)
Definition at line 827 of file TVirtualMC.h.
|
pure virtual |
Set switches for lego transport.
|
pure virtual |
(In)Activate collecting TGeo tracks
|
pure virtual |
Return the info if collecting tracks is activated.
|
inlinevirtual |
Return the info if multi-threading is supported/activated.
Definition at line 839 of file TVirtualMC.h.
|
virtual |
Set the particle stack.
Set particles stack.
Definition at line 129 of file TVirtualMC.cxx.
Referenced by TMCManager::Register().
|
virtual |
|
virtual |
Set the random number generator.
Set random number generator.
Definition at line 149 of file TVirtualMC.cxx.
|
virtual |
|
inline |
Return the particle stack.
Definition at line 866 of file TVirtualMC.h.
|
inline |
Return the particle stack managed by the TMCManager (if any)
Definition at line 869 of file TVirtualMC.h.
|
inline |
Return the external decayer.
Definition at line 872 of file TVirtualMC.h.
|
inline |
Return the random number generator.
Definition at line 875 of file TVirtualMC.h.
|
inline |
Return the magnetic field.
Definition at line 878 of file TVirtualMC.h.
|
inline |
Return the VMC's ID.
Definition at line 881 of file TVirtualMC.h.
Referenced by TMCManager::ForwardTrack(), TMCManager::RestoreGeometryState(), and TMCManager::TransferTrack().
|
private |
Set the VMC id.
Definition at line 170 of file TVirtualMC.cxx.
Referenced by TMCManager::Register().
|
private |
Set container holding additional information for transported TParticles.
Definition at line 179 of file TVirtualMC.cxx.
Referenced by TMCManager::Register().
|
privatepure virtual |
An interruptible event can be paused and resumed at any time.
It must not call TVirtualMCApplication::BeginEvent() and ::FinishEvent() Further, when tracks are popped from the TVirtualMCStack it must be checked whether these are new tracks or whether they have been transported up to their current point.
|
privatepure virtual |
That triggers stopping the transport of the current track without dispatching to common routines like TVirtualMCApplication::PostTrack() etc.
Referenced by TMCManager::TransferTrack().
|
private |
|
friend |
Definition at line 52 of file TVirtualMC.h.
|
protected |
|
staticprivate |
Static TVirtualMC pointer.
Definition at line 910 of file TVirtualMC.h.
Referenced by GetMC(), TVirtualMC(), TMCManager::UpdateEnginePointers(), and ~TVirtualMC().
|
private |
Unique identification of this VMC.
Don't use TObject::SetUniqueId() since this is used to uniquely identify An ID is given by the running TVirtualMCApp and not by the user.
Definition at line 920 of file TVirtualMC.h.
|
private |
Particles stack.
Definition at line 922 of file TVirtualMC.h.
Referenced by GetStack(), and SetStack().
|
private |
Stack handled by the TMCManager.
Definition at line 923 of file TVirtualMC.h.
Referenced by GetManagerStack(), and SetManagerStack().
|
private |
External decayer.
Definition at line 924 of file TVirtualMC.h.
Referenced by GetDecayer(), and SetExternalDecayer().
|
private |
Random number generator.
Definition at line 925 of file TVirtualMC.h.
Referenced by GetRandom(), SetRandom(), and TVirtualMC().
|
private |
Magnetic field.
Definition at line 926 of file TVirtualMC.h.
Referenced by GetMagField(), and SetMagField().