Import Geant4 11.2.0 source tree

This commit is contained in:
Gabriele Cosmo
2023-12-08 10:43:34 +01:00
parent dd1f179cda
commit 860a2b92bf
3962 changed files with 139318 additions and 164259 deletions
+6
View File
@@ -6,6 +6,12 @@ It must **not** be used as a substitute for writing good git commit messages!
-------------------------------------------------------------------------------
## 2023-10-19 Jean-Christophe David (phys-builders-V11-01-03)
- G4HadronicBuilder: added two methods - BuildINCLXX and BuildAntiLightIonsINCLXX.
## 2023-07-12 Alberto Ribon (phys-builders-V11-01-02)
- Removed the no longer used file OrderingParameterTable.
## 2023-03-17 Alberto Ribon (phys-builders-V11-01-01)
- G4HadronicBuilder : fixed bug in the method BuildKaonsFTFQGSP_BERT().
Thanks to Dmitri Konstantinov for reporting it.
@@ -1,65 +0,0 @@
Transportation 1 91 -1 0 0 0
CoupleTrans 1 92 -1 0 0 0
CoulombScat 2 1 -1 -1 1000 0
Ionisation 2 2 -1 2 2 0
Brems 2 3 -1 -1 3 0
PairProdCharged 2 4 -1 -1 4 0
Annih 2 5 5 -1 5 0
AnnihToMuMu 2 6 -1 -1 6 0
AnnihToHad 2 7 -1 -1 7 0
NuclearStopping 2 8 -1 8 -1 0
ElectronGeneral 2 9 -1 1 1 0
Msc 2 10 -1 1 -1 0
Rayleigh 2 11 -1 -1 1000 0
PhotoElectric 2 12 -1 -1 1000 0
Compton 2 13 -1 -1 1000 0
Conv 2 14 -1 -1 1000 0
ConvToMuMu 2 15 -1 -1 1000 0
GammaGeneral 2 16 -1 -1 1000 0
PositronGeneral 2 17 1 1 1 0
Cerenkov 2 21 -1 -1 1000 0
Scintillation 2 22 9999 -1 9999 0
SynchRad 2 23 -1 -1 1000 0
TransRad 2 24 -1 -1 1000 0
SurfaceRefl 2 25 -1 -1 1000 0
OpAbsorp 3 31 -1 -1 1000 0
OpBoundary 3 32 -1 -1 1000 0
OpRayleigh 3 33 -1 -1 1000 0
OpWLS 3 34 -1 -1 1000 0
OpMieHG 3 35 -1 -1 1000 0
OpWLS2 3 36 -1 -1 1000 0
MuPairByMuon 2 49 -1 -1 10 0
DNAElastic 2 51 -1 -1 1000 0
DNAExcit 2 52 -1 -1 1000 0
DNAIonisation 2 53 -1 -1 1000 0
DNAVibExcit 2 54 -1 -1 1000 0
DNAAttachment 2 55 -1 -1 1000 0
DNAChargeDec 2 56 -1 -1 1000 0
DNAChargeInc 2 57 -1 -1 1000 0
DNAElecSolv 2 58 -1 -1 1000 0
DNAMolecDecay 2 59 1000 -1 -1 0
ITTransport 1 60 -1 0 0 0
DNABrownTrans 1 61 -1 0 0 0
DNADoubleIoni 2 62 -1 -1 1000 0
DNADoubleCap 2 63 -1 -1 1000 0
DNAIoniTransfer 2 64 -1 -1 1000 0
HadElastic 4 111 -1 -1 1000 0
NeutronGeneral 4 116 -1 -1 1000 0
HadInelastic 4 121 -1 -1 1000 0
HadCapture 4 131 -1 -1 1000 0
MuAtomCapture 4 132 -1 -1 1000 0
HadFission 4 141 -1 -1 1000 0
HadAtRest 4 151 1000 -1 -1 0
HadCEX 4 161 -1 -1 1000 0
Decay 6 201 1000 -1 1000 0
DecayWSpin 6 202 1000 -1 1000 0
DecayPiWSpin 6 203 1000 -1 1000 0
DecayRadio 6 210 1000 -1 1000 0
DecayUnKnown 6 211 1000 -1 1000 0
DecayMuAtom 6 221 1000 -1 1000 0
DecayExt 6 231 1000 -1 1000 0
StepLimiter 7 401 -1 -1 1000 0
UsrSpecCuts 7 402 -1 -1 1000 0
NeutronKiller 7 403 -1 -1 1000 0
ParallelWorld 10 491 9900 1 9900 1
@@ -37,6 +37,9 @@
#include "globals.hh"
#include <vector>
#include "G4VComponentCrossSection.hh"
#include "G4VCrossSectionDataSet.hh"
class G4HadronicBuilder
{
private:
@@ -55,6 +58,10 @@ private:
G4bool bert, G4bool quasiElastic,
const G4String& xsName);
static void BuildINCLXX(const std::vector<G4int>& particleList,
G4bool bert, const G4String& xsName);
public:
// methods to build elastic and inelastic physics per particle category
@@ -74,6 +81,8 @@ public:
static void BuildAntiLightIonsFTFP();
static void BuildAntiLightIonsINCLXX();
//static void BuildAntiLightIonsQGSP_FTFP(G4bool quasiElastic);
static void BuildBCHadronsFTFP_BERT();
@@ -36,6 +36,7 @@
#include "G4ParticleDefinition.hh"
#include "G4ParticleTable.hh"
#include "G4PhysicsListHelper.hh"
#include "G4SystemOfUnits.hh"
#include "G4HadronicParameters.hh"
@@ -65,6 +66,8 @@
#include "G4PreCompoundModel.hh"
#include "G4INCLXXInterface.hh"
#include "G4ComponentAntiNuclNuclearXS.hh"
void G4HadronicBuilder::BuildFTFP_BERT(const std::vector<G4int>& partList,
@@ -193,6 +196,57 @@ void G4HadronicBuilder::BuildQGSP_FTFP_BERT(const std::vector<G4int>& partList,
}
}
void G4HadronicBuilder::BuildINCLXX(const std::vector<G4int>& partList,
G4bool bert, const G4String& xsName) {
// FTF
G4HadronicParameters* param = G4HadronicParameters::Instance();
G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
auto theModel = new G4TheoFSGenerator("FTFP");
auto theStringModel = new G4FTFModel();
theStringModel->SetFragmentationModel(new G4ExcitedStringDecay());
theModel->SetHighEnergyGenerator( theStringModel );
theModel->SetTransport( new G4GeneratorPrecompoundInterface() );
theModel->SetMaxEnergy( param->GetMaxEnergy() );
G4CascadeInterface* theCascade = nullptr;
if(bert) {
theCascade = new G4CascadeInterface();
theCascade->SetMaxEnergy( param->GetMaxEnergyTransitionFTF_Cascade() );
theModel->SetMinEnergy( param->GetMinEnergyTransitionFTF_Cascade() );
}
// INCLXX
auto theModelINCLXX = new G4INCLXXInterface();
theModelINCLXX->SetMinEnergy( param->GetMinEnergyINCLXX_Pbar() );
theModelINCLXX->SetMaxEnergy( param->GetMaxEnergyINCLXX_Pbar() );
//
auto xsinel = G4HadProcesses::InelasticXS( xsName );
G4ParticleTable* table = G4ParticleTable::GetParticleTable();
for( auto & pdg : partList ) {
auto part = table->FindParticle( pdg );
if ( part == nullptr ) { continue; }
auto hadi = new G4HadronInelasticProcess( part->GetParticleName()+"Inelastic", part );
if( pdg == -2212 ) { // pbar use INCLXX
hadi->AddDataSet( xsinel );
hadi->RegisterMe( theModelINCLXX );
if( param->ApplyFactorXS() ) hadi->MultiplyCrossSectionBy( param->XSFactorHadronInelastic() );
ph->RegisterProcess(hadi, part);
} else { // other anti-X use FTF
hadi->AddDataSet( xsinel );
hadi->RegisterMe( theModel );
if( theCascade != nullptr ) hadi->RegisterMe( theCascade );
if( param->ApplyFactorXS() ) hadi->MultiplyCrossSectionBy( param->XSFactorHadronInelastic() );
ph->RegisterProcess(hadi, part);
}
}
}
void G4HadronicBuilder::BuildElastic(const std::vector<G4int>& partList) {
G4HadronicParameters* param = G4HadronicParameters::Instance();
@@ -260,6 +314,10 @@ void G4HadronicBuilder::BuildAntiLightIonsFTFP() {
// BuildQGSP_FTFP_BERT(G4HadParticles::GetLightAntiIons(), false, qElastic, "AntiAGlauber");
//}
void G4HadronicBuilder::BuildAntiLightIonsINCLXX() {
BuildINCLXX(G4HadParticles::GetLightAntiIons(), false, "AntiAGlauber");
}
void G4HadronicBuilder::BuildBCHadronsFTFP_BERT() {
if( G4HadronicParameters::Instance()->EnableBCParticles() ) {
// Bertini is not applicable for charm and bottom hadrons, therefore FTFP is used