109   G4cout << 
"### === G4UAtomicDeexcitation::InitialiseForNewRun()" << 
G4endl;
   126     if (namePIXExsModel == 
"ECPSSR_FormFactor")
   130     else if(namePIXExsModel == 
"Empirical")
   147       if(namePIXExsElectronModel == 
"Empirical")
   151       else if(namePIXExsElectronModel == 
"ECPSSR_Analytical") 
   155       else if (namePIXExsElectronModel == 
"Penelope")
   177               std::vector<G4DynamicParticle*>* vectorOfParticles,  
   193   G4int provShellId = 0;
   223         else if ( provShellId == -1)
   245         else if ( provShellId == -1)
   259         vectorOfParticles->push_back(aParticle);
   262     else {provShellId = -2;}
   264     while (provShellId > -2); 
   309     else if(provShellId == -1){
   321         vectorOfParticles->push_back(aParticle);
   351   if(Z > 93 || Z < 6 ) { 
return xsec; } 
   371     escaled = kineticEnergy*mass/(pdef->
GetPDGMass());
   388   if (q2)  {xsec *= q2;}
   423   G4int provShellId = -1;
   433   if ( shellId <= refShell->FinalShellId())
   437       if(shellNum ==maxNumOfShells-1)
   458       while(transProb < trSize){
   462      if(partialProb <= partSum)
   497   G4double newsinTh = std::sqrt((1.-newcosTh)*(1. + newcosTh));
   500   G4double xDir = newsinTh*std::sin(newPhi);
   501   G4double yDir = newsinTh*std::cos(newPhi);
   511      ReachableShell(Z,shellNum)->FinalShellId())
   513       if(shellNum == maxNumOfShells-1)
   521     ReachableShell(Z,shellNum)->OriginatingShellIds().size();
   528      ReachableShell(Z,shellNum)->OriginatingShellId(index))
   530       if(index ==  transitionSize-1)
   538     ReachableShell(Z,shellNum)->TransitionEnergy(index);
   545     ReachableShell(Z,shellNum)->OriginatingShellId(index);
   584   if ( shellId <= refAugerTransition->FinalShellId() ) 
   590       if (shellId  != pippo ) {
   593       if(shellNum == maxNumOfShells)
   607       G4int transitionLoopShellIndex = 0;      
   615       G4int transitionSize = 
   617       while (transitionLoopShellIndex < transitionSize) {
   619         std::vector<G4int>::const_iterator 
pos = 
   622         G4int transitionLoopShellId = *(pos+transitionLoopShellIndex);
   623         G4int numberOfPossibleAuger = 
   625         G4int augerIndex = 0;
   628     if (augerIndex < numberOfPossibleAuger) {
   632                                         transitionLoopShellId);
   636         } 
while (augerIndex < numberOfPossibleAuger);
   638         transitionLoopShellIndex++;
   663       G4double totalVacancyAugerProbability = partSum;
   666       G4int transitionRandomShellIndex = 0;
   667       G4int transitionRandomShellId = 1;
   668       G4int augerIndex = 0;
   673       G4int numberOfPossibleAuger = 0;
   677       while (transitionRandomShellIndex < transitionSize) {
   679         std::vector<G4int>::const_iterator 
pos = 
   682         transitionRandomShellId = *(pos+transitionRandomShellIndex);
   685     numberOfPossibleAuger = (anAugerTransition-> 
   686                  AugerTransitionProbabilities(transitionRandomShellId))->size();
   688         while (augerIndex < numberOfPossibleAuger) {
   690                                        transitionRandomShellId);
   694           if (partSum >= (partialProb*totalVacancyAugerProbability) ) { 
   700         if (partSum >= (partialProb*totalVacancyAugerProbability) ) {
break;} 
   701         transitionRandomShellIndex++;
   715       G4double  newsinTh = std::sqrt(1.-newcosTh*newcosTh);
   718       G4double xDir =  newsinTh*std::sin(newPhi);
   719       G4double yDir = newsinTh*std::cos(newPhi);
   755                    newElectronDirection,
 
G4int AugerOriginatingShellId(G4int index, G4int startShellId) const
 
static G4LossTableManager * Instance()
 
G4AtomicShell * Shell(G4int Z, size_t shellIndex) const
 
virtual G4double GetShellIonisationCrossSectionPerAtom(const G4ParticleDefinition *, G4int Z, G4AtomicShellEnumerator shell, G4double kinE, const G4Material *mat=0)
 
G4DynamicParticle * GenerateAuger(G4int Z, G4int shellId)
 
std::vector< int > vacancyArray
 
G4double EffectiveChargeSquareRatio(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
 
G4double AugerTransitionProbability(G4int index, G4int startShellId) const
 
G4bool IsFluoActive() const
 
virtual void InitialiseForExtraAtom(G4int Z)
 
G4bool IsAugerCascadeActive() const
 
G4int FinalShellId() const
 
G4VhShellCrossSection * ePIXEshellCS
 
virtual G4double ComputeShellIonisationCrossSectionPerAtom(const G4ParticleDefinition *, G4int Z, G4AtomicShellEnumerator shell, G4double kinE, const G4Material *mat=0)
 
G4VhShellCrossSection * PIXEshellCS
 
const G4FluoTransition * ReachableShell(G4int Z, size_t shellIndex) const
 
virtual void GenerateParticles(std::vector< G4DynamicParticle *> *secVect, const G4AtomicShell *, G4int Z, G4double gammaCut, G4double eCut)
 
G4AtomicTransitionManager * transitionManager
 
G4bool IsPIXEActive() const
 
virtual void InitialiseForNewRun()
 
void SetCutForSecondaryPhotons(G4double cut)
 
const G4String & GetParticleName() const
 
const G4DataVector * AugerTransitionProbabilities(G4int startShellId) const
 
G4GLOB_DLL std::ostream G4cout
 
void SetCutForAugerElectrons(G4double cut)
 
const G4String & PIXECrossSectionModel()
 
G4EmCorrections * EmCorrections()
 
G4VhShellCrossSection * anaPIXEshellCS
 
static const double twopi
 
const std::vector< G4int > * TransitionOriginatingShellIds() const
 
G4int OriginatingShellId(G4int index) const
 
G4double minElectronEnergy
 
const G4AugerTransition * ReachableAugerShell(G4int Z, G4int shellIndex) const
 
virtual const G4AtomicShell * GetAtomicShell(G4int Z, G4AtomicShellEnumerator shell)
 
static G4Positron * Positron()
 
G4int NumberOfReachableShells(G4int Z) const
 
G4int SelectTypeOfTransition(G4int Z, G4int shellId)
 
G4double GetPDGMass() const
 
const G4ParticleDefinition * thePositron
 
static G4EmParameters * Instance()
 
G4int FinalShellId() const
 
G4double AugerTransitionEnergy(G4int index, G4int startShellId) const
 
G4int NumberOfReachableAugerShells(G4int Z) const
 
static G4Electron * Electron()
 
G4DynamicParticle * GenerateFluorescence(G4int Z, G4int shellId, G4int provShellId)
 
static const double eplus
 
virtual ~G4UAtomicDeexcitation()
 
const G4ParticleDefinition * theElectron
 
static G4AtomicTransitionManager * Instance()
 
const G4String & PIXEElectronCrossSectionModel()
 
virtual G4double CrossSection(G4int Z, G4AtomicShellEnumerator shell, G4double incidentEnergy, G4double mass, const G4Material *mat)=0
 
G4double TransitionProbability(G4int index) const
 
G4double GetPDGCharge() const
 
const G4DataVector & TransitionProbabilities() const
 
static const G4double pos
 
G4bool IsAugerActive() const
 
const G4String & GetName() const
 
static G4int GetNumberOfShells(G4int Z)