14#ifndef ALICEO2_MC_TRIVIALMCENGINE_H_
15#define ALICEO2_MC_TRIVIALMCENGINE_H_
18#include <TLorentzVector.h>
20#include <TMCProcess.h>
22#include <TVirtualMC.h>
24#include <TVirtualMCStack.h>
25#include <TMCManager.h>
38 :
TVirtualMC(
"O2TrivialMCEngine",
"O2TrivialMCEngine")
40 fApplication->ConstructGeometry();
61 Double_t
z, Double_t dens, Double_t radl, Double_t absl,
64 Warning(
"Material",
"Not implemented in this trivial engine");
68 Double_t
z, Double_t dens, Double_t radl, Double_t absl,
69 Double_t*
buf, Int_t nwbuf)
override
71 Warning(
"Material",
"Not implemented in this trivial engine");
77 Warning(
"Mixture",
"Not implemented in this trivial engine");
81 Double_t*
z, Double_t dens, Int_t nlmat, Double_t* wmat)
override
83 Warning(
"Mixture",
"Not implemented in this trivial engine");
87 Int_t isvol, Int_t ifield, Double_t fieldm, Double_t tmaxfd,
88 Double_t stemax, Double_t deemax, Double_t epsil,
89 Double_t stmin,
Float_t* ubuf, Int_t nbuf)
override
91 Warning(
"Medium",
"Not implemented in this trivial engine");
95 Int_t isvol, Int_t ifield, Double_t fieldm, Double_t tmaxfd,
96 Double_t stemax, Double_t deemax, Double_t epsil,
97 Double_t stmin, Double_t* ubuf, Int_t nbuf)
override
99 Warning(
"Medium",
"Not implemented in this trivial engine");
102 void Matrix(Int_t& krot, Double_t thetaX, Double_t phiX,
103 Double_t thetaY, Double_t phiY, Double_t thetaZ,
104 Double_t phiZ)
override
106 Warning(
"Matrix",
"Not implemented in this trivial engine");
109 void Gstpar(Int_t itmed,
const char*
param, Double_t parval)
override
111 Warning(
"Gstpar",
"Not implemented in this trivial engine");
119 Int_t
Gsvolu(
const char*
name,
const char* shape, Int_t nmed,
120 Float_t* upar, Int_t np)
override
122 Warning(
"Gsvolu",
"Not implemented in this trivial engine");
126 Int_t
Gsvolu(
const char*
name,
const char* shape, Int_t nmed,
127 Double_t* upar, Int_t np)
override
129 Warning(
"Gsvolu",
"Not implemented in this trivial engine");
133 void Gsdvn(
const char*
name,
const char* mother, Int_t ndiv,
134 Int_t iaxis)
override
136 Warning(
"Gsdvn",
"Not implemented in this trivial engine");
139 void Gsdvn2(
const char*
name,
const char* mother, Int_t ndiv,
140 Int_t iaxis, Double_t c0i, Int_t numed)
override
142 Warning(
"Gsdvn2",
"Not implemented in this trivial engine");
145 void Gsdvt(
const char*
name,
const char* mother, Double_t step,
146 Int_t iaxis, Int_t numed, Int_t ndvmx)
override
148 Warning(
"Gsdvt",
"Not implemented in this trivial engine");
151 void Gsdvt2(
const char*
name,
const char* mother, Double_t step,
152 Int_t iaxis, Double_t c0, Int_t numed, Int_t ndvmx)
override
154 Warning(
"Gsdvt2",
"Not implemented in this trivial engine");
159 Warning(
"Gsord",
"Not implemented in this trivial engine");
162 void Gspos(
const char*
name, Int_t nr,
const char* mother,
163 Double_t
x, Double_t
y, Double_t
z, Int_t irot,
164 const char* konly =
"ONLY")
override
166 Warning(
"Gspos",
"Not implemented in this trivial engine");
170 Double_t
x, Double_t
y, Double_t
z, Int_t irot,
171 const char* konly,
Float_t* upar, Int_t np)
override
173 Warning(
"Gsposp",
"Not implemented in this trivial engine");
177 Double_t
x, Double_t
y, Double_t
z, Int_t irot,
178 const char* konly, Double_t* upar, Int_t np)
override
180 Warning(
"Gsposp",
"Not implemented in this trivial engine");
183 void Gsbool(
const char* onlyVolName,
const char* manyVolName)
override
185 Warning(
"Gsbool",
"Not implemented in this trivial engine");
196 Warning(
"SetCerenkov",
"Not implemented in this trivial engine");
199 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)
override
201 Warning(
"SetCerenkov",
"Not implemented in this trivial engine");
205 EMCOpSurfaceModel model,
206 EMCOpSurfaceType surfaceType,
207 EMCOpSurfaceFinish surfaceFinish,
208 Double_t sigmaAlpha)
override
210 Warning(
"DefineOpSurface",
"Not implemented in this trivial engine");
214 const char* vol1Name,
int vol1CopyNo,
215 const char* vol2Name,
int vol2CopyNo,
216 const char* opSurfaceName)
override
218 Warning(
"SetBorderSurface",
"Not implemented in this trivial engine");
223 const char* opSurfaceName)
override
225 Warning(
"SetSkinSurface",
"Not implemented in this trivial engine");
228 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)
override
230 Warning(
"SetMaterialProperty",
"Not implemented in this trivial engine");
234 Warning(
"SetMaterialProperty",
"Not implemented in this trivial engine");
236 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)
override
238 Warning(
"SetMaterialProperty",
"Not implemented in this trivial engine");
247 TGeoHMatrix& matrix)
override
249 Warning(
"GetTransformation",
"Not implemented in this trivial engine");
254 TString& shapeType, TArrayD& par)
override
256 Warning(
"GetShape",
"Not implemented in this trivial engine");
261 Double_t&
a, Double_t&
z, Double_t& density,
262 Double_t& radl, Double_t& inter, TArrayD& par)
override
264 Warning(
"GetMaterial",
"Not implemented in this trivial engine");
269 TString&
name, Int_t& imat,
270 Double_t&
a, Double_t&
z, Double_t& density,
271 Double_t& radl, Double_t& inter, TArrayD& par)
override
273 Warning(
"GetMaterial",
"Not implemented in this trivial engine");
278 TString&
name, Int_t& imed,
279 Int_t& nmat, Int_t& isvol, Int_t& ifield,
280 Double_t& fieldm, Double_t& tmaxfd, Double_t& stemax,
281 Double_t& deemax, Double_t& epsil, Double_t& stmin,
282 TArrayD& par)
override
284 Warning(
"GetMedium",
"Not implemented in this trivial engine");
289 Int_t number, Int_t nlevel)
override
291 Warning(
"WriteEuclid",
"Not implemented in this trivial engine");
298 Warning(
"SetUserParameters",
"Not implemented in this trivial engine");
306 Int_t
VolId(
const char* volName)
const override
308 Warning(
"VolId",
"Not implemented in this trivial engine");
314 Warning(
"VolName",
"Not implemented in this trivial engine");
318 Int_t
MediumId(
const char* mediumName)
const override
320 Warning(
"MediumId",
"Not implemented in this trivial engine");
326 Warning(
"NofVolumes",
"Not implemented in this trivial engine");
332 Warning(
"VolId2Mate",
"Not implemented in this trivial engine");
338 Warning(
"NofVolDaughters",
"Not implemented in this trivial engine");
344 Warning(
"VolDaughterName",
"Not implemented in this trivial engine");
350 Warning(
"VolDaughterCopyNo",
"Not implemented in this trivial engine");
365 Warning(
"SetSensitiveDetector",
"Not implemented in this trivial engine");
372 Warning(
"GetSensitiveDetector",
"Not implemented in this trivial engine");
381 Warning(
"SetExclusiveSDScoring",
"Not implemented in this trivial engine");
395 Bool_t
SetCut(
const char* cutName, Double_t cutValue)
override
397 Warning(
"SetCut",
"Not implemented in this trivial engine");
401 Bool_t
SetProcess(
const char* flagName, Int_t flagValue)
override
403 Warning(
"SetProcess",
"Not implemented in this trivial engine");
408 TMCParticleType mcType,
409 Double_t mass, Double_t
charge, Double_t lifetime)
override
411 Warning(
"DefineParticle",
"Not implemented in this trivial engine");
416 TMCParticleType mcType,
417 Double_t mass, Double_t
charge, Double_t lifetime,
418 const TString& pType, Double_t
width,
419 Int_t iSpin, Int_t iParity, Int_t iConjugation,
420 Int_t iIsospin, Int_t iIsospinZ, Int_t gParity,
421 Int_t lepton, Int_t baryon,
422 Bool_t stable, Bool_t shortlived = kFALSE,
423 const TString& subType =
"",
424 Int_t antiEncoding = 0, Double_t magMoment = 0.0,
425 Double_t excitation = 0.0)
override
427 Warning(
"DefineParticle",
"Not implemented in this trivial engine");
432 Int_t Q, Double_t excEnergy, Double_t mass = 0.)
override
434 Warning(
"DefineIon",
"Not implemented in this trivial engine");
440 Warning(
"SetDecayMode",
"Not implemented in this trivial engine");
444 Double_t
Xsec(
char*, Double_t, Int_t, Int_t)
override
446 Warning(
"Xsec",
"Not implemented in this trivial engine");
457 Warning(
"IdFromPDG",
"Not implemented in this trivial engine");
463 Warning(
"PDGFromId",
"Not implemented in this trivial engine");
474 Warning(
"ParticleName",
"Not implemented in this trivial engine");
480 Warning(
"ParticleMass",
"Not implemented in this trivial engine");
486 Warning(
"ParticleCharge",
"Not implemented in this trivial engine");
492 Warning(
"ParticleLifeTime",
"Not implemented in this trivial engine");
498 Warning(
"ParticleMCType",
"Not implemented in this trivial engine");
499 return TMCParticleType();
514 Warning(
"StopTrack",
"Not implemented in this trivial engine");
519 Warning(
"StopEvent",
"Not implemented in this trivial engine");
524 Warning(
"StopRun",
"Not implemented in this trivial engine");
534 Warning(
"SetMaxStep",
"Not implemented in this trivial engine");
539 Warning(
"SetMaxNStep",
"Not implemented in this trivial engine");
544 Warning(
"SetUserDecay",
"Not implemented in this trivial engine");
549 Warning(
"ForceDecayTime",
"Not implemented in this trivial engine");
559 Warning(
"CurrentVolID",
"Not implemented in this trivial engine");
565 Warning(
"CurrentVolOffID",
"Not implemented in this trivial engine");
571 Warning(
"CurrentVolName",
"Not implemented in this trivial engine");
577 Warning(
"CurrentVolOffName",
"Not implemented in this trivial engine");
583 Warning(
"CurrentVolPath",
"Not implemented in this trivial engine");
588 Double_t&
x, Double_t&
y, Double_t&
z)
const override
590 Warning(
"CurrentBoundaryNormal",
"Not implemented in this trivial engine");
597 Warning(
"CurrentMaterial",
"Not implemented in this trivial engine");
603 Warning(
"CurrentMedium",
"Not implemented in this trivial engine");
609 Warning(
"CurrentEvent",
"Not implemented in this trivial engine");
615 Warning(
"Gmtod",
"Not implemented in this trivial engine");
618 void Gmtod(Double_t* xm, Double_t* xd, Int_t iflag)
override
620 Warning(
"Gmtod",
"Not implemented in this trivial engine");
625 Warning(
"Gdtom",
"Not implemented in this trivial engine");
628 void Gdtom(Double_t* xd, Double_t* xm, Int_t iflag)
override
630 Warning(
"Gdtom",
"Not implemented in this trivial engine");
635 Warning(
"MaxStep",
"Not implemented in this trivial engine");
641 Warning(
"GetMaxNStep",
"Not implemented in this trivial engine");
654 Warning(
"TrackPosition",
"Not implemented in this trivial engine");
659 Warning(
"TrackPosition",
"Not implemented in this trivial engine");
664 Warning(
"TrackPosition",
"Not implemented in this trivial engine");
669 Warning(
"TrackMomentum",
"Not implemented in this trivial engine");
672 void TrackMomentum(Double_t& px, Double_t& py, Double_t& pz, Double_t& etot)
const override
674 Warning(
"TrackMomentum",
"Not implemented in this trivial engine");
679 Warning(
"TrackMomentum",
"Not implemented in this trivial engine");
684 Warning(
"TrackStep",
"Not implemented in this trivial engine");
690 Warning(
"TrackLength",
"Not implemented in this trivial engine");
696 Warning(
"TrackTime",
"Not implemented in this trivial engine");
702 Warning(
"Edep",
"Not implemented in this trivial engine");
708 Warning(
"NIELEdep",
"Not implemented in this trivial engine");
714 Warning(
"StepNumber",
"Not implemented in this trivial engine");
720 Warning(
"TrackWeight",
"Not implemented in this trivial engine");
726 Warning(
"TrackPolarization",
"Not implemented in this trivial engine");
731 Warning(
"TrackPolarization",
"Not implemented in this trivial engine");
743 Warning(
"TrackPid",
"Not implemented in this trivial engine");
749 Warning(
"TrackCharge",
"Not implemented in this trivial engine");
755 Warning(
"TrackMass",
"Not implemented in this trivial engine");
761 Warning(
"Etot",
"Not implemented in this trivial engine");
772 Warning(
"IsNewTrack",
"Not implemented in this trivial engine");
778 Warning(
"IsTrackInside",
"Not implemented in this trivial engine");
784 Warning(
"IsTrackEntering",
"Not implemented in this trivial engine");
790 Warning(
"IsTrackExiting",
"Not implemented in this trivial engine");
796 Warning(
"IsTrackOut",
"Not implemented in this trivial engine");
802 Warning(
"IsTrackDisappeared",
"Not implemented in this trivial engine");
808 Warning(
"IsTrackStop",
"Not implemented in this trivial engine");
814 Warning(
"IsTrackAlive",
"Not implemented in this trivial engine");
825 Warning(
"NSecondaries",
"Not implemented in this trivial engine");
830 TLorentzVector& position, TLorentzVector& momentum)
override
832 Warning(
"GetSecondary",
"Not implemented in this trivial engine");
837 Warning(
"ProdProcess",
"Not implemented in this trivial engine");
843 Warning(
"StepProcesses",
"Not implemented in this trivial engine");
849 Warning(
"SecondariesAreOrdered",
"Not implemented in this trivial engine");
861 fApplication->InitGeometry();
862 Warning(
"Init",
"Not implemented in this trivial engine");
867 Warning(
"BuildPhysics",
"Not implemented in this trivial engine");
877 Warning(
"ProcessEvent",
"Not implemented in this trivial engine");
887 Info(
"InterruptTrack",
"Not implemented in this trivial engine");
896 for (Int_t
i = 0;
i < nevent;
i++) {
904 Warning(
"TerminateRun",
"Not implemented in this trivial engine");
909 Warning(
"InitLego",
"Not implemented in this trivial engine");
914 Warning(
"SetCollectTracks",
"Not implemented in this trivial engine");
919 Warning(
"IsCollectTracks",
"Not implemented in this trivial engine");
923 Bool_t
IsMT()
const override {
return kFALSE; }
928 void processEventImpl()
930 auto stack = GetStack();
931 if (!TMCManager::Instance()) {
932 fApplication->GeneratePrimaries();
936 fApplication->BeginEvent();
938 if (!
stack->PopNextTrack(itrack)) {
942 fApplication->BeginPrimary();
943 fApplication->PreTrack();
944 fApplication->PostTrack();
945 fApplication->FinishPrimary();
947 fApplication->FinishEvent();
948 Info(
"processEventImpl",
"Popped %d primaries", nPopped);
const char * CurrentVolPath() override
void BuildPhysics() override
Double_t TrackStep() const override
Int_t NSecondaries() const override
void SetUserParameters(Bool_t isUserParameters) override
void Matrix(Int_t &krot, Double_t thetaX, Double_t phiX, Double_t thetaY, Double_t phiY, Double_t thetaZ, Double_t phiZ) override
const char * VolName(Int_t id) const override
Int_t StepNumber() const override
void StopEvent() override
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) override
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) override
void SetSkinSurface(const char *name, const char *volName, const char *opSurfaceName) override
Double_t ParticleMass(Int_t pdg) const override
Int_t CurrentMedium() const override
void TrackMomentum(TLorentzVector &momentum) const override
Double_t NIELEdep() const override
TString ParticleName(Int_t pdg) const override
Double_t TrackLength() const override
Int_t NofVolumes() const override
void ProcessEvent() override
Bool_t IsNewTrack() const override
Int_t GetMaxNStep() const override
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) override
Int_t CurrentVolID(Int_t ©No) const override
void Gstpar(Int_t itmed, const char *param, Double_t parval) override
Int_t VolId2Mate(Int_t id) const override
void Gdtom(Double_t *xd, Double_t *xm, Int_t iflag) override
void Mixture(Int_t &kmat, const char *name, Double_t *a, Double_t *z, Double_t dens, Int_t nlmat, Double_t *wmat) override
Bool_t IsTrackExiting() const override
void Gsdvt(const char *name, const char *mother, Double_t step, Int_t iaxis, Int_t numed, Int_t ndvmx) override
void TrackPosition(Float_t &x, Float_t &y, Float_t &z) const override
Int_t MediumId(const char *mediumName) const override
Bool_t ProcessRun(Int_t nevent) override
void TrackMomentum(Float_t &px, Float_t &py, Float_t &pz, Float_t &etot) const override
void ForceDecayTime(Float_t) override
Double_t ParticleCharge(Int_t pdg) const override
Int_t CurrentMaterial(Float_t &a, Float_t &z, Float_t &dens, Float_t &radl, Float_t &absl) const override
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) override
TMCParticleType ParticleMCType(Int_t pdg) const override
~O2TrivialMCEngine() override=default
For now just default destructor.
void StopTrack() override
Bool_t GetTransformation(const TString &volumePath, TGeoHMatrix &matrix) override
Bool_t GetShape(const TString &volumePath, TString &shapeType, TArrayD &par) override
void SetMaxNStep(Int_t) override
Bool_t IsTrackDisappeared() const override
Bool_t SetProcess(const char *flagName, Int_t flagValue) override
void DefineOpSurface(const char *name, EMCOpSurfaceModel model, EMCOpSurfaceType surfaceType, EMCOpSurfaceFinish surfaceFinish, Double_t sigmaAlpha) override
Double_t MaxStep() const override
void ProcessEvent(Int_t eventId) override
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) override
Int_t TrackPid() const override
Bool_t IsTrackOut() const override
Int_t CurrentEvent() const override
Bool_t CurrentBoundaryNormal(Double_t &x, Double_t &y, Double_t &z) const override
const char * CurrentVolOffName(Int_t off) const override
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) override
Int_t StepProcesses(TArrayI &proc) const override
void Gsdvt2(const char *name, const char *mother, Double_t step, Int_t iaxis, Double_t c0, Int_t numed, Int_t ndvmx) override
void SetBorderSurface(const char *name, const char *vol1Name, int vol1CopyNo, const char *vol2Name, int vol2CopyNo, const char *opSurfaceName) override
const char * VolDaughterName(const char *volName, Int_t i) const override
Bool_t SecondariesAreOrdered() const override
void Gdtom(Float_t *xd, Float_t *xm, Int_t iflag) override
void Gmtod(Double_t *xm, Double_t *xd, Int_t iflag) override
void TrackMomentum(Double_t &px, Double_t &py, Double_t &pz, Double_t &etot) const override
Bool_t SetCut(const char *cutName, Double_t cutValue) override
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) override
TVirtualMCSensitiveDetector * GetSensitiveDetector(const TString &volName) const override
void SetExclusiveSDScoring(Bool_t exclusiveSDScoring) override
Bool_t IsTrackStop() const override
Bool_t DefineIon(const char *name, Int_t Z, Int_t A, Int_t Q, Double_t excEnergy, Double_t mass=0.) override
Int_t IdFromPDG(Int_t pdg) const override
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) override
const char * CurrentVolName() const override
void Gsdvn(const char *name, const char *mother, Int_t ndiv, Int_t iaxis) override
void Mixture(Int_t &kmat, const char *name, Float_t *a, Float_t *z, Double_t dens, Int_t nlmat, Float_t *wmat) override
Int_t VolDaughterCopyNo(const char *volName, Int_t i) const override
void SetCollectTracks(Bool_t collectTracks) override
Int_t VolId(const char *volName) const override
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") override
Double_t TrackCharge() const override
Bool_t IsMT() const override
Bool_t IsRootGeometrySupported() const override
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) override
Bool_t IsTrackInside() const override
void TrackPosition(TLorentzVector &position) const override
Int_t Gsvolu(const char *name, const char *shape, Int_t nmed, Float_t *upar, Int_t np) override
void TrackPolarization(TVector3 &pol) const override
void ProcessEvent(Int_t eventId, Bool_t isInterruptible) override
Double_t Edep() const override
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) override
void InterruptTrack() override
Int_t Gsvolu(const char *name, const char *shape, Int_t nmed, Double_t *upar, Int_t np) override
Int_t NofVolDaughters(const char *volName) const override
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) override
Bool_t IsCollectTracks() const override
Double_t ParticleLifeTime(Int_t pdg) const override
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) override
Int_t CurrentVolOffID(Int_t off, Int_t ©No) const override
TMCProcess ProdProcess(Int_t isec) const override
void Gsdvn2(const char *name, const char *mother, Int_t ndiv, Int_t iaxis, Double_t c0i, Int_t numed) override
void Gmtod(Float_t *xm, Float_t *xd, Int_t iflag) override
void TrackPosition(Double_t &x, Double_t &y, Double_t &z) const override
void Gsbool(const char *onlyVolName, const char *manyVolName) override
Double_t Etot() const override
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) override
void SetRootGeometry() override
Double_t TrackTime() const override
Double_t TrackWeight() const override
Double_t Xsec(char *, Double_t, Int_t, Int_t) override
Double_t TrackMass() const override
Int_t PDGFromId(Int_t id) const override
void SetMaterialProperty(Int_t itmed, const char *propertyName, Double_t value) override
Bool_t IsTrackEntering() const override
void TerminateRun() override
void TrackPolarization(Double_t &polX, Double_t &polY, Double_t &polZ) const override
Bool_t DefineParticle(Int_t pdg, const char *name, TMCParticleType mcType, Double_t mass, Double_t charge, Double_t lifetime) override
void Gsord(const char *name, Int_t iax) override
void GetSecondary(Int_t isec, Int_t &particleId, TLorentzVector &position, TLorentzVector &momentum) override
Bool_t IsTrackAlive() const override
void SetUserDecay(Int_t pdg) override
Bool_t SetDecayMode(Int_t pdg, Float_t bratio[6], Int_t mode[6][3]) override
void WriteEuclid(const char *filnam, const char *topvol, Int_t number, Int_t nlevel) override
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) override
void SetMaxStep(Double_t) override
void SetSensitiveDetector(const TString &volName, TVirtualMCSensitiveDetector *sd) override
GLuint const GLchar * name
GLsizei const GLfloat * value
GLenum GLsizei GLsizei GLint * values
GLboolean GLboolean GLboolean GLboolean a
GLenum GLuint GLenum GLsizei const GLchar * buf
GLdouble GLdouble GLdouble z
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...