1#ifndef TG4_PHYSICS_MANAGER_H
2#define TG4_PHYSICS_MANAGER_H
25#include <TMCParticleType.h>
26#include <TMCProcess.h>
29#include <G4Version.hh>
40class G4ProcessManager;
43class G4OpBoundaryProcess;
61 void Gstpar(Int_t itmed,
const char* param, Float_t parval);
64 Bool_t
SetCut(
const char* cutName, Float_t cutValue);
65 Bool_t
SetProcess(
const char* controlName, Int_t controlValue);
66 Bool_t
DefineParticle(Int_t pdg,
const char* name, TMCParticleType mcType,
67 Double_t mass, Double_t charge, Double_t lifetime,
const TString& pType,
68 Double_t width, Int_t iSpin, Int_t iParity, Int_t iConjugation,
69 Int_t iIsospin, Int_t iIsospinZ, Int_t gParity, Int_t lepton, Int_t baryon,
70 Bool_t stable, Bool_t shortlived = kFALSE,
const TString& subType =
"",
71 Int_t antiEncoding = 0, Double_t magMoment = 0.0,
72 Double_t excitation = 0.0);
73 Bool_t
DefineIon(
const char* name, Int_t Z, Int_t A, Int_t Q,
74 Double_t excEnergy, Double_t mass);
76 Bool_t
SetDecayMode(Int_t pdg, Float_t bratio[6], Int_t mode[6][3]);
78 Float_t
Xsec(
char* reac, Float_t energy, Int_t part, Int_t mate);
112#if G4VERSION_NUMBER == 1100
113 void StoreCerenkovMaxBetaChangeValue();
114 void ApplyCerenkovMaxBetaChangeValue();
130 G4ProcessManager* processManager, G4int subType)
const;
133 G4ProcessManager* processManager, G4int processId, G4bool activation);
172#if G4VERSION_NUMBER == 1100
174 G4double fCerenkovMaxBetaChange = 0.;
Definition of the enumerations TG4G3Control, TG4G3ControlValue.
Definition of the enumeration TG4G3Cut.
Definition of the TG4Globals class and basic container types.
Definition of the TG4NameMap class.
Definition of the TG4Verbose class.
Provides a Geant3 way control to Geant4 physics.
Provides mapping between TDatabasePDG and Geant4 particles.
Geant4 implementation of the TVirtualMC interface methods for building Geant4 physics and access to i...
TG4ParticlesManager * fParticlesManager
particles manager
Bool_t SetDecayMode(Int_t pdg, Float_t bratio[6], Int_t mode[6][3])
G4double fCutForElectron
range cut for electron
Double_t ParticleCharge(Int_t pdg) const
TMCParticleType ParticleMCType(Int_t pdg) const
G4double fCutForGamma
range cut for gamma
G4double GetCutForPositron() const
Int_t PDGFromId(Int_t mcID) const
void SetCutForProton(G4double cut)
G4double GetCutForProton() const
void SetSpecialControlsActivation()
static TG4PhysicsManager * Instance()
Double_t ParticleMass(Int_t pdg) const
void GstparControl(G4int itmed, TG4G3Control control, TG4G3ControlValue parval)
void SetCutForPositron(G4double cut)
static const G4double fgkDefautCut
the default range cut value
Double_t ParticleLifeTime(Int_t pdg) const
Bool_t SetCut(const char *cutName, Float_t cutValue)
G4double GetCutForElectron() const
void SetUserDecay(Int_t pdg)
G4bool IsOpBoundaryProcess() const
TString ParticleName(Int_t pdg) const
G4double fCutForProton
range cut for proton
TG4G3PhysicsManager * fG3PhysicsManager
G3 physics manager.
std::set< TString > fNotImplParNames
set of not implemented Gstpar parameters
Bool_t DefineIon(const char *name, Int_t Z, Int_t A, Int_t Q, Double_t excEnergy, Double_t mass)
void GstparCut(G4int itmed, TG4G3Cut par, G4double parval)
G4double GetCutForGamma() const
Bool_t SetProcess(const char *controlName, Int_t controlValue)
void SetCutForElectron(G4double cut)
TG4PhysicsManager & operator=(const TG4PhysicsManager &right)
Not implemented.
TMCProcess GetMCProcess(const G4VProcess *process)
void SetSpecialCutsActivation()
G4double fCutForPositron
range cut for positron
Int_t IdFromPDG(Int_t pdgID) const
void RetrieveOpBoundaryProcess()
G4ParticleDefinition * GetParticleDefinition(G4int pdgEncoding) const
void SetProcessActivation()
virtual ~TG4PhysicsManager()
TMCProcess GetOpBoundaryStatus()
G4VProcess * GetProcess(G4ProcessManager *processManager, G4int subType) const
void SetCutForGamma(G4double cut)
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)
G4OpBoundaryProcess * fOpBoundaryProcess
optical boundary process
Float_t Xsec(char *reac, Float_t energy, Int_t part, Int_t mate)
static TG4ProcessMap * fgProcessMap
the mapping between G4 processes and G3 process controls
void Gstpar(Int_t itmed, const char *param, Float_t parval)
static TG4PhysicsManager * fgInstance
this instance
TG4PhysicsManager(const TG4PhysicsManager &right)
Not implemented.
Maps G4 process sub types to TMCProcess and TG4G3Control codes.
Base class for defining the verbose level and a common messenger.
TG4G3ControlValue
Enumeration for G3 processes control values.
TG4G3Cut
Enumeration for G3 types of kinetic energy cuts.
TG4G3Control
Enumeration for G3 types of physics processes controls.