Import Geant4 11.4.1 source tree

This commit is contained in:
Gabriele Cosmo
2026-03-19 16:51:22 +01:00
parent b4a16de652
commit 41f2dd7996
352 changed files with 26342 additions and 24532 deletions
@@ -6,6 +6,11 @@ It must **not** be used as a substitute for writing good git commit messages!
-------------------------------------------------------------------------------
## 2026-02-24 Vladimir Ivanchenko (phys-ctor-em-V11-03-16)
- G4EmStandardPhysics_option4 - added a possibility to use external dEdx tables
for ions (problem #2703). It is done by substitution of the
G4LindhardSorencenIonModel model class by G4IonParameterisedModel.
## 2025-10-29 Vladimir Ivanchenko (phys-ctor-em-V11-03-15)
- G4OpticalPhysics - instantiate a process only if it is activated,
added option to instantiate a new G4GeneralCerenkov.
@@ -41,8 +41,8 @@
// and intermediate energies
//
#ifndef G4EmStandardPhysics_option4_h
#define G4EmStandardPhysics_option4_h 1
#ifndef G4EMSTANDARDPHYSICS_OPTION4_HH
#define G4EMSTANDARDPHYSICS_OPTION4_HH
#include "G4VPhysicsConstructor.hh"
#include "globals.hh"
@@ -55,10 +55,13 @@ public:
explicit G4EmStandardPhysics_option4(G4int ver=1, const G4String& name="");
~G4EmStandardPhysics_option4() override;
~G4EmStandardPhysics_option4() override = default;
void ConstructParticle() override;
void ConstructProcess() override;
private:
G4bool fUseExternalDEDX{false};
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -106,7 +106,7 @@ G4_DECLARE_PHYSCONSTR_FACTORY(G4EmStandardPhysics_option4);
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4EmStandardPhysics_option4::G4EmStandardPhysics_option4(G4int ver,
const G4String&)
const G4String& nam)
: G4VPhysicsConstructor("G4EmStandard_opt4")
{
SetVerboseLevel(ver);
@@ -134,14 +134,11 @@ G4EmStandardPhysics_option4::G4EmStandardPhysics_option4(G4int ver,
param->SetMaxNIELEnergy(1*CLHEP::MeV);
param->SetPositronAtRestModelType(fAllisonPositronium);
SetPhysicsType(bElectromagnetic);
if (!nam.empty()) { fUseExternalDEDX = true; }
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
G4EmStandardPhysics_option4::~G4EmStandardPhysics_option4() = default;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void G4EmStandardPhysics_option4::ConstructParticle()
{
// minimal set of particles for EM physics
@@ -318,7 +315,11 @@ void G4EmStandardPhysics_option4::ConstructProcess()
// generic ion
particle = G4GenericIon::GenericIon();
G4ionIonisation* ionIoni = new G4ionIonisation();
ionIoni->SetEmModel(new G4LindhardSorensenIonModel());
if (fUseExternalDEDX) {
ionIoni->SetEmModel(new G4IonParametrisedLossModel());
} else {
ionIoni->SetEmModel(new G4LindhardSorensenIonModel());
}
ph->RegisterProcess(hmsc, particle);
ph->RegisterProcess(ionIoni, particle);
if(nullptr != pnuc) { ph->RegisterProcess(pnuc, particle); }