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;
static constexpr double m
static constexpr double keV
static constexpr double eV
static constexpr double cm
G4GLOB_DLL std::ostream G4cout
static G4DNAChemistryManager * Instance()
void CreateWaterMolecule(ElectronicModification, G4int, const G4Track *)
MapMeanEnergy tableMeanEnergyPTB
map: [materialName]=energyValue
virtual ~G4DNAPTBExcitationModel()
~G4DNAPTBExcitationModel Destructor
G4DNAWaterExcitationStructure waterStructure
G4DNAPTBExcitationModel(const G4String &applyToMaterial="all", const G4ParticleDefinition *p=0, const G4String &nam="DNAPTBExcitationModel")
G4DNAPTBExcitationModel Constructor.
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,...
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.
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...
G4int verboseLevel
verbose level
G4double ExcitationEnergy(G4int level)
const G4ThreeVector & GetMomentumDirection() const
G4ParticleDefinition * GetDefinition() const
G4double GetKineticEnergy() const
static G4Electron * ElectronDefinition()
const G4Track * GetCurrentTrack() const
void SetProposedKineticEnergy(G4double proposedKinEnergy)
void ProposeMomentumDirection(G4double Px, G4double Py, G4double Pz)
const G4String & GetParticleName() const
G4int RandomSelectShell(G4double k, const G4String &particle, const G4String &materialName)
RandomSelectShell Method to randomely select a shell from the data table uploaded....
TableMapData * GetTableData()
GetTableData.
void SetHighELimit(const G4String &material, const G4String &particle, G4double lim)
SetHighEnergyLimit.
std::map< G4String, std::map< G4String, G4DNACrossSectionDataSet *, std::less< G4String > > > TableMapData
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 SetLowELimit(const G4String &material, const G4String &particle, G4double lim)
SetLowEnergyLimit.
G4double GetHighELimit(const G4String &material, const G4String &particle)
GetHighEnergyLimit.
void LoadCrossSectionData(const G4String &particleName)
LoadCrossSectionData Method to loop on all the registered materials in the model and load the corresp...
G4double GetLowELimit(const G4String &material, const G4String &particle)
GetLowEnergyLimit.
void ProposeLocalEnergyDeposit(G4double anEnergyPart)