83{
84
85
86
87
88
89
91
92
94
95
97 G4bool isPreAssigned = (o_products !=
nullptr);
99
100 if (!isPreAssigned ){
102
105
107 return &fParticleChangeForDecay ;
108 }
109
110
112
113
116 if (ParentEnergy < ParentMass) {
117 ParentEnergy = ParentMass;
118#ifdef G4VERBOSE
120 G4cout <<
"G4UnknownDecay::DoIt : Total Energy is less than its mass" <<
G4endl;
122 G4cout <<
" Energy:" << ParentEnergy/MeV <<
"[MeV]";
123 G4cout <<
" Mass:" << ParentMass/MeV <<
"[MeV]";
125 }
126#endif
127 }
129
132
133
135 products->
Boost( ParentEnergy, ParentDirection);
136 }
137
138
141#ifdef G4VERBOSE
143 G4cout <<
"G4UnknownDecay::DoIt : Decay vertex :";
144 G4cout <<
" Time: " << finalGlobalTime/ns <<
"[ns]";
149 G4cout <<
"G4UnknownDecay::DoIt : decay products in Lab. Frame" <<
G4endl;
151 }
152#endif
156 for (index=0; index < numberOfSecondaries; index++){
157
159
161 finalGlobalTime ,
162 currentPosition );
163
166
168 }
169 delete products;
170
171
175
177
178 return &fParticleChangeForDecay ;
179}
G4DynamicParticle * PopProducts()
void Boost(G4double totalEnergy, const G4ThreeVector &momentumDirection)
const G4ThreeVector & GetMomentumDirection() const
const G4DecayProducts * GetPreAssignedDecayProducts() const
G4ParticleDefinition * GetDefinition() const
G4double GetTotalEnergy() const
G4double GetPreAssignedDecayProperTime() const
void Initialize(const G4Track &) final
void ProposeGlobalTime(G4double t)
const G4String & GetParticleName() const
const G4ThreeVector & GetPosition() const
void SetTouchableHandle(const G4TouchableHandle &apValue)
G4double GetGlobalTime() const
const G4DynamicParticle * GetDynamicParticle() const
const G4TouchableHandle & GetTouchableHandle() const
void SetGoodForTrackingFlag(G4bool value=true)
void ProposeTrackStatus(G4TrackStatus status)
void AddSecondary(G4Track *aSecondary)
void ProposeLocalEnergyDeposit(G4double anEnergyPart)
void SetNumberOfSecondaries(G4int totSecondaries)
void ClearNumberOfInteractionLengthLeft()