Import Geant4 10.3.0.beta source tree
This commit is contained in:
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4DNAChampionElasticModel.hh 87137 2014-11-25 09:12:48Z gcosmo $
|
||||
// $Id: G4DNAChampionElasticModel.hh 97520 2016-06-03 14:23:17Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef G4DNAChampionElasticModel_h
|
||||
@@ -48,7 +48,8 @@ public:
|
||||
|
||||
virtual ~G4DNAChampionElasticModel();
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&);
|
||||
virtual void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector&);
|
||||
|
||||
virtual G4double CrossSectionPerVolume(const G4Material* material,
|
||||
const G4ParticleDefinition* p,
|
||||
@@ -64,38 +65,46 @@ public:
|
||||
|
||||
void SetKillBelowThreshold(G4double threshold);
|
||||
|
||||
G4double GetKillBelowThreshold()
|
||||
inline G4double GetKillBelowThreshold()
|
||||
{
|
||||
return killBelowEnergy;
|
||||
G4ExceptionDescription errMsg;
|
||||
errMsg << "The method G4DNAChampionElasticModel::"
|
||||
"GetKillBelowThreshold is deprecated";
|
||||
|
||||
G4Exception("G4DNAChampionElasticModel::GetKillBelowThreshold",
|
||||
"deprecated",
|
||||
JustWarning,
|
||||
errMsg);
|
||||
return 0.;
|
||||
}
|
||||
|
||||
protected:
|
||||
|
||||
G4ParticleChangeForGamma* fParticleChangeForGamma;
|
||||
|
||||
private:
|
||||
// Cross section
|
||||
typedef std::map<double, std::vector<double> > VecMap;
|
||||
VecMap eVecm;
|
||||
typedef std::map<double, std::map<double, double> > TriDimensionMap;
|
||||
TriDimensionMap eDiffCrossSectionData;
|
||||
std::vector<double> eTdummyVec;
|
||||
|
||||
// Water density table
|
||||
const std::vector<G4double>* fpMolWaterDensity;
|
||||
|
||||
G4double killBelowEnergy;
|
||||
G4double lowEnergyLimit;
|
||||
G4double highEnergyLimit;
|
||||
G4bool isInitialised;
|
||||
G4int verboseLevel;
|
||||
|
||||
// Cross section
|
||||
G4DNACrossSectionDataSet* fpData;
|
||||
|
||||
typedef std::map<G4String, G4String, std::less<G4String> > MapFile;
|
||||
MapFile tableFile;
|
||||
|
||||
typedef std::map<G4String, G4DNACrossSectionDataSet*, std::less<G4String> > MapData;
|
||||
MapData tableData;
|
||||
protected:
|
||||
G4ParticleChangeForGamma* fParticleChangeForGamma;
|
||||
|
||||
private:
|
||||
G4int verboseLevel;
|
||||
G4bool isInitialised;
|
||||
|
||||
// Final state
|
||||
|
||||
//G4double DifferentialCrossSection(G4ParticleDefinition * aParticleDefinition, G4double k, G4double theta);
|
||||
//G4double DifferentialCrossSection(G4ParticleDefinition* aParticle,
|
||||
// G4double k, G4double theta);
|
||||
|
||||
G4double Theta(G4ParticleDefinition * aParticleDefinition,
|
||||
G4double Theta(//G4ParticleDefinition * aParticleDefinition,
|
||||
G4double k,
|
||||
G4double integrDiff);
|
||||
|
||||
@@ -130,21 +139,12 @@ private:
|
||||
G4double t,
|
||||
G4double e);
|
||||
|
||||
typedef std::map<double, std::map<double, double> > TriDimensionMap;
|
||||
|
||||
TriDimensionMap eDiffCrossSectionData;
|
||||
std::vector<double> eTdummyVec;
|
||||
|
||||
typedef std::map<double, std::vector<double> > VecMap;
|
||||
VecMap eVecm;
|
||||
|
||||
G4double RandomizeCosTheta(G4double k);
|
||||
|
||||
//
|
||||
|
||||
G4DNAChampionElasticModel & operator=(const G4DNAChampionElasticModel &right);
|
||||
G4DNAChampionElasticModel(const G4DNAChampionElasticModel&);
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
+1
-1
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4DNADingfelderChargeDecreaseModel.hh 92859 2015-09-18 07:58:30Z gcosmo $
|
||||
// $Id: G4DNADingfelderChargeDecreaseModel.hh 96060 2016-03-11 12:58:04Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef G4DNADingfelderChargeDecreaseModel_h
|
||||
|
||||
+1
-1
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4DNADingfelderChargeIncreaseModel.hh 92859 2015-09-18 07:58:30Z gcosmo $
|
||||
// $Id: G4DNADingfelderChargeIncreaseModel.hh 96060 2016-03-11 12:58:04Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef G4DNADingfelderChargeIncreaseModel_h
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4DNAMeltonAttachmentModel.hh 70171 2013-05-24 13:34:18Z gcosmo $
|
||||
// $Id: G4DNAMeltonAttachmentModel.hh 96606 2016-04-25 13:33:42Z gcosmo $
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -43,9 +43,7 @@
|
||||
|
||||
class G4DNAMeltonAttachmentModel : public G4VEmModel
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
G4DNAMeltonAttachmentModel(const G4ParticleDefinition* p = 0,
|
||||
const G4String& nam = "DNAMeltonAttachmentModel");
|
||||
|
||||
@@ -69,46 +67,34 @@ public:
|
||||
inline G4bool GetDissociationFlag();
|
||||
|
||||
protected:
|
||||
|
||||
G4ParticleChangeForGamma* fParticleChangeForGamma;
|
||||
|
||||
private:
|
||||
// Water density table
|
||||
const std::vector<G4double>* fpWaterDensity;
|
||||
|
||||
G4double lowEnergyLimit;
|
||||
G4double highEnergyLimit;
|
||||
G4double lowEnergyLimitOfModel;
|
||||
G4bool isInitialised;
|
||||
G4int verboseLevel;
|
||||
G4bool fDissociationFlag;
|
||||
|
||||
// Cross section
|
||||
|
||||
typedef std::map<G4String,G4String,std::less<G4String> > MapFile;
|
||||
MapFile tableFile;
|
||||
|
||||
typedef std::map<G4String,G4DNACrossSectionDataSet*,std::less<G4String> > MapData;
|
||||
MapData tableData;
|
||||
G4DNACrossSectionDataSet* fData;
|
||||
|
||||
//
|
||||
|
||||
G4DNAMeltonAttachmentModel & operator=(const G4DNAMeltonAttachmentModel &right);
|
||||
G4DNAMeltonAttachmentModel(const G4DNAMeltonAttachmentModel&);
|
||||
|
||||
};
|
||||
|
||||
inline void G4DNAMeltonAttachmentModel::SetDissociationFlag(G4bool flag)
|
||||
{
|
||||
fDissociationFlag = flag;
|
||||
fDissociationFlag = flag;
|
||||
}
|
||||
|
||||
inline G4bool G4DNAMeltonAttachmentModel::GetDissociationFlag()
|
||||
{
|
||||
return fDissociationFlag;
|
||||
return fDissociationFlag;
|
||||
}
|
||||
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#endif
|
||||
|
||||
+2
-2
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4DNAOneStepThermalizationModel.hh 94218 2015-11-09 08:24:48Z gcosmo $
|
||||
// $Id: G4DNAOneStepThermalizationModel.hh 96932 2016-05-18 09:07:51Z gcosmo $
|
||||
//
|
||||
// Author: Mathieu Karamitros, kara@cenbg.in2p3.fr
|
||||
|
||||
@@ -67,7 +67,7 @@ class G4DNAOneStepThermalizationModel : public G4VEmModel
|
||||
public:
|
||||
G4DNAOneStepThermalizationModel(const G4ParticleDefinition* p = 0,
|
||||
const G4String& nam =
|
||||
"DNASancheSolvatationModel");
|
||||
"DNAOneStepThermalizationModel");
|
||||
virtual ~G4DNAOneStepThermalizationModel();
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&);
|
||||
|
||||
+1
-1
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4DNARuddIonisationExtendedModel.hh 92859 2015-09-18 07:58:30Z gcosmo $
|
||||
// $Id: G4DNARuddIonisationExtendedModel.hh 96060 2016-03-11 12:58:04Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef G4DNARuddIonisationExtendedModel_h
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4DNARuddIonisationModel.hh 92859 2015-09-18 07:58:30Z gcosmo $
|
||||
// $Id: G4DNARuddIonisationModel.hh 96060 2016-03-11 12:58:04Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef G4DNARuddIonisationModel_h
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4DNASancheExcitationModel.hh 93616 2015-10-27 08:59:17Z gcosmo $
|
||||
// $Id: G4DNASancheExcitationModel.hh 96606 2016-04-25 13:33:42Z gcosmo $
|
||||
// GEANT4 tag $Name: $
|
||||
//
|
||||
|
||||
@@ -44,15 +44,14 @@
|
||||
|
||||
class G4DNASancheExcitationModel : public G4VEmModel
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
G4DNASancheExcitationModel(const G4ParticleDefinition* p = 0,
|
||||
const G4String& nam = "DNASancheExcitationModel");
|
||||
const G4String& nam = "DNASancheExcitationModel");
|
||||
|
||||
virtual ~G4DNASancheExcitationModel();
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&);
|
||||
virtual void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector&);
|
||||
|
||||
virtual G4double CrossSectionPerVolume(const G4Material* material,
|
||||
const G4ParticleDefinition* p,
|
||||
@@ -86,8 +85,6 @@ private:
|
||||
// Water density table
|
||||
const std::vector<G4double>* fpWaterDensity;
|
||||
|
||||
G4double lowEnergyLimit;
|
||||
G4double highEnergyLimit;
|
||||
G4bool isInitialised;
|
||||
G4int verboseLevel;
|
||||
|
||||
@@ -120,11 +117,12 @@ private:
|
||||
|
||||
inline void G4DNASancheExcitationModel::ExtendLowEnergyLimit(G4double threshold)
|
||||
{
|
||||
lowEnergyLimit = threshold;
|
||||
if(lowEnergyLimit < 2 * CLHEP::eV)
|
||||
if(threshold < 2 * CLHEP::eV)
|
||||
G4Exception("*** WARNING : the G4DNASancheExcitationModel class is not "
|
||||
"validated below 2 eV !",
|
||||
"", JustWarning, "");
|
||||
|
||||
SetLowEnergyLimit(threshold);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
+47
-47
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4DNAScreenedRutherfordElasticModel.hh 92074 2015-08-17 07:03:46Z gcosmo $
|
||||
// $Id: G4DNAScreenedRutherfordElasticModel.hh 97520 2016-06-03 14:23:17Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef G4DNAScreenedRutherfordElasticModel_h
|
||||
@@ -38,9 +38,7 @@
|
||||
|
||||
class G4DNAScreenedRutherfordElasticModel : public G4VEmModel
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
G4DNAScreenedRutherfordElasticModel(const G4ParticleDefinition* p = 0,
|
||||
const G4String& nam = "DNAScreenedRutherfordElasticModel");
|
||||
|
||||
@@ -49,75 +47,77 @@ public:
|
||||
virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&);
|
||||
|
||||
virtual G4double CrossSectionPerVolume(const G4Material* material,
|
||||
const G4ParticleDefinition* p,
|
||||
G4double ekin,
|
||||
G4double emin,
|
||||
G4double emax);
|
||||
const G4ParticleDefinition* p,
|
||||
G4double ekin,
|
||||
G4double emin,
|
||||
G4double emax);
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy);
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy);
|
||||
|
||||
inline void SetKillBelowThreshold (G4double threshold);
|
||||
G4double GetKillBelowThreshold () { return killBelowEnergy; }
|
||||
inline void SetKillBelowThreshold (G4double threshold);
|
||||
|
||||
inline void SelectFasterComputation(G4bool input);
|
||||
|
||||
protected:
|
||||
|
||||
G4ParticleChangeForGamma* fParticleChangeForGamma;
|
||||
|
||||
private:
|
||||
|
||||
G4bool fasterCode;
|
||||
|
||||
// Water density table
|
||||
const std::vector<G4double>* fpWaterDensity;
|
||||
|
||||
G4double killBelowEnergy;
|
||||
G4double lowEnergyLimit;
|
||||
G4double lowEnergyLimit;
|
||||
G4double intermediateEnergyLimit;
|
||||
G4double highEnergyLimit;
|
||||
G4bool isInitialised;
|
||||
G4int verboseLevel;
|
||||
G4double highEnergyLimit;
|
||||
|
||||
// Cross section
|
||||
|
||||
G4double RutherfordCrossSection(G4double energy, G4double z);
|
||||
|
||||
G4double ScreeningFactor(G4double energy, G4double z);
|
||||
|
||||
// Final state according to Brenner & Zaider
|
||||
|
||||
G4double BrennerZaiderRandomizeCosTheta(G4double k);
|
||||
G4double CalculatePolynomial(G4double k, std::vector<G4double>& vec);
|
||||
// -- Brenner & Zaider
|
||||
std::vector<G4double> betaCoeff;
|
||||
std::vector<G4double> deltaCoeff;
|
||||
std::vector<G4double> gamma035_10Coeff;
|
||||
std::vector<G4double> gamma10_100Coeff;
|
||||
std::vector<G4double> gamma100_200Coeff;
|
||||
|
||||
// Final state according to Screened Rutherford
|
||||
|
||||
// -- Water density table
|
||||
const std::vector<G4double>* fpWaterDensity;
|
||||
|
||||
G4int verboseLevel;
|
||||
|
||||
G4bool isInitialised;
|
||||
G4bool fasterCode;
|
||||
|
||||
// -- Cross section
|
||||
G4double RutherfordCrossSection(G4double energy, G4double z);
|
||||
G4double ScreeningFactor(G4double energy, G4double z);
|
||||
|
||||
// -- Final state according to Brenner & Zaider
|
||||
G4double BrennerZaiderRandomizeCosTheta(G4double k);
|
||||
G4double CalculatePolynomial(G4double k, std::vector<G4double>& vec);
|
||||
|
||||
|
||||
// -- Final state according to Screened Rutherford
|
||||
G4double ScreenedRutherfordRandomizeCosTheta(G4double k, G4double z);
|
||||
|
||||
//
|
||||
|
||||
G4DNAScreenedRutherfordElasticModel & operator=(const G4DNAScreenedRutherfordElasticModel &right);
|
||||
G4DNAScreenedRutherfordElasticModel(const G4DNAScreenedRutherfordElasticModel&);
|
||||
|
||||
G4DNAScreenedRutherfordElasticModel& operator=
|
||||
(const G4DNAScreenedRutherfordElasticModel &right);
|
||||
G4DNAScreenedRutherfordElasticModel(const G4DNAScreenedRutherfordElasticModel&);
|
||||
};
|
||||
|
||||
inline void G4DNAScreenedRutherfordElasticModel::SetKillBelowThreshold (G4double threshold)
|
||||
{
|
||||
killBelowEnergy = threshold;
|
||||
if (threshold < 9*CLHEP::eV)
|
||||
G4Exception ("*** WARNING : the G4DNAScreenedRutherfordElasticModel class is not validated below 9 eV !","",JustWarning,"") ;
|
||||
inline void
|
||||
G4DNAScreenedRutherfordElasticModel::SetKillBelowThreshold (G4double)
|
||||
{
|
||||
G4ExceptionDescription errMsg;
|
||||
errMsg << "The method G4DNAScreenedRutherfordElasticModel::"
|
||||
"SetKillBelowThreshold is deprecated";
|
||||
|
||||
G4Exception("G4DNAScreenedRutherfordElasticModel::SetKillBelowThreshold",
|
||||
"deprecated",
|
||||
JustWarning,
|
||||
errMsg);
|
||||
}
|
||||
|
||||
inline void G4DNAScreenedRutherfordElasticModel::SelectFasterComputation (G4bool input)
|
||||
inline void
|
||||
G4DNAScreenedRutherfordElasticModel::SelectFasterComputation(G4bool input)
|
||||
{
|
||||
fasterCode = input;
|
||||
}
|
||||
|
||||
@@ -65,6 +65,8 @@ double G4UniformRand()
|
||||
#define G4endl std::endl
|
||||
#endif
|
||||
|
||||
#include "G4Exp.hh"
|
||||
|
||||
class G4DNASmoluchowskiDiffusion
|
||||
{
|
||||
public:
|
||||
@@ -121,14 +123,14 @@ public:
|
||||
static double GetDifferential(double sTransform)
|
||||
{
|
||||
static double constant = -4./std::sqrt(3.141592653589793);
|
||||
return sTransform*sTransform*std::exp(-sTransform*sTransform)*constant; // -4*sTransform*sTransform*exp(-sTransform*sTransform)/sqrt(3.141592653589793)
|
||||
return sTransform*sTransform*G4Exp(-sTransform*sTransform)*constant; // -4*sTransform*sTransform*exp(-sTransform*sTransform)/sqrt(3.141592653589793)
|
||||
}
|
||||
|
||||
static double GetDensityProbability(double r, double _time, double D)
|
||||
{
|
||||
static double my_pi = 3.141592653589793;
|
||||
static double constant = 4.*my_pi/std::pow(4.*my_pi, 1.5);
|
||||
return r*r/std::pow(D * _time,1.5)*std::exp(-r*r/(4. * D * _time))*constant;
|
||||
return r*r/std::pow(D * _time,1.5)*G4Exp(-r*r/(4. * D * _time))*constant;
|
||||
}
|
||||
|
||||
//====================================================
|
||||
@@ -302,7 +304,7 @@ public:
|
||||
static double GetCumulativeProbability(double sTransform)
|
||||
{
|
||||
static double constant = 2./std::sqrt(3.141592653589793);
|
||||
return erfc(sTransform) + constant*sTransform*std::exp(-sTransform*sTransform);
|
||||
return erfc(sTransform) + constant*sTransform*G4Exp(-sTransform*sTransform);
|
||||
}
|
||||
|
||||
double GetInverseProbability(double proba) // returns sTransform
|
||||
|
||||
+96
-56
@@ -35,89 +35,129 @@
|
||||
|
||||
class G4DNAUeharaScreenedRutherfordElasticModel : public G4VEmModel
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
G4DNAUeharaScreenedRutherfordElasticModel(const G4ParticleDefinition* p = 0,
|
||||
const G4String& nam = "DNAUeharaScreenedRutherfordElasticModel");
|
||||
const G4String& nam = "DNAUeharaScreenedRutherfordElasticModel");
|
||||
|
||||
virtual ~G4DNAUeharaScreenedRutherfordElasticModel();
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&);
|
||||
|
||||
virtual G4double CrossSectionPerVolume(const G4Material* material,
|
||||
const G4ParticleDefinition* p,
|
||||
G4double ekin,
|
||||
G4double emin,
|
||||
G4double emax);
|
||||
const G4ParticleDefinition* p,
|
||||
G4double ekin,
|
||||
G4double emin,
|
||||
G4double emax);
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy);
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy);
|
||||
|
||||
inline void SetKillBelowThreshold (G4double threshold);
|
||||
G4double GetKillBelowThreshold () { return killBelowEnergy; }
|
||||
|
||||
inline void SelectFasterComputation(G4bool input);
|
||||
|
||||
protected:
|
||||
|
||||
G4ParticleChangeForGamma* fParticleChangeForGamma;
|
||||
inline void SelectFasterComputation(G4bool input);
|
||||
|
||||
//---
|
||||
// kept for backward compatibility
|
||||
inline void SetKillBelowThreshold (G4double threshold);
|
||||
inline G4double GetKillBelowThreshold();
|
||||
inline void SelectHighEnergyLimit(G4double threshold);
|
||||
//---
|
||||
|
||||
private:
|
||||
|
||||
G4bool fasterCode;
|
||||
|
||||
// Water density table
|
||||
const std::vector<G4double>* fpWaterDensity;
|
||||
|
||||
G4double killBelowEnergy;
|
||||
G4double lowEnergyLimit;
|
||||
G4double intermediateEnergyLimit;
|
||||
G4double highEnergyLimit;
|
||||
G4bool isInitialised;
|
||||
G4int verboseLevel;
|
||||
|
||||
// Cross section
|
||||
|
||||
G4double RutherfordCrossSection(G4double energy, G4double z);
|
||||
|
||||
G4double ScreeningFactor(G4double energy, G4double z);
|
||||
|
||||
// Final state according to Brenner & Zaider
|
||||
|
||||
G4double BrennerZaiderRandomizeCosTheta(G4double k);
|
||||
G4double CalculatePolynomial(G4double k, std::vector<G4double>& vec);
|
||||
// -- Brenner & Zaider
|
||||
std::vector<G4double> betaCoeff;
|
||||
std::vector<G4double> deltaCoeff;
|
||||
std::vector<G4double> gamma035_10Coeff;
|
||||
std::vector<G4double> gamma10_100Coeff;
|
||||
std::vector<G4double> gamma100_200Coeff;
|
||||
|
||||
// Final state according to Screened Rutherford
|
||||
|
||||
G4double ScreenedRutherfordRandomizeCosTheta(G4double k, G4double z);
|
||||
// -- Water density table
|
||||
const std::vector<G4double>* fpWaterDensity;
|
||||
|
||||
protected:
|
||||
G4ParticleChangeForGamma* fParticleChangeForGamma;
|
||||
|
||||
private:
|
||||
G4int verboseLevel;
|
||||
G4bool fasterCode;
|
||||
G4bool isInitialised;
|
||||
|
||||
// -- Cross section
|
||||
G4double RutherfordCrossSection(G4double energy, G4double z);
|
||||
G4double ScreeningFactor(G4double energy, G4double z);
|
||||
|
||||
// -- Final state according to Brenner & Zaider
|
||||
G4double BrennerZaiderRandomizeCosTheta(G4double k);
|
||||
G4double CalculatePolynomial(G4double k,
|
||||
std::vector<G4double>& vec);
|
||||
|
||||
// -- Final state according to Screened Rutherford
|
||||
G4double ScreenedRutherfordRandomizeCosTheta(G4double k,
|
||||
G4double z);
|
||||
|
||||
//
|
||||
|
||||
G4DNAUeharaScreenedRutherfordElasticModel & operator=(const G4DNAUeharaScreenedRutherfordElasticModel &right);
|
||||
G4DNAUeharaScreenedRutherfordElasticModel(const G4DNAUeharaScreenedRutherfordElasticModel&);
|
||||
|
||||
G4DNAUeharaScreenedRutherfordElasticModel&
|
||||
operator=(const G4DNAUeharaScreenedRutherfordElasticModel &right);
|
||||
G4DNAUeharaScreenedRutherfordElasticModel(
|
||||
const G4DNAUeharaScreenedRutherfordElasticModel&);
|
||||
};
|
||||
|
||||
|
||||
inline void G4DNAUeharaScreenedRutherfordElasticModel::SetKillBelowThreshold (G4double threshold)
|
||||
inline void G4DNAUeharaScreenedRutherfordElasticModel::
|
||||
SelectFasterComputation(G4bool input)
|
||||
{
|
||||
killBelowEnergy = threshold;
|
||||
if (threshold < 9*CLHEP::eV)
|
||||
G4Exception ("*** WARNING : the G4DNAUeharaScreenedRutherfordElasticModel class is not validated below 9 eV !","",JustWarning,"") ;
|
||||
}
|
||||
fasterCode = input;
|
||||
}
|
||||
|
||||
inline void G4DNAUeharaScreenedRutherfordElasticModel::SelectFasterComputation (G4bool input)
|
||||
{
|
||||
fasterCode = input;
|
||||
}
|
||||
//---
|
||||
// kept for backward compatibility
|
||||
|
||||
inline void
|
||||
G4DNAUeharaScreenedRutherfordElasticModel::SelectHighEnergyLimit(
|
||||
G4double threshold)
|
||||
{
|
||||
if(threshold > 10. * CLHEP::keV)
|
||||
{
|
||||
G4Exception (
|
||||
"*** WARNING : the G4DNAUeharaScreenedRutherfordElasticModel class is "
|
||||
"used above 10 keV !",
|
||||
"", JustWarning, "");
|
||||
}
|
||||
|
||||
SetHighEnergyLimit(threshold);
|
||||
}
|
||||
|
||||
inline void
|
||||
G4DNAUeharaScreenedRutherfordElasticModel::SetKillBelowThreshold(G4double)
|
||||
{
|
||||
G4ExceptionDescription errMsg;
|
||||
errMsg << "*** WARNING : "
|
||||
<< "G4DNAUeharaScreenedRutherfordElasticModel::SetKillBelowThreshold"
|
||||
<< "is deprecated, the kill threshold won't be taken into account";
|
||||
|
||||
G4Exception (
|
||||
"G4DNAUeharaScreenedRutherfordElasticModel::SetKillBelowThreshold",
|
||||
"DEPRECATED", JustWarning, errMsg);
|
||||
}
|
||||
|
||||
inline G4double
|
||||
G4DNAUeharaScreenedRutherfordElasticModel::GetKillBelowThreshold()
|
||||
{
|
||||
G4ExceptionDescription errMsg;
|
||||
errMsg << "*** WARNING : "
|
||||
<< "G4DNAUeharaScreenedRutherfordElasticModel::GetKillBelowThreshold"
|
||||
<< "is deprecated, the returned value is nonsense";
|
||||
|
||||
G4Exception (
|
||||
"G4DNAUeharaScreenedRutherfordElasticModel::GetKillBelowThreshold",
|
||||
"DEPRECATED", JustWarning, errMsg);
|
||||
|
||||
return -1;
|
||||
}
|
||||
//---
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
|
||||
Reference in New Issue
Block a user