Import Geant4 10.7.0.beta source tree

This commit is contained in:
Gabriele Cosmo
2020-06-26 10:23:25 +02:00
parent c02c370437
commit 67ba86d073
1871 changed files with 174422 additions and 131884 deletions
@@ -6,22 +6,39 @@
Hadronic physics-list/constructors/decay History
-----------------------------------------------------------
This file should be used to briefly summarize all major modifications
This file should be used to briefly summarize all major modifications
introduced in the code and keeptrack of all tags.
----------------------------------------------------------
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
03-June-2020 Vladimir Ivanchenko (phys-ctor-decay-V10-06-03)
- G4RadioactiveDecayPhysics - coherent initialisation with recent
updates of initialisation of atomic de-excitation
30-Apr-2020 Ben Morgan (phys-ctor-decay-V10-06-02)
- Remove obsolete GRANULAR_DEPENDENCIES entries
18-February-2020 Vladimir Ivanchenko (phys-ctor-decay-V10-06-01)
- G4DecayPhysics, G4RadioactiveDecayPhysics, G4SpinDecayPhysics,
G4UnknownDecayPhysics - general cleanup: removed thread local
pointers, do not delete objects, use C++11 keywords, use
standard signatures for constructors; define bulder type for
the main constructor G4DecayPhysics - bDecay, for others bUnknown,
13-February-2020 Vladimir Ivanchenko (phys-ctor-decay-V10-06-00)
- G4RadioactiveDecayPhysics - add enabled flag of isomer production,
which is needed after fix of problem #2226
25 June 2019 Dennis Wright (phys-ctor-decay-V10-05-00)
-------------------------------------------------------
- G4RadioactiveDecayPhysics: replace G4RadioactiveDecay with
G4RadioactiveDecayBase. This removes the biasing functionality which
is generally not used in the physics lists.
07-July-2018 Vladimir Ivanchenko (phys-ctor-decay-V10-04-00)
- G4RadioactiveDecayPhysics - fixed bug reported by M.Kelsey, which
resolves initialisation ordering of messages to EM physics
resolves initialisation ordering of messages to EM physics
07-Nov-2017, Vladimir Ivanchenko (phys-ctor-decay-V10-03-08)
- G4RadioactiveDecayPhysics - enable AugerCascade
@@ -33,7 +50,7 @@ introduced in the code and keeptrack of all tags.
- G4RadioactiveDecayPhysics - defined new set of default parameters:
disable correlated gamma, enable only X-ray emission for atomic
de-excitation, internal conversion sampling in nuclear de-excitation
is left fully enabled
is left fully enabled
12-September-2017 K.L. Genser (phys-ctor-decay-V10-03-05)
- G4MuonicAtomDecayPhysics use new G4MuonicAtomDecay
@@ -49,16 +66,16 @@ introduced in the code and keeptrack of all tags.
23-Dec-2016, Laurent Desorgher (phys-ctor-decay-V10-03-01)
-G4RadioactiveDecayPhysics switch on the storing of all internal conversion data vector
(G4NuclearLevelData::GetInstance()->GetParameters()->SetStoreAllLevels(true)) for
correct gamma deexcitation modeling in radioactive decay.
(G4NuclearLevelData::GetInstance()->GetParameters()->SetStoreAllLevels(true)) for
correct gamma deexcitation modeling in radioactive decay.
16-Dec-2016, Vladimir Ivanchenko (phys-ctor-decay-V10-03-00)
- G4RadioactiveDecayPhysics - simplified list of EM parameters;
use a new method AddPhysics() instead of old AddMsc()
02-Dec-2016, Vladimir Ivanchenko (phys-ctor-decay-V10-02-07)
- G4RadioactiveDecayPhysics - fixed initialisation (also for the
cases when radioactive decay is registered before EM physics or
- G4RadioactiveDecayPhysics - fixed initialisation (also for the
cases when radioactive decay is registered before EM physics or
is the only physics constructor)
01-Dec-2016, Vladimir Ivanchenko (phys-ctor-decay-V10-02-06)
@@ -115,5 +132,5 @@ introduced in the code and keeptrack of all tags.
- Changes needed for MT: now G4VUserPhysicsList is a split class
10-Jan-2013, Gunter Folger (phys-ctor-decay-V09-06-00)
- new directory structure introduced.
- new directory structure introduced.
constructors/decay classes
@@ -47,27 +47,22 @@
class G4DecayPhysics : public G4VPhysicsConstructor
{
public:
G4DecayPhysics(G4int ver = 1);
G4DecayPhysics(const G4String& name, G4int ver = 1);
virtual ~G4DecayPhysics();
public:
G4DecayPhysics(G4int ver = 1);
G4DecayPhysics(const G4String& name, G4int ver = 1);
~G4DecayPhysics() override;
public:
// This method will be invoked in the Construct() method.
// each particle type will be instantiated
virtual void ConstructParticle();
void ConstructParticle() override;
// This method will be invoked in the Construct() method.
// each physics process will be instantiated and
// registered to the process manager of each particle type
virtual void ConstructProcess();
virtual G4Decay* GetDecayProcess() { return fDecayProcess; }
void ConstructProcess() override;
private:
static G4ThreadLocal G4Decay* fDecayProcess;
G4int verbose;
static G4ThreadLocal G4bool wasActivated;
};
#endif
@@ -33,25 +33,21 @@
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4RadioactiveDecayBase;
class G4RadioactiveDecayPhysics : public G4VPhysicsConstructor
{
public:
G4RadioactiveDecayPhysics(G4int verbose =1);
G4RadioactiveDecayPhysics(const G4String& name);
virtual ~G4RadioactiveDecayPhysics();
G4RadioactiveDecayPhysics(const G4String& name, G4int verbose =1);
~G4RadioactiveDecayPhysics() override;
public:
// This method is dummy for physics
virtual void ConstructParticle();
void ConstructParticle() override;
// This method will be invoked in the Construct() method.
// each physics process will be instantiated and
// registered to the process manager of each particle type
virtual void ConstructProcess();
void ConstructProcess() override;
private:
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -44,30 +44,22 @@
class G4SpinDecayPhysics : public G4VPhysicsConstructor
{
public:
public:
G4SpinDecayPhysics();
G4SpinDecayPhysics(const G4String& name);
virtual ~G4SpinDecayPhysics();
public:
G4SpinDecayPhysics(G4int ver = 1);
G4SpinDecayPhysics(const G4String& name, G4int ver = 1);
~G4SpinDecayPhysics() override;
// This method will be invoked in the Construct() method.
// each particle type will be instantiated
virtual void ConstructParticle();
void ConstructParticle() override;
// This method will be invoked in the Construct() method.
// each physics process will be instantiated and
// registered to the process manager of each particle type
virtual void ConstructProcess();
private:
G4DecayWithSpin* decayWithSpin;
G4PionDecayMakeSpin* poldecay;
void ConstructProcess() override;
};
#endif
@@ -39,31 +39,24 @@
#include "globals.hh"
#include "G4VPhysicsConstructor.hh"
#include "G4UnknownDecay.hh"
class G4UnknownDecayPhysics : public G4VPhysicsConstructor
{
public:
G4UnknownDecayPhysics(G4int ver = 1);
G4UnknownDecayPhysics(const G4String& name, G4int ver = 1);
virtual ~G4UnknownDecayPhysics();
public:
G4UnknownDecayPhysics(G4int ver = 1);
G4UnknownDecayPhysics(const G4String& name, G4int ver = 1);
~G4UnknownDecayPhysics() override;
public:
// This method will be invoked in the Construct() method.
// each particle type will be instantiated
virtual void ConstructParticle();
void ConstructParticle() override;
// This method will be invoked in the Construct() method.
// each physics process will be instantiated and
// registered to the process manager of each particle type
virtual void ConstructProcess();
virtual G4UnknownDecay* GetDecayProcess() { return fDecayProcess; }
void ConstructProcess() override;
private:
static G4ThreadLocal G4UnknownDecay* fDecayProcess;
G4int verbose;
static G4ThreadLocal G4bool wasActivated;
};
#endif
@@ -112,14 +112,11 @@ GEANT4_DEFINE_MODULE(NAME G4phys_ctor_decay
G4had_mod_man
G4had_mod_util
G4had_lept_nuclear
G4had_neu_hp
G4had_preequ_exciton
G4had_string_diff
G4had_string_frag
G4had_string_man
G4had_theo_max
G4hadronic_HE
G4hadronic_LE
G4hadronic_bert_cascade
G4hadronic_binary
G4hadronic_coherent_elastic
@@ -50,23 +50,23 @@
#include "G4BaryonConstructor.hh"
#include "G4IonConstructor.hh"
#include "G4ShortLivedConstructor.hh"
#include "G4BuilderType.hh"
// factory
#include "G4PhysicsConstructorFactory.hh"
//
G4_DECLARE_PHYSCONSTR_FACTORY(G4DecayPhysics);
G4ThreadLocal G4Decay* G4DecayPhysics::fDecayProcess = 0;
G4ThreadLocal G4bool G4DecayPhysics::wasActivated = false;
G4DecayPhysics::G4DecayPhysics(G4int ver)
: G4VPhysicsConstructor("Decay"), verbose(ver)
{
SetPhysicsType(bDecay);
}
G4DecayPhysics::G4DecayPhysics(const G4String& name, G4int ver)
: G4VPhysicsConstructor(name), verbose(ver)
{
SetPhysicsType(bDecay);
}
G4DecayPhysics::~G4DecayPhysics()
@@ -98,13 +98,10 @@ void G4DecayPhysics::ConstructParticle()
void G4DecayPhysics::ConstructProcess()
{
if(wasActivated) { return; }
wasActivated = true;
G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
// Add Decay Process
fDecayProcess = new G4Decay();
G4Decay* fDecayProcess = new G4Decay();
auto myParticleIterator=GetParticleIterator();
myParticleIterator->reset();
G4ParticleDefinition* particle=0;
@@ -55,10 +55,11 @@ G4RadioactiveDecayPhysics::G4RadioactiveDecayPhysics(G4int)
deex->SetStoreICLevelData(true);
deex->SetMaxLifeTime(G4NuclideTable::GetInstance()->GetThresholdOfHalfLife()
/std::log(2.));
deex->SetIsomerProduction(true);
}
G4RadioactiveDecayPhysics::G4RadioactiveDecayPhysics(const G4String&)
: G4RadioactiveDecayPhysics(0)
G4RadioactiveDecayPhysics::G4RadioactiveDecayPhysics(const G4String&, G4int ver)
: G4RadioactiveDecayPhysics(ver)
{}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -79,11 +80,13 @@ void G4RadioactiveDecayPhysics::ConstructProcess()
{
G4LossTableManager* man = G4LossTableManager::Instance();
G4VAtomDeexcitation* ad = man->AtomDeexcitation();
// EM physics constructors are not used
if(!ad) {
G4EmParameters::Instance()->SetAugerCascade(true);
ad = new G4UAtomicDeexcitation();
man->SetAtomDeexcitation(ad);
ad->InitialiseAtomicDeexcitation();
man->ResetParameters();
}
G4PhysicsListHelper::GetPhysicsListHelper()->
@@ -53,20 +53,18 @@
//
G4_DECLARE_PHYSCONSTR_FACTORY(G4SpinDecayPhysics);
G4SpinDecayPhysics::G4SpinDecayPhysics()
: G4VPhysicsConstructor("SpinDecay"), decayWithSpin(NULL), poldecay(NULL)
G4SpinDecayPhysics::G4SpinDecayPhysics(G4int)
: G4VPhysicsConstructor("SpinDecay")
{
}
G4SpinDecayPhysics::G4SpinDecayPhysics(const G4String& name)
: G4VPhysicsConstructor(name), decayWithSpin(NULL), poldecay(NULL)
G4SpinDecayPhysics::G4SpinDecayPhysics(const G4String& name, G4int)
: G4VPhysicsConstructor(name)
{
}
G4SpinDecayPhysics::~G4SpinDecayPhysics()
{
if (decayWithSpin) delete decayWithSpin;
if (poldecay) delete poldecay;
}
void G4SpinDecayPhysics::ConstructParticle()
@@ -105,15 +103,14 @@ void G4SpinDecayPhysics::ConstructParticle()
void G4SpinDecayPhysics::ConstructProcess()
{
decayWithSpin = new G4DecayWithSpin();
G4DecayWithSpin* decayWithSpin = new G4DecayWithSpin();
G4ProcessTable* processTable = G4ProcessTable::GetProcessTable();
G4VProcess* decay;
decay = processTable->FindProcess("Decay",G4MuonPlus::MuonPlus());
G4ProcessManager* fManager;
fManager = G4MuonPlus::MuonPlus()->GetProcessManager();
G4ProcessManager* fManager = G4MuonPlus::MuonPlus()->GetProcessManager();
if (fManager) {
if (decay) fManager->RemoveProcess(decay);
@@ -133,7 +130,7 @@ void G4SpinDecayPhysics::ConstructProcess()
fManager ->SetProcessOrdering(decayWithSpin, idxAtRest);
}
poldecay = new G4PionDecayMakeSpin();
G4PionDecayMakeSpin* poldecay = new G4PionDecayMakeSpin();
decay = processTable->FindProcess("Decay",G4PionPlus::PionPlus());
@@ -37,15 +37,13 @@
#include "G4ProcessManager.hh"
#include "G4UnknownParticle.hh"
#include "G4UnknownDecay.hh"
// factory
#include "G4PhysicsConstructorFactory.hh"
//
G4_DECLARE_PHYSCONSTR_FACTORY(G4UnknownDecayPhysics);
G4ThreadLocal G4UnknownDecay* G4UnknownDecayPhysics::fDecayProcess = 0;
G4ThreadLocal G4bool G4UnknownDecayPhysics::wasActivated = false;
G4UnknownDecayPhysics::G4UnknownDecayPhysics(G4int ver)
: G4VPhysicsConstructor("UnknownDecay"), verbose(ver)
{
@@ -67,13 +65,10 @@ void G4UnknownDecayPhysics::ConstructParticle()
void G4UnknownDecayPhysics::ConstructProcess()
{
if(wasActivated) { return; }
wasActivated = true;
G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
// Add Decay Process
fDecayProcess = new G4UnknownDecay();
G4UnknownDecay* fDecayProcess = new G4UnknownDecay();
auto myParticleIterator=GetParticleIterator();
myParticleIterator->reset();
G4ParticleDefinition* particle=0;