Geant4 VMC Version 6.6
Loading...
Searching...
No Matches
TGeant4.h
Go to the documentation of this file.
1#ifndef TGEANT4_H
2#define TGEANT4_H
3
4//------------------------------------------------
5// The Geant4 Virtual Monte Carlo package
6// Copyright (C) 2007, 2014 Ivana Hrivnacova
7// All rights reserved.
8//
9// For the licensing terms see geant4_vmc/LICENSE.
10// Contact: root-vmc@cern.ch
11//-------------------------------------------------
12
17
18#include <TArrayI.h>
19#include <TMCOptical.h>
20#include <TMCProcess.h>
21#include <TString.h>
22#include <TVirtualMC.h>
23
25class TG4StateManager;
27class TG4SDManager;
29class TG4StepManager;
30class TG4VisManager;
31class TG4RunManager;
32
33class G4VisExecutive;
34
35class TGeoHMatrix;
36class TArrayD;
37class TString;
38class TVirtualMCApplication;
39class TVirtualMCSensitiveDetector;
40
45
46class TGeant4 : public TVirtualMC
47{
48 public:
49 TGeant4(const char* name, const char* title,
50 TG4RunConfiguration* configuration, int argc = 0, char** argv = 0);
51 virtual ~TGeant4();
52
53 //
54 // methods for building/management of geometry
55 // ------------------------------------------------
56 //
57
58 // info about supporting geometry defined via Root
59 virtual Bool_t IsRootGeometrySupported() const;
60
61 // functions from GBASE
62 virtual void FinishGeometry();
63 // Ggclos();
64
65 // functions from GCONS
66 virtual void Gfmate(Int_t imat, char* name, Float_t& a, Float_t& z,
67 Float_t& dens, Float_t& radl, Float_t& absl, Float_t* ubuf, Int_t& nbuf);
68 virtual void Gfmate(Int_t imat, char* name, Double_t& a, Double_t& z,
69 Double_t& dens, Double_t& radl, Double_t& absl, Double_t* ubuf,
70 Int_t& nbuf);
71 virtual void Gckmat(Int_t itmed, char* natmed);
72
73 // detector composition
74 virtual void Material(Int_t& kmat, const char* name, Double_t a, Double_t z,
75 Double_t dens, Double_t radl, Double_t absl, Float_t* buf, Int_t nwbuf);
76 virtual void Material(Int_t& kmat, const char* name, Double_t a, Double_t z,
77 Double_t dens, Double_t radl, Double_t absl, Double_t* buf, Int_t nwbuf);
78 virtual void Mixture(Int_t& kmat, const char* name, Float_t* a, Float_t* z,
79 Double_t dens, Int_t nlmat, Float_t* wmat);
80 virtual void Mixture(Int_t& kmat, const char* name, Double_t* a, Double_t* z,
81 Double_t dens, Int_t nlmat, Double_t* wmat);
82 virtual void Medium(Int_t& kmed, const char* name, Int_t nmat, Int_t isvol,
83 Int_t ifield, Double_t fieldm, Double_t tmaxfd, Double_t stemax,
84 Double_t deemax, Double_t epsil, Double_t stmin, Float_t* ubuf, Int_t nbuf);
85 virtual void Medium(Int_t& kmed, const char* name, Int_t nmat, Int_t isvol,
86 Int_t ifield, Double_t fieldm, Double_t tmaxfd, Double_t stemax,
87 Double_t deemax, Double_t epsil, Double_t stmin, Double_t* ubuf,
88 Int_t nbuf);
89 virtual void Matrix(Int_t& krot, Double_t thetaX, Double_t phiX,
90 Double_t thetaY, Double_t phiY, Double_t thetaZ, Double_t phiZ);
91 virtual void SetCerenkov(Int_t itmed, Int_t npckov, Float_t* ppckov,
92 Float_t* absco, Float_t* effic, Float_t* rindex, Bool_t aspline = false,
93 Bool_t rspline = false);
94 virtual void SetCerenkov(Int_t itmed, Int_t npckov, Double_t* ppckov,
95 Double_t* absco, Double_t* effic, Double_t* rindex, Bool_t aspline = false,
96 Bool_t rspline = false);
97
98 // new (more general functions) for definition of surfaces
99 // and material properties for optical physics
100 virtual void DefineOpSurface(const char* name, EMCOpSurfaceModel model,
101 EMCOpSurfaceType surfaceType, EMCOpSurfaceFinish surfaceFinish,
102 Double_t sigmaAlpha);
103 virtual void SetBorderSurface(const char* name, const char* vol1Name,
104 int vol1CopyNo, const char* vol2Name, int vol2CopyNo,
105 const char* opSurfaceName);
106 virtual void SetSkinSurface(
107 const char* name, const char* volName, const char* opSurfaceName);
108 virtual void SetMaterialProperty(Int_t itmed, const char* propertyName,
109 Int_t np, Double_t* pp, Double_t* values, Bool_t createNewKey = false,
110 Bool_t spline = false);
111 virtual void SetMaterialProperty(
112 Int_t itmed, const char* propertyName, Double_t value);
113 virtual void SetMaterialProperty(const char* surfaceName,
114 const char* propertyName, Int_t np, Double_t* pp, Double_t* values,
115 Bool_t createNewKey = false, Bool_t spline = false);
116
117 // functions for access to geometry
118 virtual Bool_t GetTransformation(
119 const TString& volumePath, TGeoHMatrix& matrix);
120 virtual Bool_t GetShape(
121 const TString& volumePath, TString& shapeType, TArrayD& par);
122 virtual Bool_t GetMaterial(Int_t imat, TString& name, Double_t& a,
123 Double_t& z, Double_t& density, Double_t& radl, Double_t& inter,
124 TArrayD& par);
125 virtual Bool_t GetMaterial(const TString& volumeName, TString& name,
126 Int_t& imat, Double_t& a, Double_t& z, Double_t& density, Double_t& radl,
127 Double_t& inter, TArrayD& par);
128 virtual Bool_t GetMedium(const TString& volumeName, TString& name,
129 Int_t& imed, Int_t& nmat, Int_t& isvol, Int_t& ifield, Double_t& fieldm,
130 Double_t& tmaxfd, Double_t& stemax, Double_t& deemax, Double_t& epsil,
131 Double_t& stmin, TArrayD& par);
132
133 // functions from GGEOM
134 virtual Int_t Gsvolu(
135 const char* name, const char* shape, Int_t nmed, Double_t* upar, Int_t np);
136 virtual Int_t Gsvolu(
137 const char* name, const char* shape, Int_t nmed, Float_t* upar, Int_t np);
138 virtual void Gsdvn(
139 const char* name, const char* mother, Int_t ndiv, Int_t iaxis);
140 virtual void Gsdvn2(const char* name, const char* mother, Int_t ndiv,
141 Int_t iaxis, Double_t c0i, Int_t numed);
142 virtual void Gsdvt(const char* name, const char* mother, Double_t step,
143 Int_t iaxis, Int_t numed, Int_t ndvmx);
144 virtual void Gsdvt2(const char* name, const char* mother, Double_t step,
145 Int_t iaxis, Double_t c0, Int_t numed, Int_t ndvmx);
146 virtual void Gsord(const char* name, Int_t iax);
147 virtual void Gspos(const char* name, Int_t nr, const char* mother, Double_t x,
148 Double_t y, Double_t z, Int_t irot, const char* konly = "ONLY");
149 virtual void Gsposp(const char* name, Int_t nr, const char* mother,
150 Double_t x, Double_t y, Double_t z, Int_t irot, const char* konly,
151 Double_t* upar, Int_t np);
152 virtual void Gsposp(const char* name, Int_t nr, const char* mother,
153 Double_t x, Double_t y, Double_t z, Int_t irot, const char* konly,
154 Float_t* upar, Int_t np);
155 virtual void Gsbool(const char* onlyVolName, const char* manyVolName);
156
157 // Euclid
158 virtual void WriteEuclid(
159 const char* fileName, const char* topVol, Int_t number, Int_t nlevel);
160
161 // set geometry from Root (built via TGeo)
162 virtual void SetRootGeometry();
163
164 // Activate the parameters defined in tracking media
165 // (DEEMAX, STMIN, STEMAX), which are, be default, ignored.
166 // In Geant4 case, only STEMAX is taken into account.
167 virtual void SetUserParameters(Bool_t isUserParameters);
168
169 // get methods
170 virtual Int_t VolId(const Text_t* volName) const;
171 virtual const char* VolName(Int_t id) const;
172 virtual Int_t MediumId(const Text_t* medName) const;
173 virtual Int_t NofVolumes() const;
174 virtual Int_t NofVolDaughters(const char* volName) const;
175 virtual const char* VolDaughterName(const char* volName, Int_t i) const;
176 virtual Int_t VolDaughterCopyNo(const char* volName, Int_t i) const;
177 virtual Int_t VolId2Mate(Int_t id) const;
178
179 //
180 // methods for sensitive detectors
181 // ------------------------------------------------
182 //
183
184 virtual void SetSensitiveDetector(
185 const TString& volName, TVirtualMCSensitiveDetector* sd);
186 virtual TVirtualMCSensitiveDetector* GetSensitiveDetector(
187 const TString& volName) const;
188 virtual void SetExclusiveSDScoring(Bool_t exclusiveSDScoring);
189
190 //
191 // methods for physics management
192 // ------------------------------------------------
193 //
194
195 virtual void BuildPhysics();
196 virtual void Gstpar(Int_t itmed, const char* param, Double_t parval);
197
198 // set methods
199 virtual Bool_t SetCut(const char* cutName, Double_t cutValue);
200 virtual Bool_t SetProcess(const char* flagName, Int_t flagValue);
201 virtual Bool_t DefineParticle(Int_t pdg, const char* name,
202 TMCParticleType mcType, Double_t mass, Double_t charge, Double_t lifetime);
203 virtual Bool_t DefineParticle(Int_t pdg, const char* name,
204 TMCParticleType mcType, Double_t mass, Double_t charge, Double_t lifetime,
205 const TString& pType, Double_t width, Int_t iSpin, Int_t iParity,
206 Int_t iConjugation, Int_t iIsospin, Int_t iIsospinZ, Int_t gParity,
207 Int_t lepton, Int_t baryon, Bool_t stable, Bool_t shortlived = kFALSE,
208 const TString& subType = "", Int_t antiEncoding = 0,
209 Double_t magMoment = 0.0, Double_t excitation = 0.0);
210 virtual Bool_t DefineIon(const char* name, Int_t Z, Int_t A, Int_t Q,
211 Double_t excEnergy, Double_t mass);
212 virtual Double_t Xsec(char* reac, Double_t energy, Int_t part, Int_t mate);
213
214 // particle table usage
215 virtual Int_t IdFromPDG(Int_t pdgID) const;
216 virtual Int_t PDGFromId(Int_t mcID) const;
217
218 // get methods
219 virtual TString ParticleName(Int_t pdg) const;
220 virtual Double_t ParticleMass(Int_t pdg) const;
221 virtual Double_t ParticleCharge(Int_t pdg) const;
222 virtual Double_t ParticleLifeTime(Int_t pdg) const;
223 virtual TMCParticleType ParticleMCType(Int_t pdg) const;
224
225 //
226 // methods for step management
227 // ------------------------------------------------
228 //
229
230 // action methods
231 virtual void StopTrack();
232 virtual void InterruptTrack();
233 virtual void StopEvent();
234 virtual void StopRun();
235
236 // set methods
237 virtual void SetMaxStep(Double_t);
238 virtual void SetMaxNStep(Int_t);
239 virtual void SetUserDecay(Int_t); // NEW
240 virtual void ForceDecayTime(Float_t); // NEW
241 virtual Bool_t SetDecayMode(
242 Int_t pdg, Float_t bratio[6], Int_t mode[6][3]); // new
243
244 // get methods
245 // tracking volume(s)
246 virtual Int_t CurrentVolID(Int_t& copyNo) const;
247 virtual Int_t CurrentVolOffID(Int_t off, Int_t& copyNo) const;
248 virtual const char* CurrentVolName() const;
249 virtual const char* CurrentVolOffName(Int_t off) const;
250 virtual const char* CurrentVolPath();
251 virtual Bool_t CurrentBoundaryNormal(
252 Double_t& x, Double_t& y, Double_t& z) const;
253 virtual Int_t CurrentMaterial(
254 Float_t& a, Float_t& z, Float_t& dens, Float_t& radl, Float_t& absl) const;
255 virtual Int_t CurrentMedium() const;
256 virtual void Gmtod(Float_t* xm, Float_t* xd, Int_t iflag);
257 virtual void Gmtod(Double_t* xm, Double_t* xd, Int_t iflag);
258 virtual void Gdtom(Float_t* xd, Float_t* xm, Int_t iflag);
259 virtual void Gdtom(Double_t* xd, Double_t* xm, Int_t iflag);
260 virtual Double_t MaxStep() const;
261 virtual Int_t GetMaxNStep() const;
262 virtual Int_t GetMedium() const;
263
264 // tracking particle
265 // dynamic properties
266 virtual void TrackPosition(TLorentzVector& position) const;
267 virtual void TrackPosition(Double_t& x, Double_t& y, Double_t& z) const;
268 virtual void TrackPosition(Float_t& x, Float_t& y, Float_t& z) const;
269 virtual void TrackMomentum(TLorentzVector& momentum) const;
270 virtual void TrackMomentum(
271 Double_t& px, Double_t& py, Double_t& pz, Double_t& etot) const;
272 virtual void TrackMomentum(
273 Float_t& px, Float_t& py, Float_t& pz, Float_t& etot) const;
274 virtual Double_t TrackStep() const;
275 virtual Double_t TrackLength() const;
276 virtual Double_t TrackTime() const;
277 virtual Double_t Edep() const;
278 virtual Double_t NIELEdep() const;
279 virtual Int_t StepNumber() const;
280 virtual Double_t TrackWeight() const;
281 virtual void TrackPolarization(
282 Double_t& polX, Double_t& polY, Double_t& polZ) const;
283 virtual void TrackPolarization(TVector3& pol) const;
284 // static properties
285 virtual Int_t TrackPid() const;
286 virtual Double_t TrackCharge() const;
287 virtual Double_t TrackMass() const;
288 virtual Double_t Etot() const;
289
290 // track status
291 virtual Bool_t IsTrackInside() const;
292 virtual Bool_t IsTrackEntering() const;
293 virtual Bool_t IsTrackExiting() const;
294 virtual Bool_t IsTrackOut() const;
295 virtual Bool_t IsTrackDisappeared() const;
296 virtual Bool_t IsTrackStop() const;
297 virtual Bool_t IsTrackAlive() const;
298 virtual Bool_t IsNewTrack() const;
299
300 // secondaries
301 virtual Int_t NSecondaries() const;
302 virtual void GetSecondary(Int_t isec, Int_t& particleId,
303 TLorentzVector& position, TLorentzVector& momentum);
304 virtual TMCProcess ProdProcess(Int_t isec) const;
305 virtual Int_t StepProcesses(TArrayI& proc) const;
306
307 //
308 // methods for visualization
309 // ------------------------------------------------
310 //
311 // functions for drawing
312 virtual void DrawOneSpec(const char* name);
313 virtual void Gsatt(const char* name, const char* att, Int_t val);
314 virtual void Gdraw(const char*, Double_t theta, Double_t phi, Double_t psi,
315 Double_t u0, Double_t v0, Double_t ul, Double_t vl);
316
317 //
318 // Geant3 specific methods
319 // !!! to be removed with move to TGeo
320 //
321 virtual void Gdopt(const char* name, const char* value);
322 virtual void SetClipBox(const char* name, Double_t xmin, Double_t xmax,
323 Double_t ymin, Double_t ymax, Double_t zmin, Double_t zmax);
324 virtual void DefaultRange();
325 virtual void Gdhead(Int_t isel, const char* name, Double_t chrsiz);
326 virtual void Gdman(Double_t u, Double_t v, const char* type);
327 virtual void InitLego();
328
329 //
330 // methods for run control
331 // ------------------------------------------------
332 //
333
334 virtual void Init();
335 virtual void InitMT(Int_t threadRank);
336 virtual void ProcessEvent();
337 virtual void ProcessEvent(Int_t eventId);
338 virtual void ProcessEvent(Int_t eventId, Bool_t isInterruptible);
339 virtual Bool_t ProcessRun(Int_t nofEvents);
340 Bool_t FinishRun();
341 virtual void SetCollectTracks(Bool_t collectTracks);
342 virtual Bool_t IsCollectTracks() const;
343 virtual Bool_t IsMT() const;
344 void SetRandomSeed(); // set's random seed of engine based on status of ROOT gRandom
345
346 // UI control methods
347 void StartGeantUI();
348 void StartRootUI();
349 void ProcessGeantMacro(const char* macroName);
350 void ProcessGeantCommand(const char* commandPath);
351
352 // Methods for MT
354 static TVirtualMCApplication* MasterApplicationInstance();
355 TGeant4* CloneForWorker() const;
356
357 // get methods
358 virtual Int_t CurrentEvent() const;
359 virtual Bool_t SecondariesAreOrdered() const;
360
361 private:
365 TGeant4(const TGeant4& right);
367 TGeant4& operator=(const TGeant4& right);
368
369 // static data members
370
373
375 static TVirtualMCApplication* fgMasterApplicationInstance;
376
377 // data members
384 G4VisExecutive* fVisExecutive;
391 Bool_t fIsMT;
392
393 ClassDef(TGeant4, 0) // Geant4 implementation of the TVirtualMC interface
394};
395
396#ifndef __CINT__
397#ifndef __CLING__
398
399// inline methods
400#include "TGeant4.icc"
401
402#endif
403#endif
404#endif // TGEANT4_H
The manager class for building Geant4 geometry depending on a selected user input.
Geant4 implementation of the TVirtualMC interface methods for building Geant4 physics and access to i...
Takes care of creating Geant4 user action classes using VMC.
Geant4 implementation of the TVirtualMC interface methods for access to Geant4 at run level.
Geant4 implementation of the TVirtualMC interface methods for access to Geant4 geometry related with ...
The manager class for application state.
Geant4 implementation of the TVirtualMC interface methods for access to Geant4 at step level.
Visualization manager class.
Implementation of the TVirtualMC interface for Geant4.
Definition TGeant4.h:47
void StartGeantUI()
Definition TGeant4.cxx:1212
virtual Int_t PDGFromId(Int_t mcID) const
Definition TGeant4.cxx:1018
virtual void Gmtod(Double_t *xm, Double_t *xd, Int_t iflag)
virtual const char * VolDaughterName(const char *volName, Int_t i) const
Definition TGeant4.cxx:833
virtual Bool_t SetProcess(const char *flagName, Int_t flagValue)
Definition TGeant4.cxx:921
virtual Bool_t IsTrackOut() const
TG4StepManager * fStepManager
step manager
Definition TGeant4.h:382
virtual Double_t TrackWeight() const
virtual Double_t Xsec(char *reac, Double_t energy, Int_t part, Int_t mate)
Definition TGeant4.cxx:999
TG4StateManager * fStateManager
application state manager
Definition TGeant4.h:378
TG4GeometryManager * fGeometryManager
geometry manager
Definition TGeant4.h:379
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)
Definition TGeant4.cxx:398
Int_t fMediumCounter
global medium counter
Definition TGeant4.h:387
virtual Bool_t IsTrackDisappeared() const
virtual Bool_t IsTrackStop() const
virtual void BuildPhysics()
Definition TGeant4.cxx:1142
virtual void Init()
Definition TGeant4.cxx:1119
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)
Definition TGeant4.cxx:320
virtual TMCParticleType ParticleMCType(Int_t pdg) const
Definition TGeant4.cxx:1070
static TVirtualMCApplication * fgMasterApplicationInstance
master application instance
Definition TGeant4.h:375
static TVirtualMCApplication * MasterApplicationInstance()
virtual Double_t TrackCharge() const
virtual void StopEvent()
TG4RunManager * fRunManager
run manager
Definition TGeant4.h:385
virtual Double_t ParticleMass(Int_t pdg) const
Definition TGeant4.cxx:1039
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)
Definition TGeant4.cxx:535
virtual Int_t TrackPid() const
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)
Definition TGeant4.cxx:639
virtual Bool_t GetShape(const TString &volumePath, TString &shapeType, TArrayD &par)
Definition TGeant4.cxx:694
virtual void StopTrack()
void SetRandomSeed()
Definition TGeant4.cxx:1333
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)
Definition TGeant4.cxx:1106
virtual Double_t ParticleLifeTime(Int_t pdg) const
Definition TGeant4.cxx:1059
virtual void TrackPosition(TLorentzVector &position) const
virtual void TrackPolarization(TVector3 &pol) const
Bool_t fIsMT
multi-threading mode
Definition TGeant4.h:391
virtual void SetExclusiveSDScoring(Bool_t exclusiveSDScoring)
Definition TGeant4.cxx:887
TG4PhysicsManager * fPhysicsManager
physics manager
Definition TGeant4.h:381
virtual void WriteEuclid(const char *fileName, const char *topVol, Int_t number, Int_t nlevel)
Definition TGeant4.cxx:747
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)
Definition TGeant4.cxx:291
virtual void Gsdvn(const char *name, const char *mother, Int_t ndiv, Int_t iaxis)
Definition TGeant4.cxx:466
virtual void Gdtom(Float_t *xd, Float_t *xm, Int_t iflag)
virtual Bool_t IsCollectTracks() const
Definition TGeant4.cxx:1204
virtual void SetUserDecay(Int_t)
Definition TGeant4.cxx:976
virtual const char * CurrentVolPath()
virtual Int_t StepNumber() const
virtual Double_t Edep() const
virtual Double_t TrackLength() const
virtual void TrackPosition(Double_t &x, Double_t &y, Double_t &z) const
virtual Bool_t DefineIon(const char *name, Int_t Z, Int_t A, Int_t Q, Double_t excEnergy, Double_t mass)
Definition TGeant4.cxx:964
virtual Bool_t IsTrackExiting() const
virtual const char * CurrentVolName() const
virtual Double_t NIELEdep() const
virtual void DefineOpSurface(const char *name, EMCOpSurfaceModel model, EMCOpSurfaceType surfaceType, EMCOpSurfaceFinish surfaceFinish, Double_t sigmaAlpha)
Definition TGeant4.cxx:601
virtual Double_t TrackStep() const
virtual Bool_t IsMT() const
virtual Int_t CurrentVolOffID(Int_t off, Int_t &copyNo) const
virtual Double_t TrackMass() const
virtual void FinishGeometry()
Definition TGeant4.cxx:279
virtual TMCProcess ProdProcess(Int_t isec) const
virtual void TrackPosition(Float_t &x, Float_t &y, Float_t &z) const
virtual const char * CurrentVolOffName(Int_t off) const
virtual Int_t NSecondaries() const
virtual Int_t StepProcesses(TArrayI &proc) const
virtual void TrackMomentum(Float_t &px, Float_t &py, Float_t &pz, Float_t &etot) const
Int_t fMatrixCounter
global matrix counter
Definition TGeant4.h:389
virtual Int_t IdFromPDG(Int_t pdgID) const
Definition TGeant4.cxx:1007
virtual ~TGeant4()
Definition TGeant4.cxx:239
virtual void ProcessEvent()
Definition TGeant4.cxx:1151
virtual Bool_t GetTransformation(const TString &volumePath, TGeoHMatrix &matrix)
Definition TGeant4.cxx:679
virtual void Gdopt(const char *name, const char *value)
Definition TGeant4.cxx:1279
virtual void Gsdvt(const char *name, const char *mother, Double_t step, Int_t iaxis, Int_t numed, Int_t ndvmx)
Definition TGeant4.cxx:489
virtual Int_t GetMedium() const
virtual void SetRootGeometry()
Definition TGeant4.cxx:757
virtual void Gsdvt2(const char *name, const char *mother, Double_t step, Int_t iaxis, Double_t c0, Int_t numed, Int_t ndvmx)
Definition TGeant4.cxx:501
virtual void SetMaxNStep(Int_t)
virtual void Gckmat(Int_t itmed, char *natmed)
Definition TGeant4.cxx:311
virtual Double_t TrackTime() const
virtual Double_t Etot() const
virtual const char * VolName(Int_t id) const
Definition TGeant4.cxx:786
TG4RunConfiguration * fRunConfiguration
run configuration
Definition TGeant4.h:386
virtual void SetClipBox(const char *name, Double_t xmin, Double_t xmax, Double_t ymin, Double_t ymax, Double_t zmin, Double_t zmax)
Definition TGeant4.cxx:1288
virtual void Gsatt(const char *name, const char *att, Int_t val)
Definition TGeant4.cxx:1098
virtual void SetSkinSurface(const char *name, const char *volName, const char *opSurfaceName)
Definition TGeant4.cxx:627
virtual void InterruptTrack()
virtual void InitLego()
Definition TGeant4.cxx:1325
virtual void DrawOneSpec(const char *name)
Definition TGeant4.cxx:1090
virtual void SetBorderSurface(const char *name, const char *vol1Name, int vol1CopyNo, const char *vol2Name, int vol2CopyNo, const char *opSurfaceName)
Definition TGeant4.cxx:614
virtual Bool_t DefineParticle(Int_t pdg, const char *name, TMCParticleType mcType, Double_t mass, Double_t charge, Double_t lifetime)
Definition TGeant4.cxx:931
virtual Bool_t SetDecayMode(Int_t pdg, Float_t bratio[6], Int_t mode[6][3])
Definition TGeant4.cxx:989
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)
Definition TGeant4.cxx:707
virtual void SetUserParameters(Bool_t isUserParameters)
Definition TGeant4.cxx:763
virtual void Gmtod(Float_t *xm, Float_t *xd, Int_t iflag)
virtual Int_t Gsvolu(const char *name, const char *shape, Int_t nmed, Double_t *upar, Int_t np)
Definition TGeant4.cxx:444
virtual Int_t VolId2Mate(Int_t id) const
Definition TGeant4.cxx:854
virtual Bool_t IsTrackEntering() const
TGeant4(const TGeant4 &right)
Not implemented.
virtual Bool_t ProcessRun(Int_t nofEvents)
Definition TGeant4.cxx:1180
virtual Int_t CurrentVolID(Int_t &copyNo) const
virtual Int_t GetMaxNStep() const
TString fUserGeometry
user geometry
Definition TGeant4.h:390
G4VisExecutive * fVisExecutive
Geant4 visualization manager.
Definition TGeant4.h:384
virtual Bool_t IsNewTrack() const
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")
Definition TGeant4.cxx:523
Int_t fMaterialCounter
global material counter
Definition TGeant4.h:388
virtual void TrackPolarization(Double_t &polX, Double_t &polY, Double_t &polZ) const
virtual void ForceDecayTime(Float_t)
virtual Bool_t CurrentBoundaryNormal(Double_t &x, Double_t &y, Double_t &z) const
virtual Int_t MediumId(const Text_t *medName) const
Definition TGeant4.cxx:798
TG4VisManager * fVisManager
visualization manager
Definition TGeant4.h:383
virtual TString ParticleName(Int_t pdg) const
Definition TGeant4.cxx:1029
virtual void SetCollectTracks(Bool_t collectTracks)
Definition TGeant4.cxx:1196
TGeant4 & operator=(const TGeant4 &right)
Not implemented.
virtual Double_t MaxStep() const
virtual Bool_t SecondariesAreOrdered() const
Definition TGeant4.cxx:1252
virtual void TrackMomentum(TLorentzVector &momentum) const
virtual void StopRun()
virtual Bool_t IsTrackInside() const
void ProcessGeantCommand(const char *commandPath)
Definition TGeant4.cxx:1236
TG4SDManager * fSDManager
sensitive detectors manager
Definition TGeant4.h:380
virtual void InitMT(Int_t threadRank)
Definition TGeant4.cxx:1132
TGeant4()
Not implemented.
virtual void Gsdvn2(const char *name, const char *mother, Int_t ndiv, Int_t iaxis, Double_t c0i, Int_t numed)
Definition TGeant4.cxx:477
virtual void Gsord(const char *name, Int_t iax)
Definition TGeant4.cxx:513
virtual void SetSensitiveDetector(const TString &volName, TVirtualMCSensitiveDetector *sd)
Definition TGeant4.cxx:868
virtual void SetMaxStep(Double_t)
virtual Int_t CurrentMaterial(Float_t &a, Float_t &z, Float_t &dens, Float_t &radl, Float_t &absl) const
virtual Int_t VolId(const Text_t *volName) const
Definition TGeant4.cxx:776
virtual Int_t NofVolumes() const
Definition TGeant4.cxx:812
virtual Bool_t SetCut(const char *cutName, Double_t cutValue)
Definition TGeant4.cxx:911
virtual Int_t CurrentEvent() const
Definition TGeant4.cxx:1244
void ProcessGeantMacro(const char *macroName)
Definition TGeant4.cxx:1228
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)
Definition TGeant4.cxx:575
Bool_t FinishRun()
Definition TGeant4.cxx:1188
virtual Int_t NofVolDaughters(const char *volName) const
Definition TGeant4.cxx:823
static TGeant4 * MasterInstance()
virtual void Mixture(Int_t &kmat, const char *name, Float_t *a, Float_t *z, Double_t dens, Int_t nlmat, Float_t *wmat)
Definition TGeant4.cxx:350
virtual Bool_t IsRootGeometrySupported() const
Definition TGeant4.cxx:271
virtual void Gstpar(Int_t itmed, const char *param, Double_t parval)
Definition TGeant4.cxx:900
virtual void DefaultRange()
Definition TGeant4.cxx:1299
TGeant4 * CloneForWorker() const
Definition TGeant4.cxx:1261
void StartRootUI()
Definition TGeant4.cxx:1220
virtual Int_t CurrentMedium() const
static TGeant4 * fgMasterInstance
master instance
Definition TGeant4.h:372
virtual Int_t VolDaughterCopyNo(const char *volName, Int_t i) const
Definition TGeant4.cxx:843
virtual void Gdtom(Double_t *xd, Double_t *xm, Int_t iflag)
virtual void Gdman(Double_t u, Double_t v, const char *type)
Definition TGeant4.cxx:1317
virtual void Matrix(Int_t &krot, Double_t thetaX, Double_t phiX, Double_t thetaY, Double_t phiY, Double_t thetaZ, Double_t phiZ)
Definition TGeant4.cxx:430
virtual void TrackMomentum(Double_t &px, Double_t &py, Double_t &pz, Double_t &etot) const
virtual TVirtualMCSensitiveDetector * GetSensitiveDetector(const TString &volName) const
Definition TGeant4.cxx:877
virtual Double_t ParticleCharge(Int_t pdg) const
Definition TGeant4.cxx:1049
virtual void Gdhead(Int_t isel, const char *name, Double_t chrsiz)
Definition TGeant4.cxx:1308
virtual Bool_t IsTrackAlive() const
virtual void Gsbool(const char *onlyVolName, const char *manyVolName)
Definition TGeant4.cxx:563
virtual void GetSecondary(Int_t isec, Int_t &particleId, TLorentzVector &position, TLorentzVector &momentum)