47 fpWaterDensity =
nullptr;
63 G4cout <<
"Melton Attachment model is constructed "
73 fDissociationFlag =
true;
96 <<
"Calling G4DNAMeltonAttachmentModel::Initialise()" <<
G4endl;
103 G4Exception(
"G4DNAMeltonAttachmentModel::Initialise",
106 "Model not applicable to particle type.");
114 errMsg <<
"G4DNAMeltonAttachmentModel: low energy limit increased from " <<
117 G4Exception(
"G4DNAMeltonAttachmentModel::Initialise",
118 "Melton_LowerEBoundary",
128 errMsg <<
"G4DNAMeltonAttachmentModel: high energy limit decreased from " <<
131 G4Exception(
"G4DNAMeltonAttachmentModel::Initialise",
132 "Melton_HigherEBoundary",
144 G4String fileElectron(
"dna/sigma_attachment_e_melton");
154 if (verboseLevel > 2)
156 G4cout <<
"Loaded cross section data for Melton Attachment model" <<
G4endl;
159 G4cout <<
"Melton Attachment model is initialized " <<
G4endl
171 if (isInitialised)
return;
174 isInitialised =
true;
187 if (verboseLevel > 3)
189 <<
"Calling CrossSectionPerVolume() of G4DNAMeltonAttachmentModel"
203 if (verboseLevel > 2)
205 G4cout <<
"__________________________________" <<
G4endl;
206 G4cout <<
"=== G4DNAMeltonAttachmentModel - XS INFO START" <<
G4endl;
207 G4cout <<
"--- Kinetic energy(eV)=" << ekin/eV
208 <<
" particle : " << particleDefinition->GetParticleName()
210 G4cout <<
"--- Cross section per water molecule (cm^2)="
212 G4cout <<
"--- Cross section per water molecule (cm^-1)="
213 << sigma*waterDensity/(1./cm) <<
G4endl;
214 G4cout <<
"--- G4DNAMeltonAttachmentModel - XS INFO END" <<
G4endl;
218 return sigma*waterDensity;
233 if (verboseLevel > 3)
235 <<
"Calling SampleSecondaries() of G4DNAMeltonAttachmentModel" <<
G4endl;
255 if(fDissociationFlag)
@ eDissociativeAttachment
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
std::ostringstream G4ExceptionDescription
G4GLOB_DLL std::ostream G4cout
static G4DNAChemistryManager * Instance()
G4bool LoadData(const G4String &argFileName) override
G4double FindValue(G4double e, G4int componentId=0) const override
~G4DNAMeltonAttachmentModel() override
void Initialise(const G4ParticleDefinition *, const G4DataVector &) override
G4double CrossSectionPerVolume(const G4Material *material, const G4ParticleDefinition *p, G4double ekin, G4double emin, G4double emax) override
G4DNAMeltonAttachmentModel(const G4ParticleDefinition *p=nullptr, const G4String &nam="DNAMeltonAttachmentModel")
void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double maxEnergy) override
G4ParticleChangeForGamma * fParticleChangeForGamma
static G4DNAMolecularMaterial * Instance()
G4double GetKineticEnergy() const
std::size_t GetIndex() const
static G4Material * GetMaterial(const G4String &name, G4bool warning=true)
void SetProposedKineticEnergy(G4double proposedKinEnergy)
const G4String & GetParticleName() const
void SetHighEnergyLimit(G4double)
G4ParticleChangeForGamma * GetParticleChangeForGamma()
G4double LowEnergyLimit() const
G4double HighEnergyLimit() const
void SetLowEnergyLimit(G4double)
void ProposeTrackStatus(G4TrackStatus status)
const G4Track * GetCurrentTrack() const
void ProposeLocalEnergyDeposit(G4double anEnergyPart)