57 #ifndef G4ScreenedNuclearRecoil_h 
   58 #define G4ScreenedNuclearRecoil_h 1 
   89                 "G4ScreenedNuclearRecoil.hh,v 1.24 2008/05/01 19:58:59 marcus Exp GEANT4 tag ";
 
  214                         G4double RecoilCutoff=100.0*CLHEP::eV, 
G4double PhysicsCutoff=10.0*CLHEP::eV);
 
  378                 std::map<std::string, ScreeningFunc> phiMap;
 
G4NativeScreenedCoulombCrossSection(const G4ScreenedCoulombCrossSection &src)
 
G4_c2_const_ptr EMphiData
 
std::vector< G4String > GetScreeningKeys() const 
 
const G4_c2_function * operator[](G4int materialIndex)
 
G4CoulombKinematicsInfo kinematics
 
G4double GetCurrentInteractionLength() const 
the the interaciton length used in the last scattering. 
 
void AddStage(G4ScreenedCollisionStage *stage)
 
virtual void LoadData(G4String screeningKey, G4int z1, G4double m1, G4double recoilCutoff)=0
 
G4bool GetValidCollision() const 
 
struct G4ScreeningTables G4ScreeningTables
 
G4double highEnergyLimit
the energy per nucleon above which the MFP is constant 
 
virtual void DoCollisionStep(class G4ScreenedNuclearRecoil *master, const class G4Track &aTrack, const class G4Step &aStep)
 
G4ParticleDefinition * recoilIon
 
G4bool GetAvoidNuclearReactions() const 
get the flag indicating whether hadronic collisions are ignored. 
 
G4CoulombKinematicsInfo & GetKinematics()
 
G4ScreenedCoulombCrossSection(const G4ScreenedCoulombCrossSection &src)
 
virtual void DumpPhysicsTable(const G4ParticleDefinition &aParticleType)
Export physics tables for persistency. Not Implemented. 
 
G4double GetRecoilCutoff() const 
get the recoil cutoff 
 
G4ScreenedNuclearRecoil(const G4String &processName="ScreenedElastic", const G4String &ScreeningKey="zbl", G4bool GenerateRecoils=1, G4double RecoilCutoff=100.0 *CLHEP::eV, G4double PhysicsCutoff=10.0 *CLHEP::eV)
Construct the process and set some physics parameters for it. 
 
const G4VNIELPartition * NIELPartitionFunction
 
virtual ~G4SingleScatter()
 
G4ScreenedCoulombCrossSection()
 
virtual G4double GetMeanFreePath(const G4Track &, G4double, G4ForceCondition *)
used internally by Geant4 machinery 
 
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...
 
void BuildMFPTables(void)
 
virtual ~G4ScreenedCollisionStage()
 
virtual ~G4NativeScreenedCoulombCrossSection()
 
struct G4CoulombKinematicsInfo G4CoulombKinematicsInfo
 
virtual void BuildPhysicsTable(const G4ParticleDefinition &aParticleType)
Build physics tables in advance. Not Implemented. 
 
std::map< G4int, G4ScreeningTables > ScreeningMap
 
Provides the headers for the general c2_function algebra which supports fast, flexible operations on ...
 
std::vector< G4ScreenedCollisionStage * > collisionStages
 
virtual void DoCollisionStep(class G4ScreenedNuclearRecoil *master, const class G4Track &aTrack, const class G4Step &aStep)=0
 
G4_c2_function & LJScreening(G4int z1, G4int z2, size_t npoints, G4double rMax, G4double *auval)
 
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()
 
virtual ~G4ScreenedCoulombClassicalKinematics()
 
G4ScreenedCoulombCrossSection * crossSection
 
G4double GetHardeningFactor() const 
get the boost factor in use. 
 
void SetRecoilCutoff(G4double energy)
set the minimum energy (per nucleon) at which recoils can be generated, and the energy (per nucleon) ...
 
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
 
G4double GetMFPScaling() const 
get the MFPScaling parameter 
 
