61 #ifndef G4ScreenedNuclearRecoil_h 62 #define G4ScreenedNuclearRecoil_h 1 66 #include "G4ParticleChange.hh" 94 "G4ScreenedNuclearRecoil.hh,v 1.24 2008/05/01 19:58:59 marcus Exp GEANT4 tag ";
96 static const char* CVSFileVers();
121 void BuildMFPTables(
void);
127 {
return &(screeningData[
Z]); }
134 enum { nMassMapElements=116 };
137 {
return z1 <= nMassMapElements ? massmap[
z1] : 2.5*
z1; }
141 return MFPTables.find(materialIndex)!=MFPTables.end() ?
169 const class G4Track& aTrack,
const class G4Step& aStep)=0;
179 const class G4Track& aTrack,
const class G4Step& aStep);
199 const class G4Track& aTrack,
const class G4Step& aStep);
247 virtual G4VParticleChange* PostStepDoIt(
const G4Track& aTrack,
248 const G4Step& aStep);
369 hardeningFraction=fraction;
370 hardeningFactor=HardeningFactor;
381 return currentInteractionLength; }
388 externalCrossSectionConstructor=cs;
395 {
return crossSectionHandlers; }
397 void ClearStages(
void);
400 collisionStages.push_back(stage); }
411 {
return static_cast<G4ParticleChange &
>(*pParticleChange); }
472 std::vector<G4String> GetScreeningKeys()
const;
483 std::map<std::string, ScreeningFunc>
phiMap;
G4NativeScreenedCoulombCrossSection(const G4ScreenedCoulombCrossSection &src)
G4bool GetValidCollision() const
G4_c2_const_ptr EMphiData
G4bool GetAllowEnergyDeposition() const
get flag indicating whether deposition is enabled
G4CoulombKinematicsInfo kinematics
void AddStage(G4ScreenedCollisionStage *stage)
G4double GetNIEL() const
Get non-ionizing energy loss for last step.
struct G4ScreeningTables G4ScreeningTables
G4double GetHardeningFactor() const
get the boost factor in use.
G4double highEnergyLimit
the energy per nucleon above which the MFP is constant
G4ParticleDefinition * recoilIon
G4CoulombKinematicsInfo & GetKinematics()
G4ScreenedCoulombCrossSection(const G4ScreenedCoulombCrossSection &src)
std::string GetScreeningKey() const
find out what screening function we are using
G4bool GetEnableRecoils() const
find out if generation of recoils is enabled.
const G4VNIELPartition * NIELPartitionFunction
virtual ~G4SingleScatter()
G4ScreenedCoulombCrossSection()
static const G4double eps
virtual ~G4ScreenedCollisionStage()
struct G4CoulombKinematicsInfo G4CoulombKinematicsInfo
std::map< G4int, G4ScreeningTables > ScreeningMap
Provides the headers for the general c2_function algebra which supports fast, flexible operations on ...
std::vector< G4ScreenedCollisionStage * > collisionStages
G4_c2_function & LJScreening(G4int z1, G4int z2, size_t npoints, G4double rMax, G4double *auval)
std::map< std::string, ScreeningFunc > phiMap
void SetPhysicsCutoff(G4double energy)
set the energy to which screening tables are computed. Typically, this is 10 eV or so...
void AllowEnergyDeposition(G4bool flag)
enable or disable all energy deposition by this process
c2_const_plugin_function_p< G4double > & phifunc
G4ScreenedCoulombCrossSection * externalCrossSectionConstructor
virtual G4ScreenedCoulombCrossSection * create()
double A(double temperature)
virtual ~G4ScreenedCoulombClassicalKinematics()
G4ScreenedCoulombCrossSection * crossSection
void SetRecoilCutoff(G4double energy)
set the minimum energy (per nucleon) at which recoils can be generated, and the energy (per nucleon) ...
G4double GetHardeningFraction() const
get the fraction of particles which will have boosted scattering
std::map< G4int, G4_c2_const_ptr > MFPTables
G4ScreenedCoulombCrossSectionInfo()
std::map< G4int, class G4ParticleDefinition * > ParticleCache
void SetMFPScaling(G4double scale)
set the mean free path scaling as specified
std::map< G4int, G4ScreenedCoulombCrossSection * > crossSectionHandlers
ScreeningMap screeningData
void SetValidCollision(G4bool flag)
const G4ScreeningTables * GetScreening(G4int Z)
G4double lowEnergyLimit
the energy per nucleon below which the MFP is zero
std::map< G4int, G4_c2_const_ptr > sigmaMap
G4_c2_function & ZBLScreening(G4int z1, G4int z2, size_t npoints, G4double rMax, G4double *auval)
void SetCrossSectionHardening(G4double fraction, G4double HardeningFactor)
set the cross section boost to provide faster computation of backscattering
void SetMaxEnergyForScattering(G4double energy)
set the upper energy beyond which this process has no section
void AvoidNuclearReactions(G4bool flag)
enable or disable whether this process will skip collisions which are close enough they need hadronic...
void SetExternalCrossSectionHandler(G4ScreenedCoulombCrossSection *cs)
set a function to compute screening tables, if the user needs non-standard behavior.
G4double GetMFPScaling() const
get the MFPScaling parameter
G4bool registerDepositedEnergy
void SetVerbosity(G4int v)
G4double GetPhysicsCutoff() const
get the physics cutoff energy.
c2_function< G4double > G4_c2_function
static const char * CVSHeaderVers()
G4double hardeningFraction
G4bool GetAvoidNuclearReactions() const
get the flag indicating whether hadronic collisions are ignored.
G4double standardmass(G4int z1)
G4double GetRecoilCutoff() const
get the recoil cutoff
G4_c2_function & LJZBLScreening(G4int z1, G4int z2, size_t npoints, G4double rMax, G4double *auval)
const G4Material * targetMaterial
c2_const_ptr< G4double > G4_c2_const_ptr
~G4ScreenedCoulombCrossSectionInfo()
void AddScreeningFunction(G4String name, ScreeningFunc fn)
c2_ptr< G4double > G4_c2_ptr
G4double GetCurrentInteractionLength() const
the the interaciton length used in the last scattering.
class G4ParticleChange & GetParticleChange()
get the pointer to our ParticleChange object. for internal use, primarily.
void EnableRecoils(G4bool flag)
enable or disable the generation of recoils. recoils are disabled, the energy they would have receiv...
c2_linear_p< G4double > & xovereps
G4_c2_function & MoliereScreening(G4int z1, G4int z2, size_t npoints, G4double rMax, G4double *auval)
A process which handles screened Coulomb collisions between nuclei.
G4int GetVerboseLevel() const
get the verbosity.
G4NativeScreenedCoulombCrossSection(const G4NativeScreenedCoulombCrossSection &src)
G4double processMaxEnergy
the energy per nucleon beyond which the cross section is zero, to cross over to G4MSC ...
std::map< G4int, G4ScreenedCoulombCrossSection * > & GetCrossSectionHandlers()