39#ifndef G4RadioactiveDecayBase_h
40#define G4RadioactiveDecayBase_h 1
123 {theNucleusLimits = theNucleusLimits1 ;}
132 forceDecayDirection = theDir.
unit();
136 return forceDecayDirection;
140 forceDecayHalfAngle = std::min(std::max(0.*CLHEP::deg,halfAngle),180.*CLHEP::deg);
148 G4double halfAngle = 0.*CLHEP::deg) {
188#ifdef G4MULTITHREADED
194 void StreamInfo(std::ostream& os,
const G4String& endline);
215 std::map<G4int, G4String> theUserRadioactiveDataFiles;
238 return fRemainderLifeTime;
244 {
return DecayIt(theTrack, theStep);}
249 {
return DecayIt(theTrack, theStep);}
251#ifdef G4MULTITHREADED
253 static G4Mutex radioactiveDecayMutex;
255 G4int& NumberOfInstances();
G4double condition(const G4ErrorSymMatrix &m)
std::map< G4String, G4DecayTable * > DecayTableMap
void CollimateDecay(G4DecayProducts *products)
void AddUserDecayDataFile(G4int Z, G4int A, G4String filename)
std::vector< G4String > ValidVolumes
G4int GetVerboseLevel() const
void SetNucleusLimits(G4NucleusLimits theNucleusLimits1)
G4bool IsApplicable(const G4ParticleDefinition &)
void DeselectAVolume(const G4String aVolume)
G4double GetMeanLifeTime(const G4Track &theTrack, G4ForceCondition *condition)
G4DecayTable * LoadDecayTable(const G4ParticleDefinition &theParentNucleus)
G4double GetDecayHalfAngle() const
void SelectAVolume(const G4String aVolume)
void DecayAnalog(const G4Track &theTrack)
G4double GetMeanFreePath(const G4Track &theTrack, G4double previousStepSize, G4ForceCondition *condition)
void SetVerboseLevel(G4int value)
static const G4double levelTolerance
G4VParticleChange * DecayIt(const G4Track &theTrack, const G4Step &theStep)
G4ThreeVector ChooseCollimationDirection() const
~G4RadioactiveDecayBase()
void SetDecayHalfAngle(G4double halfAngle=0.*CLHEP::deg)
void CollimateDecayProduct(G4DynamicParticle *product)
G4DecayProducts * DoDecay(const G4ParticleDefinition &theParticleDef)
G4DecayTable * GetDecayTable(const G4ParticleDefinition *)
virtual void ProcessDescription(std::ostream &outFile) const
void SetDecayCollimation(const G4ThreeVector &theDir, G4double halfAngle=0.*CLHEP::deg)
void SetDecayDirection(const G4ThreeVector &theDir)
G4ParticleChangeForRadDecay fParticleChangeForRadDecay
void BuildPhysicsTable(const G4ParticleDefinition &)
G4PhotonEvaporation * photonEvaporation
void DeselectAllVolumes()
G4NucleusLimits GetNucleusLimits() const
G4RadioactiveDecayBaseMessenger * theRadioactiveDecayBaseMessenger
const G4ThreeVector & GetDecayDirection() const
virtual G4double AtRestGetPhysicalInteractionLength(const G4Track &, G4ForceCondition *)