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;
G4double LowEnergyLimit() const
virtual G4double FindValue(G4double x, G4int componentId=0) const =0
G4double ExcitationEnergy(G4int level)
G4double GetKineticEnergy() const
G4double HighEnergyLimit() const
const std::vector< G4double > * fpMolWaterDensity
virtual const G4VEMDataSet * GetComponent(G4int componentId) const
static G4Material * GetMaterial(const G4String &name, G4bool warning=true)
virtual G4bool LoadData(const G4String &argFileName)
virtual void Initialise(const G4ParticleDefinition *, const G4DataVector &=*(new G4DataVector()))
void ProposeMomentumDirection(G4double Px, G4double Py, G4double Pz)
virtual void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double maxEnergy)
const G4String & GetParticleName() const
void ProposeLocalEnergyDeposit(G4double anEnergyPart)
void SetHighEnergyLimit(G4double)
G4GLOB_DLL std::ostream G4cout
const std::vector< double > * GetNumMolPerVolTableFor(const G4Material *) const
virtual G4double GetPartialCrossSection(const G4Material *, G4int level, const G4ParticleDefinition *, G4double kineticEnergy)
const G4ThreeVector & GetMomentumDirection() const
virtual G4double FindValue(G4double e, G4int componentId=0) const
virtual size_t NumberOfComponents(void) const
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
G4DNAWaterExcitationStructure waterStructure
static G4DNAChemistryManager * Instance()
static G4DNAMolecularMaterial * Instance()
void CreateWaterMolecule(ElectronicModification, G4int, const G4Track *)
Method used by DNA physics model to create a water molecule.
G4DNABornExcitationModel1(const G4ParticleDefinition *p=0, const G4String &nam="DNABornExcitationModel")
const G4Track * GetCurrentTrack() const
void SetProposedKineticEnergy(G4double proposedKinEnergy)
G4DNACrossSectionDataSet * fTableData
G4ParticleChangeForGamma * fParticleChangeForGamma
void SetLowEnergyLimit(G4double)
virtual ~G4DNABornExcitationModel1()
const G4ParticleDefinition * fParticleDefinition
G4int RandomSelect(G4double energy)
G4ParticleChangeForGamma * GetParticleChangeForGamma()
virtual G4double CrossSectionPerVolume(const G4Material *material, const G4ParticleDefinition *p, G4double ekin, G4double emin, G4double emax)