|
Lines 66-71
Link Here
|
| 66 |
#include "G4BetaFermiFunction.hh" |
66 |
#include "G4BetaFermiFunction.hh" |
| 67 |
#include "G4PhotonEvaporation.hh" |
67 |
#include "G4PhotonEvaporation.hh" |
| 68 |
#include "G4AtomicDeexcitation.hh" |
68 |
#include "G4AtomicDeexcitation.hh" |
|
|
69 |
#include "G4AtomicTransitionManager.hh" |
| 70 |
#include "G4AtomicShell.hh" |
| 69 |
|
71 |
|
| 70 |
|
72 |
|
| 71 |
const G4double G4NuclearDecayChannel:: pTolerance = 0.001; |
73 |
const G4double G4NuclearDecayChannel:: pTolerance = 0.001; |
|
Lines 219-225
void G4NuclearDecayChannel::FillDaughter
Link Here
|
| 219 |
// |
221 |
// |
| 220 |
// |
222 |
// |
| 221 |
// |
223 |
// |
| 222 |
G4DecayProducts *G4NuclearDecayChannel::DecayIt (G4double theParentMass) |
224 |
G4DecayProducts *G4NuclearDecayChannel::DecayIt (G4double theParentMass, G4double* localDeposit) |
| 223 |
{ |
225 |
{ |
| 224 |
// |
226 |
// |
| 225 |
// |
227 |
// |
|
Lines 295-301
G4DecayProducts *G4NuclearDecayChannel::
Link Here
|
| 295 |
case KshellEC: |
297 |
case KshellEC: |
| 296 |
// |
298 |
// |
| 297 |
{ |
299 |
{ |
| 298 |
eShell = 1; |
300 |
eShell = 0; |
| 299 |
} |
301 |
} |
| 300 |
break; |
302 |
break; |
| 301 |
case LshellEC: |
303 |
case LshellEC: |
|
Lines 317-331
G4DecayProducts *G4NuclearDecayChannel::
Link Here
|
| 317 |
} |
319 |
} |
| 318 |
G4int aZ = daughterZ; |
320 |
G4int aZ = daughterZ; |
| 319 |
if (aZ > 5 && aZ < 101) { // only applies to 5< Z <101 |
321 |
if (aZ > 5 && aZ < 101) { // only applies to 5< Z <101 |
|
|
322 |
|
| 323 |
// Retrieve the corresponding identifier and binding energy of the selected shell |
| 324 |
const G4AtomicTransitionManager* transitionManager = G4AtomicTransitionManager::Instance(); |
| 325 |
const G4AtomicShell* shell = transitionManager->Shell(aZ, eShell); |
| 326 |
G4double bindingEnergy = shell->BindingEnergy(); |
| 327 |
G4int shellId = shell->ShellId(); |
| 328 |
|
| 320 |
G4AtomicDeexcitation* atomDeex = new G4AtomicDeexcitation(); |
329 |
G4AtomicDeexcitation* atomDeex = new G4AtomicDeexcitation(); |
| 321 |
//no Auger electron generation |
330 |
//no Auger electron generation |
| 322 |
// atomDeex->ActivateAugerElectronProduction(0); |
331 |
// atomDeex->ActivateAugerElectronProduction(0); |
| 323 |
std::vector<G4DynamicParticle*>* armProducts = atomDeex->GenerateParticles(aZ,eShell); |
332 |
std::vector<G4DynamicParticle*>* armProducts = atomDeex->GenerateParticles(aZ,shellId); |
| 324 |
|
333 |
|
| 325 |
// pop up the daughter before insertion |
334 |
// pop up the daughter before insertion |
| 326 |
dynamicDaughter = products->PopProducts(); |
335 |
dynamicDaughter = products->PopProducts(); |
| 327 |
for (size_t i = 0; i < armProducts->size(); i++) |
336 |
G4double totalEnergySecondaries = 0.0; |
|
|
337 |
for (size_t i = 0; i < armProducts->size(); i++) { |
| 338 |
totalEnergySecondaries += (*armProducts)[i]->GetKineticEnergy(); |
| 328 |
products->PushProducts ((*armProducts)[i]); |
339 |
products->PushProducts ((*armProducts)[i]); |
|
|
340 |
} |
| 341 |
*localDeposit += bindingEnergy - totalEnergySecondaries; |
| 342 |
|
| 329 |
delete armProducts; |
343 |
delete armProducts; |
| 330 |
delete atomDeex; |
344 |
delete atomDeex; |
| 331 |
products->PushProducts (dynamicDaughter); |
345 |
products->PushProducts (dynamicDaughter); |