Import Geant4 11.3.0.beta source tree
This commit is contained in:
@@ -6,17 +6,47 @@ It must **not** be used as a substitute for writing good git commit messages!
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
## 2024-02-07 Vladimir Ivanchenko (phys-ctor-em-V11-01-14)
|
||||
## 2024-05-23 Hoang Tran (phys-ctor-em-V11-02-07)
|
||||
- Use EmParameters to control chemistry models in G4EmDNAChemistry_option3.
|
||||
|
||||
## 2024-05-19 Vladimir Ivanchenko (phys-ctor-em-V11-02-06)
|
||||
- G4EmStandardPhysics_option3, G4EmStandardPhysics_option4, G4EmLivermorePhysics,
|
||||
G4EmLivermorePhysics, G4EmDNAPhysics - use fAllisonPositronium type of model
|
||||
for sampling of positron annihilation at rest (as it is in 11.2).
|
||||
- G4EmStandardPhysics_option4 - use model alternative model for positron
|
||||
annihilation on fly with 3-gamma annihilation channel enabled.
|
||||
|
||||
## 2024-05-04 Vladimir Ivanchenko (phys-ctor-em-V11-02-05)
|
||||
- G4GammaGeneralProcess - updated according to change in EM data tables
|
||||
|
||||
## 2024-04-05 Vladimir Ivanchenko (phys-ctor-em-V11-02-04)
|
||||
- G4EmDNABuilder - added nuclear stopping process for G4GenericIon below 1 MeV/u.
|
||||
- G4EmDNAPhysics, G4EmDNAPhysicsActivator, G4EmDNAPhysics_option2,
|
||||
G4EmDNAPhysics_option4, G4EmDNAPhysics_option6, G4EmDNAPhysics_option8
|
||||
change upper limit for DNA physics of Helium ions from 300 MeV to 400 MeV.
|
||||
|
||||
## 2024-04-04 Vladimir Ivanchenko (phys-ctor-em-V11-02-03)
|
||||
- G4EmDNAPhysics - define default maximum kinetic energy 600 MeV
|
||||
instead of 300 MeV in order to have standard ionisation and
|
||||
multiple scattering always defined for DNA physics configurations.
|
||||
This allows avoid situations when low-energy ions path DNA region
|
||||
without interaction
|
||||
|
||||
## 2024-02-07 Vladimir Ivanchenko (phys-ctor-em-V11-02-02)
|
||||
- G4EmStandardPhysics_option3 - return back step limit type to
|
||||
fUseDistanceToBoundary and the default RangeFactor 0.04 from 0.03,
|
||||
which will allow to restore more accurate distributions for several
|
||||
tests for medical benchmark
|
||||
|
||||
## 2024-02-04 Vladimir Ivanchenko
|
||||
## 2024-02-04 Vladimir Ivanchenko (phys-ctor-em-V11-02-01)
|
||||
- G4GammaGeneralProcess - fixed sampling of muon pair production - problem 2543
|
||||
|
||||
## 2024-01-27 Vladimir Ivanchenko (phys-ctor-em-V11-02-00)
|
||||
- G4EmStandardPhysicsWVI - return back ATIMA model for ionisation and
|
||||
fluctuations of ions in order to make comparisons with other models.
|
||||
|
||||
## 2023-11-09 Hoang Tran (phys-ctor-em-V11-01-13)
|
||||
- Correct subtype process of G4LowECapture in G4EmDNABuilder .
|
||||
- Correct subtype process of G4LowECapture in G4EmDNABuilder.
|
||||
|
||||
## 2023-11-04 Hoang Tran (phys-ctor-em-V11-01-12)
|
||||
- Correct G4EmDNABuilder for proton constructors.
|
||||
|
||||
@@ -120,6 +120,9 @@ public:
|
||||
static G4LowECapture*
|
||||
FindOrBuildCapture(const G4double elim, G4ParticleDefinition* part);
|
||||
|
||||
static void FindOrBuildNuclearStopping(G4ParticleDefinition* part,
|
||||
const G4double elim);
|
||||
|
||||
private:
|
||||
|
||||
static void StandardHadronPhysics(G4ParticleDefinition*,
|
||||
|
||||
+3
-6
@@ -37,8 +37,9 @@
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "G4VUserChemistryList.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
#include "G4ChemTimeStepModel.hh"
|
||||
class G4DNAMolecularReactionTable;
|
||||
class G4DNAMolecularReactionData;
|
||||
|
||||
class G4EmDNAChemistry_option3 : public G4VUserChemistryList,
|
||||
public G4VPhysicsConstructor
|
||||
@@ -59,12 +60,8 @@ public:
|
||||
void ConstructDissociationChannels() override;
|
||||
void ConstructReactionTable(G4DNAMolecularReactionTable* reactionTable) override;
|
||||
void ConstructTimeStepModel(G4DNAMolecularReactionTable* reactionTable) override;
|
||||
inline void SetTimeStepModel(const TimeStepModel& model)
|
||||
{
|
||||
fTimeStepModel = model;
|
||||
}
|
||||
private:
|
||||
TimeStepModel fTimeStepModel = fIRT;
|
||||
static void SetReactionType(G4DNAMolecularReactionData* pData, G4ChemTimeStepModel model);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -140,9 +140,9 @@ protected:
|
||||
G4double GetMeanFreePath(const G4Track& track, G4double previousStepSize,
|
||||
G4ForceCondition* condition) override;
|
||||
|
||||
inline G4double ComputeGeneralLambda(size_t idxe, size_t idxt);
|
||||
inline G4double ComputeGeneralLambda(std::size_t idxe, std::size_t idxt);
|
||||
|
||||
inline G4double GetProbability(size_t idxt);
|
||||
inline G4double GetProbability(std::size_t idxt);
|
||||
|
||||
inline void SelectedProcess(const G4Step& step, G4VProcess* ptr);
|
||||
|
||||
@@ -169,7 +169,7 @@ protected:
|
||||
|
||||
private:
|
||||
static G4EmDataHandler* theHandler;
|
||||
static const size_t nTables = 15;
|
||||
static const std::size_t nTables = 15;
|
||||
static G4bool theT[nTables];
|
||||
static G4String nameT[nTables];
|
||||
|
||||
@@ -184,15 +184,15 @@ private:
|
||||
G4double minMMEnergy;
|
||||
G4double peLambda = 0.0;
|
||||
|
||||
size_t nLowE = 40;
|
||||
size_t nHighE = 50;
|
||||
size_t idxEnergy = 0;
|
||||
std::size_t nLowE = 40;
|
||||
std::size_t nHighE = 50;
|
||||
std::size_t idxEnergy = 0;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline G4double
|
||||
G4GammaGeneralProcess::ComputeGeneralLambda(size_t idxe, size_t idxt)
|
||||
G4GammaGeneralProcess::ComputeGeneralLambda(std::size_t idxe, std::size_t idxt)
|
||||
{
|
||||
idxEnergy = idxe;
|
||||
return factor*theHandler->GetVector(idxt, basedCoupleIndex)
|
||||
@@ -201,7 +201,7 @@ G4GammaGeneralProcess::ComputeGeneralLambda(size_t idxe, size_t idxt)
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline G4double G4GammaGeneralProcess::GetProbability(size_t idxt)
|
||||
inline G4double G4GammaGeneralProcess::GetProbability(std::size_t idxt)
|
||||
{
|
||||
return theHandler->GetVector(idxt, basedCoupleIndex)
|
||||
->LogVectorValue(preStepKinEnergy, preStepLogE);
|
||||
@@ -218,7 +218,8 @@ G4GammaGeneralProcess::SelectedProcess(const G4Step& step, G4VProcess* ptr)
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline void G4GammaGeneralProcess::SelectEmProcess(const G4Step& step, G4VEmProcess* proc)
|
||||
inline void
|
||||
G4GammaGeneralProcess::SelectEmProcess(const G4Step& step, G4VEmProcess* proc)
|
||||
{
|
||||
proc->CurrentSetup(currentCouple, preStepKinEnergy);
|
||||
SelectedProcess(step, proc);
|
||||
|
||||
@@ -64,6 +64,7 @@
|
||||
#include "G4ionIonisation.hh"
|
||||
#include "G4eBremsstrahlung.hh"
|
||||
#include "G4eplusAnnihilation.hh"
|
||||
#include "G4NuclearStopping.hh"
|
||||
|
||||
// standard models
|
||||
#include "G4LivermorePhotoElectricModel.hh"
|
||||
@@ -536,7 +537,11 @@ G4EmDNABuilder::ConstructDNAIonPhysics(const G4double emaxIonDNA,
|
||||
mod->SetHighEnergyLimit(emaxIonDNA);
|
||||
theDNAIoni->AddEmModel(-1, mod, reg);
|
||||
|
||||
FindOrBuildCapture(0.1*CLHEP::keV, part);
|
||||
// *** NIEL ***
|
||||
FindOrBuildNuclearStopping(part, CLHEP::MeV);
|
||||
|
||||
// *** Tracking cut ***
|
||||
FindOrBuildCapture(1*CLHEP::keV, part);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -605,6 +610,8 @@ G4EmDNABuilder::ConstructDNALightIonPhysics(G4ParticleDefinition* part,
|
||||
modDCD->SetHighEnergyLimit(emax);
|
||||
theDNAChargeDecrease->AddEmModel(-1, modDCD, reg);
|
||||
}
|
||||
|
||||
// *** Tracking cut ***
|
||||
FindOrBuildCapture(1*CLHEP::keV, part);
|
||||
}
|
||||
|
||||
@@ -750,7 +757,7 @@ G4EmDNABuilder::FindOrBuildCapture(const G4double elim, G4ParticleDefinition* pa
|
||||
{
|
||||
auto p = G4PhysListUtil::FindProcess(part, -1);
|
||||
G4LowECapture* ptr = dynamic_cast<G4LowECapture*>(p);
|
||||
if(nullptr == ptr) {
|
||||
if (nullptr == ptr) {
|
||||
ptr = new G4LowECapture(elim);
|
||||
auto mng = part->GetProcessManager();
|
||||
mng->AddDiscreteProcess(ptr);
|
||||
@@ -759,3 +766,18 @@ G4EmDNABuilder::FindOrBuildCapture(const G4double elim, G4ParticleDefinition* pa
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4EmDNABuilder::FindOrBuildNuclearStopping(G4ParticleDefinition* part,
|
||||
const G4double elim)
|
||||
{
|
||||
auto p = G4PhysListUtil::FindProcess(part, fNuclearStopping);
|
||||
auto ptr = dynamic_cast<G4NuclearStopping*>(p);
|
||||
if (nullptr == ptr) {
|
||||
ptr = new G4NuclearStopping();
|
||||
}
|
||||
ptr->SetMaxKinEnergy(elim);
|
||||
auto ph = G4PhysicsListHelper::GetPhysicsListHelper();
|
||||
ph->RegisterProcess(ptr, part);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
+57
-179
@@ -36,7 +36,6 @@
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4DNAWaterDissociationDisplacer.hh"
|
||||
#include "G4DNAChemistryManager.hh"
|
||||
#include "G4DNAWaterExcitationStructure.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
// *** Processes and models for Geant4-DNA
|
||||
|
||||
@@ -44,7 +43,6 @@
|
||||
|
||||
#include "G4DNAVibExcitation.hh"
|
||||
#include "G4DNASancheExcitationModel.hh"
|
||||
#include "G4DNAUeharaScreenedRutherfordElasticModel.hh"
|
||||
#include "G4DNAMolecularDissociation.hh"
|
||||
#include "G4DNABrownianTransportation.hh"
|
||||
#include "G4DNAMolecularReactionTable.hh"
|
||||
@@ -58,7 +56,6 @@
|
||||
#include "G4Electron.hh"
|
||||
#include "G4MoleculeTable.hh"
|
||||
#include "G4H2O.hh"
|
||||
#include "G4FakeMolecule.hh"
|
||||
#include "G4PhysicsListHelper.hh"
|
||||
|
||||
/****/
|
||||
@@ -69,11 +66,11 @@
|
||||
// factory
|
||||
#include "G4PhysicsConstructorFactory.hh"
|
||||
#include "G4ChemDissociationChannels_option1.hh"
|
||||
//Parameter
|
||||
#include "G4EmParameters.hh"
|
||||
|
||||
G4_DECLARE_PHYSCONSTR_FACTORY(G4EmDNAChemistry_option3);
|
||||
|
||||
#include "G4Threading.hh"
|
||||
|
||||
G4EmDNAChemistry_option3::G4EmDNAChemistry_option3() :
|
||||
G4VUserChemistryList(true)
|
||||
{
|
||||
@@ -99,6 +96,7 @@ void G4EmDNAChemistry_option3::ConstructDissociationChannels()
|
||||
void G4EmDNAChemistry_option3::ConstructReactionTable(G4DNAMolecularReactionTable*
|
||||
theReactionTable)
|
||||
{
|
||||
auto model = G4EmParameters::Instance()->GetTimeStepModel();
|
||||
//-----------------------------------
|
||||
//Get the molecular configuration
|
||||
G4MolecularConfiguration* OH =
|
||||
@@ -216,121 +214,84 @@ void G4EmDNAChemistry_option3::ConstructReactionTable(G4DNAMolecularReactionTabl
|
||||
// *OH + *H -> H2O
|
||||
reactionData = new G4DNAMolecularReactionData(
|
||||
1.55e10 * (1e-3 * m3 / (mole * s)), OH, H);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// H + H2O2 -> OH
|
||||
reactionData = new G4DNAMolecularReactionData(
|
||||
3.50e7 * (1e-3 * m3 / (mole * s)), H, H2O2);
|
||||
reactionData->AddProduct(OH);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// H + OH- -> eaq-
|
||||
reactionData = new G4DNAMolecularReactionData(
|
||||
2.51e7 * (1e-3 * m3 / (mole * s)), H, OHm);
|
||||
reactionData->AddProduct(e_aq);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// H + O2 -> HO2
|
||||
reactionData = new G4DNAMolecularReactionData(
|
||||
2.10e10 * (1e-3 * m3 / (mole * s)), H, O2);
|
||||
reactionData->AddProduct(HO2);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// H + HO2 -> H2O2
|
||||
reactionData = new G4DNAMolecularReactionData(
|
||||
1.00e10 * (1e-3 * m3 / (mole * s)), H, HO2);
|
||||
reactionData->AddProduct(H2O2);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// H + O2- -> HO2-
|
||||
reactionData = new G4DNAMolecularReactionData(
|
||||
1.00e10 * (1e-3 * m3 / (mole * s)), H, O2m);
|
||||
reactionData->AddProduct(HO2m);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// *OH + *OH -> H2O2
|
||||
reactionData = new G4DNAMolecularReactionData(
|
||||
0.55e10 * (1e-3 * m3 / (mole * s)), OH, OH);
|
||||
reactionData->AddProduct(H2O2);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// OH + H2O2 -> HO2
|
||||
reactionData = new G4DNAMolecularReactionData(
|
||||
2.88e7 * (1e-3 * m3 / (mole * s)), OH, H2O2);
|
||||
reactionData->AddProduct(HO2);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// OH + H2 -> H
|
||||
reactionData = new G4DNAMolecularReactionData(
|
||||
3.28e7 * (1e-3 * m3 / (mole * s)), OH, H2);
|
||||
reactionData->AddProduct(H);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// e_aq + *OH -> OH-
|
||||
reactionData = new G4DNAMolecularReactionData(
|
||||
2.95e10 * (1e-3 * m3 / (mole * s)), e_aq, OH);
|
||||
reactionData->AddProduct(OHm);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// OH + OH- -> O-
|
||||
reactionData = new G4DNAMolecularReactionData(
|
||||
6.30e9 * (1e-3 * m3 / (mole * s)), OH, OHm);
|
||||
reactionData->AddProduct(Om);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// OH + HO2 -> O2
|
||||
reactionData = new G4DNAMolecularReactionData(
|
||||
7.90e9 * (1e-3 * m3 / (mole * s)), OH, HO2);
|
||||
reactionData->AddProduct(O2);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// OH + O2- -> O2 + OH-
|
||||
@@ -338,10 +299,7 @@ void G4EmDNAChemistry_option3::ConstructReactionTable(G4DNAMolecularReactionTabl
|
||||
1.07e10 * (1e-3 * m3 / (mole * s)), OH, O2m);
|
||||
reactionData->AddProduct(O2);
|
||||
reactionData->AddProduct(OHm);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// OH + HO2- -> HO2 + OH-
|
||||
@@ -349,20 +307,14 @@ void G4EmDNAChemistry_option3::ConstructReactionTable(G4DNAMolecularReactionTabl
|
||||
8.32e9 * (1e-3 * m3 / (mole * s)), OH, HO2m);
|
||||
reactionData->AddProduct(HO2);
|
||||
reactionData->AddProduct(OHm);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// OH + O- -> HO2-
|
||||
reactionData = new G4DNAMolecularReactionData(
|
||||
1.00e9 * (1e-3 * m3 / (mole * s)), OH, Om);
|
||||
reactionData->AddProduct(HO2m);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// OH + O3- -> O2- + HO2
|
||||
@@ -370,10 +322,7 @@ void G4EmDNAChemistry_option3::ConstructReactionTable(G4DNAMolecularReactionTabl
|
||||
8.50e9 * (1e-3 * m3 / (mole * s)), OH, O3m);
|
||||
reactionData->AddProduct(O2m);
|
||||
reactionData->AddProduct(HO2);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// e_aq + H2O2 -> OH- + *OH
|
||||
@@ -381,20 +330,14 @@ void G4EmDNAChemistry_option3::ConstructReactionTable(G4DNAMolecularReactionTabl
|
||||
1.10e10 * (1e-3 * m3 / (mole * s)), e_aq, H2O2);
|
||||
reactionData->AddProduct(OHm);
|
||||
reactionData->AddProduct(OH);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// H2O2 + OH- -> HO2-
|
||||
reactionData = new G4DNAMolecularReactionData(
|
||||
4.71e8 * (1e-3 * m3 / (mole * s)), H2O2, OHm);
|
||||
reactionData->AddProduct(HO2m);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// H2O2 + O(3p) -> HO2 + OH
|
||||
@@ -402,10 +345,7 @@ void G4EmDNAChemistry_option3::ConstructReactionTable(G4DNAMolecularReactionTabl
|
||||
1.60e9 * (1e-3 * m3 / (mole * s)), H2O2, O);
|
||||
reactionData->AddProduct(HO2);
|
||||
reactionData->AddProduct(OH);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// H2O2 + O- -> HO2 + OH-
|
||||
@@ -413,10 +353,7 @@ void G4EmDNAChemistry_option3::ConstructReactionTable(G4DNAMolecularReactionTabl
|
||||
5.55e8 * (1e-3 * m3 / (mole * s)), H2O2, Om);
|
||||
reactionData->AddProduct(HO2);
|
||||
reactionData->AddProduct(OHm);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// H2 + O(3p) -> H + OH
|
||||
@@ -424,10 +361,7 @@ void G4EmDNAChemistry_option3::ConstructReactionTable(G4DNAMolecularReactionTabl
|
||||
4.77e3 * (1e-3 * m3 / (mole * s)), H2, O);
|
||||
reactionData->AddProduct(H);
|
||||
reactionData->AddProduct(OH);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// H2 + O- -> H + OH-
|
||||
@@ -435,70 +369,49 @@ void G4EmDNAChemistry_option3::ConstructReactionTable(G4DNAMolecularReactionTabl
|
||||
1.21e8 * (1e-3 * m3 / (mole * s)), H2, Om);
|
||||
reactionData->AddProduct(H);
|
||||
reactionData->AddProduct(OHm);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// eaq- + O2 -> O2-
|
||||
reactionData = new G4DNAMolecularReactionData(
|
||||
1.74e10 * (1e-3 * m3 / (mole * s)), e_aq, O2);
|
||||
reactionData->AddProduct(O2m);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// eaq + HO2 -> HO2-
|
||||
reactionData = new G4DNAMolecularReactionData(
|
||||
1.29e10 * (1e-3 * m3 / (mole * s)), e_aq, HO2);
|
||||
reactionData->AddProduct(HO2m);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// OH- + HO2 -> O2-
|
||||
reactionData = new G4DNAMolecularReactionData(
|
||||
6.30e9 * (1e-3 * m3 / (mole * s)), OHm, HO2);
|
||||
reactionData->AddProduct(O2m);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// OH- + O(3p) -> HO2-
|
||||
reactionData = new G4DNAMolecularReactionData(
|
||||
4.20e8 * (1e-3 * m3 / (mole * s)), OHm, O);
|
||||
reactionData->AddProduct(HO2m);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// O2 + O(3p) -> O3
|
||||
reactionData = new G4DNAMolecularReactionData(
|
||||
4.00e9 * (1e-3 * m3 / (mole * s)), O2, O);
|
||||
reactionData->AddProduct(O3);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// O2 + O- -> O3-
|
||||
reactionData = new G4DNAMolecularReactionData(
|
||||
3.70e9 * (1e-3 * m3 / (mole * s)), O2, Om);
|
||||
reactionData->AddProduct(O3m);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// HO2 + HO2 -> H2O2 + O2
|
||||
@@ -506,10 +419,7 @@ void G4EmDNAChemistry_option3::ConstructReactionTable(G4DNAMolecularReactionTabl
|
||||
9.80e5 * (1e-3 * m3 / (mole * s)), HO2, HO2);
|
||||
reactionData->AddProduct(H2O2);
|
||||
reactionData->AddProduct(O2);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// HO2 + O2- -> HO2- + O2
|
||||
@@ -517,10 +427,7 @@ void G4EmDNAChemistry_option3::ConstructReactionTable(G4DNAMolecularReactionTabl
|
||||
9.70e7 * (1e-3 * m3 / (mole * s)), HO2, O2m);
|
||||
reactionData->AddProduct(HO2m);
|
||||
reactionData->AddProduct(O2);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// HO2- + O(3p) -> O2- + OH
|
||||
@@ -528,10 +435,7 @@ void G4EmDNAChemistry_option3::ConstructReactionTable(G4DNAMolecularReactionTabl
|
||||
5.30e9 * (1e-3 * m3 / (mole * s)), HO2m, O);
|
||||
reactionData->AddProduct(O2m);
|
||||
reactionData->AddProduct(OH);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
|
||||
// Type IV //
|
||||
@@ -540,10 +444,7 @@ void G4EmDNAChemistry_option3::ConstructReactionTable(G4DNAMolecularReactionTabl
|
||||
reactionData = new G4DNAMolecularReactionData(
|
||||
2.11e10 * (1e-3 * m3 / (mole * s)), e_aq, H3Op);
|
||||
reactionData->AddProduct(H);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// e_aq + O2- -> H2O2 + OH- + OH-
|
||||
@@ -552,10 +453,7 @@ void G4EmDNAChemistry_option3::ConstructReactionTable(G4DNAMolecularReactionTabl
|
||||
reactionData->AddProduct(H2O2);
|
||||
reactionData->AddProduct(OHm);
|
||||
reactionData->AddProduct(OHm);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// e_aq + HO2- -> O- + OH-
|
||||
@@ -563,10 +461,7 @@ void G4EmDNAChemistry_option3::ConstructReactionTable(G4DNAMolecularReactionTabl
|
||||
3.51e9 * (1e-3 * m3 / (mole * s)), e_aq, HO2m);
|
||||
reactionData->AddProduct(Om);
|
||||
reactionData->AddProduct(OHm);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// e_aq + O- -> OH- + OH-
|
||||
@@ -574,40 +469,28 @@ void G4EmDNAChemistry_option3::ConstructReactionTable(G4DNAMolecularReactionTabl
|
||||
2.31e10 * (1e-3 * m3 / (mole * s)), e_aq, Om);
|
||||
reactionData->AddProduct(OHm);
|
||||
reactionData->AddProduct(OHm);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// H3O+ + O2- -> HO2
|
||||
reactionData = new G4DNAMolecularReactionData(
|
||||
4.78e10 * (1e-3 * m3 / (mole * s)), H3Op, O2m);
|
||||
reactionData->AddProduct(HO2);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// H3O+ + HO2- -> H2O2
|
||||
reactionData = new G4DNAMolecularReactionData(
|
||||
5.00e10 * (1e-3 * m3 / (mole * s)), H3Op, HO2m);
|
||||
reactionData->AddProduct(H2O2);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// H3O+ + O- -> OH
|
||||
reactionData = new G4DNAMolecularReactionData(
|
||||
4.78e10 * (1e-3 * m3 / (mole * s)), H3Op, Om);
|
||||
reactionData->AddProduct(OH);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// O2- + O- -> O2 + OH- + OH-
|
||||
@@ -616,10 +499,7 @@ void G4EmDNAChemistry_option3::ConstructReactionTable(G4DNAMolecularReactionTabl
|
||||
reactionData->AddProduct(O2);
|
||||
reactionData->AddProduct(OHm);
|
||||
reactionData->AddProduct(OHm);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// HO2- + O- -> O2- + OH-
|
||||
@@ -627,10 +507,7 @@ void G4EmDNAChemistry_option3::ConstructReactionTable(G4DNAMolecularReactionTabl
|
||||
3.50e8 * (1e-3 * m3 / (mole * s)), HO2m, Om);
|
||||
reactionData->AddProduct(O2m);
|
||||
reactionData->AddProduct(OHm);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// O- + O- -> H2O2 + OH- + OH-
|
||||
@@ -639,10 +516,7 @@ void G4EmDNAChemistry_option3::ConstructReactionTable(G4DNAMolecularReactionTabl
|
||||
reactionData->AddProduct(H2O2);
|
||||
reactionData->AddProduct(OHm);
|
||||
reactionData->AddProduct(OHm);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
//------------------------------------------------------------------
|
||||
// O- + O3- -> O2- + O2-
|
||||
@@ -650,10 +524,7 @@ void G4EmDNAChemistry_option3::ConstructReactionTable(G4DNAMolecularReactionTabl
|
||||
7.00e8 * (1e-3 * m3 / (mole * s)), Om, O3m);
|
||||
reactionData->AddProduct(O2m);
|
||||
reactionData->AddProduct(O2m);
|
||||
if(fTimeStepModel != fSBS)
|
||||
{
|
||||
reactionData->SetReactionType(1);
|
||||
}
|
||||
SetReactionType(reactionData,model);//partially diffusion-controlled
|
||||
theReactionTable->SetReaction(reactionData);
|
||||
|
||||
// Type VI
|
||||
@@ -798,6 +669,7 @@ void G4EmDNAChemistry_option3::ConstructReactionTable(G4DNAMolecularReactionTabl
|
||||
|
||||
void G4EmDNAChemistry_option3::ConstructProcess()
|
||||
{
|
||||
auto ChemModel = G4EmParameters::Instance()->GetTimeStepModel();
|
||||
G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
|
||||
|
||||
//===============================================================
|
||||
@@ -849,7 +721,7 @@ void G4EmDNAChemistry_option3::ConstructProcess()
|
||||
|
||||
if (moleculeDef != G4H2O::Definition())
|
||||
{
|
||||
if(fTimeStepModel != fIRT)
|
||||
if(ChemModel != G4ChemTimeStepModel::IRT)
|
||||
{
|
||||
auto* brown = new G4DNABrownianTransportation();
|
||||
ph->RegisterProcess(brown, moleculeDef);
|
||||
@@ -882,15 +754,21 @@ void G4EmDNAChemistry_option3::ConstructProcess()
|
||||
void G4EmDNAChemistry_option3::ConstructTimeStepModel(G4DNAMolecularReactionTable*
|
||||
/*reactionTable*/)
|
||||
{
|
||||
if(fTimeStepModel == fIRT)
|
||||
auto model = G4EmParameters::Instance()->GetTimeStepModel();
|
||||
if(model == G4ChemTimeStepModel::IRT)
|
||||
{
|
||||
RegisterTimeStepModel(new G4DNAMolecularIRTModel(), 0);
|
||||
}else if(fTimeStepModel == fSBS)
|
||||
}else if(model == G4ChemTimeStepModel::SBS)
|
||||
{
|
||||
RegisterTimeStepModel(new G4DNAMolecularStepByStepModel(), 0);
|
||||
}else if(fTimeStepModel == fIRT_syn)
|
||||
}else if(model == G4ChemTimeStepModel::IRT_syn)
|
||||
{
|
||||
RegisterTimeStepModel(new G4DNAIndependentReactionTimeModel(), 0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void G4EmDNAChemistry_option3::SetReactionType(G4DNAMolecularReactionData* pData,
|
||||
G4ChemTimeStepModel model)
|
||||
{
|
||||
if(model != G4ChemTimeStepModel::SBS) { pData->SetReactionType(1); }
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ G4EmDNAPhysics::G4EmDNAPhysics(G4int ver, const G4String& name)
|
||||
G4EmParameters* param = G4EmParameters::Instance();
|
||||
param->SetDefaults();
|
||||
param->SetMinEnergy(10*CLHEP::eV);
|
||||
param->SetMaxEnergy(300*CLHEP::MeV);
|
||||
param->SetMaxEnergy(600*CLHEP::MeV);
|
||||
param->SetLowestElectronEnergy(0*CLHEP::eV);
|
||||
param->SetNumberOfBinsPerDecade(20);
|
||||
param->ActivateAngularGeneratorForIonisation(true);
|
||||
@@ -75,6 +75,7 @@ G4EmDNAPhysics::G4EmDNAPhysics(G4int ver, const G4String& name)
|
||||
param->SetFluo(true);
|
||||
param->SetAuger(true);
|
||||
param->SetDeexcitationIgnoreCut(true);
|
||||
param->SetPositronAtRestModelType(fAllisonPositronium);
|
||||
param->ActivateDNA();
|
||||
param->SetDNAFast(false);
|
||||
param->SetDNAStationary(false);
|
||||
@@ -97,6 +98,7 @@ void G4EmDNAPhysics::ConstructProcess()
|
||||
G4EmParameters* param = G4EmParameters::Instance();
|
||||
const G4double emaxDNA = 1.*CLHEP::MeV;
|
||||
const G4double emaxIonDNA = 300.*CLHEP::MeV;
|
||||
const G4double emaxLightIonDNA = 400.*CLHEP::MeV;
|
||||
const G4double eminBorn = 500.*CLHEP::keV;
|
||||
const G4bool fast = param->DNAFast();
|
||||
const G4bool st = param->DNAStationary();
|
||||
@@ -123,13 +125,13 @@ void G4EmDNAPhysics::ConstructProcess()
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(part, 0, 0, emaxIonDNA, fast, st);
|
||||
|
||||
part = G4Alpha::Alpha();
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(part, 2, 0, emaxIonDNA, fast, st);
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(part, 2, 0, emaxLightIonDNA, fast, st);
|
||||
|
||||
part = genericIonsManager->GetIon("alpha+");
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(part, 1, 0, emaxIonDNA, fast, st);
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(part, 1, 0, emaxLightIonDNA, fast, st);
|
||||
|
||||
part = genericIonsManager->GetIon("helium");
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(part, 0, 0, emaxIonDNA, fast, st);
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(part, 0, 0, emaxLightIonDNA, fast, st);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -117,6 +117,7 @@ void G4EmDNAPhysicsActivator::ConstructProcess()
|
||||
|
||||
const G4double emaxDNA = 1.*CLHEP::MeV;
|
||||
const G4double emaxIonDNA = 300.*CLHEP::MeV;
|
||||
const G4double emaxLightIonDNA = 400.*CLHEP::MeV;
|
||||
const G4double eminBorn = 500.*CLHEP::keV;
|
||||
const G4double emax = theParameters->MaxKinEnergy();
|
||||
|
||||
@@ -166,15 +167,15 @@ void G4EmDNAPhysicsActivator::ConstructProcess()
|
||||
}
|
||||
DeactivateElectronProcesses(emaxDNA, emax, reg);
|
||||
G4EmDNABuilder::ConstructDNAElectronPhysics(emaxDNA, opt, fast, st, reg);
|
||||
DeactivateHadronProcesses(prot, emaxDNA, emax, reg);
|
||||
DeactivateHadronProcesses(prot, emaxIonDNA, emax, reg);
|
||||
G4EmDNABuilder::ConstructDNAProtonPhysics(eminBorn, emaxIonDNA, opt, fast, st, reg);
|
||||
DeactivateIonProcesses(gion, emaxIonDNA, emax, reg);
|
||||
G4EmDNABuilder::ConstructDNAIonPhysics(emax, st, reg);
|
||||
DeactivateIonProcesses(alpha2, emaxIonDNA, emax, reg);
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(alpha2, 2, opt, emaxIonDNA, fast, st, reg);
|
||||
DeactivateHadronProcesses(alpha1, emaxIonDNA, emax, reg);
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(alpha1, 1, opt, emaxIonDNA, fast, st, reg);
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(alpha0, 0, opt, emaxIonDNA, fast, st, reg);
|
||||
G4EmDNABuilder::ConstructDNAIonPhysics(emaxIonDNA, st, reg);
|
||||
DeactivateIonProcesses(alpha2, emaxLightIonDNA, emax, reg);
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(alpha2, 2, opt, emaxLightIonDNA, fast, st, reg);
|
||||
DeactivateHadronProcesses(alpha1, emaxLightIonDNA, emax, reg);
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(alpha1, 1, opt, emaxLightIonDNA, fast, st, reg);
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(alpha0, 0, opt, emaxLightIonDNA, fast, st, reg);
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(h0, 0, opt, emaxIonDNA, fast, st, reg);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,6 +62,7 @@ void G4EmDNAPhysics_option2::ConstructProcess()
|
||||
G4EmParameters* param = G4EmParameters::Instance();
|
||||
const G4double emaxDNA = 1.*CLHEP::MeV;
|
||||
const G4double emaxIonDNA = 300.*CLHEP::MeV;
|
||||
const G4double emaxLightIonDNA = 400.*CLHEP::MeV;
|
||||
const G4double eminBorn = 500.*CLHEP::keV;
|
||||
const G4bool fast = param->DNAFast();
|
||||
const G4bool st = param->DNAStationary();
|
||||
@@ -88,13 +89,13 @@ void G4EmDNAPhysics_option2::ConstructProcess()
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(part, 0, 2, emaxIonDNA, fast, st);
|
||||
|
||||
part = G4Alpha::Alpha();
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(part, 2, 2, emaxIonDNA, fast, st);
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(part, 2, 2, emaxLightIonDNA, fast, st);
|
||||
|
||||
part = genericIonsManager->GetIon("alpha+");
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(part, 1, 2, emaxIonDNA, fast, st);
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(part, 1, 2, emaxLightIonDNA, fast, st);
|
||||
|
||||
part = genericIonsManager->GetIon("helium");
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(part, 0, 2, emaxIonDNA, fast, st);
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(part, 0, 2, emaxLightIonDNA, fast, st);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -59,6 +59,7 @@ void G4EmDNAPhysics_option4::ConstructProcess()
|
||||
G4EmParameters* param = G4EmParameters::Instance();
|
||||
const G4double emaxDNA = 1.*CLHEP::MeV;
|
||||
const G4double emaxIonDNA = 300.*CLHEP::MeV;
|
||||
const G4double emaxLightIonDNA = 400.*CLHEP::MeV;
|
||||
const G4double eminBorn = 500.*CLHEP::keV;
|
||||
const G4bool fast = param->DNAFast();
|
||||
const G4bool st = param->DNAStationary();
|
||||
@@ -85,13 +86,13 @@ void G4EmDNAPhysics_option4::ConstructProcess()
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(part, 0, 4, emaxIonDNA, fast, st);
|
||||
|
||||
part = G4Alpha::Alpha();
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(part, 2, 4, emaxIonDNA, fast, st);
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(part, 2, 4, emaxLightIonDNA, fast, st);
|
||||
|
||||
part = genericIonsManager->GetIon("alpha+");
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(part, 1, 4, emaxIonDNA, fast, st);
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(part, 1, 4, emaxLightIonDNA, fast, st);
|
||||
|
||||
part = genericIonsManager->GetIon("helium");
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(part, 0, 4, emaxIonDNA, fast, st);
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(part, 0, 4, emaxLightIonDNA, fast, st);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -72,6 +72,7 @@ void G4EmDNAPhysics_option6::ConstructProcess()
|
||||
G4EmParameters* param = G4EmParameters::Instance();
|
||||
const G4double emaxDNA = 1.*CLHEP::MeV;
|
||||
const G4double emaxIonDNA = 300.*CLHEP::MeV;
|
||||
const G4double emaxLightIonDNA = 400.*CLHEP::MeV;
|
||||
const G4double eminBorn = 500.*CLHEP::keV;
|
||||
const G4bool fast = param->DNAFast();
|
||||
const G4bool st = param->DNAStationary();
|
||||
@@ -98,13 +99,13 @@ void G4EmDNAPhysics_option6::ConstructProcess()
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(part, 0, 6, emaxIonDNA, fast, st);
|
||||
|
||||
part = G4Alpha::Alpha();
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(part, 2, 6, emaxIonDNA, fast, st);
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(part, 2, 6, emaxLightIonDNA, fast, st);
|
||||
|
||||
part = genericIonsManager->GetIon("alpha+");
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(part, 1, 6, emaxIonDNA, fast, st);
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(part, 1, 6, emaxLightIonDNA, fast, st);
|
||||
|
||||
part = genericIonsManager->GetIon("helium");
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(part, 0, 6, emaxIonDNA, fast, st);
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(part, 0, 6, emaxLightIonDNA, fast, st);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -62,6 +62,7 @@ void G4EmDNAPhysics_option8::ConstructProcess()
|
||||
G4EmParameters* param = G4EmParameters::Instance();
|
||||
const G4double emaxDNA = 1.*CLHEP::MeV;
|
||||
const G4double emaxIonDNA = 300.*CLHEP::MeV;
|
||||
const G4double emaxLightIonDNA = 400.*CLHEP::MeV;
|
||||
const G4double eminBorn = 500.*CLHEP::keV;
|
||||
const G4bool fast = param->DNAFast();
|
||||
const G4bool st = param->DNAStationary();
|
||||
@@ -88,13 +89,13 @@ void G4EmDNAPhysics_option8::ConstructProcess()
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(part, 0, 8, emaxIonDNA, fast, st);
|
||||
|
||||
part = G4Alpha::Alpha();
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(part, 2, 8, emaxIonDNA, fast, st);
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(part, 2, 8, emaxLightIonDNA, fast, st);
|
||||
|
||||
part = genericIonsManager->GetIon("alpha+");
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(part, 1, 8, emaxIonDNA, fast, st);
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(part, 1, 8, emaxLightIonDNA, fast, st);
|
||||
|
||||
part = genericIonsManager->GetIon("helium");
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(part, 0, 8, emaxIonDNA, fast, st);
|
||||
G4EmDNABuilder::ConstructDNALightIonPhysics(part, 0, 8, emaxLightIonDNA, fast, st);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -132,6 +132,7 @@ G4EmLivermorePhysics::G4EmLivermorePhysics(G4int ver, const G4String& pname)
|
||||
param->SetUseICRU90Data(true);
|
||||
param->SetFluctuationType(fUrbanFluctuation);
|
||||
param->SetMaxNIELEnergy(1*CLHEP::MeV);
|
||||
param->SetPositronAtRestModelType(fAllisonPositronium);
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
|
||||
|
||||
@@ -125,6 +125,7 @@ G4EmPenelopePhysics::G4EmPenelopePhysics(G4int ver, const G4String&)
|
||||
param->SetFluctuationType(fUrbanFluctuation);
|
||||
param->SetMaxNIELEnergy(1*CLHEP::MeV);
|
||||
param->SetPIXEElectronCrossSectionModel("Penelope");
|
||||
param->SetPositronAtRestModelType(fAllisonPositronium);
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
|
||||
|
||||
@@ -118,8 +118,7 @@ G4EmStandardPhysicsWVI::G4EmStandardPhysicsWVI(G4int ver)
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmStandardPhysicsWVI::~G4EmStandardPhysicsWVI()
|
||||
{}
|
||||
G4EmStandardPhysicsWVI::~G4EmStandardPhysicsWVI() = default;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -226,9 +225,9 @@ void G4EmStandardPhysicsWVI::ConstructProcess()
|
||||
// generic ion
|
||||
particle = G4GenericIon::GenericIon();
|
||||
G4ionIonisation* ionIoni = new G4ionIonisation();
|
||||
auto fluc = new G4IonFluctuations();
|
||||
auto fluc = new G4AtimaFluctuations();
|
||||
ionIoni->SetFluctModel(fluc);
|
||||
ionIoni->SetEmModel(new G4LindhardSorensenIonModel());
|
||||
ionIoni->SetEmModel(new G4AtimaEnergyLossModel());
|
||||
ph->RegisterProcess(hmsc, particle);
|
||||
ph->RegisterProcess(ionIoni, particle);
|
||||
if(nullptr != pnuc) { ph->RegisterProcess(pnuc, particle); }
|
||||
|
||||
@@ -122,6 +122,7 @@ G4EmStandardPhysics_option3::G4EmStandardPhysics_option3(G4int ver,
|
||||
param->SetFluctuationType(fUrbanFluctuation);
|
||||
param->SetFluo(true);
|
||||
param->SetMaxNIELEnergy(1*CLHEP::MeV);
|
||||
param->SetPositronAtRestModelType(fAllisonPositronium);
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
|
||||
|
||||
+7
-1
@@ -86,6 +86,7 @@
|
||||
#include "G4IonParametrisedLossModel.hh"
|
||||
#include "G4LindhardSorensenIonModel.hh"
|
||||
#include "G4NuclearStopping.hh"
|
||||
#include "G4eplusTo2GammaOKVIModel.hh"
|
||||
|
||||
#include "G4Gamma.hh"
|
||||
#include "G4Electron.hh"
|
||||
@@ -130,6 +131,7 @@ G4EmStandardPhysics_option4::G4EmStandardPhysics_option4(G4int ver,
|
||||
param->SetUseICRU90Data(true);
|
||||
param->SetFluctuationType(fUrbanFluctuation);
|
||||
param->SetMaxNIELEnergy(1*CLHEP::MeV);
|
||||
param->SetPositronAtRestModelType(fAllisonPositronium);
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
|
||||
@@ -300,11 +302,15 @@ void G4EmStandardPhysics_option4::ConstructProcess()
|
||||
brem->SetEmModel(br2);
|
||||
br1->SetHighEnergyLimit(CLHEP::GeV);
|
||||
|
||||
// annihilation
|
||||
auto anni = new G4eplusAnnihilation();
|
||||
anni->SetEmModel(new G4eplusTo2GammaOKVIModel());
|
||||
|
||||
// register processes
|
||||
ph->RegisterProcess(eioni, particle);
|
||||
ph->RegisterProcess(brem, particle);
|
||||
ph->RegisterProcess(ee, particle);
|
||||
ph->RegisterProcess(new G4eplusAnnihilation(), particle);
|
||||
ph->RegisterProcess(anni, particle);
|
||||
ph->RegisterProcess(ss, particle);
|
||||
|
||||
// generic ion
|
||||
|
||||
@@ -92,6 +92,9 @@ G4GammaGeneralProcess::G4GammaGeneralProcess(const G4String& pname):
|
||||
SetVerboseLevel(1);
|
||||
SetParticle(G4Gamma::Gamma());
|
||||
SetProcessSubType(fGammaGeneralProcess);
|
||||
if (nullptr == theHandler) {
|
||||
theHandler = new G4EmDataHandler(nTables);
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
@@ -146,14 +149,11 @@ void G4GammaGeneralProcess::PreparePhysicsTable(const G4ParticleDefinition& part
|
||||
idxEnergy = 0;
|
||||
currentCouple = nullptr;
|
||||
|
||||
G4EmParameters* param = G4EmParameters::Instance();
|
||||
G4LossTableManager* man = G4LossTableManager::Instance();
|
||||
|
||||
isTheMaster = man->IsMaster();
|
||||
if(isTheMaster) { SetVerboseLevel(param->Verbose()); }
|
||||
else { SetVerboseLevel(param->WorkerVerbose()); }
|
||||
|
||||
// initialise base material for the current run
|
||||
G4LossTableBuilder* bld = man->GetTableBuilder();
|
||||
bld->InitialiseBaseMaterials();
|
||||
baseMat = bld->GetBaseMaterialFlag();
|
||||
|
||||
if(1 < verboseLevel) {
|
||||
@@ -173,14 +173,15 @@ void G4GammaGeneralProcess::PreparePhysicsTable(const G4ParticleDefinition& part
|
||||
<< "\n Conversion: " << theConversionEE;
|
||||
G4Exception("G4GeneralGammaProcess","em0004",
|
||||
FatalException, ed,"");
|
||||
return;
|
||||
}
|
||||
|
||||
if(thePhotoElectric) { thePhotoElectric->PreparePhysicsTable(part); }
|
||||
if(theCompton) { theCompton->PreparePhysicsTable(part); }
|
||||
if(theConversionEE) { theConversionEE->PreparePhysicsTable(part); }
|
||||
if(theRayleigh) { theRayleigh->PreparePhysicsTable(part); }
|
||||
if(theGammaNuclear) { theGammaNuclear->PreparePhysicsTable(part); }
|
||||
if(theConversionMM) { theConversionMM->PreparePhysicsTable(part); }
|
||||
thePhotoElectric->PreparePhysicsTable(part);
|
||||
theCompton->PreparePhysicsTable(part);
|
||||
theConversionEE->PreparePhysicsTable(part);
|
||||
if (nullptr != theRayleigh) { theRayleigh->PreparePhysicsTable(part); }
|
||||
if (nullptr != theGammaNuclear) { theGammaNuclear->PreparePhysicsTable(part); }
|
||||
if (nullptr != theConversionMM) { theConversionMM->PreparePhysicsTable(part); }
|
||||
|
||||
InitialiseProcess(&part);
|
||||
}
|
||||
@@ -195,15 +196,13 @@ void G4GammaGeneralProcess::InitialiseProcess(const G4ParticleDefinition*)
|
||||
G4LossTableManager* man = G4LossTableManager::Instance();
|
||||
|
||||
// tables are created and its size is defined only once
|
||||
if(nullptr == theHandler) {
|
||||
theHandler = new G4EmDataHandler(nTables);
|
||||
if(theRayleigh) { theT[1] = true; }
|
||||
if (nullptr != theRayleigh) { theT[1] = true; }
|
||||
|
||||
theHandler->SetMasterProcess(thePhotoElectric);
|
||||
theHandler->SetMasterProcess(theCompton);
|
||||
theHandler->SetMasterProcess(theConversionEE);
|
||||
theHandler->SetMasterProcess(theRayleigh);
|
||||
}
|
||||
theHandler->SetMasterProcess(thePhotoElectric);
|
||||
theHandler->SetMasterProcess(theCompton);
|
||||
theHandler->SetMasterProcess(theConversionEE);
|
||||
theHandler->SetMasterProcess(theRayleigh);
|
||||
|
||||
auto bld = man->GetTableBuilder();
|
||||
|
||||
const G4ProductionCutsTable* theCoupleTable=
|
||||
@@ -230,7 +229,6 @@ void G4GammaGeneralProcess::InitialiseProcess(const G4ParticleDefinition*)
|
||||
for(std::size_t j=0; j<numOfCouples; ++j) {
|
||||
vec = (*table)[j];
|
||||
if (bld->GetFlag(j) && nullptr == vec) {
|
||||
//G4cout <<"InitialiseProcess iTable="<<i<<" jCouple="<< j <<" make new vector"<< G4endl;
|
||||
if(i<=1) {
|
||||
vec = new G4PhysicsVector(aVector);
|
||||
} else if(i<=5) {
|
||||
@@ -694,6 +692,7 @@ G4GammaGeneralProcess::RetrievePhysicsTable(const G4ParticleDefinition* part,
|
||||
const G4String& directory,
|
||||
G4bool ascii)
|
||||
{
|
||||
if (!isTheMaster) { return true; }
|
||||
if(1 < verboseLevel) {
|
||||
G4cout << "G4GammaGeneralProcess::RetrievePhysicsTable() for "
|
||||
<< part->GetParticleName() << " and process "
|
||||
@@ -720,8 +719,6 @@ G4GammaGeneralProcess::RetrievePhysicsTable(const G4ParticleDefinition* part,
|
||||
{ yes = false; }
|
||||
}
|
||||
}
|
||||
if(yes) {
|
||||
}
|
||||
return yes;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,15 +1,19 @@
|
||||
# Category phys-ctor-fact History
|
||||
|
||||
See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
|
||||
which **must** added in reverse chronological order (newest at the top). It must **not**
|
||||
be used as a substitute for writing good git commit messages!
|
||||
which **must** added in reverse chronological order (newest at the top).
|
||||
It must **not** be used as a substitute for writing good git commit messages!
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
## 2024-05-15 Gabriele Cosmo (phys-ctor-fact-V11-02-00)
|
||||
- Minor code cleanup in G4PhysicsConstructorRegistry source.
|
||||
|
||||
## 2023-05-15 Alberto Ribon (phys-ctor-fact-V11-01-00)
|
||||
- Added G4StoppingPhysicsWithINCLXX in G4RegisterPhysicsConstructors .
|
||||
- Added G4StoppingPhysicsWithINCLXX in G4RegisterPhysicsConstructors.
|
||||
|
||||
## 2021-12-10 Ben Morgan (phys-ctor-fact-V11-00-00)
|
||||
- Change to new Markdown History format
|
||||
- Change to new Markdown History format.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -24,18 +24,12 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
// GEANT4 Class file
|
||||
//
|
||||
//
|
||||
// File name: G4PhysicsConstructorRegistry
|
||||
// File name: G4PhysicsConstructorRegistry.cc
|
||||
//
|
||||
// Author W. Pokorski 21.09.2012
|
||||
//
|
||||
// Modifications:
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
@@ -43,19 +37,17 @@
|
||||
// force REFERENCE macros _not_ to be expanded here
|
||||
// but wherever the class is used (w/ that .hh use)
|
||||
#define G4PhysicsConstructorRegistry_cc 1
|
||||
|
||||
#include "G4PhysicsConstructorRegistry.hh"
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "G4PhysicsConstructorFactory.hh"
|
||||
|
||||
G4ThreadLocal G4PhysicsConstructorRegistry* G4PhysicsConstructorRegistry::theInstance = 0;
|
||||
G4ThreadLocal G4PhysicsConstructorRegistry* G4PhysicsConstructorRegistry::theInstance = nullptr;
|
||||
|
||||
G4PhysicsConstructorRegistry* G4PhysicsConstructorRegistry::Instance()
|
||||
{
|
||||
if(0 == theInstance) {
|
||||
static G4ThreadLocal G4PhysicsConstructorRegistry *manager_G4MT_TLS_ = 0 ; if (!manager_G4MT_TLS_) manager_G4MT_TLS_ = new G4PhysicsConstructorRegistry ; G4PhysicsConstructorRegistry &manager = *manager_G4MT_TLS_;
|
||||
theInstance = &manager;
|
||||
}
|
||||
if(nullptr == theInstance) theInstance = new G4PhysicsConstructorRegistry;
|
||||
return theInstance;
|
||||
}
|
||||
|
||||
@@ -69,12 +61,12 @@ G4PhysicsConstructorRegistry::~G4PhysicsConstructorRegistry()
|
||||
|
||||
void G4PhysicsConstructorRegistry::Clean()
|
||||
{
|
||||
size_t n = physConstr.size();
|
||||
std::size_t n = physConstr.size();
|
||||
if(n > 0) {
|
||||
for (size_t i=0; i<n; ++i) {
|
||||
for (std::size_t i=0; i<n; ++i) {
|
||||
if(physConstr[i]) {
|
||||
G4VPhysicsConstructor* p = physConstr[i];
|
||||
physConstr[i] = 0;
|
||||
physConstr[i] = nullptr;
|
||||
delete p;
|
||||
}
|
||||
}
|
||||
@@ -84,10 +76,10 @@ void G4PhysicsConstructorRegistry::Clean()
|
||||
|
||||
void G4PhysicsConstructorRegistry::Register(G4VPhysicsConstructor* p)
|
||||
{
|
||||
if(!p) return;
|
||||
size_t n = physConstr.size();
|
||||
if(nullptr == p) return;
|
||||
std::size_t n = physConstr.size();
|
||||
if(n > 0) {
|
||||
for (size_t i=0; i<n; ++i) {
|
||||
for (std::size_t i=0; i<n; ++i) {
|
||||
if(physConstr[i] == p) { return; }
|
||||
}
|
||||
}
|
||||
@@ -96,12 +88,12 @@ void G4PhysicsConstructorRegistry::Register(G4VPhysicsConstructor* p)
|
||||
|
||||
void G4PhysicsConstructorRegistry::DeRegister(G4VPhysicsConstructor* p)
|
||||
{
|
||||
if ( !p ) return;
|
||||
size_t n = physConstr.size();
|
||||
if (nullptr == p) return;
|
||||
std::size_t n = physConstr.size();
|
||||
if ( n > 0 ) {
|
||||
for (size_t i=0; i<n; ++i) {
|
||||
for (std::size_t i=0; i<n; ++i) {
|
||||
if ( physConstr[i] == p ) {
|
||||
physConstr[i] = 0;
|
||||
physConstr[i] = nullptr;
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -130,7 +122,7 @@ G4VPhysicsConstructor* G4PhysicsConstructorRegistry::GetPhysicsConstructor(const
|
||||
G4ExceptionDescription ED;
|
||||
ED << "The factory for the physics constructor ["<< name << "] does not exist!" << G4endl;
|
||||
G4Exception("G4PhysicsConstructorRegistry::GetPhysicsConstructor", "PhysicsList001", FatalException, ED);
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -158,28 +150,24 @@ void G4PhysicsConstructorRegistry::PrintAvailablePhysicsConstructors() const
|
||||
<< G4endl;
|
||||
if ( avail.empty() ) G4cout << "... no registered processes" << G4endl;
|
||||
else {
|
||||
size_t n = avail.size();
|
||||
for (size_t i=0; i<n; ++i ) {
|
||||
std::size_t n = avail.size();
|
||||
for (std::size_t i=0; i<n; ++i ) {
|
||||
G4cout << " [" << std::setw(3) << i << "] "
|
||||
<< " \"" << avail[i] << "\"" << G4endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// External reference to phy ctor factories for running with 'static'
|
||||
// libraries to pull the references of the declared factories into the
|
||||
// same compilation unit as the registry itself.
|
||||
// No harm having them in the non-static case.
|
||||
//
|
||||
|
||||
// Ideally we'd do the G4_REFERENCE_PHYSCONSTR_FACTORY() macros
|
||||
// here, but this introduces a circular dependence between the
|
||||
// ctor_phys_factory library and the other ctor_phys_* libraries
|
||||
// when creating granular libraries.
|
||||
// Instead we'll make the references in the location(s) where the
|
||||
// G4PhysicsConstructorRegistry is _used_ :
|
||||
// G4
|
||||
/*
|
||||
#include "G4RegisterPhysicsConstructors.icc"
|
||||
*/
|
||||
//
|
||||
//#include "G4RegisterPhysicsConstructors.icc"
|
||||
|
||||
@@ -6,7 +6,7 @@ It must **not** be used as a substitute for writing good git commit messages!
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
## 2024-02-13 Vladimir Ivanchenko (phys-ctor-glnuclear-V11-01-05)
|
||||
## 2024-02-13 Vladimir Ivanchenko (phys-ctor-glnuclear-V11-02-00)
|
||||
- G4NeutrinoPhysics - fixed neutrino physics instantiation (problem #2594)
|
||||
|
||||
## 2023-11-10 Vladimir Ivanchenko (phys-ctor-glnuclear-V11-01-04)
|
||||
|
||||
@@ -4,6 +4,9 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
|
||||
which **must** added in reverse chronological order (newest at the top). It must **not**
|
||||
be used as a substitute for writing good git commit messages!
|
||||
|
||||
## 2024-06-06 Vladimir Ivanchenko (phys-ctor-hinelastic-V11-02-00)
|
||||
- G4HadrocPhysicsQGSP_BERT_HP - used alternative NUDEX model of gamma de-excitation
|
||||
|
||||
## 2023-10-20 Jean-Christophe David (phys-ctor-hinelastic-V11-01-02)
|
||||
- Call G4HadronicBuilder::BuildAntiLightIonsINCLXX() to treat antiproton with INCLXX
|
||||
|
||||
|
||||
@@ -63,6 +63,7 @@ geant4_module_link_libraries(G4phys_ctor_hinelastic
|
||||
G4hadronic_bert_cascade
|
||||
G4hadronic_binary
|
||||
G4hadronic_deex_photon_evaporation
|
||||
G4hadronic_nudex
|
||||
G4hadronic_proc
|
||||
G4hadronic_util
|
||||
G4ions
|
||||
|
||||
+6
-1
@@ -73,6 +73,7 @@
|
||||
#include "G4NeutronFissionVI.hh"
|
||||
#include "G4ProcessVector.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4NuDEXNeutronCaptureModel.hh"
|
||||
|
||||
#include "G4HadronicParameters.hh"
|
||||
|
||||
@@ -131,7 +132,11 @@ void G4HadronPhysicsQGSP_BERT_HP::Neutron()
|
||||
auto capture = new G4NeutronCaptureProcess( "nCaptureHP" );
|
||||
neutron->GetProcessManager()->AddDiscreteProcess(capture);
|
||||
capture->AddDataSet( new G4NeutronHPCaptureXS() );
|
||||
capture->RegisterMe( new G4NeutronRadCaptureHP() );
|
||||
if (param->EnableNUDEX()) {
|
||||
capture->RegisterMe( new G4NuDEXNeutronCaptureModel() );
|
||||
} else {
|
||||
capture->RegisterMe( new G4NeutronRadCaptureHP() );
|
||||
}
|
||||
|
||||
auto fission = new G4NeutronFissionProcess( "nFissionHP" );
|
||||
neutron->GetProcessManager()->AddDiscreteProcess(fission);
|
||||
|
||||
Reference in New Issue
Block a user