File indexing completed on 2025-02-23 09:22:40
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029 #include "RadioactiveDecayPhysics.hh"
0030
0031 #include "G4DeexPrecoParameters.hh"
0032 #include "G4EmParameters.hh"
0033 #include "G4GenericIon.hh"
0034 #include "G4LossTableManager.hh"
0035 #include "G4NuclearLevelData.hh"
0036 #include "G4NuclideTable.hh"
0037 #include "G4PhysicsListHelper.hh"
0038 #include "G4Radioactivation.hh"
0039 #include "G4SystemOfUnits.hh"
0040 #include "G4Triton.hh"
0041 #include "G4UAtomicDeexcitation.hh"
0042 #include "G4VAtomDeexcitation.hh"
0043
0044
0045
0046 RadioactiveDecayPhysics::RadioactiveDecayPhysics(const G4String& name) : G4VPhysicsConstructor(name)
0047 {
0048
0049
0050 G4DeexPrecoParameters* deex = G4NuclearLevelData::GetInstance()->GetParameters();
0051 deex->SetStoreICLevelData(true);
0052 deex->SetMaxLifeTime(G4NuclideTable::GetInstance()->GetThresholdOfHalfLife() / std::log(2.));
0053 deex->SetIsomerProduction(true);
0054 deex->SetCorrelatedGamma(false);
0055 }
0056
0057
0058
0059 void RadioactiveDecayPhysics::ConstructParticle()
0060 {
0061 G4GenericIon::GenericIon();
0062 }
0063
0064
0065
0066 void RadioactiveDecayPhysics::ConstructProcess()
0067 {
0068 G4Radioactivation* radioactiveDecay = new G4Radioactivation();
0069
0070 G4bool ARMflag = false;
0071 radioactiveDecay->SetARM(ARMflag);
0072
0073
0074
0075 G4EmParameters::Instance()->SetFluo(ARMflag);
0076 G4EmParameters::Instance()->SetAugerCascade(ARMflag);
0077 G4EmParameters::Instance()->SetDeexcitationIgnoreCut(ARMflag);
0078
0079 G4LossTableManager* man = G4LossTableManager::Instance();
0080 G4VAtomDeexcitation* ad = man->AtomDeexcitation();
0081
0082
0083 if (ad == nullptr) {
0084 ad = new G4UAtomicDeexcitation();
0085 man->SetAtomDeexcitation(ad);
0086 man->ResetParameters();
0087 }
0088
0089 G4PhysicsListHelper::GetPhysicsListHelper()->RegisterProcess(radioactiveDecay,
0090 G4GenericIon::GenericIon());
0091
0092 G4PhysicsListHelper::GetPhysicsListHelper()->RegisterProcess(radioactiveDecay,
0093 G4Triton::Triton());
0094 }
0095
0096