G4double currentInteractionLength
 
virtual ~G4ScreenedCoulombCrossSection()
 
void SetValidCollision(G4bool flag)
 
const G4ScreeningTables * GetScreening(G4int Z)
 
G4ParticleDefinition * SelectRandomUnweightedTarget(const G4MaterialCutsCouple *couple)
 
G4NativeScreenedCoulombCrossSection()
 
G4bool GetAllowEnergyDeposition() const 
get flag indicating whether deposition is enabled 
 
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 
 
G4bool GetEnableRecoils() const 
find out if generation of recoils is enabled. 
 
void SetMaxEnergyForScattering(G4double energy)
set the upper energy beyond which this process has no cross section 
 
void AvoidNuclearReactions(G4bool flag)
enable or disable whether this process will skip collisions which are close enough they need hadronic...
 
virtual G4bool IsApplicable(const G4ParticleDefinition &aParticleType)
test if a prticle of type aParticleType can use this process 
 
void SetExternalCrossSectionHandler(G4ScreenedCoulombCrossSection *cs)
set a function to compute screening tables, if the user needs non-standard behavior. 
 
void SetNIELPartitionFunction(const G4VNIELPartition *part)
set the pointer to a class for paritioning energy into NIEL 
 
virtual G4ScreenedCoulombCrossSection * create()=0
 
G4bool registerDepositedEnergy
 
void SetVerbosity(G4int v)
 
c2_function< G4double > G4_c2_function
 
static const char * CVSHeaderVers()
 
G4double hardeningFraction
 
G4double standardmass(G4int z1)
 
static const char * CVSFileVers()
 
G4_c2_function & LJZBLScreening(G4int z1, G4int z2, size_t npoints, G4double rMax, G4double *auval)
 
std::string GetScreeningKey() const 
find out what screening funciton we are using 
 
const G4Material * targetMaterial
 
c2_const_ptr< G4double > G4_c2_const_ptr
 
virtual ~G4ScreenedNuclearRecoil()
destructor 
 
virtual G4VParticleChange * PostStepDoIt(const G4Track &aTrack, const G4Step &aStep)
used internally by Geant4 machinery 
 
virtual G4bool CheckNuclearCollision(G4double A, G4double A1, G4double apsis)
deterine if the moving particle is within the strong force range of the selected nucleus ...
 
~G4ScreenedCoulombCrossSectionInfo()
 
void AddScreeningFunction(G4String name, ScreeningFunc fn)
 
c2_ptr< G4double > G4_c2_ptr
 
virtual G4ScreenedCoulombCrossSection * GetNewCrossSectionHandler(void)
 
G4double GetHardeningFraction() const 
get the fraction of particles which will have boosted scattering 
 
G4double GetPhysicsCutoff() const 
get the physics cutoff energy. 
 
virtual void DoCollisionStep(class G4ScreenedNuclearRecoil *master, const class G4Track &aTrack, const class G4Step &aStep)
 
G4int GetVerboseLevel() const 
get the verbosity. 
 
G4_c2_function &(* ScreeningFunc)(G4int z1, G4int z2, size_t nPoints, G4double rMax, G4double *au)
 
G4double GetNIEL() const 
Get non-ionizing energy loss for last step. 
 
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. If recoils are disabled, the energy they would have rece...
 
G4ScreenedCoulombClassicalKinematics()
 
c2_linear_p< G4double > & xovereps
 
G4bool DoScreeningComputation(class G4ScreenedNuclearRecoil *master, const G4ScreeningTables *screen, G4double eps, G4double beta)
 
G4_c2_function & MoliereScreening(G4int z1, G4int z2, size_t npoints, G4double rMax, G4double *auval)
 
void ResetTables()
clear precomputed screening tables 
 
A process which handles screened Coulomb collisions between nuclei. 
 
virtual void LoadData(G4String screeningKey, G4int z1, G4double m1, G4double recoilCutoff)
 
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()