56 G4cout <<
"PTB excitation model is constructed " <<
G4endl;
73 G4cout <<
"Calling G4DNAPTBExcitationModel::Initialise()" <<
G4endl;
76 G4double scaleFactorBorn = (1.e-22 / 3.343) *
m*
m;
84 if(particle == electronDef)
90 "dna/sigma_excitation_e-_PTB_THF",
97 "dna/sigma_excitation_e-_PTB_PY",
104 "dna/sigma_excitation_e-_PTB_PU",
111 "dna/sigma_excitation_e-_PTB_TMP",
118 "dna/sigma_excitation_e_born",
127 "dna/sigma_excitation_e-_PTB_THF",
134 "dna/sigma_excitation_e-_PTB_PY",
141 "dna/sigma_excitation_e-_PTB_PY",
148 "dna/sigma_excitation_e-_PTB_PU",
155 "dna/sigma_excitation_e-_PTB_PU",
162 "dna/sigma_excitation_e-_PTB_TMP",
180 G4cout <<
"PTB excitation model is initialized " <<
G4endl;
194 G4cout <<
"Calling CrossSectionPerVolume() of G4DNAPTBExcitationModel" <<
G4endl;
211 if (ekin >= lowLim && ekin < highLim)
217 sigma = (*tableData)[materialName][particleName]->FindValue(ekin);
221 G4cout <<
"__________________________________" <<
G4endl;
222 G4cout <<
"°°° G4DNAPTBExcitationModel - XS INFO START" <<
G4endl;
223 G4cout <<
"°°° Kinetic energy(eV)=" << ekin/
eV <<
" particle : " << particleName <<
G4endl;
224 G4cout <<
"°°° Cross section per "<< materialName <<
" molecule (cm^2)=" << sigma/
cm/
cm <<
G4endl;
225 G4cout <<
"°°° G4DNAPTBExcitationModel - XS INFO END" <<
G4endl;
245 G4cout <<
"Calling SampleSecondaries() of G4DNAPTBExcitationModel" <<
G4endl;
250 if(materialName!=
"G4_WATER")
256 G4double newEnergy = k - excitationEnergy;
273 G4double newEnergy = k - excitationEnergy;
void SetHighELimit(const G4String &material, const G4String &particle, G4double lim)
SetHighEnergyLimit.
static constexpr double keV
const G4ThreeVector & GetMomentumDirection() const
const G4String & GetParticleName() const
virtual ~G4DNAPTBExcitationModel()
~G4DNAPTBExcitationModel Destructor
G4double GetHighELimit(const G4String &material, const G4String &particle)
GetHighEnergyLimit.
void SetProposedKineticEnergy(G4double proposedKinEnergy)
void AddCrossSectionData(G4String materialName, G4String particleName, G4String fileCS, G4String fileDiffCS, G4double scaleFactor)
AddCrossSectionData Method used during the initialization of the model class to add a new material...
void LoadCrossSectionData(const G4String &particleName)
LoadCrossSectionData Method to loop on all the registered materials in the model and load the corresp...
static constexpr double m
G4int verboseLevel
verbose level
G4double GetLowELimit(const G4String &material, const G4String &particle)
GetLowEnergyLimit.
G4ParticleDefinition * GetDefinition() const
G4DNAWaterExcitationStructure waterStructure
void SetLowELimit(const G4String &material, const G4String &particle, G4double lim)
SetLowEnergyLimit.
G4double ExcitationEnergy(G4int level)
void ProposeMomentumDirection(G4double Px, G4double Py, G4double Pz)
void CreateWaterMolecule(ElectronicModification, G4int, const G4Track *)
virtual void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4String &materialName, const G4DynamicParticle *, G4ParticleChangeForGamma *particleChangeForGamma, G4double tmin, G4double tmax)
SampleSecondaries If the model is selected for the ModelInterface then the SampleSecondaries method w...
static constexpr double eV
const G4Track * GetCurrentTrack() const
static G4Electron * ElectronDefinition()
TableMapData * GetTableData()
GetTableData.
G4DNAPTBExcitationModel(const G4String &applyToMaterial="all", const G4ParticleDefinition *p=0, const G4String &nam="DNAPTBExcitationModel")
G4DNAPTBExcitationModel Constructor.
G4double GetKineticEnergy() const
static constexpr double cm
G4GLOB_DLL std::ostream G4cout
G4int RandomSelectShell(G4double k, const G4String &particle, const G4String &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 ProposeLocalEnergyDeposit(G4double anEnergyPart)
virtual G4double CrossSectionPerVolume(const G4Material *material, const G4String &materialName, const G4ParticleDefinition *p, G4double ekin, G4double emin, G4double emax)
CrossSectionPerVolume Retrieve the cross section corresponding to the current material, particle and energy.
MapMeanEnergy tableMeanEnergyPTB
map: [materialName]=energyValue
virtual void Initialise(const G4ParticleDefinition *particle, const G4DataVector &=*(new G4DataVector()), G4ParticleChangeForGamma *fpChangeForGamme=nullptr)
Initialise Set the materials for which the model can be used and defined the energy limits...
std::map< G4String, std::map< G4String, G4DNACrossSectionDataSet *, std::less< G4String > > > TableMapData
static G4DNAChemistryManager * Instance()