65{
69
74
75 static const G4double nuleonRadius=1.1E-15;
76 static const G4double myNuleonRadius=1.36E-15;
77
78
84 pTarget = pTarget+pProjectile;
85 G4double E_cm = (pTarget.mag()-targetMass-pProjectile.m())/MeV;
86 if(E_cm <=
DBL_MIN) {
return result; }
87
88 G4double r_rms_p = 0.6 * myNuleonRadius *
90 G4double r_rms_t = 0.6 * myNuleonRadius *
92
93
94 G4double r_p = 1.29*r_rms_p/nuleonRadius ;
95 G4double r_t = 1.29*r_rms_t/nuleonRadius;
96
97
101
102
103 G4double B = 1.44*nProjProtons*nTargetProtons/Radius;
104 if(E_cm <= B) return result;
105
106 G4double Energy = kineticEnergy/projectileAtomicNumber;
107
108
109
110
111
112
113
114
115
116
118 if (nProjProtons==1 && projectileAtomicNumber==1)
119 {
121 }
122 else if (nProjProtons==2 && projectileAtomicNumber==4)
123 {
124 D = 2.77-(8.0E-3*targetAtomicNumber)+
125 (1.8E-5*targetAtomicNumber*targetAtomicNumber)
126 - 0.8/(1+
G4Exp((250.-Energy)/75.));
127 }
128 else
129 {
130
131
132
133
134
135
137 }
138
141
142
147
148
150 0.91*(targetAtomicNumber-2.*nTargetProtons)*nProjProtons/
151 (targetAtomicNumber*projectileAtomicNumber);
152
153
154 result =
pi * nuleonRadius*nuleonRadius *
158
159 if(result < 0.) { result = 0.; }
160 return result*m2;
161
162}
double B(double temperature)
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
G4ParticleDefinition * GetDefinition() const
G4LorentzVector Get4Momentum() const
G4double GetKineticEnergy() const
G4double GetIonMass(G4int Z, G4int A, G4int L=0, G4int lvl=0) const
static G4NistManager * Instance()
G4double GetAtomicMassAmu(const G4String &symb) const
G4double GetPDGCharge() const
G4int GetBaryonNumber() const
G4IonTable * GetIonTable() const
static G4ParticleTable * GetParticleTable()
static G4Pow * GetInstance()
G4double powA(G4double A, G4double y) const