50 theEvaporationProbabilityPtr(aEmissionStrategy),
51 theCoulombBarrierPtr(aCoulombBarrier),
52 EmissionProbability(0.0),
53 MaximalKineticEnergy(-
CLHEP::GeV)
56 MyOwnLevelDensity =
true;
58 ResidualMass = CoulombBarrier = 0.0;
60 ResidualZ = ResidualA = 0;
65 if (MyOwnLevelDensity) {
delete theLevelDensityPtr; }
78 if (ResidualA <= 0 || ResidualZ <= 0 || ResidualA < ResidualZ ||
79 (ResidualA == ResidualZ && ResidualA > 1))
82 MaximalKineticEnergy = -CLHEP::GeV;
83 EmissionProbability = 0.0;
99 if( ExEnergy <= 0.0) {
100 CoulombBarrier = 0.0;
101 MaximalKineticEnergy = -1000.0*MeV;
102 EmissionProbability = 0.0;
109 CoulombBarrier = theCoulombBarrierPtr->
GetCoulombBarrier(ResidualA,ResidualZ,ExEnergy);
113 MaximalKineticEnergy =
118 if (MaximalKineticEnergy <= 0.0)
120 EmissionProbability = 0.0;
125 EmissionProbability =
127 MaximalKineticEnergy);
132 return EmissionProbability;
137 G4double EvaporatedKineticEnergy = CalcKineticEnergy(theNucleus);
138 G4double EvaporatedEnergy = EvaporatedKineticEnergy + EvaporatedMass;
140 G4ThreeVector momentum(IsotropicVector(std::sqrt(EvaporatedKineticEnergy*
141 (EvaporatedKineticEnergy+2.0*EvaporatedMass))));
152 theMass + (theExEnergy - EvaporatedKineticEnergy) - EvaporatedMass;
161 theResult->push_back(EvaporatedFragment);
162 theResult->push_back(ResidualFragment);
166G4double G4GEMChannel::CalcMaximalKineticEnergy(
const G4double NucleusTotalE)
170 G4double T = (NucleusTotalE*NucleusTotalE + EvaporatedMass*EvaporatedMass - ResidualMass*ResidualMass)/
171 (2.0*NucleusTotalE) - EvaporatedMass - CoulombBarrier;
189 G4double Ux = (2.5 + 150.0/ResidualA)*MeV;
204 G4double TCN = 1.0/(std::sqrt(aCN/UxCN) - 1.5/UxCN);
210 G4double E0CN = ExCN - TCN*(std::log(TCN/MeV) - std::log(aCN*MeV)/4.0
211 - 1.25*std::log(UxCN/MeV) + 2.0*std::sqrt(aCN*UxCN));
212 InitialLevelDensity = (
pi/12.0)*std::exp((U-E0CN)/TCN)/TCN;
218 InitialLevelDensity = (
pi/12.0)*std::exp(2*x1)/(x*std::sqrt(x1));
227 G4double gg = (2.0*Spin+1.0)*EvaporatedMass/(pi2* hbarc*hbarc);
237 Rb = 1.12*(Aj + Ad) - 0.86*((Aj+Ad)/(Aj*Ad))+2.85;
244 Rb=1.5*(Aj+Ad)*fermi;
254 G4double ConstantFactor = gg*GeometricalXS*
Alpha/InitialLevelDensity;
255 ConstantFactor *=
pi/12.0;
259 G4double theEnergy = MaximalKineticEnergy + CoulombBarrier;
265 KineticEnergy = CoulombBarrier +
G4UniformRand()*MaximalKineticEnergy;
266 Probability = ConstantFactor*(KineticEnergy + Beta);
269 G4double T = 1.0/(std::sqrt(a/Ux) - 1.5/Ux);
272 if ( theEnergy-KineticEnergy < Ex)
274 G4double E0 = Ex - T*(std::log(T/MeV) - std::log(a*MeV)/4.0
275 - 1.25*std::log(Ux/MeV) + 2.0*std::sqrt(a*Ux));
276 Probability *= std::exp((theEnergy-KineticEnergy-E0)/T)/T;
280 Probability *= std::exp(2*std::sqrt(a*(theEnergy-KineticEnergy-delta0)))/
281 std::pow(a*fG4pow->
powN(theEnergy-KineticEnergy-delta0,5), 0.25);
286 return KineticEnergy;
295 G4double SinTheta = std::sqrt(1.0 - CosTheta*CosTheta);
298 Magnitude*std::sin(Phi)*SinTheta,
std::vector< G4Fragment * > G4FragmentVector
Hep3Vector & rotateUz(const Hep3Vector &)
Hep3Vector boostVector() const
HepLorentzVector & boost(double, double, double)
G4double GetGroundStateMass() const
G4double GetExcitationEnergy() const
const G4LorentzVector & GetMomentum() const
G4GEMChannel(const G4int theA, const G4int theZ, const G4String &aName, G4GEMProbability *aEmissionStrategy, G4VCoulombBarrier *aCoulombBarrier)
virtual G4double GetEmissionProbability(G4Fragment *theNucleus)
virtual G4FragmentVector * BreakUp(const G4Fragment &theNucleus)
G4double GetNormalization(void) const
G4double CalcAlphaParam(const G4Fragment &) const
G4double CalcBetaParam(const G4Fragment &) const
G4double GetSpin(void) const
G4double EmissionProbability(const G4Fragment &fragment, G4double anEnergy)
static G4double GetNuclearMass(const G4double A, const G4double Z)
static G4PairingCorrection * GetInstance()
G4double GetPairingCorrection(G4int A, G4int Z) const
static G4Pow * GetInstance()
G4double powN(G4double x, G4int n)
virtual G4double GetCoulombBarrier(G4int ARes, G4int ZRes, G4double U) const =0
virtual G4double LevelDensityParameter(G4int A, G4int Z, G4double U) const =0