39 const G4double timeThresholdForRadioactiveDecays=-1.0);
42 G4VParticleChange* DecayIt(
const G4Track& theTrack,
43 const G4Step& theStep)
override;
45 void ProcessDescription(std::ostream& outFile)
const override;
48 void SetDecayBias(
const G4String& filename);
51 void SetHLThreshold(G4double hl) {halflifethreshold = hl;}
53 void SetSourceTimeProfile(
const G4String& filename);
56 G4bool IsRateTableReady(
const G4ParticleDefinition &);
61 void CalculateChainsFromParent(
const G4ParticleDefinition&);
67 void GetChainsFromParent(
const G4ParticleDefinition&);
73 void SetDecayRate(G4int,G4int,G4double, G4int, std::vector<G4double>&,
74 std::vector<G4double>&);
78 std::vector<G4RadioactivityTable*>& GetTheRadioactivityTables()
79 {
return theRadioactivityTables;}
86 inline void SetAnalogueMonteCarlo (G4bool r) {
92 inline G4bool IsAnalogueMonteCarlo () {
return AnalogueMC;}
95 inline void SetBRBias(G4bool r) {
101 inline void SetSplitNuclei(G4int r) {
107 inline G4int GetSplitNuclei () {
return NSplit;}
114 G4double ConvolveSourceTimeProfile(
const G4double,
const G4double);
115 G4double GetDecayTime();
116 G4int GetDecayTimeBin(
const G4double aDecayTime);
118 G4double GetMeanLifeTime(
const G4Track& theTrack,
119 G4ForceCondition* condition)
override;
122 void AddDeexcitationSpectrumForBiasMode(G4ParticleDefinition* apartDef,
125 std::vector<double>& weights_v,
126 std::vector<double>& times_v,
127 std::vector<G4DynamicParticle*>& secondaries_v);
131 G4RadioactivationMessenger* theRadioactivationMessenger;
136 G4double halflifethreshold;
140 G4double SProfile[100];
143 G4double DProfile[100];
145 G4RadioactiveDecayRatesToDaughter ratesToDaughter;
146 G4RadioactiveDecayRates theDecayRateVector;
147 G4RadioactiveDecayChainsFromParent chainsFromParent;
148 G4RadioactiveDecayParentChainTable theParentChainTable;
151 std::vector<G4RadioactivityTable*> theRadioactivityTables;
152 G4int decayWindows[100];