Import Geant4 10.7.0.beta source tree
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user