306 if ( shellId <= refAugerTransition->FinalShellId() )
311 if (shellId != pippo ) {
314 if(shellNum == maxNumOfShells)
332 G4int transitionLoopShellIndex = 0;
340 G4int transitionSize =
342 while (transitionLoopShellIndex < transitionSize) {
344 std::vector<G4int>::const_iterator
pos =
347 G4int transitionLoopShellId = *(pos+transitionLoopShellIndex);
348 G4int numberOfPossibleAuger =
350 G4int augerIndex = 0;
354 if (augerIndex < numberOfPossibleAuger) {
359 transitionLoopShellId);
363 }
while (augerIndex < numberOfPossibleAuger);
365 transitionLoopShellIndex++;
393 G4double totalVacancyAugerProbability = partSum;
397 G4int transitionRandomShellIndex = 0;
398 G4int transitionRandomShellId = 1;
399 G4int augerIndex = 0;
404 G4int numberOfPossibleAuger = 0;
408 while (transitionRandomShellIndex < transitionSize) {
410 std::vector<G4int>::const_iterator pos =
413 transitionRandomShellId = *(pos+transitionRandomShellIndex);
416 numberOfPossibleAuger = (anAugerTransition->
417 AugerTransitionProbabilities(transitionRandomShellId))->size();
419 while (augerIndex < numberOfPossibleAuger) {
421 transitionRandomShellId);
425 if (partSum >= (partialProb*totalVacancyAugerProbability) ) {
431 if (partSum >= (partialProb*totalVacancyAugerProbability) ) {
break;}
432 transitionRandomShellIndex++;
439 if (!foundFlag) {
return 0;}
443 G4double newsinTh = std::sqrt(1.-newcosTh*newcosTh);
446 G4double xDir = newsinTh*std::sin(newPhi);
447 G4double yDir = newsinTh*std::cos(newPhi);
468 newElectronDirection,
G4double AugerTransitionProbability(G4int index, G4int startShellId) const
const G4DataVector * AugerTransitionProbabilities(G4int startShellId) const
static const double twopi
const std::vector< G4int > * TransitionOriginatingShellIds() const
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
const G4AugerTransition * ReachableAugerShell(G4int Z, G4int shellIndex) const
G4int FinalShellId() const
G4double AugerTransitionEnergy(G4int index, G4int startShellId) const
G4int NumberOfReachableAugerShells(G4int Z) const
static G4Electron * Electron()
static G4AtomicTransitionManager * Instance()
static const G4double pos