00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 #define INCLXX_IN_GEANT4_MODE 1
00034
00035 #include "globals.hh"
00036
00044 #ifndef G4INCLCOULOMBNONRELATIVISTIC_HH_
00045 #define G4INCLCOULOMBNONRELATIVISTIC_HH_
00046
00047 #include "G4INCLParticle.hh"
00048 #include "G4INCLNucleus.hh"
00049 #include "G4INCLICoulomb.hh"
00050 #include "G4INCLCoulombNone.hh"
00051 #include "G4INCLGlobals.hh"
00052
00053 namespace G4INCL {
00054
00055 class CoulombNonRelativistic : public ICoulomb {
00056 public:
00057 CoulombNonRelativistic() {}
00058 virtual ~CoulombNonRelativistic() {}
00059
00068 ParticleEntryAvatar *bringToSurface(Particle * const p, Nucleus * const n) const;
00069
00079 IAvatarList bringToSurface(Cluster * const c, Nucleus * const n) const;
00080
00088 void distortOut(ParticleList const &pL, Nucleus const * const n) const;
00089
00092 G4double maxImpactParameter(ParticleSpecies const &p, const G4double kinE, Nucleus const *
00093 const n) const;
00094
00095 private:
00097 G4double maxImpactParameterParticle(ParticleSpecies const &p, const G4double kinE, Nucleus const *
00098 const n) const;
00099
00101 G4double minimumDistance(ParticleSpecies const &p, const G4double kineticEnergy, Nucleus const * const n) const {
00102 const G4double particleMass = ParticleTable::getTableSpeciesMass(p);
00103 const G4double nucleusMass = n->getTableMass();
00104 const G4double reducedMass = particleMass*nucleusMass/(particleMass+nucleusMass);
00105 return ParticleTable::eSquared * p.theZ * n->getZ() * particleMass
00106 / (kineticEnergy * reducedMass);
00107 }
00108
00110 G4double minimumDistance(Particle const * const p, Nucleus const * const n) const {
00111 return minimumDistance(p->getSpecies(), p->getKineticEnergy(), n);
00112 }
00113
00140 G4bool coulombDeviation(Particle * const p, Nucleus const * const n) const;
00141
00143 CoulombNone theCoulombNoneSlave;
00144 };
00145 }
00146
00147 #endif