43 G4VEmModel(nam), isInitialised(false), fTableData(0)
60 G4cout <<
"Born excitation model is constructed " <<
G4endl;
86 G4cout <<
"Calling G4DNABornExcitationModel1::Initialise()" <<
G4endl;
91 G4Exception(
"G4DNABornExcitationModel1::Initialise",
"em0001",
92 FatalException,
"Model already initialized for another particle type.");
113 G4double scaleFactor = (1.e-22 / 3.343) *
m*
m;
119 G4cout <<
"Born excitation model is initialized " <<
G4endl
146 G4cout <<
"Calling CrossSectionPerVolume() of G4DNABornExcitationModel1"
158 if(waterDensity!= 0.0)
167 G4cout <<
"__________________________________" <<
G4endl;
168 G4cout <<
"G4DNABornExcitationModel1 - XS INFO START" <<
G4endl;
170 G4cout <<
"Cross section per water molecule (cm^2)=" << sigma/
cm/
cm <<
G4endl;
171 G4cout <<
"Cross section per water molecule (cm^-1)=" << sigma*waterDensity/(1./
cm) << G4endl;
172 G4cout <<
"G4DNABornExcitationModel1 - XS INFO END" <<
G4endl;
176 return sigma*waterDensity;
190 G4cout <<
"Calling SampleSecondaries() of G4DNABornExcitationModel1"
198 G4double newEnergy = k - excitationEnergy;
225 G4Exception(
"G4DNABornExcitationModel1::GetPartialCrossSection",
228 "Model initialized for another particle type.");
249 value += valuesBuffer[i];
259 if (valuesBuffer[i] > value)
261 delete[] valuesBuffer;
264 value -= valuesBuffer[i];
268 delete[] valuesBuffer;
virtual void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double maxEnergy)
virtual G4bool LoadData(const G4String &argFileName)
static constexpr double MeV
void SetHighEnergyLimit(G4double)
virtual size_t NumberOfComponents(void) const
static constexpr double keV
const std::vector< G4double > * fpMolWaterDensity
const G4ParticleDefinition * fParticleDefinition
const G4ThreeVector & GetMomentumDirection() const
virtual void Initialise(const G4ParticleDefinition *, const G4DataVector &=*(new G4DataVector()))
const G4String & GetParticleName() const
G4int RandomSelect(G4double energy)
void SetProposedKineticEnergy(G4double proposedKinEnergy)
static G4Material * GetMaterial(const G4String &name, G4bool warning=true)
G4ParticleChangeForGamma * fParticleChangeForGamma
G4double LowEnergyLimit() const
const std::vector< double > * GetNumMolPerVolTableFor(const G4Material *) const
Retrieve a table of molecular densities (number of molecules per unit volume) in the G4 unit system f...
virtual G4double CrossSectionPerVolume(const G4Material *material, const G4ParticleDefinition *p, G4double ekin, G4double emin, G4double emax)
static constexpr double m
virtual G4double GetPartialCrossSection(const G4Material *, G4int level, const G4ParticleDefinition *, G4double kineticEnergy)
const XML_Char int const XML_Char * value
G4double ExcitationEnergy(G4int level)
static G4DNAMolecularMaterial * Instance()
void ProposeMomentumDirection(G4double Px, G4double Py, G4double Pz)
void CreateWaterMolecule(ElectronicModification, G4int, const G4Track *)
static constexpr double eV
const G4Track * GetCurrentTrack() const
G4DNACrossSectionDataSet * fTableData
G4DNABornExcitationModel1(const G4ParticleDefinition *p=0, const G4String &nam="DNABornExcitationModel")
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
void SetLowEnergyLimit(G4double)
G4double GetKineticEnergy() const
virtual G4double FindValue(G4double e, G4int componentId=0) const
static constexpr double cm
G4GLOB_DLL std::ostream G4cout
virtual const G4VEMDataSet * GetComponent(G4int componentId) const
virtual ~G4DNABornExcitationModel1()
G4ParticleChangeForGamma * GetParticleChangeForGamma()
void ProposeLocalEnergyDeposit(G4double anEnergyPart)
G4double HighEnergyLimit() const
static G4DNAChemistryManager * Instance()
virtual G4double FindValue(G4double x, G4int componentId=0) const =0
G4DNAWaterExcitationStructure waterStructure