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 G4INCLCOULOMBDISTORTION_HH_
00045 #define G4INCLCOULOMBDISTORTION_HH_
00046
00047 #include "G4INCLParticle.hh"
00048 #include "G4INCLNucleus.hh"
00049 #include "G4INCLICoulomb.hh"
00050
00051 namespace G4INCL {
00052
00056 class CoulombDistortion {
00057 public:
00077 static ParticleEntryAvatar *bringToSurface(Particle *p, Nucleus * const n) {
00078 return theCoulomb->bringToSurface(p, n);
00079 }
00080
00094 static IAvatarList bringToSurface(Cluster * const c, Nucleus * const n) {
00095 return theCoulomb->bringToSurface(c, n);
00096 }
00097
00099 static void distortOut(ParticleList const &pL, Nucleus const * const n) {
00100 theCoulomb->distortOut(pL, n);
00101 }
00102
00105 static G4double maxImpactParameter(ParticleSpecies const &p, const G4double kinE, Nucleus const * const n) {
00106 return theCoulomb->maxImpactParameter(p, kinE, n);
00107 }
00108
00111 static G4double maxImpactParameter(Particle const * const p, Nucleus const * const n) {
00112 return maxImpactParameter(p->getSpecies(), p->getKineticEnergy(), n);
00113 }
00114
00116 static void setCoulomb(ICoulomb * const coulomb) { theCoulomb = coulomb; }
00117
00119 static void deleteCoulomb() {
00120 delete theCoulomb;
00121 theCoulomb = 0;
00122 }
00123
00124 protected:
00125 CoulombDistortion() {}
00126 ~CoulombDistortion() {}
00127
00128 private:
00129 static ICoulomb *theCoulomb;
00130
00131 };
00132 }
00133
00134 #endif