70 fminimalEnergy = 1.0*eV;
73 fAtomDeexcitation = 0;
107 return SandiaCof[0]/energy + SandiaCof[1]/energy2 +
108 SandiaCof[2]/energy3 + SandiaCof[3]/energy4;
126 return SandiaCof[0]/energy + SandiaCof[1]/energy2 +
127 SandiaCof[2]/energy3 + SandiaCof[3]/energy4;
153 for(; i<nShells; ++i) {
169 G4double elecKineEnergy = energy - bindingEnergy;
173 if (elecKineEnergy > fminimalEnergy) {
174 edep = bindingEnergy;
183 fvect->push_back(aParticle);
188 if(fAtomDeexcitation) {
194 size_t nbefore = fvect->size();
196 size_t nafter = fvect->size();
197 if(nafter > nbefore) {
198 for (
size_t j=nbefore; j<nafter; ++j) {
199 edep -= ((*fvect)[j])->GetKineticEnergy();
G4double GetKineticEnergy() const
static G4Electron * Electron()
G4int GetNbOfAtomicShells() const
G4double GetAtomicShell(G4int index) const
static G4LossTableManager * Instance()
G4VAtomDeexcitation * AtomDeexcitation()
const G4Material * GetMaterial() const
G4SandiaTable * GetSandiaTable() const
virtual G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition *, G4double kinEnergy, G4double Z, G4double A, G4double, G4double)
virtual void Initialise(const G4ParticleDefinition *, const G4DataVector &)
virtual ~G4PEEffectFluoModel()
virtual G4double CrossSectionPerVolume(const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy, G4double maxEnergy)
G4PEEffectFluoModel(const G4String &nam="PhotoElectric")
virtual void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double maxEnergy)
void SetProposedKineticEnergy(G4double proposedKinEnergy)
static G4double * GetSandiaCofPerAtom(G4int Z, G4double energy)
G4double GetSandiaCofForMaterial(G4int, G4int)
G4bool CheckDeexcitationActiveRegion(G4int coupleIndex)
virtual const G4AtomicShell * GetAtomicShell(G4int Z, G4AtomicShellEnumerator shell)=0
void GenerateParticles(std::vector< G4DynamicParticle * > *secVect, const G4AtomicShell *, G4int Z, G4int coupleIndex)
virtual G4ThreeVector & SampleDirection(const G4DynamicParticle *dp, G4double finalTotalEnergy, G4int Z, const G4Material *)=0
G4VEmAngularDistribution * GetAngularDistribution()
G4ParticleChangeForGamma * GetParticleChangeForGamma()
const G4Element * SelectRandomAtom(const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
void SetDeexcitationFlag(G4bool val)
void SetAngularDistribution(G4VEmAngularDistribution *)
void ProposeTrackStatus(G4TrackStatus status)
void ProposeLocalEnergyDeposit(G4double anEnergyPart)