78 if (anA >= 65 && ExEnergy > 0.0) {
100 if(frag1) { theResult->push_back(frag1); }
101 theResult->push_back(frag0);
116 if (U <= pcorr) {
return Fragment1; }
137 G4double FragmentsExcitationEnergy = 0.0;
138 G4double FragmentsKineticEnergy = 0.0;
151 if (A2 < 1 || Z2 < 0 || Z2 > A2) {
152 FragmentsExcitationEnergy = -1.0;
157 G4double Tmax = M + U - M1 - M2 - pcorr;
161 FragmentsExcitationEnergy = -1.0;
176 FragmentsExcitationEnergy =
178 Tmax - FragmentsKineticEnergy + pcorr;
181 }
while (FragmentsExcitationEnergy < 0.0
184 if (FragmentsExcitationEnergy <= 0.0) {
186 "G4CompetitiveFission::BreakItUp: Excitation energy for fragments < 0.0!");
190 M1 += FragmentsExcitationEnergy * A1/
static_cast<G4double>(
A);
192 M2 += FragmentsExcitationEnergy * A2/
static_cast<G4double>(
A);
196 G4double etot1 = ((M - M2)*(M + M2) + M1*M1)/(2*M);
199 FourMomentum1.boost(theNucleusMomentum.boostVector());
202 Fragment1 =
new G4Fragment( A1, Z1, FourMomentum1);
203 theNucleusMomentum -= FourMomentum1;
226 if (w > 1000.0 ) { C2 = C2S; }
227 else if (w < 0.001) { C2 = C2A; }
247 if (Mass2 > MassMax) { MassMax = Mass2; }
248 if (Mass3 > MassMax) { MassMax = Mass3; }
249 if (Mass4 > MassMax) { MassMax = Mass4; }
250 if (Mass5 > MassMax) { MassMax = Mass5; }
278 + 0.5*(
G4Exp(-0.5*z1*z1) +
G4Exp(-0.5*z2*z2));
282 if (w > 1000) { res = Xsym; }
283 else if (w < 0.001) { res = Xasym; }
284 else { res = w*Xsym+Xasym; }
293 if (Af >= 134.0) { DeltaZ = -0.45; }
294 else if (Af <= (A-134.0)) { DeltaZ = 0.45; }
295 else { DeltaZ = -0.45*(Af-A*0.5)/(134.0-A*0.5); }
303 }
while (theZ < 1.0 || theZ > (Z-1.0) || theZ > Af);
323 Pas = 0.5*
G4Exp(-0.5*x1*x1) +
G4Exp(-0.5*x2*x2);
356 TaverageAfMax = (Eaverage + 12.5 * Xsy) * (PPas/ScaleFactor) *
362 TaverageAfMax = (Eaverage - 12.5*
CLHEP::MeV*Xas)
373 if (++i > 100)
return Eaverage;
375 }
while (KineticEnergy < Eaverage-3.72*ESigma ||
376 KineticEnergy > Eaverage+3.72*ESigma ||
377 KineticEnergy > Tmax);
379 return KineticEnergy;
static G4Pow * GetInstance()
G4ThreeVector IsotropicVector(G4double Magnitude)
ThreeVector shoot(const G4int Ap, const G4int Af)
G4double GetSigma2(void) const
G4int FissionAtomicNumber(G4int A)
G4double AsymmetricRatio(G4int A, G4double A11)
static G4double GetNuclearMass(const G4double A, const G4double Z)
G4double MaximalKineticEnergy
G4double GetSigma1(void) const
virtual G4double GetEmissionProbability(G4Fragment *theNucleus)
G4VEmissionProbability * theFissionProbabilityPtr
const G4double w[NPOINTSGL]
G4FissionParameters theParam
virtual G4double FissionBarrier(G4int A, G4int Z, const G4double U)=0
G4bool MyOwnFissionProbability
virtual G4FragmentVector * BreakUp(const G4Fragment &theNucleus)
virtual ~G4CompetitiveFission()
G4double MassDistribution(G4double x, G4int A)
G4PairingCorrection * pairingCorrection
G4double Z13(G4int Z) const
double A(double temperature)
G4double GetSigmaS(void) const
const G4LorentzVector & GetMomentum() const
void SetMomentum(const G4LorentzVector &value)
virtual G4Fragment * EmittedFragment(G4Fragment *theNucleus)
std::vector< G4Fragment * > G4FragmentVector
G4bool MyOwnFissionBarrier
G4double SymmetricRatio(G4int A, G4double A11)
G4double GetGroundStateMass() const
G4double LevelDensityParameter
G4VLevelDensityParameter * theLevelDensityPtr
G4int FissionCharge(G4int A, G4int Z, G4double Af)
G4VFissionBarrier * theFissionBarrierPtr
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
static G4PairingCorrection * GetInstance()
G4double GetFissionPairingCorrection(G4int A, G4int Z) const
G4double GetAs(void) const
G4double FissionProbability
T max(const T t1, const T t2)
brief Return the largest of the two arguments
void SetZandA_asInt(G4int Znew, G4int Anew)
const G4double x[NPOINTSGL]
virtual G4double LevelDensityParameter(G4int A, G4int Z, G4double U) const =0
G4double GetW(void) const
virtual G4double EmissionProbability(const G4Fragment &fragment, const G4double anEnergy)=0
G4double FissionKineticEnergy(G4int A, G4int Z, G4int Af1, G4int Zf1, G4int Af2, G4int Zf2, G4double U, G4double Tmax)
G4ThreeVector G4ParticleMomentum
G4double GetExcitationEnergy() const
CLHEP::HepLorentzVector G4LorentzVector
void DefineParameters(G4int A, G4int Z, G4double ExEnergy, G4double FissionBarrier)