Geant4 11.2.2
Toolkit for the simulation of the passage of particles through matter
|
The G4VDNAModel class. More...
#include <G4VDNAModel.hh>
Protected Types | |
using | MaterialParticleMapData |
Protected Member Functions | |
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 | |
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 G4VDNAModel class.
All the models using the DNA material management should inherit from that class. The goal is to allow the use of the material management system with little code interferences within the model classes.
Definition at line 50 of file G4VDNAModel.hh.
|
protected |
Definition at line 173 of file G4VDNAModel.hh.
G4VDNAModel Constructeur of the G4VDNAModel class.
nam | |
applyToMaterial |
Definition at line 36 of file G4VDNAModel.cc.
|
overridedefault |
~G4VDNAModel
|
protected |
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.
materialName |
param particleName
fileCS |
param scaleFactor
|
protected |
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.
materialName |
param particleName
fileCS |
param fileDiffCS
scaleFactor |
Referenced by G4DNACPA100ElasticModel::Initialise(), G4DNACPA100ExcitationModel::Initialise(), G4DNACPA100IonisationModel::Initialise(), G4DNAPTBElasticModel::Initialise(), G4DNAPTBExcitationModel::Initialise(), and G4DNAPTBIonisationModel::Initialise().
BuildApplyToMatVect Build the material name vector which is used to know the materials the user want to include in the model.
materials |
Definition at line 138 of file G4VDNAModel.cc.
Referenced by LoadCrossSectionData().
|
overridepure virtual |
CrossSectionPerVolume Every model must implement its own CrossSectionPerVolume method. It is used by the process to determine the step path and must return a cross section times a number of molecules per volume unit.
material |
param materialName
p |
param ekin
emin | |
emax |
Reimplemented from G4VEmModel.
Implemented in G4DNACPA100ElasticModel, G4DNACPA100ExcitationModel, G4DNACPA100IonisationModel, G4DNAPTBElasticModel, G4DNAPTBExcitationModel, G4DNAPTBIonisationModel, and G4DNAVacuumModel.
|
protected |
EnableMaterialAndParticle.
materialName | |
particleName | Meant to fill fTableData with 0 for the specified material and particle, therefore allowing the ModelInterface class to proceed with the material and particle even if no data are registered here. The data should obviously be registered somewhere in the child class. This method is here to allow an easy use of the no-ModelInterface dna models within the ModelInterface system. |
Definition at line 132 of file G4VDNAModel.cc.
Referenced by G4DNAVacuumModel::Initialise().
|
inlineprotected |
GetTableData.
Definition at line 183 of file G4VDNAModel.hh.
Referenced by G4DNACPA100ElasticModel::CrossSectionPerVolume(), G4DNACPA100ExcitationModel::CrossSectionPerVolume(), G4DNACPA100IonisationModel::CrossSectionPerVolume(), G4DNAPTBElasticModel::CrossSectionPerVolume(), G4DNAPTBExcitationModel::CrossSectionPerVolume(), and G4DNAPTBIonisationModel::CrossSectionPerVolume().
|
inline |
GetHighEnergyLimit.
material | |
particle |
Definition at line 130 of file G4VDNAModel.hh.
Referenced by G4DNACPA100ElasticModel::CrossSectionPerVolume(), G4DNACPA100ExcitationModel::CrossSectionPerVolume(), G4DNACPA100IonisationModel::CrossSectionPerVolume(), G4DNAPTBElasticModel::CrossSectionPerVolume(), G4DNAPTBExcitationModel::CrossSectionPerVolume(), G4DNAPTBIonisationModel::CrossSectionPerVolume(), G4DNACPA100ExcitationModel::SampleSecondaries(), G4DNACPA100IonisationModel::SampleSecondaries(), G4DNAPTBElasticModel::SampleSecondaries(), G4DNAPTBExcitationModel::SampleSecondaries(), and G4DNAPTBIonisationModel::SampleSecondaries().
|
inline |
GetLowEnergyLimit.
material | |
particle |
Definition at line 141 of file G4VDNAModel.hh.
Referenced by G4DNACPA100ElasticModel::CrossSectionPerVolume(), G4DNACPA100ExcitationModel::CrossSectionPerVolume(), G4DNACPA100IonisationModel::CrossSectionPerVolume(), G4DNAPTBElasticModel::CrossSectionPerVolume(), G4DNAPTBExcitationModel::CrossSectionPerVolume(), G4DNAPTBIonisationModel::CrossSectionPerVolume(), G4DNACPA100ExcitationModel::SampleSecondaries(), G4DNACPA100IonisationModel::SampleSecondaries(), G4DNAPTBElasticModel::SampleSecondaries(), G4DNAPTBExcitationModel::SampleSecondaries(), and G4DNAPTBIonisationModel::SampleSecondaries().
|
inline |
GetName.
Definition at line 119 of file G4VDNAModel.hh.
Referenced by G4DNACPA100ElasticModel::CrossSectionPerVolume(), G4DNACPA100ExcitationModel::CrossSectionPerVolume(), G4DNACPA100IonisationModel::CrossSectionPerVolume(), RandomSelectShell(), and G4DNACPA100ExcitationModel::SampleSecondaries().
|
overridepure virtual |
Initialise Each model must implement an Initialize method.
particle | |
cuts |
Implements G4VEmModel.
Implemented in G4DNACPA100ElasticModel, G4DNACPA100ExcitationModel, G4DNACPA100IonisationModel, G4DNAPTBElasticModel, G4DNAPTBExcitationModel, G4DNAPTBIonisationModel, and G4DNAVacuumModel.
G4bool G4VDNAModel::IsMaterialDefine | ( | const size_t & | materialID | ) |
IsMaterialDefine Check if the given material is defined in the simulation.
materialName |
Definition at line 228 of file G4VDNAModel.cc.
G4bool G4VDNAModel::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 ?
particleName | |
materialName |
Definition at line 260 of file G4VDNAModel.cc.
|
protected |
LoadCrossSectionData Method to loop on all the registered materials in the model and load the corresponding data.
Definition at line 64 of file G4VDNAModel.cc.
Referenced by G4DNACPA100ElasticModel::Initialise(), G4DNACPA100ExcitationModel::Initialise(), G4DNACPA100IonisationModel::Initialise(), G4DNAPTBElasticModel::Initialise(), G4DNAPTBExcitationModel::Initialise(), and G4DNAPTBIonisationModel::Initialise().
|
protected |
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.
k |
param particle
materialName |
Definition at line 179 of file G4VDNAModel.cc.
Referenced by G4DNACPA100ExcitationModel::SampleSecondaries(), G4DNACPA100IonisationModel::SampleSecondaries(), G4DNAPTBExcitationModel::SampleSecondaries(), and G4DNAPTBIonisationModel::SampleSecondaries().
|
protected |
ReadAndSaveCSFile Read and save a "simple" cross section file : use of G4DNACrossSectionDataSet->loadData()
materialName | |
particleName | |
file | |
scaleFactor |
Definition at line 171 of file G4VDNAModel.cc.
Referenced by LoadCrossSectionData().
|
protectedvirtual |
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.
materialName | |
particleName | |
path | |
scaleFactor |
Definition at line 122 of file G4VDNAModel.cc.
Referenced by LoadCrossSectionData().
|
overridepure virtual |
SampleSecondaries Each model must implement SampleSecondaries to decide if a particle will be created after the ModelInterface or if any charateristic of the incident particle will change.
materialName |
param particleChangeForGamma
tmin |
param tmax
Implements G4VEmModel.
Implemented in G4DNACPA100ElasticModel, G4DNACPA100ExcitationModel, G4DNACPA100IonisationModel, G4DNAPTBElasticModel, G4DNAPTBExcitationModel, G4DNAPTBIonisationModel, and G4DNAVacuumModel.
|
inline |
SetHighEnergyLimit.
material | |
particle | |
lim |
Definition at line 152 of file G4VDNAModel.hh.
Referenced by G4DNACPA100ElasticModel::Initialise(), G4DNACPA100ExcitationModel::Initialise(), G4DNACPA100IonisationModel::Initialise(), G4DNAPTBElasticModel::Initialise(), G4DNAPTBExcitationModel::Initialise(), and G4DNAPTBIonisationModel::Initialise().
|
inline |
SetLowEnergyLimit.
material | |
particle | |
lim |
Definition at line 163 of file G4VDNAModel.hh.
Referenced by G4DNACPA100ElasticModel::Initialise(), G4DNACPA100ExcitationModel::Initialise(), G4DNACPA100IonisationModel::Initialise(), G4DNAPTBElasticModel::Initialise(), G4DNAPTBExcitationModel::Initialise(), and G4DNAPTBIonisationModel::Initialise().
|
protected |
Definition at line 169 of file G4VDNAModel.hh.
Referenced by G4DNAPTBElasticModel::Initialise(), G4DNAPTBExcitationModel::Initialise(), and G4DNAPTBIonisationModel::Initialise().