72 G4cout <<
"Calling G4SancheSolvatationModel::Initialise()" <<
G4endl;
77 exceptionDescription <<
"Attempting to calculate cross section for wrong particle";
78 G4Exception(
"G4DNASancheSolvatationModel::CrossSectionPerVolume",
"G4DNASancheSolvatationModel001",
102 G4cout <<
"Calling CrossSectionPerVolume() of G4SancheSolvatationModel" <<
G4endl;
112 if(waterDensity!= 0.0)
126 G4double sigma = std::sqrt(1.57)/2*expectationValue;
128 G4double XValueForfMax = std::sqrt(2.*sigma*sigma);
129 G4double fMaxValue = std::sqrt(2./3.14) * 1./(sigma*sigma*sigma) *
130 (XValueForfMax*XValueForfMax)*
131 std::exp(-1./2. * (XValueForfMax*XValueForfMax)/(sigma*sigma));
150 G4double f = std::sqrt(2./3.14) * 1/std::pow(sigma, 3) * R*R * std::exp(-1./2. * R*R/(sigma*sigma));
152 if(aRandomfValue < f)
160 G4double theta = std::acos (costheta);
163 G4double xDirection = R*std::cos(phi)* std::sin(theta);
164 G4double yDirection = R*std::sin(theta)*std::sin(phi);
168 return RandDirection;
180 G4cout <<
"Calling SampleSecondaries() of G4SancheSolvatationModel" <<
G4endl;
187 (-0.003*std::pow(k/eV,6) + 0.0749*std::pow(k/eV,5) - 0.7197*std::pow(k/eV,4)
188 + 3.1384*std::pow(k/eV,3) - 5.6926*std::pow(k/eV,2) + 5.6237*k/eV - 0.7883)*nanometer;
CLHEP::Hep3Vector G4ThreeVector
G4DLLIMPORT std::ostream G4cout
static G4DNAChemistryManager * Instance()
void CreateSolvatedElectron(const G4Track *, G4ThreeVector *finalPosition=0)
static G4DNAMolecularMaterial * Instance()
const std::vector< double > * GetNumMolPerVolTableFor(const G4Material *) const
const std::vector< G4double > * fpWaterDensity
G4ParticleChangeForGamma * fParticleChangeForGamma
G4DNASancheSolvatationModel(const G4ParticleDefinition *p=0, const G4String &nam="DNASancheSolvatationModel")
G4ThreeVector RadialDistributionOfProducts(G4double Rrms) const
virtual void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double maxEnergy)
virtual G4double CrossSectionPerVolume(const G4Material *material, const G4ParticleDefinition *p, G4double ekin, G4double emin, G4double emax)
virtual void Initialise(const G4ParticleDefinition *, const G4DataVector &)
virtual ~G4DNASancheSolvatationModel()
G4double ExcitationEnergy(G4int level)
G4double GetKineticEnergy() const
static G4Electron * ElectronDefinition()
static G4Material * GetMaterial(const G4String &name, G4bool warning=true)
const G4Track * GetCurrentTrack() const
void SetProposedKineticEnergy(G4double proposedKinEnergy)
const G4ThreeVector & GetPosition() const
void SetHighEnergyLimit(G4double)
G4ParticleChangeForGamma * GetParticleChangeForGamma()
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)
std::ostringstream G4ExceptionDescription