103     G4cout << 
"### === G4UAtomicDeexcitation::InitialiseForNewRun()" << 
G4endl;
 
  130       G4cout << 
"### G4UAtomicDeexcitation::InitialiseForNewRun WARNING " 
  133              << 
" is unknown, Analytical cross section will be used" << 
G4endl; 
 
  184       G4cout << 
"### G4UAtomicDeexcitation::InitialiseForNewRun WARNING " 
  187              << 
" is unknown, PIXE is disabled" << 
G4endl; 
 
  235                       std::vector<G4DynamicParticle*>* vectorOfParticles,  
 
  254   G4int provShellId = 0;
 
  279             else if ( provShellId == -1)
 
  287                 G4Exception(
"G4UAtomicDeexcitation::GenerateParticles()",
 
  301             else if ( provShellId == -1)
 
  309                 G4Exception(
"G4UAtomicDeexcitation::GenerateParticles()",
"de0002",
JustWarning, 
"Energy deposited locally");
 
  315             vectorOfParticles->push_back(aParticle);
 
  318         else {provShellId = -2;}
 
  320     while (provShellId > -2); 
 
  324       G4Exception(
"G4UAtomicDeexcitation::GenerateParticles()",
"de0001",
JustWarning, 
"Energy deposited locally");
 
  345   if(Z > 93 || Z < 6 ) { 
return xsec; } 
 
  362     mass = proton_mass_c2;
 
  363     escaled = kineticEnergy*mass/(pdef->
GetPDGMass());
 
  380   if (q2)  {xsec *= q2;}
 
  409     G4Exception(
"G4UAtomicDeexcitation::SelecttypeOfTransition()",
"de0002",
JustWarning, 
"Energy deposited locally");
 
  414   G4int provShellId = -1;
 
  423   if ( shellId <= refShell->FinalShellId())
 
  427           if(shellNum ==maxNumOfShells-1)
 
  448       while(transProb < trSize){
 
  452          if(partialProb <= partSum)
 
  484       G4Exception(
"G4UAtomicDeexcitation::GenerateFluorescence()",
"de0002",
JustWarning, 
"Energy deposited locally");
 
  491   G4double newsinTh = std::sqrt((1.-newcosTh)*(1. + newcosTh));
 
  494   G4double xDir = newsinTh*std::sin(newPhi);
 
  495   G4double yDir = newsinTh*std::cos(newPhi);
 
  505          ReachableShell(Z,shellNum)->FinalShellId())
 
  507       if(shellNum == maxNumOfShells-1)
 
  515     ReachableShell(Z,shellNum)->OriginatingShellIds().size();
 
  522          ReachableShell(Z,shellNum)->OriginatingShellId(index))
 
  524       if(index ==  transitionSize-1)
 
  532     ReachableShell(Z,shellNum)->TransitionEnergy(index);
 
  539     ReachableShell(Z,shellNum)->OriginatingShellId(index);
 
  576   if ( shellId <= refAugerTransition->FinalShellId() ) 
 
  581       if (shellId  != pippo ) {
 
  584           if(shellNum == maxNumOfShells)
 
  601       G4int transitionLoopShellIndex = 0;      
 
  609       G4int transitionSize = 
 
  611       while (transitionLoopShellIndex < transitionSize) {
 
  613         std::vector<G4int>::const_iterator 
pos = 
 
  616         G4int transitionLoopShellId = *(pos+transitionLoopShellIndex);
 
  617         G4int numberOfPossibleAuger = 
 
  619         G4int augerIndex = 0;
 
  623         if (augerIndex < numberOfPossibleAuger) {
 
  628                                                                                 transitionLoopShellId);
 
  632             } 
while (augerIndex < numberOfPossibleAuger);
 
  634         transitionLoopShellIndex++;
 
  662       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++;
 
  716       G4double  newsinTh = std::sqrt(1.-newcosTh*newcosTh);
 
  719       G4double xDir =  newsinTh*std::sin(newPhi);
 
  720       G4double yDir = newsinTh*std::cos(newPhi);
 
  747                                    newElectronDirection,
 
G4double AugerTransitionProbability(G4int index, G4int startShellId) const 
 
void SetPIXEElectronCrossSectionModel(const G4String &)
 
static G4LossTableManager * Instance()
 
G4bool IsFluoActive() const 
 
virtual G4double GetShellIonisationCrossSectionPerAtom(const G4ParticleDefinition *, G4int Z, G4AtomicShellEnumerator shell, G4double kinE, const G4Material *mat=0)
 
CLHEP::Hep3Vector G4ThreeVector
 
G4DynamicParticle * GenerateAuger(G4int Z, G4int shellId)
 
G4bool IsPIXEActive() const 
 
const G4AugerTransition * ReachableAugerShell(G4int Z, G4int shellIndex) const 
 
G4double EffectiveChargeSquareRatio(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
 
G4int NumberOfReachableShells(G4int Z) const 
 
virtual void InitialiseForExtraAtom(G4int Z)
 
const G4String & GetName() const 
 
G4double AugerTransitionEnergy(G4int index, G4int startShellId) const 
 
void SetPIXECrossSectionModel(const G4String &)
 
G4VhShellCrossSection * ePIXEshellCS
 
const G4DataVector & TransitionProbabilities() const 
 
virtual G4double ComputeShellIonisationCrossSectionPerAtom(const G4ParticleDefinition *, G4int Z, G4AtomicShellEnumerator shell, G4double kinE, const G4Material *mat=0)
 
G4VhShellCrossSection * PIXEshellCS
 
const G4String & GetParticleName() const 
 
G4bool IsAugerActive() const 
 
G4AtomicTransitionManager * transitionManager
 
G4int FinalShellId() const 
 
G4int OriginatingShellId(G4int index) const 
 
const G4String & PIXEElectronCrossSectionModel() const 
 
virtual void InitialiseForNewRun()
 
void SetCutForSecondaryPhotons(G4double cut)
 
G4GLOB_DLL std::ostream G4cout
 
void SetCutForAugerElectrons(G4double cut)
 
G4EmCorrections * EmCorrections()
 
G4VhShellCrossSection * anaPIXEshellCS
 
G4int NumberOfReachableAugerShells(G4int Z) const 
 
G4double minElectronEnergy
 
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
 
virtual const G4AtomicShell * GetAtomicShell(G4int Z, G4AtomicShellEnumerator shell)
 
static G4Positron * Positron()
 
G4double GetPDGMass() const 
 
G4double TransitionProbability(G4int index) const 
 
G4int SelectTypeOfTransition(G4int Z, G4int shellId)
 
const G4FluoTransition * ReachableShell(G4int Z, size_t shellIndex) const 
 
const G4ParticleDefinition * thePositron
 
static G4Electron * Electron()
 
const std::vector< G4int > * TransitionOriginatingShellIds() const 
 
G4DynamicParticle * GenerateFluorescence(G4int Z, G4int shellId, G4int provShellId)
 
const G4String & PIXECrossSectionModel() const 
 
virtual void GenerateParticles(std::vector< G4DynamicParticle * > *secVect, const G4AtomicShell *, G4int Z, G4double gammaCut, G4double eCut)
 
static const double eplus
 
virtual ~G4UAtomicDeexcitation()
 
const G4ParticleDefinition * theElectron
 
const G4DataVector * AugerTransitionProbabilities(G4int startShellId) const 
 
G4double GetPDGCharge() const 
 
G4int FinalShellId() const 
 
static G4AtomicTransitionManager * Instance()
 
virtual G4double CrossSection(G4int Z, G4AtomicShellEnumerator shell, G4double incidentEnergy, G4double mass, const G4Material *mat)=0
 
G4AtomicShell * Shell(G4int Z, size_t shellIndex) const 
 
static const G4double pos
 
static G4int GetNumberOfShells(G4int Z)