289 G4Exception(
"G4RDAtomicDeexcitation::GenerateAuger()",
291 "Zero or negative shellId!");
311 if ( shellId <= refAugerTransition->FinalShellId() )
316 if (shellId != pippo ) {
319 if(shellNum == maxNumOfShells)
348 G4int transitionLoopShellIndex = 0;
356 G4int transitionSize =
358 while (transitionLoopShellIndex < transitionSize) {
360 std::vector<G4int>::const_iterator
pos =
363 G4int transitionLoopShellId = *(pos+transitionLoopShellIndex);
364 G4int numberOfPossibleAuger =
366 G4int augerIndex = 0;
370 if (augerIndex < numberOfPossibleAuger) {
375 transitionLoopShellId);
379 }
while (augerIndex < numberOfPossibleAuger);
381 transitionLoopShellIndex++;
409 G4double totalVacancyAugerProbability = partSum;
413 G4int transitionRandomShellIndex = 0;
414 G4int transitionRandomShellId = 1;
415 G4int augerIndex = 0;
420 G4int numberOfPossibleAuger =
424 while (transitionRandomShellIndex < transitionSize) {
426 std::vector<G4int>::const_iterator pos =
429 transitionRandomShellId = *(pos+transitionRandomShellIndex);
432 numberOfPossibleAuger = (anAugerTransition->
433 AugerTransitionProbabilities(transitionRandomShellId))->size();
435 while (augerIndex < numberOfPossibleAuger) {
437 transitionRandomShellId);
441 if (partSum >= (partialProb*totalVacancyAugerProbability) ) {
447 if (partSum >= (partialProb*totalVacancyAugerProbability) ) {
break;}
448 transitionRandomShellIndex++;
455 if (!foundFlag) {
return 0;}
459 G4double newsinTh = std::sqrt(1.-newcosTh*newcosTh);
462 G4double xDir = newsinTh*std::sin(newPhi);
463 G4double yDir = newsinTh*std::cos(newPhi);
484 newElectronDirection,
G4double AugerTransitionEnergy(G4int index, G4int startShellId) const
static G4RDAtomicTransitionManager * Instance()
static const double twopi
G4double AugerTransitionProbability(G4int index, G4int startShellId) const
G4int NumberOfReachableAugerShells(G4int Z) const
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
const std::vector< G4int > * TransitionOriginatingShellIds() const
const G4RDAugerTransition * ReachableAugerShell(G4int Z, G4int shellIndex) const
const G4DataVector * AugerTransitionProbabilities(G4int startShellId) const
G4int FinalShellId() const
static G4Electron * Electron()
static const G4double pos