Geant4 11.2.2
Toolkit for the simulation of the passage of particles through matter
|
The G4DNAPTBElasticModel class This class implements the elastic model for the DNA materials and precursors. More...
#include <G4DNAPTBElasticModel.hh>
Public Types | |
using | TriDimensionMap |
using | VecMap |
Public Member Functions | |
G4DNAPTBElasticModel (const G4String &applyToMaterial="all", const G4ParticleDefinition *p=nullptr, const G4String &nam="DNAPTBElasticModel") | |
G4DNAPTBElasticModel Constructor. | |
~G4DNAPTBElasticModel () override=default | |
~G4DNAPTBElasticModel Destructor | |
G4DNAPTBElasticModel (G4DNAPTBElasticModel &)=delete | |
G4DNAPTBElasticModel & | operator= (const G4DNAPTBElasticModel &right)=delete |
void | Initialise (const G4ParticleDefinition *particle, const G4DataVector &) override |
Initialise Mandatory method for every model class. The material/particle for which the model can be used have to be added here through the AddCrossSectionData method. Then the LoadCrossSectionData method must be called to trigger the load process. Scale factors to be applied to the cross section can be defined here. | |
G4double | CrossSectionPerVolume (const G4Material *material, const G4ParticleDefinition *p, G4double ekin, G4double emin, G4double emax) override |
CrossSectionPerVolume This method is mandatory for any model class. It finds and return the cross section value for the current material, particle and energy values. The number of molecule per volume is not used here but in the G4DNAModelInterface class. | |
void | SampleSecondaries (std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double tmax) override |
SampleSecondaries Method called after CrossSectionPerVolume if the process is the one which is selected (according to the sampling on the calculated path length). Here, the characteristics of the incident and created (if any) particle(s) are set (energy, momentum ...). | |
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 | |
Protected Attributes | |
G4ParticleChangeForGamma * | fParticleChangeForGamma = nullptr |
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 |
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 *) |
The G4DNAPTBElasticModel class This class implements the elastic model for the DNA materials and precursors.
Definition at line 48 of file G4DNAPTBElasticModel.hh.
Definition at line 51 of file G4DNAPTBElasticModel.hh.
Definition at line 53 of file G4DNAPTBElasticModel.hh.
G4DNAPTBElasticModel::G4DNAPTBElasticModel | ( | const G4String & | applyToMaterial = "all", |
const G4ParticleDefinition * | p = nullptr, | ||
const G4String & | nam = "DNAPTBElasticModel" ) |
G4DNAPTBElasticModel Constructor.
applyToMaterial | |
p | |
nam |
Definition at line 39 of file G4DNAPTBElasticModel.cc.
|
overridedefault |
~G4DNAPTBElasticModel Destructor
|
delete |
|
overridevirtual |
CrossSectionPerVolume This method is mandatory for any model class. It finds and return the cross section value for the current material, particle and energy values. The number of molecule per volume is not used here but in the G4DNAModelInterface class.
material | |
materialName | |
p | |
ekin | |
emin | |
emax |
Implements G4VDNAModel.
Definition at line 306 of file G4DNAPTBElasticModel.cc.
|
overridevirtual |
Initialise Mandatory method for every model class. The material/particle for which the model can be used have to be added here through the AddCrossSectionData method. Then the LoadCrossSectionData method must be called to trigger the load process. Scale factors to be applied to the cross section can be defined here.
Implements G4VDNAModel.
Definition at line 62 of file G4DNAPTBElasticModel.cc.
|
delete |
|
overridevirtual |
SampleSecondaries Method called after CrossSectionPerVolume if the process is the one which is selected (according to the sampling on the calculated path length). Here, the characteristics of the incident and created (if any) particle(s) are set (energy, momentum ...).
materialName | |
particleChangeForGamma | |
tmin | |
tmax |
Implements G4VDNAModel.
Definition at line 361 of file G4DNAPTBElasticModel.cc.
|
protected |
Definition at line 114 of file G4DNAPTBElasticModel.hh.
Referenced by Initialise(), and SampleSecondaries().