Import Geant4 11.0.2 source tree

This commit is contained in:
Gabriele Cosmo
2022-05-25 15:50:57 +02:00
parent de4f28d823
commit b3bf75a2a1
341 changed files with 93127 additions and 39343 deletions
@@ -16,6 +16,17 @@ committal in the CVS repository !
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
07 April 2022 V.Ivanchenko (emutils-V10-07-40)
- G4VMultipleScattering - fix #2480 responsible for energy deposition shift of
custom CMS Physics List FTFP_BERT_EMM
01 April 2022 J.Hahnfeld
- Fix typo in Bremsstrahlung.
24 March 2022: V.Ivanchenko
- G4VEnergyLossProcess - fix fluctuation model pointer if an extra
model is added on top of the default list of models
22 January 22: V.Ivanchenko (emutils-V10-07-39)
- G4EmParametersMessenger - added forgotten UI command to enable polarisation
@@ -50,6 +50,8 @@ enum G4EmSecondaryParticleType
_ComptonElectron = 10013,
_TripletElectron = 10014,
_Bremsstrahlung = 10020,
// Legacy name for compatibility with Geant4 11.0 and patch01.
_Bremsstruhlung = 10020,
_SplitBremsstrahlung = 10021,
_ComptonGamma = 10022,
@@ -218,8 +218,9 @@ void G4VEnergyLossProcess::AddEmModel(G4int order, G4VEmModel* ptr,
const G4Region* region)
{
if(nullptr == ptr) { return; }
modelManager->AddEmModel(order, ptr, fluc, region);
ptr->SetParticleChange(pParticleChange, fluc);
G4VEmFluctuationModel* afluc = (nullptr == fluc) ? fluctModel : fluc;
modelManager->AddEmModel(order, ptr, afluc, region);
ptr->SetParticleChange(pParticleChange, afluc);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
@@ -408,7 +409,7 @@ G4VEnergyLossProcess::PreparePhysicsTable(const G4ParticleDefinition& part)
// defined ID of secondary particles
G4int stype = GetProcessSubType();
if(stype == fBremsstrahlung) {
secID = _Bremsstruhlung;
secID = _Bremsstrahlung;
biasID = _SplitBremsstrahlung;
} else if(stype == fPairProdByCharged) {
secID = _PairProduction;
@@ -300,9 +300,11 @@ void G4VMultipleScattering::StreamInfo(std::ostream& outFile,
void G4VMultipleScattering::StartTracking(G4Track* track)
{
G4VEnergyLossProcess* eloss = nullptr;
if(track->GetParticleDefinition() != currParticle) {
currParticle = track->GetParticleDefinition();
fIonisation = emManager->GetEnergyLossProcess(currParticle);
eloss = fIonisation;
}
/*
G4cout << "G4VMultipleScattering::StartTracking Nmod= " << numberOfModels
@@ -312,7 +314,8 @@ void G4VMultipleScattering::StartTracking(G4Track* track)
<< G4LossTableManager::Instance()->IsMaster()
<< G4endl;
*/
for(auto & msc : mscModels) {
for(G4int i=0; i<numberOfModels; ++i) {
G4VMscModel* msc = GetModelByIndex(i);
/*
G4cout << "Next model " << msc
<< " Emin= " << msc->LowEnergyLimit()
@@ -320,7 +323,9 @@ void G4VMultipleScattering::StartTracking(G4Track* track)
<< " Eact= " << msc->LowEnergyActivationLimit() << G4endl;
*/
msc->StartTracking(track);
msc->SetIonisation(fIonisation, currParticle);
if(nullptr != eloss) {
msc->SetIonisation(eloss, currParticle);
}
}
}