|
| G4PEEffectFluoModel (const G4String &nam="PhotoElectric") |
|
virtual | ~G4PEEffectFluoModel () |
|
virtual void | Initialise (const G4ParticleDefinition *, const G4DataVector &) |
|
virtual G4double | ComputeCrossSectionPerAtom (const G4ParticleDefinition *, G4double kinEnergy, G4double Z, G4double A, G4double, G4double) |
|
virtual G4double | CrossSectionPerVolume (const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy, G4double maxEnergy) |
|
virtual void | SampleSecondaries (std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double maxEnergy) |
|
| G4VEmModel (const G4String &nam) |
|
virtual | ~G4VEmModel () |
|
virtual void | InitialiseLocal (const G4ParticleDefinition *, G4VEmModel *masterModel) |
|
virtual void | InitialiseForMaterial (const G4ParticleDefinition *, const G4Material *) |
|
virtual void | InitialiseForElement (const G4ParticleDefinition *, G4int Z) |
|
virtual G4double | ComputeDEDXPerVolume (const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=DBL_MAX) |
|
virtual G4double | ChargeSquareRatio (const G4Track &) |
|
virtual G4double | GetChargeSquareRatio (const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy) |
|
virtual G4double | GetParticleCharge (const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy) |
|
virtual void | StartTracking (G4Track *) |
|
virtual void | CorrectionsAlongStep (const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double &eloss, G4double &niel, G4double length) |
|
virtual G4double | Value (const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy) |
|
virtual G4double | MinPrimaryEnergy (const G4Material *, const G4ParticleDefinition *, G4double cut=0.0) |
|
virtual G4double | MinEnergyCut (const G4ParticleDefinition *, const G4MaterialCutsCouple *) |
|
virtual void | SetupForMaterial (const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy) |
|
virtual void | DefineForRegion (const G4Region *) |
|
void | InitialiseElementSelectors (const G4ParticleDefinition *, const G4DataVector &) |
|
std::vector
< G4EmElementSelector * > * | GetElementSelectors () |
|
void | SetElementSelectors (std::vector< G4EmElementSelector * > *) |
|
G4double | ComputeDEDX (const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=DBL_MAX) |
|
G4double | CrossSection (const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX) |
|
G4double | ComputeMeanFreePath (const G4ParticleDefinition *, G4double kineticEnergy, const G4Material *, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX) |
|
G4double | ComputeCrossSectionPerAtom (const G4ParticleDefinition *, const G4Element *, G4double kinEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX) |
|
G4int | SelectIsotopeNumber (const G4Element *) |
|
const G4Element * | SelectRandomAtom (const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX) |
|
const G4Element * | SelectRandomAtom (const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX) |
|
G4int | SelectRandomAtomNumber (const G4Material *) |
|
void | SetParticleChange (G4VParticleChange *, G4VEmFluctuationModel *f=0) |
|
void | SetCrossSectionTable (G4PhysicsTable *, G4bool isLocal) |
|
G4ElementData * | GetElementData () |
|
G4PhysicsTable * | GetCrossSectionTable () |
|
G4VEmFluctuationModel * | GetModelOfFluctuations () |
|
G4VEmAngularDistribution * | GetAngularDistribution () |
|
void | SetAngularDistribution (G4VEmAngularDistribution *) |
|
G4double | HighEnergyLimit () const |
|
G4double | LowEnergyLimit () const |
|
G4double | HighEnergyActivationLimit () const |
|
G4double | LowEnergyActivationLimit () const |
|
G4double | PolarAngleLimit () const |
|
G4double | SecondaryThreshold () const |
|
G4bool | LPMFlag () const |
|
G4bool | DeexcitationFlag () const |
|
G4bool | ForceBuildTableFlag () const |
|
G4bool | UseAngularGeneratorFlag () const |
|
void | SetAngularGeneratorFlag (G4bool) |
|
void | SetHighEnergyLimit (G4double) |
|
void | SetLowEnergyLimit (G4double) |
|
void | SetActivationHighEnergyLimit (G4double) |
|
void | SetActivationLowEnergyLimit (G4double) |
|
G4bool | IsActive (G4double kinEnergy) |
|
void | SetPolarAngleLimit (G4double) |
|
void | SetSecondaryThreshold (G4double) |
|
void | SetLPMFlag (G4bool val) |
|
void | SetDeexcitationFlag (G4bool val) |
|
void | SetForceBuildTable (G4bool val) |
|
void | SetMasterThread (G4bool val) |
|
G4bool | IsMaster () const |
|
G4double | MaxSecondaryKinEnergy (const G4DynamicParticle *dynParticle) |
|
const G4String & | GetName () const |
|
void | SetCurrentCouple (const G4MaterialCutsCouple *) |
|
const G4Element * | GetCurrentElement () const |
|
Definition at line 58 of file G4PEEffectFluoModel.hh.
Implements G4VEmModel.
Reimplemented in G4PolarizedPEEffectModel.
Definition at line 140 of file G4PEEffectFluoModel.cc.
References G4InuclSpecialFunctions::bindingEnergy(), G4AtomicShell::BindingEnergy(), G4VAtomDeexcitation::CheckDeexcitationActiveRegion(), energy(), python.hepunit::eV, fStopAndKill, G4cout, G4endl, G4lrint(), G4VAtomDeexcitation::GenerateParticles(), G4VEmModel::GetAngularDistribution(), G4VAtomDeexcitation::GetAtomicShell(), G4Element::GetAtomicShell(), G4MaterialCutsCouple::GetIndex(), G4DynamicParticle::GetKineticEnergy(), G4MaterialCutsCouple::GetMaterial(), G4Element::GetNbOfAtomicShells(), G4Element::GetZ(), python.hepunit::keV, G4VParticleChange::ProposeLocalEnergyDeposit(), G4VParticleChange::ProposeTrackStatus(), G4VEmModel::SelectRandomAtom(), G4VEmModel::SetCurrentCouple(), and G4ParticleChangeForGamma::SetProposedKineticEnergy().
Referenced by G4PolarizedPEEffectModel::SampleSecondaries().
161 for(; i<nShells; ++i) {
182 if(fAtomDeexcitation) {
189 if(eshell > bindingEnergy && eshell <= energy) {
190 bindingEnergy = eshell;
193 size_t nbefore = fvect->size();
195 size_t nafter = fvect->size();
196 if(nafter > nbefore) {
197 for (
size_t j=nbefore; j<nafter; ++j) {
198 G4double e = ((*fvect)[j])->GetKineticEnergy();
199 if(esec + e > edep) {
210 for (
size_t jj=j; jj<nafter; ++jj) {
delete (*fvect)[jj]; }
211 for (
size_t jj=j; jj<nafter; ++jj) { fvect->pop_back(); }
223 if (elecKineEnergy > fminimalEnergy) {
229 fvect->push_back(aParticle);
231 edep += elecKineEnergy;
232 elecKineEnergy = 0.0;
234 if(fabs(energy - elecKineEnergy - esec - edep) >
eV) {
235 G4cout <<
"### G4PEffectFluoModel dE(eV)= "
236 << (energy - elecKineEnergy - esec - edep)/
eV
238 <<
" E(keV)= " << energy/
keV
239 <<
" Ebind(keV)= " << bindingEnergy/
keV
240 <<
" Ee(keV)= " << elecKineEnergy/
keV
241 <<
" Esec(keV)= " << esec/
keV
242 <<
" Edep(keV)= " << edep/
keV
G4bool CheckDeexcitationActiveRegion(G4int coupleIndex)
G4int GetNbOfAtomicShells() const
G4double GetKineticEnergy() const
G4VEmAngularDistribution * GetAngularDistribution()
G4double BindingEnergy() const
void ProposeLocalEnergyDeposit(G4double anEnergyPart)
virtual const G4AtomicShell * GetAtomicShell(G4int Z, G4AtomicShellEnumerator shell)=0
double precision function energy(A, Z)
G4GLOB_DLL std::ostream G4cout
void SetCurrentCouple(const G4MaterialCutsCouple *)
void SetProposedKineticEnergy(G4double proposedKinEnergy)
G4double GetAtomicShell(G4int index) const
void ProposeTrackStatus(G4TrackStatus status)
void GenerateParticles(std::vector< G4DynamicParticle * > *secVect, const G4AtomicShell *, G4int Z, G4int coupleIndex)
G4double bindingEnergy(G4int A, G4int Z)
const G4Element * SelectRandomAtom(const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
const G4Material * GetMaterial() const