64 G4cout <<
"Melton Attachment model is constructed "
74 fDissociationFlag =
true;
86 if(fData)
delete fData;
97 <<
"Calling G4DNAMeltonAttachmentModel::Initialise()" <<
G4endl;
104 G4Exception(
"G4DNAMeltonAttachmentModel::Initialise",
107 "Model not applicable to particle type.");
115 errMsg <<
"G4DNAMeltonAttachmentModel: low energy limit increased from " <<
118 G4Exception(
"G4DNAMeltonAttachmentModel::Initialise",
119 "Melton_LowerEBoundary",
129 errMsg <<
"G4DNAMeltonAttachmentModel: high energy limit decreased from " <<
132 G4Exception(
"G4DNAMeltonAttachmentModel::Initialise",
133 "Melton_HigherEBoundary",
145 G4String fileElectron(
"dna/sigma_attachment_e_melton");
152 #ifdef MELTON_VERBOSE
155 if (verboseLevel > 2)
157 G4cout <<
"Loaded cross section data for Melton Attachment model" <<
G4endl;
160 G4cout <<
"Melton Attachment model is initialized " << G4endl
177 isInitialised =
true;
189 #ifdef MELTON_VERBOSE
190 if (verboseLevel > 3)
192 <<
"Calling CrossSectionPerVolume() of G4DNAMeltonAttachmentModel"
202 if(waterDensity != 0.0)
210 #ifdef MELTON_VERBOSE
211 if (verboseLevel > 2)
213 G4cout <<
"__________________________________" <<
G4endl;
214 G4cout <<
"=== G4DNAMeltonAttachmentModel - XS INFO START" <<
G4endl;
215 G4cout <<
"--- Kinetic energy(eV)=" << ekin/
eV
216 <<
" particle : " << particleDefinition->GetParticleName()
218 G4cout <<
"--- Cross section per water molecule (cm^2)="
220 G4cout <<
"--- Cross section per water molecule (cm^-1)="
221 << sigma*waterDensity/(1./
cm) << G4endl;
222 G4cout <<
"--- G4DNAMeltonAttachmentModel - XS INFO END" <<
G4endl;
227 return sigma*waterDensity;
241 #ifdef MELTON_VERBOSE
242 if (verboseLevel > 3)
244 <<
"Calling SampleSecondaries() of G4DNAMeltonAttachmentModel" <<
G4endl;
264 if(fDissociationFlag)
G4double LowEnergyLimit() const
std::ostringstream G4ExceptionDescription
G4double GetKineticEnergy() const
static constexpr double cm2
G4double HighEnergyLimit() const
static G4Material * GetMaterial(const G4String &name, G4bool warning=true)
virtual void Initialise(const G4ParticleDefinition *, const G4DataVector &)
virtual G4bool LoadData(const G4String &argFileName)
const G4String & GetParticleName() const
void ProposeLocalEnergyDeposit(G4double anEnergyPart)
void SetHighEnergyLimit(G4double)
virtual ~G4DNAMeltonAttachmentModel()
virtual G4double CrossSectionPerVolume(const G4Material *material, const G4ParticleDefinition *p, G4double ekin, G4double emin, G4double emax)
G4ParticleChangeForGamma * fParticleChangeForGamma
G4GLOB_DLL std::ostream G4cout
virtual void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double maxEnergy)
static constexpr double cm
G4DNAMeltonAttachmentModel(const G4ParticleDefinition *p=0, const G4String &nam="DNAMeltonAttachmentModel")
static constexpr double eV
virtual G4double FindValue(G4double e, G4int componentId=0) const
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
static G4DNAChemistryManager * Instance()
static G4DNAMolecularMaterial * Instance()
const G4Track * GetCurrentTrack() const
void SetProposedKineticEnergy(G4double proposedKinEnergy)
void ProposeTrackStatus(G4TrackStatus status)
void SetLowEnergyLimit(G4double)
G4ParticleChangeForGamma * GetParticleChangeForGamma()