Geant4 11.1.1
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
DNA::Penetration::Terrisol1990 Struct Reference

#include <G4DNAOneStepThermalizationModel.hh>

Static Public Member Functions

static void GetPenetration (G4double energy, G4ThreeVector &displacement)
 
static double GetRmean (double energy)
 
static double Get3DStdDeviation (double energy)
 

Static Public Attributes

static const double gEnergies_T1990 [11]
 
static const double gStdDev_T1990 [11]
 

Detailed Description

Definition at line 101 of file G4DNAOneStepThermalizationModel.hh.

Member Function Documentation

◆ Get3DStdDeviation()

double DNA::Penetration::Terrisol1990::Get3DStdDeviation ( double  energy)
static

Definition at line 185 of file G4DNAOneStepThermalizationModel.cc.

185 {
186 G4double k_eV = energy/eV;
187 if(k_eV < 0.2){
188 // rare events:
189 // prevent H2O and secondary electron to be at the spot
190 return 1e-3*CLHEP::nanometer;
191 }
192 else if(k_eV == 9.){
193 return gStdDev_T1990[10];
194 }
195 else if(k_eV > 9.){
196 G4ExceptionDescription description;
197 description << "Terrisol1990 is not tabulated for energies greater than 9eV";
198 G4Exception("Terrisol1990::Get3DStdDeviation",
199 "INVALID_ARGUMENT",
201 description);
202 }
203
204 size_t lowBin, upBin;
205
206 if(k_eV >= 1.){
207 lowBin=std::floor(k_eV)+1;
208 upBin=std::min(lowBin+1, size_t(10));
209 }
210 else{
211 auto it=std::lower_bound(&gEnergies_T1990[0],
212 &gEnergies_T1990[2],
213 k_eV);
214 lowBin = it-&gEnergies_T1990[0];
215 upBin = lowBin+1;
216 }
217
218 double lowE = gEnergies_T1990[lowBin];
219 double upE = gEnergies_T1990[upBin];
220
221 double lowS = gStdDev_T1990[lowBin];
222 double upS = gStdDev_T1990[upBin];
223
224 double tanA = (lowS-upS)/(lowE-upE);
225 double sigma3D = lowS + (k_eV-lowE)*tanA;
226 return sigma3D;
227}
@ FatalErrorInArgument
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:59
std::ostringstream G4ExceptionDescription
Definition: G4Exception.hh:40
double G4double
Definition: G4Types.hh:83
G4double energy(const ThreeVector &p, const G4double m)

Referenced by GetPenetration(), and GetRmean().

◆ GetPenetration()

void DNA::Penetration::Terrisol1990::GetPenetration ( G4double  energy,
G4ThreeVector displacement 
)
static

Definition at line 238 of file G4DNAOneStepThermalizationModel.cc.

239 {
240 double sigma3D = Get3DStdDeviation(energy);
241
242 static constexpr double factor = 2.20496999539; // = 1./(3. - 8./CLHEP::pi);
243
244 double sigma1D = std::sqrt(std::pow(sigma3D, 2.)*factor);
245
246 displacement = G4ThreeVector(G4RandGauss::shoot(0, sigma1D),
247 G4RandGauss::shoot(0, sigma1D),
248 G4RandGauss::shoot(0, sigma1D));
249}
CLHEP::Hep3Vector G4ThreeVector
static double Get3DStdDeviation(double energy)

Referenced by G4DNAWaterDissociationDisplacer::radialDistributionOfElectron().

◆ GetRmean()

double DNA::Penetration::Terrisol1990::GetRmean ( double  energy)
static

Definition at line 229 of file G4DNAOneStepThermalizationModel.cc.

229 {
230 double sigma3D=Get3DStdDeviation(energy);
231
232 static constexpr double s2r=1.595769121605731; // = pow(2,3./2.)/sqrt(CLHEP::pi)
233
234 double r_mean=sigma3D*s2r;
235 return r_mean;
236}

Member Data Documentation

◆ gEnergies_T1990

const double DNA::Penetration::Terrisol1990::gEnergies_T1990
static
Initial value:
=
{ 0.2, 0.5, 1, 2, 3, 4, 5, 6, 7,
8, 9}

Definition at line 108 of file G4DNAOneStepThermalizationModel.hh.

Referenced by Get3DStdDeviation().

◆ gStdDev_T1990

const double DNA::Penetration::Terrisol1990::gStdDev_T1990
static
Initial value:
=
{ 17.68*CLHEP::angstrom,
22.3*CLHEP::angstrom,
28.49*CLHEP::angstrom,
45.35*CLHEP::angstrom,
70.03*CLHEP::angstrom,
98.05*CLHEP::angstrom,
120.56*CLHEP::angstrom,
132.73*CLHEP::angstrom,
142.60*CLHEP::angstrom,
137.9*CLHEP::angstrom,
120.7*CLHEP::angstrom
}

Definition at line 109 of file G4DNAOneStepThermalizationModel.hh.

Referenced by Get3DStdDeviation().


The documentation for this struct was generated from the following files: