49 lowEnergyLimit = 4 * eV;
50 lowEnergyLimitOfModel = 4 * eV;
51 highEnergyLimit = 13 * eV;
65 G4cout <<
"Melton Attachment model is constructed " <<
G4endl
67 << lowEnergyLimit / eV <<
" eV - "
68 << highEnergyLimit / eV <<
" eV"
72 fDissociationFlag =
true;
81 std::map< G4String,G4DNACrossSectionDataSet*,std::less<G4String> >::iterator pos;
83 for (pos = tableData.begin(); pos != tableData.end(); ++pos)
100 G4cout <<
"Calling G4DNAMeltonAttachmentModel::Initialise()" <<
G4endl;
106 G4cout <<
"G4DNAMeltonAttachmentModel: low energy limit increased from " <<
113 G4cout <<
"G4DNAMeltonAttachmentModel: high energy limit decreased from " <<
122 G4String fileElectron(
"dna/sigma_attachment_e_melton");
133 tableFile[electron] = fileElectron;
137 tableData[electron] = tableE;
141 if (verboseLevel > 2)
142 G4cout <<
"Loaded cross section data for Melton Attachment model" <<
G4endl;
146 G4cout <<
"Melton Attachment model is initialized " <<
G4endl
155 if (isInitialised) {
return; }
157 isInitialised =
true;
169 if (verboseLevel > 3)
170 G4cout <<
"Calling CrossSectionPerVolume() of G4DNAMeltonAttachmentModel" <<
G4endl;
178 if(waterDensity!= 0.0)
183 if (ekin >= lowEnergyLimit && ekin < highEnergyLimit)
186 std::map< G4String,G4DNACrossSectionDataSet*,std::less<G4String> >::iterator pos;
187 pos = tableData.find(particleName);
189 if (pos != tableData.end())
199 G4Exception(
"G4DNAMeltonAttachmentModel::ComputeCrossSectionPerVolume",
"em0002",
204 if (verboseLevel > 2)
206 G4cout <<
"__________________________________" <<
G4endl;
207 G4cout <<
"°°° G4DNAMeltonAttachmentModel - XS INFO START" <<
G4endl;
209 G4cout <<
"°°° Cross section per water molecule (cm^2)=" << sigma/cm/cm <<
G4endl;
210 G4cout <<
"°°° Cross section per water molecule (cm^-1)=" << sigma*waterDensity/(1./cm) <<
G4endl;
212 G4cout <<
"°°° G4DNAMeltonAttachmentModel - XS INFO END" <<
G4endl;
217 return sigma*waterDensity;
230 if (verboseLevel > 3)
231 G4cout <<
"Calling SampleSecondaries() of G4DNAMeltonAttachmentModel" <<
G4endl;
240 if(fDissociationFlag)
@ eDissociativeAttachment
G4DLLIMPORT std::ostream G4cout
static G4DNAChemistryManager * Instance()
void CreateWaterMolecule(ElectronicModification, G4int, const G4Track *)
virtual G4double FindValue(G4double e, G4int componentId=0) const
virtual G4bool LoadData(const G4String &argFileName)
virtual ~G4DNAMeltonAttachmentModel()
virtual G4double CrossSectionPerVolume(const G4Material *material, const G4ParticleDefinition *p, G4double ekin, G4double emin, G4double emax)
G4DNAMeltonAttachmentModel(const G4ParticleDefinition *p=0, const G4String &nam="DNAMeltonAttachmentModel")
virtual void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double maxEnergy)
virtual void Initialise(const G4ParticleDefinition *, const G4DataVector &)
G4ParticleChangeForGamma * fParticleChangeForGamma
static G4DNAMolecularMaterial * Instance()
const std::vector< double > * GetNumMolPerVolTableFor(const G4Material *) const
G4double GetKineticEnergy() const
static G4Electron * ElectronDefinition()
static G4Material * GetMaterial(const G4String &name, G4bool warning=true)
const G4Track * GetCurrentTrack() const
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)
void ProposeLocalEnergyDeposit(G4double anEnergyPart)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)