130{
131
133
135 canDo = false;
136
139 << "G4DiscreteGammaDeexcitation::CanDoTransition - Null transition "
141 }
142 if (canDo) {
143
144
145 if (_nucleusZ<2 || _nucleusA<3 )
146 {
147 canDo = false;
150 << "G4DiscreteGammaDeexcitation::CanDoTransition - n/p/H/>Cf"
152 }
153 }
154
157
158
159 if (canDo) {
160 if (excitation <= _tolerance) {
161 canDo = false;
164 << "G4DiscreteGammaDeexcitation::CanDoTransition - Excitation <= 0"
165 << excitation << " " << excitation - _tolerance
167 }
168 } else {
169 if (excitation > _levelManager->
MaxLevelEnergy() + _tolerance) { canDo =
false; }
170
171
172
173
174
176 G4cout <<
"G4DiscreteGammaDeexcitation::CanDoTransition - Excitation "
177 << excitation << ", Min-Max are "
180 }
181 }
182 }
183
184 if (canDo) {
186 if (!level) {
187 canDo = false;
188
189 } else {
190 if (level->
HalfLife() > _max_hl && !_rdm ) { canDo =
false; }
191
193 G4cout <<
"G4DiscreteGammaDeexcitation::CanDoTransition - Halflife "
194 << level->
HalfLife() <<
", Calling from RDM "
195 << (_rdm ? " True " : " False ") << ", Max-HL = " << _max_hl
197 }
198 }
199 }
201 G4cout <<
"G4DiscreteGammaDeexcitation::CanDoTransition - CanDo: "
202 << (canDo ?
" True " :
" False ") <<
G4endl;
203 }
204
205 return canDo;
206
207}
G4DLLIMPORT std::ostream G4cout
G4double GetExcitationEnergy() const
G4double MinLevelEnergy() const
const G4NuclearLevel * NearestLevel(G4double energy, G4double eDiffMax=9999.*CLHEP::GeV) const
G4double MaxLevelEnergy() const
G4double HalfLife() const
G4Fragment * GetNucleus()
G4VGammaTransition * _transition