66                fRemainderLifeTime(-1.0),
 
   74    G4cout << 
"G4Decay  constructor " << 
"  Name:" << processName << 
G4endl;
 
  156       pathlength = ( rKineticEnergy + 1.0)* aCtau;
 
  157     } 
else if ( rKineticEnergy < 
DBL_MIN ) {
 
  161     G4cout << 
"G4Decay::GetMeanFreePath()   !!particle stops!!";
 
  200  G4bool isPreAssigned = (o_products != 
nullptr);   
 
  210  if ( (decaytable == 
nullptr) && !isExtDecayer && !isPreAssigned ){
 
  212      G4cout <<  
"G4Decay::DoIt  : decay table not defined  for ";
 
  217       << 
" decay probability exist but decay table is not defined " 
  218       << 
"- the particle will be killed;\n" 
  219       << 
"    isExtDecayer: " << isExtDecayer
 
  220       << 
"; isPreAssigned: " << isPreAssigned;    
 
  236  } 
else if ( isExtDecayer ) {
 
  256    if ( decaychannel == 
nullptr) {
 
  259      ed << 
"Can not determine decay channel for "  
  261     << 
"  mass of dynamic particle: "  
  263     << 
"  dacay table has " << decaytable->
entries() 
 
  266      if (massParent < 0.) {
 
  268    ed << 
"Using PDG mass ("<<checkedmass/
GeV  
  269       << 
"(GeV)) in IsOKWithParentMass" << 
G4endl; 
 
  273    ed << ic << 
": BR " << dc->
GetBR() << 
", IsOK? "  
  277    for (
G4int id=0;
id<ndaughters;++id) {
 
  278      if (
id>0) ed << 
" + ";   
 
  289    G4cout << 
"G4Decay::DoIt  : selected decay channel  addr:"  
  311  if (ParentEnergy < ParentMass) {
 
  313    ed << 
"Total Energy is less than its mass - increased the energy" 
  315       << 
"\n Energy:"    << ParentEnergy/
MeV << 
"[MeV]" 
  316       << 
"\n Mass:"      << ParentMass/
MeV << 
"[MeV]";
 
  319    ParentEnergy = ParentMass;
 
  333    if (isPreAssigned) products->
Boost( ParentEnergy, ParentDirection);
 
  336    if (!isExtDecayer) products->
Boost( ParentEnergy, ParentDirection);
 
  347    G4cout << 
"G4Decay::DoIt  : Decay vertex :";
 
  348    G4cout << 
" Time: " << finalGlobalTime/
ns << 
"[ns]";
 
  353    G4cout << 
"G4Decay::DoIt  : decay products in Lab. Frame" << 
G4endl;
 
  360  for (index=0; index < numberOfSecondaries; index++){
 
  425    if ( previousStepSize > 0.0){
 
  438      G4cout << 
"G4Decay::PostStepGetPhysicalInteractionLength " << 
G4endl;
 
  524      << 
"kinematics of daughters are dertermined by DecayChannels "  
  525          << 
" or by PreAssignedDecayProducts\n";
 
G4double condition(const G4ErrorSymMatrix &m)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
std::ostringstream G4ExceptionDescription
static constexpr double perMillion
static constexpr double s
static constexpr double GeV
static constexpr double MeV
static constexpr double cm
G4GLOB_DLL std::ostream G4cout
G4DynamicParticle * PopProducts()
void Boost(G4double totalEnergy, const G4ThreeVector &momentumDirection)
G4VDecayChannel * GetDecayChannel(G4int index) const
G4VDecayChannel * SelectADecayChannel(G4double parentMass=-1.)
virtual void ProcessDescription(std::ostream &outFile) const override
G4VExtDecayer * pExtDecayer
virtual void DaughterPolarization(const G4Track &aTrack, G4DecayProducts *products)
virtual G4VParticleChange * DecayIt(const G4Track &aTrack, const G4Step &aStep)
G4double fRemainderLifeTime
G4ParticleChangeForDecay fParticleChangeForDecay
virtual G4bool IsApplicable(const G4ParticleDefinition &) override
virtual G4double GetMeanFreePath(const G4Track &aTrack, G4double previousStepSize, G4ForceCondition *condition) override
virtual G4double PostStepGetPhysicalInteractionLength(const G4Track &track, G4double previousStepSize, G4ForceCondition *condition) override
virtual void EndTracking() override
virtual void StartTracking(G4Track *) override
void SetExtDecayer(G4VExtDecayer *)
const G4double HighestValue
G4Decay(const G4String &processName="Decay")
virtual G4double AtRestGetPhysicalInteractionLength(const G4Track &track, G4ForceCondition *condition) override
virtual G4double GetMeanLifeTime(const G4Track &aTrack, G4ForceCondition *condition) override
virtual void BuildPhysicsTable(const G4ParticleDefinition &) override
virtual G4VParticleChange * PostStepDoIt(const G4Track &aTrack, const G4Step &aStep) override
void DumpInfo(G4int mode=0) const
const G4ThreeVector & GetMomentumDirection() const
const G4DecayProducts * GetPreAssignedDecayProducts() const
G4ParticleDefinition * GetDefinition() const
G4double GetKineticEnergy() const
G4double GetTotalEnergy() const
G4double GetPreAssignedDecayProperTime() const
G4double GetTotalMomentum() const
const G4String & GetName() const
void ProposeLocalTime(G4double t)
virtual void Initialize(const G4Track &)
G4bool GetPDGStable() const
G4double GetPDGMass() const
G4DecayTable * GetDecayTable() const
G4double GetPDGLifeTime() const
const G4String & GetParticleName() const
G4TrackStatus GetTrackStatus() const
const G4ThreeVector & GetPosition() const
void SetTouchableHandle(const G4TouchableHandle &apValue)
G4double GetGlobalTime() const
G4double GetProperTime() const
G4double GetLocalTime() const
G4Material * GetMaterial() const
const G4DynamicParticle * GetDynamicParticle() const
const G4TouchableHandle & GetTouchableHandle() const
void SetGoodForTrackingFlag(G4bool value=true)
void SetVerboseLevel(G4int value)
G4int GetVerboseLevel() const
G4int GetNumberOfDaughters() const
virtual G4DecayProducts * DecayIt(G4double parentMass=-1.0)=0
virtual G4bool IsOKWithParentMass(G4double parentMass)
const G4String & GetDaughterName(G4int anIndex) const
virtual G4DecayProducts * ImportDecayProducts(const G4Track &aTrack)=0
void ProposeTrackStatus(G4TrackStatus status)
void AddSecondary(G4Track *aSecondary)
void ProposeLocalEnergyDeposit(G4double anEnergyPart)
void SetNumberOfSecondaries(G4int totSecondaries)
G4double currentInteractionLength
void SubtractNumberOfInteractionLengthLeft(G4double prevStepSize)
G4int GetVerboseLevel() const
virtual void ResetNumberOfInteractionLengthLeft()
void ClearNumberOfInteractionLengthLeft()
G4double theNumberOfInteractionLengthLeft
void SetProcessSubType(G4int)
G4VParticleChange * pParticleChange
const G4String & GetProcessName() const