4 #include "KVWilckeReactionParameters.h"
6 #include <TF1Derivative.h>
10 Double_t KVWilckeReactionParameters::e2_Wilcke = 1.438;
11 Double_t KVWilckeReactionParameters::mu_Wilcke = 931.5;
13 Double_t KVWilckeReactionParameters::a1_Myers = 15.677;
14 Double_t KVWilckeReactionParameters::a2_Myers = 22.0;
15 Double_t KVWilckeReactionParameters::J_Myers = 35.0;
16 Double_t KVWilckeReactionParameters::K_Myers = 300.0;
17 Double_t KVWilckeReactionParameters::L_Myers = 99.0;
18 Double_t KVWilckeReactionParameters::M_Myers = 4.5;
19 Double_t KVWilckeReactionParameters::Q_Myers = 25.0;
20 Double_t KVWilckeReactionParameters::r0_Myers = 1.16;
21 Double_t KVWilckeReactionParameters::c1_Myers = 0.745;
26 void KVWilckeReactionParameters::init()
33 MU = AP * AT / (1.*AC);
40 CBAR = CP * CT / (CP + CT);
44 V0 =
BSS_V0(ZP, AP, ZT, AT);
45 BSS_K = V0 - e2_Wilcke * ZP * ZT / RCTOTAL;
46 BSS_N = e2_Wilcke * ZP * ZT / RCTOTAL / BSS_K;
47 BSS_K /=
pow(RCTOTAL, BSS_N);
50 ASYMMFISSIONTKE = FISSIONTKE * 4.*ZP * ZT / (1.*ZC * ZC);
55 PROXFACTOR = 4 *
TMath::Pi() * GAMMA * CBAR;
60 LCRIT = PROXFACTOR * PHI + e2_Wilcke * ZP * ZT /
S /
S;
62 LCRIT = 7. / 5.*
pow(LCRIT, 0.5);
65 VC_RINT = fBSS->
Eval(RINT);
76 VRB = fPotential->
Eval(RBARRIER);
87 : fBSS(0), fProx(0), fPotential(0), fCMThetaQuart(0), fLmax(0), fSigmaR(0), fSigmaFus(0), fCentPot(0)
97 : fBSS(0), fProx(0), fPotential(0), fCMThetaQuart(0), fLmax(0), fSigmaR(0), fSigmaFus(0), fCentPot(0)
138 c1_Myers * Z * Z *
pow(A, -4. / 3.)) / K_Myers;
151 Double_t delta = (
I + (3 * c1_Myers / 8. / Q_Myers) * Z * Z *
pow(A, -5. / 3.)) /
152 (1. + (9.*J_Myers / 4. / Q_Myers) *
pow(A, -THIRD));
175 if (
x < 0.75) y_I = 0.2829 - 0.3475 *
x - 0.0016 *
x *
x + 0.0501 *
x *
x *
x;
176 else y_I = (7. / 5.) *
pow((1. -
x), 2) - 4.5660 *
pow(1. -
x, 3.) + 6.7443 *
pow(1 -
x, 4.);
186 printf(
"-------------------------------------------\n");
187 printf(
"PARAMETERS INDEPENDENT OF BOMBARDING ENERGY\n");
188 printf(
"-------------------------------------------\n\n");
190 printf(
"ATOMIC NUMBERS: ZP=%3d ZT=%3d ZC=%3d (%s)\n", ZP, ZT, ZC, fus.
GetSymbol());
191 printf(
"NEUTRON NUMBERS: NP=%3d NT=%3d NC=%3d\n\n", NP, NT, NC);
192 printf(
"AP**1/3=%7.3f AT**1/3=%7.3f\n",
pow(AP, THIRD),
pow(AT, THIRD));
193 printf(
"REDUCED MASS NUMBER=%6.2f AP+AT=AC=%3d\n\n", MU, AC);
194 printf(
"INTERACTION RADIUS RINT=%5.2f fm R0=%5.2f fm\n\n", RINT, R0);
195 printf(
"MATTER HALF-DENSITY RADII [fm]:\n");
196 printf(
"CP=%5.2f CT=%5.2f CT+CP=%5.2f CBAR=%5.2f\n\n", CP, CT, (CP + CT), CBAR);
197 printf(
"EQUIVALENT SHARP SURFACE RADII [fm]:\n");
198 printf(
"RP=%5.2f RT=%5.2f\n\n", RP, RT);
199 printf(
"COULOMB RADII [fm]:\n");
200 printf(
"RCP=%5.2f RCT=%5.2f RC=RCP+RCT=%5.2f\n\n", RCP, RCT, RCTOTAL);
201 printf(
"BSS-COULOMB POTENTIAL [MeV]:\n");
202 printf(
"VC(r)=%5.3f*ZP*ZT/r for r>RC\n", e2_Wilcke);
203 printf(
"VC(r)=V0-K*r**n for r<RC\n");
204 printf(
"V0=%7.2f MeV K=%7.5f n=%5.3f\n", V0, BSS_K, BSS_N);
205 printf(
"VC(RINT)=%6.1f MeV\n\n", VC_RINT);
206 printf(
"FISSION-TKE=%5.0f MeV\n", FISSIONTKE);
207 printf(
"ASYMM. FISSION-TKE=%5.0f MeV\n\n", ASYMMFISSIONTKE);
208 printf(
"LIQUID DROP PARAMETERS:\n");
209 printf(
"GAMMA=%6.3f MeV/fm**2 PROX-FACTOR=%6.2f MeV\n\n", GAMMA, PROXFACTOR);
210 printf(
"FUSION RELATED PARAMETERS:\n");
211 printf(
"R-BARRIER=%5.2f fm V(RB)=%6.1f MeV\n", RBARRIER, VRB);
212 printf(
"L-CRITICAL=%4.0f HBAR\n", LCRIT);
214 printf(
"-------------------------------------------------------------------------\n");
215 printf(
"EL/u ELAB ECM ECM/VC k ETA LMAX SGMAR SGFUS QP-CM QP-LP EP-QP\n");
216 printf(
"-------------------------------------------------------------------------\n");
220 printf(
" %4.1f %4.0f %4.0f %5.2f %4.1f %5.1f %4.0f %4.0f %4.0f %5.1f %5.1f %4.0f\n",
226 else if (
e < 12)
e += 0.5;
227 else if (
e < 20)
e += 1;
229 if (!(nlines % 5)) printf(
"\n");
231 printf(
"************************************************************************\n");
251 for (
int i = 2; i; --i) {
255 if (rmin == rmax)
return -1.0;
257 if (df2.
Eval(rmin) > 0)
return rmin;
315 else l_last_pock =
l;
338 for (
int i = 2; i; --i) {
342 if (rmin == rmax)
return -1.0;
344 if (df2.
Eval(rmin) < 0)
return rmin;
static Double_t ProtectedGetX(const TF1 *func, Double_t val, GetX_status &status, std::optional< Double_t > xmin={}, std::optional< Double_t > xmax={})
Description of properties and kinematics of atomic nuclei.
static Double_t hbar
hbar*c in MeV.fm
const Char_t * GetSymbol(Option_t *opt="") const
Int_t GetZ() const
Return the number of proton / atomic number.
Reaction parameters for heavy-ion collisions from systematics of Wilcke et al.
Double_t QuarterPointAngle(Double_t *x, Double_t *) const
static Double_t SWaveFusionBarrierRadius(Int_t zp, Int_t ap, Int_t zt, Int_t at)
static Double_t InteractionRadius(Int_t aproj, Int_t atarg)
Double_t GetMaximumAngularMomentumWithPocket()
Double_t SigmaFus(Double_t *e_sur_a, Double_t *) const
Double_t Potential(Double_t *r, Double_t *)
Double_t Eta(Double_t e_sur_a) const
Double_t ECM(Double_t e_sur_a) const
static Double_t RLDCriticalAngularMomentum(Int_t z, Int_t a)
virtual ~KVWilckeReactionParameters()
Destructor.
static Double_t MatterHalfDensityRadius(Int_t A)
Double_t GetBassReactionCrossSection(Double_t e_sur_a)
Bass reaction cross-section [mb] for incident energy [MeV/nucleon].
Double_t ProjectileLabQP(Double_t e) const
static Double_t epsilon_bar_Myers(Int_t Z, Int_t A)
epsilon_bar, Eq.(7) in W.D. Myers, Phys. Lett. B 30, 451 (1969)
static Double_t NLDSurfaceTensionCoefficient(Int_t Z, Int_t A)
static Double_t SharpRadius(Int_t A)
Double_t Lmax(Double_t *x, Double_t *) const
Double_t k(Double_t e_sur_a) const
static Double_t r0_Wilcke(Int_t aproj, Int_t atarg)
Double_t SigmaR(Double_t *x, Double_t *) const
Double_t ProjectileLabEQP(Double_t e) const
TF1 * GetCentrifugalPotential(Double_t e_sur_a, Double_t b) const
Double_t CentrifugalPotential(Double_t *x, Double_t *l)
static Double_t ChargeRadius_Myers(Int_t Z, Int_t A)
static Double_t BSS_V0(Int_t zp, Int_t ap, Int_t zt, Int_t at)
Double_t PotentialPocketRadius(Double_t l)
void SetEntranceChannel(const KVNucleus &proj, const KVNucleus &targ)
(Re)set entrance channel to calculate
static Double_t delta_bar_Myers(Int_t Z, Int_t A)
delta_bar, Eq.(8) in W.D. Myers, Phys. Lett. B 30, 451 (1969)
static Double_t TKESymFiss(Int_t Z, Int_t A)
Double_t PotentialMaximumRadius(Double_t l)
Double_t ProxPot(Double_t *r, Double_t *)
Double_t VC(Double_t *r, Double_t *)
KVWilckeReactionParameters()
Default constructor.
Numerical derivative of a TF1.
virtual void SetNpx(Int_t npx=100)
virtual void SetParName(Int_t ipar, const char *name)
virtual Double_t Eval(Double_t x, Double_t y=0, Double_t z=0, Double_t t=0) const
RVec< PromoteTypes< T0, T1 > > pow(const T0 &x, const RVec< T1 > &v)
RooArgSet S(Args_t &&... args)
constexpr Double_t RadToDeg()
#define R1(v, w, x, y, z, i)
#define R2(v, w, x, y, z, i)