Geant4
10.03.p03
|
A process which handles screened Coulomb collisions between nuclei. More...
#include <G4ScreenedNuclearRecoil.hh>
Public Member Functions | |
G4ScreenedNuclearRecoil (const G4String &processName="ScreenedElastic", const G4String &ScreeningKey="zbl", G4bool GenerateRecoils=1, G4double RecoilCutoff=100.0 *eV, G4double PhysicsCutoff=10.0 *eV) | |
Construct the process and set some physics parameters for it. More... | |
virtual | ~G4ScreenedNuclearRecoil () |
destructor More... | |
virtual G4double | GetMeanFreePath (const G4Track &, G4double, G4ForceCondition *) |
used internally by Geant4 machinery More... | |
virtual G4VParticleChange * | PostStepDoIt (const G4Track &aTrack, const G4Step &aStep) |
used internally by Geant4 machinery More... | |
virtual G4bool | IsApplicable (const G4ParticleDefinition &aParticleType) |
test if a prticle of type aParticleType can use this process More... | |
virtual void | BuildPhysicsTable (const G4ParticleDefinition &aParticleType) |
Build physics tables in advance. Not Implemented. More... | |
virtual void | DumpPhysicsTable (const G4ParticleDefinition &aParticleType) |
Export physics tables for persistency. Not Implemented. More... | |
virtual G4bool | CheckNuclearCollision (G4double A, G4double A1, G4double apsis) |
deterine if the moving particle is within the strong force range of the selected nucleus More... | |
virtual G4ScreenedCoulombCrossSection * | GetNewCrossSectionHandler (void) |
G4double | GetNIEL () const |
Get non-ionizing energy loss for last step. More... | |
void | ResetTables () |
clear precomputed screening tables More... | |
void | SetMaxEnergyForScattering (G4double energy) |
set the upper energy beyond which this process has no cross section More... | |
std::string | GetScreeningKey () const |
find out what screening function we are using More... | |
void | AllowEnergyDeposition (G4bool flag) |
enable or disable all energy deposition by this process More... | |
G4bool | GetAllowEnergyDeposition () const |
get flag indicating whether deposition is enabled More... | |
void | EnableRecoils (G4bool flag) |
enable or disable the generation of recoils. If recoils are disabled, the energy they would have received is just deposited. param flag if true, create recoil ions in cases in which the energy is above the recoilCutoff. If false, just deposit the energy. More... | |
G4bool | GetEnableRecoils () const |
find out if generation of recoils is enabled. More... | |
void | SetMFPScaling (G4double scale) |
set the mean free path scaling as specified More... | |
G4double | GetMFPScaling () const |
get the MFPScaling parameter More... | |
void | AvoidNuclearReactions (G4bool flag) |
enable or disable whether this process will skip collisions which are close enough they need hadronic phsyics. Default is true (skip close collisions). Disabling this results in excess nuclear stopping power. More... | |
G4bool | GetAvoidNuclearReactions () const |
get the flag indicating whether hadronic collisions are ignored. More... | |
void | SetRecoilCutoff (G4double energy) |
set the minimum energy (per nucleon) at which recoils can be generated, and the energy (per nucleon) below which all ions are stopped. More... | |
G4double | GetRecoilCutoff () const |
get the recoil cutoff More... | |
void | SetPhysicsCutoff (G4double energy) |
set the energy to which screening tables are computed. Typically, this is 10 eV or so, and not often changed. More... | |
G4double | GetPhysicsCutoff () const |
get the physics cutoff energy. More... | |
void | SetNIELPartitionFunction (const G4VNIELPartition *part) |
set the pointer to a class for paritioning energy into NIEL More... | |
void | SetCrossSectionHardening (G4double fraction, G4double HardeningFactor) |
set the cross section boost to provide faster computation of backscattering More... | |
G4double | GetHardeningFraction () const |
get the fraction of particles which will have boosted scattering More... | |
G4double | GetHardeningFactor () const |
get the boost factor in use. More... | |
G4double | GetCurrentInteractionLength () const |
the the interaciton length used in the last scattering. More... | |
void | SetExternalCrossSectionHandler (G4ScreenedCoulombCrossSection *cs) |
set a function to compute screening tables, if the user needs non-standard behavior. More... | |
G4int | GetVerboseLevel () const |
get the verbosity. More... | |
std::map< G4int, G4ScreenedCoulombCrossSection * > & | GetCrossSectionHandlers () |
void | ClearStages (void) |
void | AddStage (G4ScreenedCollisionStage *stage) |
G4CoulombKinematicsInfo & | GetKinematics () |
void | SetValidCollision (G4bool flag) |
G4bool | GetValidCollision () const |
class G4ParticleChange & | GetParticleChange () |
get the pointer to our ParticleChange object. for internal use, primarily. More... | |
void | DepositEnergy (G4int z1, G4double a1, const G4Material *material, G4double energy) |
take the given energy, and use the material information to partition it into NIEL and ionizing energy. More... | |
Public Member Functions inherited from G4ScreenedCoulombCrossSectionInfo | |
G4ScreenedCoulombCrossSectionInfo () | |
~G4ScreenedCoulombCrossSectionInfo () | |
Public Member Functions inherited from G4VDiscreteProcess | |
G4VDiscreteProcess (const G4String &, G4ProcessType aType=fNotDefined) | |
G4VDiscreteProcess (G4VDiscreteProcess &) | |
virtual | ~G4VDiscreteProcess () |
virtual G4double | PostStepGetPhysicalInteractionLength (const G4Track &track, G4double previousStepSize, G4ForceCondition *condition) |
virtual G4double | AlongStepGetPhysicalInteractionLength (const G4Track &, G4double, G4double, G4double &, G4GPILSelection *) |
virtual G4double | AtRestGetPhysicalInteractionLength (const G4Track &, G4ForceCondition *) |
virtual G4VParticleChange * | AtRestDoIt (const G4Track &, const G4Step &) |
virtual G4VParticleChange * | AlongStepDoIt (const G4Track &, const G4Step &) |
Public Member Functions inherited from G4VProcess | |
G4VProcess (const G4String &aName="NoName", G4ProcessType aType=fNotDefined) | |
G4VProcess (const G4VProcess &right) | |
virtual | ~G4VProcess () |
G4int | operator== (const G4VProcess &right) const |
G4int | operator!= (const G4VProcess &right) const |
G4double | GetCurrentInteractionLength () const |
void | SetPILfactor (G4double value) |
G4double | GetPILfactor () const |
G4double | AlongStepGPIL (const G4Track &track, G4double previousStepSize, G4double currentMinimumStep, G4double &proposedSafety, G4GPILSelection *selection) |
G4double | AtRestGPIL (const G4Track &track, G4ForceCondition *condition) |
G4double | PostStepGPIL (const G4Track &track, G4double previousStepSize, G4ForceCondition *condition) |
virtual void | PreparePhysicsTable (const G4ParticleDefinition &) |
virtual G4bool | StorePhysicsTable (const G4ParticleDefinition *, const G4String &, G4bool) |
virtual G4bool | RetrievePhysicsTable (const G4ParticleDefinition *, const G4String &, G4bool) |
const G4String & | GetPhysicsTableFileName (const G4ParticleDefinition *, const G4String &directory, const G4String &tableName, G4bool ascii=false) |
const G4String & | GetProcessName () const |
G4ProcessType | GetProcessType () const |
void | SetProcessType (G4ProcessType) |
G4int | GetProcessSubType () const |
void | SetProcessSubType (G4int) |
virtual void | StartTracking (G4Track *) |
virtual void | EndTracking () |
virtual void | SetProcessManager (const G4ProcessManager *) |
virtual const G4ProcessManager * | GetProcessManager () |
virtual void | ResetNumberOfInteractionLengthLeft () |
G4double | GetNumberOfInteractionLengthLeft () const |
G4double | GetTotalNumberOfInteractionLengthTraversed () const |
G4bool | isAtRestDoItIsEnabled () const |
G4bool | isAlongStepDoItIsEnabled () const |
G4bool | isPostStepDoItIsEnabled () const |
virtual void | DumpInfo () const |
void | SetVerboseLevel (G4int value) |
G4int | GetVerboseLevel () const |
virtual void | SetMasterProcess (G4VProcess *masterP) |
const G4VProcess * | GetMasterProcess () const |
virtual void | BuildWorkerPhysicsTable (const G4ParticleDefinition &part) |
virtual void | PrepareWorkerPhysicsTable (const G4ParticleDefinition &) |
Friends | |
class | G4ScreenedCollisionStage |
Additional Inherited Members | |
Static Public Member Functions inherited from G4ScreenedCoulombCrossSectionInfo | |
static const char * | CVSHeaderVers () |
static const char * | CVSFileVers () |
Static Public Member Functions inherited from G4VProcess | |
static const G4String & | GetProcessTypeName (G4ProcessType) |
Protected Member Functions inherited from G4VProcess | |
void | SubtractNumberOfInteractionLengthLeft (G4double previousStepSize) |
void | ClearNumberOfInteractionLengthLeft () |
A process which handles screened Coulomb collisions between nuclei.
Definition at line 208 of file G4ScreenedNuclearRecoil.hh.
G4ScreenedNuclearRecoil::G4ScreenedNuclearRecoil | ( | const G4String & | processName = "ScreenedElastic" , |
const G4String & | ScreeningKey = "zbl" , |
||
G4bool | GenerateRecoils = 1 , |
||
G4double | RecoilCutoff = 100.0*eV , |
||
G4double | PhysicsCutoff = 10.0*eV |
||
) |
Construct the process and set some physics parameters for it.
processName | the name to assign the process |
ScreeningKey | the name of a screening function to use. The default functions are "zbl" (recommended for soft scattering), "lj" (recommended for backscattering) and "mol" (Moliere potential) |
GenerateRecoils | if frue, ions struck by primary are converted into new moving particles. If false, energy is deposited, but no new moving ions are created. |
RecoilCutoff | energy below which no new moving particles will be created, even if a GenerateRecoils is true. Also, a moving primary particle will be stopped if its energy falls below this limit. |
PhysicsCutoff | the energy transfer to which screening tables are calucalted. There is no really compelling reason to change it from the 10.0 eV default. However, see the paper on running this in thin targets for further discussion, and its interaction with SetMFPScaling() |
Definition at line 320 of file G4ScreenedNuclearRecoil.cc.
|
virtual |
destructor
Definition at line 391 of file G4ScreenedNuclearRecoil.cc.
|
inline |
Definition at line 399 of file G4ScreenedNuclearRecoil.hh.
enable or disable all energy deposition by this process
flag | if true, enable deposition of energy (the default). If false, disable deposition. |
Definition at line 296 of file G4ScreenedNuclearRecoil.hh.
enable or disable whether this process will skip collisions which are close enough they need hadronic phsyics. Default is true (skip close collisions). Disabling this results in excess nuclear stopping power.
flag | true results in hard collisions being skipped. false allows hard collisions. |
Definition at line 331 of file G4ScreenedNuclearRecoil.hh.
|
virtual |
Build physics tables in advance. Not Implemented.
aParticleType | the type of particle to build tables for |
Reimplemented from G4VProcess.
Definition at line 805 of file G4ScreenedNuclearRecoil.cc.
|
virtual |
deterine if the moving particle is within the strong force range of the selected nucleus
A | the nucleon number of the beam |
A1 | the nucleon number of the target |
apsis | the distance of closest approach |
Definition at line 398 of file G4ScreenedNuclearRecoil.cc.
Definition at line 359 of file G4ScreenedNuclearRecoil.cc.
void G4ScreenedNuclearRecoil::DepositEnergy | ( | G4int | z1, |
G4double | a1, | ||
const G4Material * | material, | ||
G4double | energy | ||
) |
take the given energy, and use the material information to partition it into NIEL and ionizing energy.
Definition at line 378 of file G4ScreenedNuclearRecoil.cc.
|
virtual |
Export physics tables for persistency. Not Implemented.
aParticleType | the type of particle to build tables for |
Definition at line 819 of file G4ScreenedNuclearRecoil.cc.
enable or disable the generation of recoils. If recoils are disabled, the energy they would have received is just deposited. param flag if true, create recoil ions in cases in which the energy is above the recoilCutoff. If false, just deposit the energy.
Definition at line 308 of file G4ScreenedNuclearRecoil.hh.
|
inline |
get flag indicating whether deposition is enabled
Definition at line 299 of file G4ScreenedNuclearRecoil.hh.
|
inline |
get the flag indicating whether hadronic collisions are ignored.
Definition at line 334 of file G4ScreenedNuclearRecoil.hh.
|
inline |
Definition at line 394 of file G4ScreenedNuclearRecoil.hh.
|
inline |
the the interaciton length used in the last scattering.
Definition at line 380 of file G4ScreenedNuclearRecoil.hh.
|
inline |
find out if generation of recoils is enabled.
Definition at line 311 of file G4ScreenedNuclearRecoil.hh.
|
inline |
get the boost factor in use.
Definition at line 377 of file G4ScreenedNuclearRecoil.hh.
|
inline |
get the fraction of particles which will have boosted scattering
Definition at line 374 of file G4ScreenedNuclearRecoil.hh.
|
inline |
Definition at line 402 of file G4ScreenedNuclearRecoil.hh.
|
virtual |
used internally by Geant4 machinery
Implements G4VDiscreteProcess.
Definition at line 417 of file G4ScreenedNuclearRecoil.cc.
|
inline |
|
virtual |
Definition at line 408 of file G4ScreenedNuclearRecoil.cc.
|
inline |
Get non-ionizing energy loss for last step.
Definition at line 270 of file G4ScreenedNuclearRecoil.hh.
|
inline |
get the pointer to our ParticleChange object. for internal use, primarily.
Definition at line 410 of file G4ScreenedNuclearRecoil.hh.
|
inline |
get the physics cutoff energy.
Definition at line 354 of file G4ScreenedNuclearRecoil.hh.
|
inline |
get the recoil cutoff
Definition at line 344 of file G4ScreenedNuclearRecoil.hh.
|
inline |
find out what screening function we are using
Definition at line 290 of file G4ScreenedNuclearRecoil.hh.
|
inline |
Definition at line 406 of file G4ScreenedNuclearRecoil.hh.
|
inline |
get the verbosity.
Definition at line 392 of file G4ScreenedNuclearRecoil.hh.
|
virtual |
test if a prticle of type aParticleType can use this process
aParticleType | the particle to test |
Reimplemented from G4VProcess.
Definition at line 796 of file G4ScreenedNuclearRecoil.cc.
|
virtual |
used internally by Geant4 machinery
Reimplemented from G4VDiscreteProcess.
Definition at line 465 of file G4ScreenedNuclearRecoil.cc.
void G4ScreenedNuclearRecoil::ResetTables | ( | ) |
clear precomputed screening tables
Definition at line 348 of file G4ScreenedNuclearRecoil.cc.
|
inline |
set the cross section boost to provide faster computation of backscattering
fraction | the fraction of particles to have their cross section boosted. |
HardeningFactor | the factor by which to boost the scattering cross section. |
Definition at line 368 of file G4ScreenedNuclearRecoil.hh.
|
inline |
set a function to compute screening tables, if the user needs non-standard behavior.
cs | a class which constructs the screening tables. |
Definition at line 387 of file G4ScreenedNuclearRecoil.hh.
set the upper energy beyond which this process has no cross section
This funciton is used to coordinate this process with G4MSC. Typically, G4MSC should not be allowed to operate in a range which overlaps that of this process. The criterion which is most reasonable is that the transition should be somewhere in the modestly relativistic regime (500 MeV/u for example). param energy energy per nucleon for the cutoff
Definition at line 287 of file G4ScreenedNuclearRecoil.hh.
set the mean free path scaling as specified
scale | the factor by which the default MFP will be scaled. Set to less than 1 for very thin films, typically, to sample multiple scattering, or to greater than 1 for quick simulations with a very long flight path |
Definition at line 319 of file G4ScreenedNuclearRecoil.hh.
void G4ScreenedNuclearRecoil::SetNIELPartitionFunction | ( | const G4VNIELPartition * | part | ) |
set the pointer to a class for paritioning energy into NIEL
part the pointer to the class.
Definition at line 371 of file G4ScreenedNuclearRecoil.cc.
set the energy to which screening tables are computed. Typically, this is 10 eV or so, and not often changed.
energy | the cutoff energy |
Definition at line 350 of file G4ScreenedNuclearRecoil.hh.
set the minimum energy (per nucleon) at which recoils can be generated, and the energy (per nucleon) below which all ions are stopped.
energy | energy per nucleon |
Definition at line 341 of file G4ScreenedNuclearRecoil.hh.
Definition at line 404 of file G4ScreenedNuclearRecoil.hh.
|
friend |
Definition at line 213 of file G4ScreenedNuclearRecoil.hh.
|
protected |
Definition at line 430 of file G4ScreenedNuclearRecoil.hh.
|
protected |
Definition at line 438 of file G4ScreenedNuclearRecoil.hh.
|
protected |
Definition at line 440 of file G4ScreenedNuclearRecoil.hh.
|
protected |
Definition at line 437 of file G4ScreenedNuclearRecoil.hh.
|
protected |
Definition at line 430 of file G4ScreenedNuclearRecoil.hh.
|
protected |
Definition at line 435 of file G4ScreenedNuclearRecoil.hh.
|
protected |
Definition at line 435 of file G4ScreenedNuclearRecoil.hh.
|
protected |
the energy per nucleon above which the MFP is constant
Definition at line 421 of file G4ScreenedNuclearRecoil.hh.
|
protected |
Definition at line 433 of file G4ScreenedNuclearRecoil.hh.
|
protected |
Definition at line 443 of file G4ScreenedNuclearRecoil.hh.
|
protected |
the energy per nucleon below which the MFP is zero
Definition at line 424 of file G4ScreenedNuclearRecoil.hh.
|
protected |
Definition at line 434 of file G4ScreenedNuclearRecoil.hh.
|
protected |
Definition at line 433 of file G4ScreenedNuclearRecoil.hh.
|
protected |
Definition at line 444 of file G4ScreenedNuclearRecoil.hh.
|
protected |
Definition at line 431 of file G4ScreenedNuclearRecoil.hh.
|
protected |
the energy per nucleon beyond which the cross section is zero, to cross over to G4MSC
Definition at line 428 of file G4ScreenedNuclearRecoil.hh.
|
protected |
Definition at line 431 of file G4ScreenedNuclearRecoil.hh.
|
protected |
Definition at line 432 of file G4ScreenedNuclearRecoil.hh.
|
protected |
Definition at line 429 of file G4ScreenedNuclearRecoil.hh.
|
protected |
Definition at line 442 of file G4ScreenedNuclearRecoil.hh.