Import Geant4 11.2.0.beta source tree
This commit is contained in:
@@ -59,7 +59,6 @@
|
||||
#include "G4ionEffectiveCharge.hh"
|
||||
#include "G4Material.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4Threading.hh"
|
||||
|
||||
class G4VEmModel;
|
||||
class G4PhysicsVector;
|
||||
@@ -73,7 +72,7 @@ class G4EmCorrections
|
||||
|
||||
public:
|
||||
|
||||
explicit G4EmCorrections(G4int verb);
|
||||
explicit G4EmCorrections(G4int verb, G4bool master);
|
||||
|
||||
~G4EmCorrections();
|
||||
|
||||
@@ -194,63 +193,60 @@ private:
|
||||
|
||||
const G4ParticleDefinition* particle = nullptr;
|
||||
const G4ParticleDefinition* curParticle = nullptr;
|
||||
const G4Material* material = nullptr;
|
||||
const G4Material* curMaterial = nullptr;
|
||||
const G4ElementVector* theElementVector = nullptr;
|
||||
const G4double* atomDensity = nullptr;
|
||||
const G4Material* material = nullptr;
|
||||
const G4Material* curMaterial = nullptr;
|
||||
const G4ElementVector* theElementVector = nullptr;
|
||||
const G4double* atomDensity = nullptr;
|
||||
|
||||
G4PhysicsVector* curVector = nullptr;
|
||||
G4PhysicsVector* curVector = nullptr;
|
||||
|
||||
G4VEmModel* ionLEModel = nullptr;
|
||||
G4VEmModel* ionHEModel = nullptr;
|
||||
G4VEmModel* ionLEModel = nullptr;
|
||||
G4VEmModel* ionHEModel = nullptr;
|
||||
|
||||
G4double kinEnergy = 0.0;
|
||||
G4double mass = 0.0;
|
||||
G4double massFactor = 1.0;
|
||||
G4double eth;
|
||||
G4double tau = 0.0;
|
||||
G4double gamma = 1.0;
|
||||
G4double bg2 = 0.0;
|
||||
G4double beta2 = 0.0;
|
||||
G4double beta = 0.0;
|
||||
G4double ba2 = 0.0;
|
||||
G4double tmax = 0.0;
|
||||
G4double charge = 0.0;
|
||||
G4double q2 = 0.0;
|
||||
G4double eCorrMin;
|
||||
G4double eCorrMax;
|
||||
G4double kinEnergy = 0.0;
|
||||
G4double mass = 0.0;
|
||||
G4double massFactor = 1.0;
|
||||
G4double tau = 0.0;
|
||||
G4double gamma = 1.0;
|
||||
G4double bg2 = 0.0;
|
||||
G4double beta2 = 0.0;
|
||||
G4double beta = 0.0;
|
||||
G4double ba2 = 0.0;
|
||||
G4double tmax = 0.0;
|
||||
G4double charge = 0.0;
|
||||
G4double q2 = 0.0;
|
||||
G4double eth;
|
||||
G4double eCorrMin;
|
||||
G4double eCorrMax;
|
||||
|
||||
G4bool isMaster = false;
|
||||
|
||||
size_t ncouples = 0;
|
||||
G4int verbose;
|
||||
|
||||
G4int nK;
|
||||
G4int nL;
|
||||
G4int nEtaK;
|
||||
G4int nEtaL;
|
||||
|
||||
G4int nbinCorr = 52;
|
||||
G4int numberOfElements = 0;
|
||||
std::size_t ncouples = 0;
|
||||
G4int nK = 20;
|
||||
G4int nL = 26;
|
||||
G4int nEtaK = 29;
|
||||
G4int nEtaL = 28;
|
||||
G4int nbinCorr = 52;
|
||||
G4int numberOfElements = 0;
|
||||
|
||||
// Ion stopping data
|
||||
G4int nIons = 0;
|
||||
G4int idx = 0;
|
||||
G4int currentZ = 0;
|
||||
G4int nIons = 0;
|
||||
G4int idx = 0;
|
||||
G4int currentZ = 0;
|
||||
|
||||
std::vector<G4int> Zion;
|
||||
std::vector<G4int> Aion;
|
||||
std::vector<G4String> materialName;
|
||||
G4int verbose;
|
||||
G4bool isMaster;
|
||||
|
||||
std::vector<G4int> Zion;
|
||||
std::vector<G4int> Aion;
|
||||
std::vector<G4String> materialName;
|
||||
std::vector<const G4ParticleDefinition*> ionList;
|
||||
|
||||
std::map< G4int, std::vector<G4double> > thcorr;
|
||||
|
||||
std::vector<const G4Material*> currmat;
|
||||
std::vector<const G4Material*> materialList;
|
||||
std::vector<G4PhysicsVector*> stopData;
|
||||
std::vector<G4PhysicsVector*> stopData;
|
||||
|
||||
G4ionEffectiveCharge effCharge;
|
||||
G4ionEffectiveCharge effCharge;
|
||||
|
||||
static const G4double ZD[11];
|
||||
static const G4double UK[20];
|
||||
@@ -265,10 +261,6 @@ private:
|
||||
static G4PhysicsFreeVector* sBarkasCorr;
|
||||
static G4PhysicsFreeVector* sThetaK;
|
||||
static G4PhysicsFreeVector* sThetaL;
|
||||
|
||||
#ifdef G4MULTITHREADED
|
||||
static G4Mutex theCorrMutex;
|
||||
#endif
|
||||
};
|
||||
|
||||
inline G4int
|
||||
|
||||
@@ -385,6 +385,8 @@ public:
|
||||
void DefineRegParamForEM(G4VEmProcess*) const;
|
||||
void DefineRegParamForDeex(G4VAtomDeexcitation*) const;
|
||||
|
||||
const G4String& GetDirLEDATA() const;
|
||||
|
||||
G4EmParameters(G4EmParameters &) = delete;
|
||||
G4EmParameters & operator=(const G4EmParameters &right) = delete;
|
||||
|
||||
@@ -463,6 +465,8 @@ private:
|
||||
G4NuclearFormfactorType nucFormfactor;
|
||||
G4eSingleScatteringType fSStype;
|
||||
G4EmFluctuationType fFluct;
|
||||
|
||||
G4String fDirLEDATA;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -90,13 +90,13 @@ public:
|
||||
//-------------------------------------------------
|
||||
|
||||
void PreparePhysicsTable(const G4ParticleDefinition* aParticle,
|
||||
G4VEnergyLossProcess* p, G4bool theMaster);
|
||||
G4VEnergyLossProcess* p);
|
||||
|
||||
void PreparePhysicsTable(const G4ParticleDefinition* aParticle,
|
||||
G4VEmProcess* p, G4bool theMaster);
|
||||
G4VEmProcess* p);
|
||||
|
||||
void PreparePhysicsTable(const G4ParticleDefinition* aParticle,
|
||||
G4VMultipleScattering* p, G4bool theMaster);
|
||||
G4VMultipleScattering* p);
|
||||
|
||||
void BuildPhysicsTable(const G4ParticleDefinition* aParticle);
|
||||
|
||||
@@ -255,49 +255,49 @@ private:
|
||||
|
||||
typedef const G4ParticleDefinition* PD;
|
||||
|
||||
std::map<PD,G4VEnergyLossProcess*,std::less<PD> > loss_map;
|
||||
// cache
|
||||
G4VEnergyLossProcess* currentLoss{nullptr};
|
||||
PD currentParticle{nullptr};
|
||||
PD theElectron;
|
||||
PD theGenericIon{nullptr};
|
||||
PD firstParticle{nullptr};
|
||||
|
||||
G4LossTableBuilder* tableBuilder;
|
||||
G4EmCorrections* emCorrections;
|
||||
G4EmConfigurator* emConfigurator{nullptr};
|
||||
G4ElectronIonPair* emElectronIonPair{nullptr};
|
||||
G4NIELCalculator* nielCalculator{nullptr};
|
||||
G4VAtomDeexcitation* atomDeexcitation{nullptr};
|
||||
G4VSubCutProducer* subcutProducer{nullptr};
|
||||
|
||||
G4EmParameters* theParameters;
|
||||
G4VEmProcess* gGeneral{nullptr};
|
||||
G4VEmProcess* eGeneral{nullptr};
|
||||
G4VEmProcess* pGeneral{nullptr};
|
||||
|
||||
G4int verbose;
|
||||
G4int n_loss{0};
|
||||
G4int run{-1};
|
||||
|
||||
G4bool all_tables_are_built{false};
|
||||
G4bool startInitialisation{false};
|
||||
G4bool isMaster{true};
|
||||
|
||||
std::vector<G4VEnergyLossProcess*> loss_vector;
|
||||
std::vector<PD> part_vector;
|
||||
std::vector<PD> base_part_vector;
|
||||
std::vector<G4bool> tables_are_built;
|
||||
std::vector<G4bool> isActive;
|
||||
std::vector<G4PhysicsTable*> dedx_vector;
|
||||
std::vector<G4PhysicsTable*> range_vector;
|
||||
std::vector<G4PhysicsTable*> inv_range_vector;
|
||||
std::vector<G4bool> tables_are_built;
|
||||
std::vector<G4bool> isActive;
|
||||
std::vector<G4VMultipleScattering*> msc_vector;
|
||||
std::vector<G4VEmProcess*> emp_vector;
|
||||
std::vector<G4VEmModel*> mod_vector;
|
||||
std::vector<G4VEmFluctuationModel*> fmod_vector;
|
||||
std::vector<G4VProcess*> p_vector;
|
||||
|
||||
// cache
|
||||
G4VEnergyLossProcess* currentLoss;
|
||||
PD currentParticle;
|
||||
PD theElectron;
|
||||
PD theGenericIon;
|
||||
PD firstParticle;
|
||||
|
||||
G4LossTableBuilder* tableBuilder;
|
||||
G4EmCorrections* emCorrections;
|
||||
G4EmConfigurator* emConfigurator;
|
||||
G4ElectronIonPair* emElectronIonPair;
|
||||
G4NIELCalculator* nielCalculator;
|
||||
G4VAtomDeexcitation* atomDeexcitation;
|
||||
G4VSubCutProducer* subcutProducer;
|
||||
|
||||
G4EmParameters* theParameters;
|
||||
G4VEmProcess* gGeneral;
|
||||
G4VEmProcess* eGeneral;
|
||||
G4VEmProcess* pGeneral;
|
||||
|
||||
G4int verbose;
|
||||
G4int n_loss;
|
||||
G4int run;
|
||||
|
||||
G4bool all_tables_are_built;
|
||||
G4bool startInitialisation;
|
||||
G4bool isMaster;
|
||||
std::map<PD,G4VEnergyLossProcess*,std::less<PD> > loss_map;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -317,6 +317,10 @@ public:
|
||||
|
||||
void SetCrossSectionTable(G4PhysicsTable*, G4bool isLocal);
|
||||
|
||||
G4bool LPMFlag() const;
|
||||
|
||||
void SetLPMFlag(G4bool val);
|
||||
|
||||
inline G4ElementData* GetElementData();
|
||||
|
||||
inline G4PhysicsTable* GetCrossSectionTable();
|
||||
@@ -343,8 +347,6 @@ public:
|
||||
|
||||
inline G4double SecondaryThreshold() const;
|
||||
|
||||
inline G4bool LPMFlag() const;
|
||||
|
||||
inline G4bool DeexcitationFlag() const;
|
||||
|
||||
inline G4bool ForceBuildTableFlag() const;
|
||||
@@ -367,8 +369,6 @@ public:
|
||||
|
||||
inline void SetSecondaryThreshold(G4double);
|
||||
|
||||
inline void SetLPMFlag(G4bool val);
|
||||
|
||||
inline void SetDeexcitationFlag(G4bool val);
|
||||
|
||||
inline void SetForceBuildTable(G4bool val);
|
||||
@@ -447,7 +447,6 @@ protected:
|
||||
|
||||
private:
|
||||
|
||||
G4bool theLPMflag = false;
|
||||
G4bool flagDeexcitation = false;
|
||||
G4bool flagForceBuildTable = false;
|
||||
G4bool isMaster = true;
|
||||
@@ -673,13 +672,6 @@ inline G4double G4VEmModel::SecondaryThreshold() const
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline G4bool G4VEmModel::LPMFlag() const
|
||||
{
|
||||
return theLPMflag;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline G4bool G4VEmModel::DeexcitationFlag() const
|
||||
{
|
||||
return flagDeexcitation;
|
||||
@@ -792,13 +784,6 @@ inline void G4VEmModel::SetSecondaryThreshold(G4double val)
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline void G4VEmModel::SetLPMFlag(G4bool val)
|
||||
{
|
||||
theLPMflag = val;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline void G4VEmModel::SetDeexcitationFlag(G4bool val)
|
||||
{
|
||||
flagDeexcitation = val;
|
||||
|
||||
@@ -505,7 +505,7 @@ private:
|
||||
G4CrossSectionType fXSType = fEmOnePeak;
|
||||
|
||||
G4bool lossFluctuationFlag = true;
|
||||
G4bool rndmStepFlag = false;
|
||||
G4bool useCutAsFinalRange = false;
|
||||
G4bool tablesAreBuilt = false;
|
||||
G4bool spline = true;
|
||||
G4bool isIon = false;
|
||||
@@ -616,7 +616,8 @@ inline G4double G4VEnergyLossProcess::GetScaledRangeForScaledEnergy(G4double e)
|
||||
coupleIdxRange = currentCoupleIndex;
|
||||
fRangeEnergy = e;
|
||||
fRange = reduceFactor*((*theRangeTableForLoss)[basedCoupleIndex])->Value(e, idxRange);
|
||||
if(e < minKinEnergy) { fRange *= std::sqrt(e/minKinEnergy); }
|
||||
if (fRange < 0.0) { fRange = 0.0; }
|
||||
else if (e < minKinEnergy) { fRange *= std::sqrt(e/minKinEnergy); }
|
||||
}
|
||||
//G4cout << "G4VEnergyLossProcess::GetScaledRange: Idx= "
|
||||
// << basedCoupleIndex << " E(MeV)= " << e
|
||||
@@ -634,7 +635,8 @@ G4VEnergyLossProcess::GetScaledRangeForScaledEnergy(G4double e, G4double loge)
|
||||
coupleIdxRange = currentCoupleIndex;
|
||||
fRangeEnergy = e;
|
||||
fRange = reduceFactor*((*theRangeTableForLoss)[basedCoupleIndex])->LogVectorValue(e, loge);
|
||||
if(e < minKinEnergy) { fRange *= std::sqrt(e/minKinEnergy); }
|
||||
if (fRange < 0.0) { fRange = 0.0; }
|
||||
else if (e < minKinEnergy) { fRange *= std::sqrt(e/minKinEnergy); }
|
||||
}
|
||||
//G4cout << "G4VEnergyLossProcess::GetScaledRange: Idx= "
|
||||
// << basedCoupleIndex << " E(MeV)= " << e
|
||||
@@ -648,7 +650,8 @@ inline G4double
|
||||
G4VEnergyLossProcess::GetLimitScaledRangeForScaledEnergy(G4double e)
|
||||
{
|
||||
G4double x = ((*theCSDARangeTable)[basedCoupleIndex])->Value(e, idxCSDA);
|
||||
if(e < minKinEnergy) { x *= std::sqrt(e/minKinEnergy); }
|
||||
if (x < 0.0) { x = 0.0; }
|
||||
else if (e < minKinEnergy) { x *= std::sqrt(e/minKinEnergy); }
|
||||
return x;
|
||||
}
|
||||
|
||||
@@ -659,7 +662,8 @@ G4VEnergyLossProcess::GetLimitScaledRangeForScaledEnergy(G4double e,
|
||||
G4double loge)
|
||||
{
|
||||
G4double x = ((*theCSDARangeTable)[basedCoupleIndex])->LogVectorValue(e, loge);
|
||||
if(e < minKinEnergy) { x *= std::sqrt(e/minKinEnergy); }
|
||||
if (x < 0.0) { x = 0.0; }
|
||||
else if (e < minKinEnergy) { x *= std::sqrt(e/minKinEnergy); }
|
||||
return x;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user