39#ifndef G4RadioactiveDecay_h
40#define G4RadioactiveDecay_h 1
89 const G4Step& theStep)
override;
92 const G4Step& theStep)
override;
127 {theNucleusLimits = theNucleusLimits1 ;}
136 forceDecayDirection = theDir.
unit();
140 return forceDecayDirection;
144 forceDecayHalfAngle = std::min(std::max(0.*CLHEP::deg,halfAngle),180.*CLHEP::deg);
152 G4double halfAngle = 0.*CLHEP::deg) {
159 fThresholdForVeryLongDecayTime = std::max( 0.0, inputThreshold );
206 G4bool isInitialised{
false};
218 static std::map<G4int, G4String>* theUserRDataFiles;
224 G4double fThresholdForVeryLongDecayTime;
G4double condition(const G4ErrorSymMatrix &m)
std::map< G4String, G4DecayTable * > DecayTableMap
CLHEP::Hep3Vector G4ThreeVector
G4DecayTable * LoadDecayTable(const G4Ions *)
G4double GetMeanFreePath(const G4Track &theTrack, G4double previousStepSize, G4ForceCondition *condition) override
void AddUserDecayDataFile(G4int Z, G4int A, const G4String &filename)
void SelectAVolume(const G4String &aVolume)
G4RadioactiveDecay & operator=(const G4RadioactiveDecay &right)=delete
G4RadioactiveDecayMessenger * theRadioactiveDecayMessenger
void StreamInfo(std::ostream &os, const G4String &endline)
G4bool IsApplicable(const G4ParticleDefinition &) override
G4VParticleChange * AtRestDoIt(const G4Track &theTrack, const G4Step &theStep) override
static DecayTableMap * master_dkmap
std::vector< G4String > ValidVolumes
G4double GetDecayHalfAngle() const
~G4RadioactiveDecay() override
void ProcessDescription(std::ostream &outFile) const override
G4VParticleChange * PostStepDoIt(const G4Track &theTrack, const G4Step &theStep) override
G4DecayProducts * DoDecay(const G4ParticleDefinition &, G4DecayTable *)
G4NucleusLimits GetNucleusLimits() const
void CollimateDecayProduct(G4DynamicParticle *product)
void DecayAnalog(const G4Track &theTrack, G4DecayTable *)
G4DecayTable * GetDecayTable(const G4ParticleDefinition *)
const G4ThreeVector & GetDecayDirection() const
static const G4double levelTolerance
G4ParticleChangeForRadDecay fParticleChangeForRadDecay
G4ThreeVector ChooseCollimationDirection() const
virtual G4VParticleChange * DecayIt(const G4Track &theTrack, const G4Step &theStep)
void SetDecayHalfAngle(G4double halfAngle=0.*CLHEP::deg)
void SetDecayDirection(const G4ThreeVector &theDir)
void SetDecayCollimation(const G4ThreeVector &theDir, G4double halfAngle=0.*CLHEP::deg)
G4double GetMeanLifeTime(const G4Track &theTrack, G4ForceCondition *condition) override
void SetThresholdForVeryLongDecayTime(const G4double inputThreshold)
void BuildPhysicsTable(const G4ParticleDefinition &) override
G4RadioactiveDecay(const G4RadioactiveDecay &right)=delete
void SetNucleusLimits(G4NucleusLimits theNucleusLimits1)
void DeselectAllVolumes()
void DeselectAVolume(const G4String &aVolume)
void CollimateDecay(G4DecayProducts *products)
G4PhotonEvaporation * photonEvaporation
G4RadioactiveDecay(const G4String &processName="RadioactiveDecay", const G4double timeThreshold=-1.0)
G4double GetThresholdForVeryLongDecayTime() const