Warning, file /include/Geant4/G4RKFieldIntegrator.hh was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026 #ifndef G4RKFieldIntegrator_h
0027 #define G4RKFieldIntegrator_h 1
0028
0029 #include "G4FieldPropagation.hh"
0030
0031 class G4RKFieldIntegrator : public G4FieldPropagation
0032 {
0033 public:
0034 G4RKFieldIntegrator() {}
0035 G4RKFieldIntegrator(const G4RKFieldIntegrator &):G4FieldPropagation() {}
0036
0037 ~G4RKFieldIntegrator() {}
0038
0039
0040 const G4RKFieldIntegrator & operator=(const G4RKFieldIntegrator &) {return *this;}
0041
0042 G4bool operator==(const G4RKFieldIntegrator &) const {return 1;}
0043 G4bool operator!=(const G4RKFieldIntegrator &) const {return 1;}
0044
0045
0046
0047 void Transport(G4KineticTrackVector &theActive, const G4KineticTrackVector &theSpectators, G4double theTimeStep);
0048 G4double GetExcitationEnergy(G4int nHitNucleons, const G4KineticTrackVector &theParticles);
0049
0050
0051 void Init(G4int z, G4int a) {theZ = z; theA = a;}
0052
0053
0054 G4double GetNeutronPotential(G4double radius);
0055 G4double GetNeutronPotential(G4ThreeVector &aPosition) {return GetNeutronPotential(aPosition.mag());}
0056
0057 G4double GetProtonPotential(G4double radius);
0058 G4double GetProtonPotential(G4ThreeVector &aPosition) {return GetProtonPotential(aPosition.mag());}
0059
0060 G4double GetAntiprotonPotential(G4double radius);
0061 G4double GetAntiprotonPotential(G4ThreeVector &aPosition) {return GetAntiprotonPotential(aPosition.mag());};
0062
0063 G4double GetKaonPotential(G4double radius);
0064 G4double GetKaonPotential(G4ThreeVector &aPosition) {return GetKaonPotential(aPosition.mag());}
0065
0066 G4double GetPionPotential(G4double radius);
0067 G4double GetPionPotential(G4ThreeVector &aPosition) {return GetPionPotential(aPosition.mag());}
0068
0069 private:
0070 void Integrate(const G4KineticTrackVector & theActive, G4double theTimeStep);
0071 G4double CalculateTotalEnergy(const G4KineticTrackVector& Barions);
0072 G4double Erf(G4double X);
0073
0074
0075 G4int theA;
0076 G4int theZ;
0077
0078
0079
0080 static const G4double coulomb;
0081 static const G4double a_kaon;
0082 static const G4double a_pion;
0083 static const G4double a_antiproton;
0084 };
0085
0086 #endif
0087
0088