Geant4 11.2.2
Toolkit for the simulation of the passage of particles through matter
|
The G4DNAPTBIonisationModel class Implements the PTB ionisation model. More...
#include <G4DNAPTBIonisationModel.hh>
Public Types | |
using | TriDimensionMap |
using | VecMap |
using | VecMapWithShell |
Public Member Functions | |
G4DNAPTBIonisationModel (const G4String &applyToMaterial="all", const G4ParticleDefinition *p=nullptr, const G4String &nam="DNAPTBIonisationModel", const G4bool isAuger=true) | |
G4DNAPTBIonisationModel Constructor. | |
~G4DNAPTBIonisationModel () override=default | |
~G4DNAPTBIonisationModel Destructor | |
G4DNAPTBIonisationModel (const G4DNAPTBIonisationModel &)=delete | |
G4DNAPTBIonisationModel & | operator= (const G4DNAPTBIonisationModel &right)=delete |
void | Initialise (const G4ParticleDefinition *particle, const G4DataVector &data) override |
Initialise Method called once at the beginning of the simulation. It is used to setup the list of the materials managed by the model and the energy limits. All the materials are setup but only a part of them can be activated by the user through the constructor. | |
G4double | CrossSectionPerVolume (const G4Material *material, const G4ParticleDefinition *p, G4double ekin, G4double emin, G4double emax) override |
CrossSectionPerVolume Mandatory for every model the CrossSectionPerVolume method is in charge of returning the cross section value corresponding to the material, particle and energy current values. | |
void | SampleSecondaries (std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double tmax) override |
SampleSecondaries If the model is selected for the ModelInterface then SampleSecondaries will be called. The method sets the characteristics of the particles implied with the physical process after the ModelInterface (energy, momentum...). This method is mandatory for every model. | |
Public Member Functions inherited from G4VDNAModel | |
G4VDNAModel (const G4String &nam, const G4String &applyToMaterial="") | |
G4VDNAModel Constructeur of the G4VDNAModel class. | |
~G4VDNAModel () override | |
~G4VDNAModel | |
G4bool | IsMaterialDefine (const size_t &materialID) |
IsMaterialDefine Check if the given material is defined in the simulation. | |
G4bool | IsParticleExistingInModelForMaterial (const G4ParticleDefinition *particleName, const size_t &materialID) |
IsParticleExistingInModelForMaterial To check two things: 1- is the material existing in model ? 2- if yes, is the particle defined for that material ? | |
G4String | GetName () |
GetName. | |
G4double | GetHighELimit (const size_t &materialID, const G4ParticleDefinition *particle) |
GetHighEnergyLimit. | |
G4double | GetLowELimit (const size_t &materialID, const G4ParticleDefinition *particle) |
GetLowEnergyLimit. | |
void | SetHighELimit (const size_t &materialID, const G4ParticleDefinition *particle, G4double lim) |
SetHighEnergyLimit. | |
void | SetLowELimit (const size_t &materialID, const G4ParticleDefinition *particle, G4double lim) |
SetLowEnergyLimit. | |
Public Member Functions inherited from G4VEmModel | |
G4VEmModel (const G4String &nam) | |
virtual | ~G4VEmModel () |
virtual void | InitialiseLocal (const G4ParticleDefinition *, G4VEmModel *masterModel) |
virtual void | InitialiseForMaterial (const G4ParticleDefinition *, const G4Material *) |
virtual void | InitialiseForElement (const G4ParticleDefinition *, G4int Z) |
virtual G4double | ComputeDEDXPerVolume (const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=DBL_MAX) |
virtual G4double | GetPartialCrossSection (const G4Material *, G4int level, const G4ParticleDefinition *, G4double kineticEnergy) |
virtual G4double | ComputeCrossSectionPerAtom (const G4ParticleDefinition *, G4double kinEnergy, G4double Z, G4double A=0., G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX) |
virtual G4double | ComputeCrossSectionPerShell (const G4ParticleDefinition *, G4int Z, G4int shellIdx, G4double kinEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX) |
virtual G4double | ChargeSquareRatio (const G4Track &) |
virtual G4double | GetChargeSquareRatio (const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy) |
virtual G4double | GetParticleCharge (const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy) |
virtual void | StartTracking (G4Track *) |
virtual void | CorrectionsAlongStep (const G4MaterialCutsCouple *, const G4DynamicParticle *, const G4double &length, G4double &eloss) |
virtual G4double | Value (const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy) |
virtual G4double | MinPrimaryEnergy (const G4Material *, const G4ParticleDefinition *, G4double cut=0.0) |
virtual G4double | MinEnergyCut (const G4ParticleDefinition *, const G4MaterialCutsCouple *) |
virtual void | SetupForMaterial (const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy) |
virtual void | DefineForRegion (const G4Region *) |
virtual void | FillNumberOfSecondaries (G4int &numberOfTriplets, G4int &numberOfRecoil) |
virtual void | ModelDescription (std::ostream &outFile) const |
void | InitialiseElementSelectors (const G4ParticleDefinition *, const G4DataVector &) |
std::vector< G4EmElementSelector * > * | GetElementSelectors () |
void | SetElementSelectors (std::vector< G4EmElementSelector * > *) |
G4double | ComputeDEDX (const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=DBL_MAX) |
G4double | CrossSection (const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX) |
G4double | ComputeMeanFreePath (const G4ParticleDefinition *, G4double kineticEnergy, const G4Material *, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX) |
G4double | ComputeCrossSectionPerAtom (const G4ParticleDefinition *, const G4Element *, G4double kinEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX) |
const G4Element * | SelectRandomAtom (const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX) |
const G4Element * | SelectTargetAtom (const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double logKineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX) |
const G4Element * | SelectRandomAtom (const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX) |
const G4Element * | GetCurrentElement (const G4Material *mat=nullptr) const |
G4int | SelectRandomAtomNumber (const G4Material *) const |
const G4Isotope * | GetCurrentIsotope (const G4Element *elm=nullptr) const |
G4int | SelectIsotopeNumber (const G4Element *) const |
void | SetParticleChange (G4VParticleChange *, G4VEmFluctuationModel *f=nullptr) |
void | SetCrossSectionTable (G4PhysicsTable *, G4bool isLocal) |
G4ElementData * | GetElementData () |
G4PhysicsTable * | GetCrossSectionTable () |
G4VEmFluctuationModel * | GetModelOfFluctuations () |
G4VEmAngularDistribution * | GetAngularDistribution () |
G4VEmModel * | GetTripletModel () |
void | SetTripletModel (G4VEmModel *) |
void | SetAngularDistribution (G4VEmAngularDistribution *) |
G4double | HighEnergyLimit () const |
G4double | LowEnergyLimit () const |
G4double | HighEnergyActivationLimit () const |
G4double | LowEnergyActivationLimit () const |
G4double | PolarAngleLimit () const |
G4double | SecondaryThreshold () const |
G4bool | DeexcitationFlag () const |
G4bool | ForceBuildTableFlag () const |
G4bool | UseAngularGeneratorFlag () const |
void | SetAngularGeneratorFlag (G4bool) |
void | SetHighEnergyLimit (G4double) |
void | SetLowEnergyLimit (G4double) |
void | SetActivationHighEnergyLimit (G4double) |
void | SetActivationLowEnergyLimit (G4double) |
G4bool | IsActive (G4double kinEnergy) const |
void | SetPolarAngleLimit (G4double) |
void | SetSecondaryThreshold (G4double) |
void | SetDeexcitationFlag (G4bool val) |
void | SetForceBuildTable (G4bool val) |
void | SetFluctuationFlag (G4bool val) |
void | SetMasterThread (G4bool val) |
G4bool | IsMaster () const |
void | SetUseBaseMaterials (G4bool val) |
G4bool | UseBaseMaterials () const |
G4double | MaxSecondaryKinEnergy (const G4DynamicParticle *dynParticle) |
const G4String & | GetName () const |
void | SetCurrentCouple (const G4MaterialCutsCouple *) |
G4bool | IsLocked () const |
void | SetLocked (G4bool) |
void | SetLPMFlag (G4bool) |
G4VEmModel & | operator= (const G4VEmModel &right)=delete |
G4VEmModel (const G4VEmModel &)=delete | |
Public Attributes | |
G4ParticleChangeForGamma * | fParticleChangeForGamma = nullptr |
Additional Inherited Members | |
Protected Types inherited from G4VDNAModel | |
using | MaterialParticleMapData |
Protected Member Functions inherited from G4VDNAModel | |
MaterialParticleMapData * | GetData () |
GetTableData. | |
std::vector< G4String > | BuildApplyToMatVect (const G4String &materials) |
BuildApplyToMatVect Build the material name vector which is used to know the materials the user want to include in the model. | |
void | ReadAndSaveCSFile (const size_t &materialID, const G4ParticleDefinition *p, const G4String &file, const G4double &scaleFactor) |
ReadAndSaveCSFile Read and save a "simple" cross section file : use of G4DNACrossSectionDataSet->loadData() | |
G4int | RandomSelectShell (const G4double &k, const G4ParticleDefinition *particle, const size_t &materialName) |
RandomSelectShell Method to randomely select a shell from the data table uploaded. The size of the table (number of columns) is used to determine the total number of possible shells. | |
void | AddCrossSectionData (const size_t &materialName, const G4ParticleDefinition *particleName, const G4String &fileCS, const G4String &fileDiffCS, const G4double &scaleFactor) |
AddCrossSectionData Method used during the initialization of the model class to add a new material. It adds a material to the model and fills vectors with informations. | |
void | AddCrossSectionData (const size_t &materialName, const G4ParticleDefinition *particleName, const G4String &fileCS, const G4double &scaleFactor) |
AddCrossSectionData Method used during the initialization of the model class to add a new material. It adds a material to the model and fills vectors with informations. Not every model needs differential cross sections. | |
void | LoadCrossSectionData (const G4ParticleDefinition *particleName) |
LoadCrossSectionData Method to loop on all the registered materials in the model and load the corresponding data. | |
virtual void | ReadDiffCSFile (const size_t &materialName, const G4ParticleDefinition *particleName, const G4String &path, const G4double &scaleFactor) |
ReadDiffCSFile Virtual method that need to be implemented if one wish to use the differential cross sections. The read method for that kind of information is not standardized yet. | |
void | EnableForMaterialAndParticle (const size_t &materialID, const G4ParticleDefinition *p) |
EnableMaterialAndParticle. | |
Protected Member Functions inherited from G4VEmModel | |
G4ParticleChangeForLoss * | GetParticleChangeForLoss () |
G4ParticleChangeForGamma * | GetParticleChangeForGamma () |
virtual G4double | MaxSecondaryEnergy (const G4ParticleDefinition *, G4double kineticEnergy) |
const G4MaterialCutsCouple * | CurrentCouple () const |
void | SetCurrentElement (const G4Element *) |
Protected Attributes inherited from G4VDNAModel | |
G4bool | isInitialised = false |
Protected Attributes inherited from G4VEmModel | |
G4ElementData * | fElementData = nullptr |
G4VParticleChange * | pParticleChange = nullptr |
G4PhysicsTable * | xSectionTable = nullptr |
const G4Material * | pBaseMaterial = nullptr |
const std::vector< G4double > * | theDensityFactor = nullptr |
const std::vector< G4int > * | theDensityIdx = nullptr |
G4double | inveplus |
G4double | pFactor = 1.0 |
std::size_t | currentCoupleIndex = 0 |
std::size_t | basedCoupleIndex = 0 |
G4bool | lossFlucFlag = true |
The G4DNAPTBIonisationModel class Implements the PTB ionisation model.
Definition at line 50 of file G4DNAPTBIonisationModel.hh.
Definition at line 53 of file G4DNAPTBIonisationModel.hh.
Definition at line 56 of file G4DNAPTBIonisationModel.hh.
Definition at line 58 of file G4DNAPTBIonisationModel.hh.
|
explicit |
G4DNAPTBIonisationModel Constructor.
applyToMaterial | |
p | |
nam | |
isAuger |
Definition at line 39 of file G4DNAPTBIonisationModel.cc.
|
overridedefault |
~G4DNAPTBIonisationModel Destructor
|
delete |
|
overridevirtual |
CrossSectionPerVolume Mandatory for every model the CrossSectionPerVolume method is in charge of returning the cross section value corresponding to the material, particle and energy current values.
material | |
materialName | |
p | |
ekin | |
emin | |
emax |
Implements G4VDNAModel.
Definition at line 255 of file G4DNAPTBIonisationModel.cc.
|
overridevirtual |
Initialise Method called once at the beginning of the simulation. It is used to setup the list of the materials managed by the model and the energy limits. All the materials are setup but only a part of them can be activated by the user through the constructor.
Implements G4VDNAModel.
Definition at line 64 of file G4DNAPTBIonisationModel.cc.
|
delete |
|
overridevirtual |
SampleSecondaries If the model is selected for the ModelInterface then SampleSecondaries will be called. The method sets the characteristics of the particles implied with the physical process after the ModelInterface (energy, momentum...). This method is mandatory for every model.
materialName |
param particleChangeForGamma
tmin |
param tmax
Implements G4VDNAModel.
Definition at line 300 of file G4DNAPTBIonisationModel.cc.
G4ParticleChangeForGamma* G4DNAPTBIonisationModel::fParticleChangeForGamma = nullptr |
Definition at line 118 of file G4DNAPTBIonisationModel.hh.
Referenced by Initialise(), and SampleSecondaries().