52 theEvaporationProbabilityPtr(aEmissionStrategy),
53 theCoulombBarrierPtr(aCoulombBarrier),
54 EmissionProbability(0.0),
55 MaximalKineticEnergy(-CLHEP::
GeV)
58 MyOwnLevelDensity =
true;
60 ResidualMass = CoulombBarrier = 0.0;
62 ResidualZ = ResidualA = 0;
67 if (MyOwnLevelDensity) {
delete theLevelDensityPtr; }
80 if (ResidualA <= 0 || ResidualZ <= 0 || ResidualA < ResidualZ ||
81 (ResidualA == ResidualZ && ResidualA > 1))
84 MaximalKineticEnergy = -CLHEP::GeV;
85 EmissionProbability = 0.0;
101 if( ExEnergy <= 0.0) {
102 CoulombBarrier = 0.0;
103 MaximalKineticEnergy = -1000.0*
MeV;
104 EmissionProbability = 0.0;
111 CoulombBarrier = theCoulombBarrierPtr->
GetCoulombBarrier(ResidualA,ResidualZ,ExEnergy);
115 MaximalKineticEnergy =
120 if (MaximalKineticEnergy <= 0.0)
122 EmissionProbability = 0.0;
127 EmissionProbability =
129 MaximalKineticEnergy);
134 return EmissionProbability;
139 G4double EvaporatedKineticEnergy = CalcKineticEnergy(theNucleus);
140 G4double EvaporatedEnergy = EvaporatedKineticEnergy + EvaporatedMass;
142 G4ThreeVector momentum(IsotropicVector(std::sqrt(EvaporatedKineticEnergy*
143 (EvaporatedKineticEnergy+2.0*EvaporatedMass))));
154 theMass + (theExEnergy - EvaporatedKineticEnergy) - EvaporatedMass;
163 theResult->push_back(EvaporatedFragment);
164 theResult->push_back(ResidualFragment);
168 G4double G4GEMChannel::CalcMaximalKineticEnergy(
const G4double NucleusTotalE)
172 G4double T = (NucleusTotalE*NucleusTotalE + EvaporatedMass*EvaporatedMass - ResidualMass*ResidualMass)/
173 (2.0*NucleusTotalE) - EvaporatedMass - CoulombBarrier;
206 G4double TCN = 1.0/(std::sqrt(aCN/UxCN) - 1.5/UxCN);
213 - 1.25*
G4Log(UxCN/
MeV) + 2.0*std::sqrt(aCN*UxCN));
214 InitialLevelDensity = (
pi/12.0)*
G4Exp((U-E0CN)/TCN)/TCN;
220 InitialLevelDensity = (
pi/12.0)*
G4Exp(2*x1)/(x*std::sqrt(x1));
239 Rb = 1.12*(Aj + Ad) - 0.86*((Aj+Ad)/(Aj*Ad))+2.85;
246 Rb=1.5*(Aj+Ad)*
fermi;
256 G4double ConstantFactor = gg*GeometricalXS*Alpha/InitialLevelDensity;
257 ConstantFactor *=
pi/12.0;
261 G4double theEnergy = MaximalKineticEnergy + CoulombBarrier;
267 KineticEnergy = CoulombBarrier +
G4UniformRand()*MaximalKineticEnergy;
268 Probability = ConstantFactor*(KineticEnergy + Beta);
271 G4double T = 1.0/(std::sqrt(a/Ux) - 1.5/Ux);
274 if ( theEnergy-KineticEnergy < Ex)
277 - 1.25*
G4Log(Ux/
MeV) + 2.0*std::sqrt(a*Ux));
278 Probability *=
G4Exp((theEnergy-KineticEnergy-E0)/T)/T;
282 Probability *=
G4Exp(2*std::sqrt(a*(theEnergy-KineticEnergy-delta0)))/
283 std::pow(a*fG4pow->
powN(theEnergy-KineticEnergy-delta0,5), 0.25);
288 return KineticEnergy;
297 G4double SinTheta = std::sqrt(1.0 - CosTheta*CosTheta);
300 Magnitude*std::sin(Phi)*SinTheta,
static G4Pow * GetInstance()
Hep3Vector boostVector() const
static G4double GetNuclearMass(const G4double A, const G4double Z)
G4double powN(G4double x, G4int n) const
G4double EmissionProbability(const G4Fragment &fragment, G4double anEnergy)
G4double CalcAlphaParam(const G4Fragment &) const
G4double Z13(G4int Z) const
G4double GetSpin(void) const
G4double GetNormalization(void) const
const G4LorentzVector & GetMomentum() const
HepLorentzVector & boost(double, double, double)
Hep3Vector & rotateUz(const Hep3Vector &)
G4double GetPairingCorrection(G4int A, G4int Z) const
std::vector< G4Fragment * > G4FragmentVector
G4double GetGroundStateMass() const
G4double CalcBetaParam(const G4Fragment &) const
G4GEMChannel(const G4int theA, const G4int theZ, const G4String &aName, G4GEMProbability *aEmissionStrategy, G4VCoulombBarrier *aCoulombBarrier)
G4double G4Log(G4double x)
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
static G4PairingCorrection * GetInstance()
virtual G4double GetEmissionProbability(G4Fragment *theNucleus)
virtual G4FragmentVector * BreakUp(const G4Fragment &theNucleus)
virtual G4double LevelDensityParameter(G4int A, G4int Z, G4double U) const =0
virtual G4double GetCoulombBarrier(G4int ARes, G4int ZRes, G4double U) const =0
G4double GetExcitationEnergy() const