84{
85
86
87
88
89
90
92
93
95
96
98 G4bool isPreAssigned = (o_products != 0);
100
101 if (!isPreAssigned ){
103
106
108 return &fParticleChangeForDecay ;
109 }
110
111
113
114
117 if (ParentEnergy < ParentMass) {
118 ParentEnergy = ParentMass;
119#ifdef G4VERBOSE
121 G4cout <<
"G4UnknownDecay::DoIt : Total Energy is less than its mass" <<
G4endl;
123 G4cout <<
" Energy:" << ParentEnergy/MeV <<
"[MeV]";
124 G4cout <<
" Mass:" << ParentMass/MeV <<
"[MeV]";
126 }
127#endif
128 }
130
133
134
136 products->
Boost( ParentEnergy, ParentDirection);
137 }
138
139
142#ifdef G4VERBOSE
144 G4cout <<
"G4UnknownDecay::DoIt : Decay vertex :";
145 G4cout <<
" Time: " << finalGlobalTime/
ns <<
"[ns]";
150 G4cout <<
"G4UnknownDecay::DoIt : decay products in Lab. Frame" <<
G4endl;
152 }
153#endif
157 for (index=0; index < numberOfSecondaries; index++)
158 {
159
161
163 finalGlobalTime ,
164 currentPosition );
165
168
170 }
171 delete products;
172
173
177
179
180 return &fParticleChangeForDecay ;
181}
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 ProposeGlobalTime(G4double t)
virtual void Initialize(const G4Track &)
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()