nucleardatapy 0.2.1__py3-none-any.whl → 1.0.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- nucleardatapy/__init__.py +3 -1
- nucleardatapy/astro/setup_gw.py +18 -18
- nucleardatapy/astro/setup_mr.py +123 -33
- nucleardatapy/astro/setup_mup.py +10 -10
- nucleardatapy/corr/setup_EsymDen.py +0 -5
- nucleardatapy/corr/setup_EsymLsym.py +50 -17
- nucleardatapy/corr/setup_KsatQsat.py +170 -69
- nucleardatapy/create_folder.py +2 -2
- nucleardatapy/crust/setup_crust.py +364 -126
- nucleardatapy/data/astro/HESS/J1731-347.dat +4 -0
- nucleardatapy/data/astro/NICER/J0030+0451.dat +6 -6
- nucleardatapy/data/astro/NICER/J0437-4715.dat +4 -3
- nucleardatapy/data/astro/NICER/J0614-3329.dat +4 -0
- nucleardatapy/data/astro/NICER/J0740+6620.dat +5 -4
- nucleardatapy/data/hnuclei/1991-2L-Yamamoto.csv +6 -0
- nucleardatapy/data/hnuclei/2013-2L-Ahn.csv +1 -1
- nucleardatapy/data/hnuclei/2019-2L-Ekawa.csv +7 -0
- nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-Av18-E2A-NM.dat +8 -8
- nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-414-E2A.dat +21 -0
- nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-414-TD.dat +22 -0
- nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-450-E2A.dat +20 -0
- nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-450-TD.dat +22 -0
- nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-500-E2A.dat +23 -0
- nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-500-TD.dat +22 -0
- nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-414-E2A.dat +15 -0
- nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-414-TD.dat +21 -0
- nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-450-E2A.dat +15 -0
- nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-450-TD.dat +21 -0
- nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-500-E2A.dat +20 -0
- nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-500-TD.dat +20 -0
- nucleardatapy/data/matter/micro/2024-ABI-NM-DeltaNNLO450.dat +28 -0
- nucleardatapy/data/matter/micro/2024-ABI-NM-DeltaNNLO500.dat +28 -0
- nucleardatapy/data/matter/micro/2024-ABI-NM-DeltaNNLOgo394.dat +28 -0
- nucleardatapy/data/matter/micro/2024-ABI-NM-DeltaNNLOgo450.dat +28 -0
- nucleardatapy/data/matter/micro/2024-ABI-NM-NNLOsat.dat +28 -0
- nucleardatapy/data/matter/micro/2024-ABI-SM-DeltaNNLO450.dat +28 -0
- nucleardatapy/data/matter/micro/2024-ABI-SM-DeltaNNLO500.dat +28 -0
- nucleardatapy/data/matter/micro/2024-ABI-SM-DeltaNNLOgo394.dat +28 -0
- nucleardatapy/data/matter/micro/2024-ABI-SM-DeltaNNLOgo450.dat +28 -0
- nucleardatapy/data/matter/micro/2024-ABI-SM-NNLOsat.dat +28 -0
- nucleardatapy/data/matter/nep/NEPESkyrme.dat +2 -3
- nucleardatapy/data/matter/nep/NEPGSkyrme.dat +7 -0
- nucleardatapy/data/matter/nep/NEPSkyrme.dat +4 -2
- nucleardatapy/data/matter/nep/NEPxEFT.dat +8 -0
- nucleardatapy/data/matter/nep/best67DDSkyrme.dat +28 -0
- nucleardatapy/data/matter/nep/best90DDSkyrme.dat +46 -0
- nucleardatapy/data/matter/nep/best95DDSkyrme.dat +54 -0
- nucleardatapy/data/matter/pheno/ESkyrme/BSk31-NM.dat +996 -996
- nucleardatapy/data/matter/pheno/ESkyrme/BSk31-SM.dat +991 -991
- nucleardatapy/data/matter/pheno/ESkyrme/BSkG4-NM.dat +1002 -0
- nucleardatapy/data/matter/pheno/ESkyrme/BSkG4-SM.dat +1002 -0
- nucleardatapy/data/matter/pheno/Skyrme/BSkG1-NM.dat +102 -0
- nucleardatapy/data/matter/pheno/Skyrme/BSkG1-SM.dat +102 -0
- nucleardatapy/data/matter/pheno/Skyrme/BSkG2-NM.dat +102 -0
- nucleardatapy/data/matter/pheno/Skyrme/BSkG2-SM.dat +102 -0
- nucleardatapy/env.py +1 -1
- nucleardatapy/eos/__init__.py +4 -3
- nucleardatapy/eos/setupCC.py +429 -0
- nucleardatapy/eos/setup_am.py +39 -14
- nucleardatapy/eos/setup_am_Beq.py +40 -15
- nucleardatapy/eos/setup_am_Leq.py +40 -15
- nucleardatapy/fig/__init__.py +24 -15
- nucleardatapy/fig/astro_setupGW_fig.py +9 -7
- nucleardatapy/fig/astro_setupMR_fig.py +26 -18
- nucleardatapy/fig/astro_setupMasses_fig.py +8 -6
- nucleardatapy/fig/astro_setupMtov_fig.py +10 -6
- nucleardatapy/fig/astro_setupMup_fig.py +9 -7
- nucleardatapy/fig/corr_setupEsymDen_fig.py +22 -9
- nucleardatapy/fig/corr_setupEsymLsym_fig.py +25 -8
- nucleardatapy/fig/corr_setupKsatQsat_fig.py +23 -17
- nucleardatapy/fig/crust_setupCrust_fig.py +11 -9
- nucleardatapy/fig/eos_setupAMBeq_fig.py +641 -156
- nucleardatapy/fig/eos_setupAMLeq_fig.py +53 -50
- nucleardatapy/fig/eos_setupAM_asy_lep_fig.py +373 -0
- nucleardatapy/fig/eos_setupAM_asy_nuc_fig.py +346 -0
- nucleardatapy/fig/eos_setupAM_asy_tot_fig.py +352 -0
- nucleardatapy/fig/eos_setupAM_fig.py +519 -0
- nucleardatapy/fig/eos_setupCC_fig.py +270 -0
- nucleardatapy/fig/hnuc_setupChart_fig.py +19 -16
- nucleardatapy/fig/hnuc_setupRE1LExp_fig.py +15 -5
- nucleardatapy/fig/matter_all_fig.py +971 -0
- nucleardatapy/fig/matter_setupCheck_fig.py +106 -0
- nucleardatapy/fig/matter_setupFFGLep_fig.py +74 -0
- nucleardatapy/fig/matter_setupFFGNuc_fig.py +286 -115
- nucleardatapy/fig/matter_setupHIC_fig.py +107 -67
- nucleardatapy/fig/matter_setupMicroEsym_fig.py +259 -73
- nucleardatapy/fig/matter_setupMicro_LP_fig.py +185 -82
- nucleardatapy/fig/matter_setupMicro_band_fig.py +126 -53
- nucleardatapy/fig/matter_setupMicro_effmass_fig.py +253 -77
- nucleardatapy/fig/matter_setupMicro_err_NM_fig.py +45 -20
- nucleardatapy/fig/matter_setupMicro_fig.py +317 -77
- nucleardatapy/fig/matter_setupMicro_gap_fig.py +237 -100
- nucleardatapy/fig/matter_setupNEPStats_fig.py +106 -0
- nucleardatapy/fig/matter_setupPhenoEsym_fig.py +204 -65
- nucleardatapy/fig/matter_setupPheno_fig.py +395 -93
- nucleardatapy/fig/nuc_setupBEExp_chart_fig.py +93 -73
- nucleardatapy/fig/nuc_setupBEExp_fig.py +97 -87
- nucleardatapy/fig/nuc_setupBETheo_fig.py +114 -81
- nucleardatapy/fig/nuc_setupISGMRExp_fig.py +12 -15
- nucleardatapy/fig/nuc_setupRchExp_fig.py +14 -22
- nucleardatapy/fig/nuc_setupRchTheo_fig.py +37 -40
- nucleardatapy/fig/nuc_setupRnpExp_fig.py +86 -106
- nucleardatapy/fig/nuc_setupRnpTheo_fig.py +105 -94
- nucleardatapy/hello.py +6 -0
- nucleardatapy/hnuc/setup_re1L_exp.py +6 -6
- nucleardatapy/hnuc/setup_re1Xi_exp.py +5 -5
- nucleardatapy/hnuc/setup_re2L_exp.py +36 -13
- nucleardatapy/matter/__init__.py +14 -14
- nucleardatapy/matter/setup_check.py +6 -6
- nucleardatapy/matter/setup_ffg.py +66 -39
- nucleardatapy/matter/setup_hic.py +91 -74
- nucleardatapy/matter/setup_micro.py +2033 -1007
- nucleardatapy/matter/setup_micro_band.py +6 -6
- nucleardatapy/matter/setup_micro_esym.py +56 -54
- nucleardatapy/matter/setup_micro_gap.py +24 -17
- nucleardatapy/matter/setup_micro_lp.py +2 -2
- nucleardatapy/matter/setup_nep.py +175 -92
- nucleardatapy/matter/{setup_nep_model_dist.py → setup_nep_stat_model.py} +13 -8
- nucleardatapy/matter/{setup_nep_dist.py → setup_nep_stat_models.py} +12 -8
- nucleardatapy/matter/setup_pheno.py +129 -49
- nucleardatapy/matter/setup_pheno_esym.py +22 -19
- nucleardatapy/nuc/setup_be_exp.py +306 -292
- nucleardatapy/nuc/setup_be_theo.py +288 -105
- nucleardatapy/nuc/setup_isgmr_exp.py +4 -4
- nucleardatapy/nuc/setup_rnp_exp.py +1 -0
- nucleardatapy/nuc/setup_rnp_theo.py +2 -1
- {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.1.dist-info}/METADATA +48 -16
- {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.1.dist-info}/RECORD +157 -124
- {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.1.dist-info}/WHEEL +1 -1
- tests/test_corr_setupKsatQsat.py +3 -1
- tests/test_matter_setupMicro.py +37 -10
- nucleardatapy/data/matter/pheno/ESkyrme/BSkG1-NM.dat +0 -1002
- nucleardatapy/data/matter/pheno/ESkyrme/BSkG1-SM.dat +0 -1002
- nucleardatapy/data/matter/pheno/ESkyrme/BSkG2-NM.dat +0 -1002
- nucleardatapy/data/matter/pheno/ESkyrme/BSkG2-SM.dat +0 -1002
- nucleardatapy/fig/eos_setupAM_e_asy_lep_fig.py +0 -125
- nucleardatapy/fig/eos_setupAM_e_asy_nuc_fig.py +0 -115
- nucleardatapy/fig/eos_setupAM_e_asy_tot_fig.py +0 -117
- nucleardatapy/fig/eos_setupAM_e_fig.py +0 -173
- nucleardatapy/fig/matter_ENM_fig.py +0 -128
- nucleardatapy/fig/matter_ESM_fig.py +0 -140
- nucleardatapy/fig/matter_Esym_fig.py +0 -134
- nucleardatapy/fig/matter_cs2_fig.py +0 -83
- nucleardatapy/fig/matter_preNM_fig.py +0 -146
- nucleardatapy/fig/matter_preSM_fig.py +0 -144
- nucleardatapy/fig/matter_setupNEPModelDist_fig.py +0 -68
- /nucleardatapy/data/LandauParameters/micro/{2006-IBHF-NM-AV18.dat → 2006-EBHF-NM-AV18.dat} +0 -0
- /nucleardatapy/data/LandauParameters/micro/{2006-IBHF-SM-AV18.dat → 2006-EBHF-SM-AV18.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-BSK14.dat → 2022-GMRS-BSK14.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-BSK16.dat → 2022-GMRS-BSK16.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-DHSL59.dat → 2022-GMRS-DHSL59.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-DHSL69.dat → 2022-GMRS-DHSL69.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-F0.dat → 2022-GMRS-F0.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-H1.dat → 2022-GMRS-H1.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-H2.dat → 2022-GMRS-H2.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-H3.dat → 2022-GMRS-H3.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-H4.dat → 2022-GMRS-H4.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-H5.dat → 2022-GMRS-H5.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-H7.dat → 2022-GMRS-H7.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-LNS5.dat → 2022-GMRS-LNS5.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-RATP.dat → 2022-GMRS-RATP.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-SGII.dat → 2022-GMRS-SGII.dat} +0 -0
- /nucleardatapy/data/crust/{2022-crustGMRS-SLY5.dat → 2022-GMRS-SLY5.dat} +0 -0
- /nucleardatapy/data/matter/micro/{2013-QMC-NM.dat → 2013-MBPT-NM.dat} +0 -0
- /nucleardatapy/data/{NeutronSkin/ddrhNskin-208Pb.dat → rnp/ddrhrnp-208Pb.dat} +0 -0
- /nucleardatapy/data/{NeutronSkin/ddrhNskin-48Ca.dat → rnp/ddrhrnp-48Ca.dat} +0 -0
- /nucleardatapy/data/{NeutronSkin/nlrhNskin-208Pb.dat → rnp/nlrhrnp-208Pb.dat} +0 -0
- /nucleardatapy/data/{NeutronSkin/nlrhNskin-48Ca.dat → rnp/nlrhrnp-48Ca.dat} +0 -0
- /nucleardatapy/data/{NeutronSkin/skyrmeNskin-208Pb.dat → rnp/skyrmernp-208Pb.dat} +0 -0
- /nucleardatapy/data/{NeutronSkin/skyrmeNskin-48Ca.dat → rnp/skyrmernp-48Ca.dat} +0 -0
- {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.1.dist-info}/licenses/LICENSE +0 -0
- {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.1.dist-info}/top_level.txt +0 -0
nucleardatapy/__init__.py
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"""
|
|
2
|
-
This
|
|
2
|
+
This toolkit is a community-driven tool providing data for nuclear and astro-nuclear research community. It contains microscopic, phenomenological, experimental and observational data for the understanding of neutron stars.
|
|
3
|
+
To get some help, please contact: nucleardatapy@gmail.com.
|
|
3
4
|
"""
|
|
4
5
|
from nucleardatapy.cst import *
|
|
5
6
|
from nucleardatapy.env import *
|
|
6
7
|
from nucleardatapy.param import *
|
|
8
|
+
from nucleardatapy.hello import *
|
|
7
9
|
from nucleardatapy.create_folder import *
|
|
8
10
|
#
|
|
9
11
|
from nucleardatapy.matter import *
|
nucleardatapy/astro/setup_gw.py
CHANGED
|
@@ -95,7 +95,7 @@ class setupGW():
|
|
|
95
95
|
# fix `file_in` and some properties of the object
|
|
96
96
|
#
|
|
97
97
|
if source.lower()=='gw170817':
|
|
98
|
-
file_in = nuda.param.path_data+'astro/
|
|
98
|
+
file_in = nuda.param.path_data+'astro/GW/GW170817.dat'
|
|
99
99
|
if hyp==1:
|
|
100
100
|
#: Attribute providing the full reference to the paper to be citted.
|
|
101
101
|
self.ref='B.P. Abbott, R. Abbott, T.D. Abbott, et al., PRL 119, 161101 (2017)'
|
|
@@ -137,7 +137,7 @@ class setupGW():
|
|
|
137
137
|
self.note = "write here notes about this observation."
|
|
138
138
|
self.marker = 's'
|
|
139
139
|
elif source.lower()=='gw190425':
|
|
140
|
-
file_in = nuda.param.path_data+'astro/
|
|
140
|
+
file_in = nuda.param.path_data+'astro/GW/GW190425.dat'
|
|
141
141
|
if hyp==1:
|
|
142
142
|
#: Attribute providing the full reference to the paper to be citted.
|
|
143
143
|
self.ref='B.P. Abbott, R. Abbott, T.D. Abbott, S. Abraham, et al., ApJL 892, L3 (2020)'
|
|
@@ -165,12 +165,12 @@ class setupGW():
|
|
|
165
165
|
if int(ele[0]) == hyp:
|
|
166
166
|
self.mchirp = float(ele[1])
|
|
167
167
|
self.mchirp_sig_up = float(ele[2])
|
|
168
|
-
self.
|
|
169
|
-
self.
|
|
168
|
+
self.mchirp_sig_lo = float(ele[3])
|
|
169
|
+
self.q_lo = float(ele[4])
|
|
170
170
|
self.q_up = float(ele[5])
|
|
171
171
|
self.lam = float(ele[6])
|
|
172
172
|
self.lam_sig_up = float(ele[7])
|
|
173
|
-
self.
|
|
173
|
+
self.lam_sig_lo = float(ele[8])
|
|
174
174
|
self.latexCite = ele[9].replace('\n','').replace(' ','')
|
|
175
175
|
#
|
|
176
176
|
if nuda.env.verb: print("Exit setupGW()")
|
|
@@ -188,10 +188,10 @@ class setupGW():
|
|
|
188
188
|
print(" source: ",self.source)
|
|
189
189
|
print(" hyp: ",self.hyp)
|
|
190
190
|
print(" m_chirp: ",self.mchirp)
|
|
191
|
-
print(" sig(m_chirp): ",self.mchirp_sig_up,self.
|
|
192
|
-
print("
|
|
191
|
+
print(" sig(m_chirp): ",self.mchirp_sig_up,self.mchirp_sig_lo)
|
|
192
|
+
print(" q_lo, q_up: ",self.q_lo, self.q_up)
|
|
193
193
|
print(" lambda: ",self.lam)
|
|
194
|
-
print(" sig(lambda): ",self.lam_sig_up,self.
|
|
194
|
+
print(" sig(lambda): ",self.lam_sig_up,self.lam_sig_lo)
|
|
195
195
|
print(" latexCite: ",self.latexCite)
|
|
196
196
|
print(" ref: ",self.ref)
|
|
197
197
|
print(" label: ",self.label)
|
|
@@ -210,7 +210,7 @@ class setupGW():
|
|
|
210
210
|
if nuda.env.verb: print("Enter print_latex()")
|
|
211
211
|
#
|
|
212
212
|
if nuda.env.verb_latex:
|
|
213
|
-
print(rf"- table: {self.source} & {self.hyp} & ${self.mchirp:.4f}^{{{+self.mchirp_sig_up}}}_{{{-self.
|
|
213
|
+
print(rf"- table: {self.source} & {self.hyp} & ${self.mchirp:.4f}^{{{+self.mchirp_sig_up}}}_{{{-self.mchirp_sig_lo}}}$ & $[{self.q_lo}:{self.q_up}]$ & ${{{self.lam:.2f}}}^{{{+self.lam_sig_up}}}_{{{-self.lam_sig_lo}}}$ & \cite{{{self.latexCite}}} \\\\")
|
|
214
214
|
else:
|
|
215
215
|
print(rf"- No table for source {self.source}. To get table, write 'verb_table = True' in env.py.")
|
|
216
216
|
#
|
|
@@ -236,14 +236,14 @@ class setupGW():
|
|
|
236
236
|
#
|
|
237
237
|
self.mchirp = None
|
|
238
238
|
self.mchirp_sig_up = None
|
|
239
|
-
self.
|
|
240
|
-
self.
|
|
239
|
+
self.mchirp_sig_lo = None
|
|
240
|
+
self.q_lo = None
|
|
241
241
|
self.q_up = None
|
|
242
242
|
self.lam = None
|
|
243
243
|
#: Attribute the lower bound of the tidal deformability for the source.
|
|
244
244
|
self.lambda_sig_up = None
|
|
245
245
|
#: Attribute the upper bound of the tidal deformability for the source.
|
|
246
|
-
self.
|
|
246
|
+
self.lambda_sig_lo = None
|
|
247
247
|
#
|
|
248
248
|
if nuda.env.verb: print("Exit init_self()")
|
|
249
249
|
#
|
|
@@ -279,9 +279,9 @@ class setupGWAverage():
|
|
|
279
279
|
for hyp in hyps:
|
|
280
280
|
gw = nuda.astro.setupGW( source = source, hyp = hyp )
|
|
281
281
|
#gw.print_outputs( )
|
|
282
|
-
|
|
282
|
+
lamlo = gw.lam - 3*gw.lam_sig_lo
|
|
283
283
|
lamup = gw.lam + 3*gw.lam_sig_up
|
|
284
|
-
if
|
|
284
|
+
if lamlo < lammin: lammin = lamlo
|
|
285
285
|
if lamup > lammax: lammax = lamup
|
|
286
286
|
# construct the distribution of observations in ay
|
|
287
287
|
ax = np.linspace(lammin,lammax,300)
|
|
@@ -290,7 +290,7 @@ class setupGWAverage():
|
|
|
290
290
|
#print('hyp:',hyp)
|
|
291
291
|
gw = nuda.astro.setupGW( source = source, hyp = hyp )
|
|
292
292
|
#gw.print_outputs( )
|
|
293
|
-
ay += gauss(ax,gw.lam,gw.lam_sig_up,gw.
|
|
293
|
+
ay += gauss(ax,gw.lam,gw.lam_sig_up,gw.lam_sig_lo)
|
|
294
294
|
# determine the centroid and standard deviation from the distribution of obs.
|
|
295
295
|
nor = sum( ay )
|
|
296
296
|
cen = sum( ay*ax )
|
|
@@ -355,13 +355,13 @@ class setupGWAverage():
|
|
|
355
355
|
#
|
|
356
356
|
return self
|
|
357
357
|
|
|
358
|
-
def gauss( ax, lam, sig_up,
|
|
358
|
+
def gauss( ax, lam, sig_up, sig_lo ):
|
|
359
359
|
fac = math.sqrt( 2*math.pi )
|
|
360
360
|
gauss = []
|
|
361
361
|
for x in ax:
|
|
362
362
|
if x < lam:
|
|
363
|
-
z = ( x - lam ) /
|
|
364
|
-
norm =
|
|
363
|
+
z = ( x - lam ) / sig_lo
|
|
364
|
+
norm = sig_lo * fac
|
|
365
365
|
else:
|
|
366
366
|
z = ( x - lam ) / sig_up
|
|
367
367
|
norm = sig_up * fac
|
nucleardatapy/astro/setup_mr.py
CHANGED
|
@@ -13,7 +13,7 @@ def mr_sources():
|
|
|
13
13
|
#
|
|
14
14
|
if nuda.env.verb: print("\nEnter astro_mr()")
|
|
15
15
|
#
|
|
16
|
-
sources = [ 'J0030+0451', 'J0740+6620', 'J0437-4715' ]
|
|
16
|
+
sources = [ 'J0030+0451', 'J0740+6620', 'J0437-4715', 'J0614-3329', 'J1731-347' ]
|
|
17
17
|
#
|
|
18
18
|
#print('sources available in the toolkit:',sources)
|
|
19
19
|
sources_lower = [ item.lower() for item in sources ]
|
|
@@ -39,9 +39,13 @@ def mr_obss( source ):
|
|
|
39
39
|
if source.lower()=='j0030+0451':
|
|
40
40
|
obss = [ 1, 2, 3, 4 ]
|
|
41
41
|
elif source.lower()=='j0740+6620':
|
|
42
|
-
obss = [ 1, 2 ]
|
|
42
|
+
obss = [ 1, 2, 3 ]
|
|
43
43
|
elif source.lower()=='j0437-4715':
|
|
44
44
|
obss = [ 1 ]
|
|
45
|
+
elif source.lower()=='j0614-3329':
|
|
46
|
+
obss = [ 1 ]
|
|
47
|
+
elif source.lower()=='j1731-347':
|
|
48
|
+
obss = [ 1 ]
|
|
45
49
|
#
|
|
46
50
|
#print('Observations available in the toolkit:',obss)
|
|
47
51
|
#
|
|
@@ -96,7 +100,7 @@ class setupMR():
|
|
|
96
100
|
file_in = nuda.param.path_data+'astro/NICER/J0030+0451.dat'
|
|
97
101
|
if obs==1:
|
|
98
102
|
#: Attribute providing the full reference to the paper to be citted.
|
|
99
|
-
self.ref='M.C. Miller, F.K. Lamb, A.J. Dittmann, aet al., ApJL 887, L24 (2019)
|
|
103
|
+
self.ref='M.C. Miller, F.K. Lamb, A.J. Dittmann, aet al., ApJL 887, L24 (2019)'
|
|
100
104
|
#: Attribute providing the label the data is references for figures.
|
|
101
105
|
self.label = 'J0030 Miller 2019'
|
|
102
106
|
#: Attribute providing additional notes about the observation.
|
|
@@ -104,7 +108,7 @@ class setupMR():
|
|
|
104
108
|
self.marker = 'o'
|
|
105
109
|
elif obs==2:
|
|
106
110
|
#: Attribute providing the full reference to the paper to be citted.
|
|
107
|
-
self.ref='T.E. Riley, A.L. Watts, S. Bogdanov, P.S. Ray, et al., ApJ 887, L21 (2019)
|
|
111
|
+
self.ref='T.E. Riley, A.L. Watts, S. Bogdanov, P.S. Ray, et al., ApJ 887, L21 (2019)'
|
|
108
112
|
#: Attribute providing the label the data is references for figures.
|
|
109
113
|
self.label = 'J0030 Riley 2019'
|
|
110
114
|
#: Attribute providing additional notes about the observation.
|
|
@@ -112,7 +116,7 @@ class setupMR():
|
|
|
112
116
|
self.marker = 's'
|
|
113
117
|
elif obs==3:
|
|
114
118
|
#: Attribute providing the full reference to the paper to be citted.
|
|
115
|
-
self.ref='S. Vinciguerra, T. Salmi, A.L. Watts, D. Choudhury, et al., ApJ 961, 62 (2024)
|
|
119
|
+
self.ref='S. Vinciguerra, T. Salmi, A.L. Watts, D. Choudhury, et al., ApJ 961, 62 (2024)'
|
|
116
120
|
#: Attribute providing the label the data is references for figures.
|
|
117
121
|
self.label = 'J0030 Vinciguerra 2024a'
|
|
118
122
|
#: Attribute providing additional notes about the observation.
|
|
@@ -120,7 +124,7 @@ class setupMR():
|
|
|
120
124
|
self.marker = 'x'
|
|
121
125
|
elif obs==4:
|
|
122
126
|
#: Attribute providing the full reference to the paper to be citted.
|
|
123
|
-
self.ref='S. Vinciguerra, T. Salmi, A.L. Watts, D. Choudhury, et al., ApJ 961, 62 (2024)
|
|
127
|
+
self.ref='S. Vinciguerra, T. Salmi, A.L. Watts, D. Choudhury, et al., ApJ 961, 62 (2024)'
|
|
124
128
|
#: Attribute providing the label the data is references for figures.
|
|
125
129
|
self.label = 'J0030 Vinciguerra 2024b'
|
|
126
130
|
#: Attribute providing additional notes about the observation.
|
|
@@ -130,7 +134,7 @@ class setupMR():
|
|
|
130
134
|
file_in = nuda.param.path_data+'astro/NICER/J0740+6620.dat'
|
|
131
135
|
if obs==1:
|
|
132
136
|
#: Attribute providing the full reference to the paper to be citted.
|
|
133
|
-
self.ref='M.C. Miller, F.K. Lamb, A.J. Dittmann, S. Bogdanov, et al., ApJL 918, L28 (2021)
|
|
137
|
+
self.ref='M.C. Miller, F.K. Lamb, A.J. Dittmann, S. Bogdanov, et al., ApJL 918, L28 (2021)'
|
|
134
138
|
#: Attribute providing the label the data is references for figures.
|
|
135
139
|
self.label = 'J0740 Miller 2021'
|
|
136
140
|
#: Attribute providing additional notes about the observation.
|
|
@@ -138,22 +142,50 @@ class setupMR():
|
|
|
138
142
|
self.marker = 'o'
|
|
139
143
|
elif obs==2:
|
|
140
144
|
#: Attribute providing the full reference to the paper to be citted.
|
|
141
|
-
self.ref='T.E. Riley, A.L. Watts, P.S. Ray, S. Bogdanov, et al., ApJL 918, L27 (2021)
|
|
145
|
+
self.ref='T.E. Riley, A.L. Watts, P.S. Ray, S. Bogdanov, et al., ApJL 918, L27 (2021)'
|
|
142
146
|
#: Attribute providing the label the data is references for figures.
|
|
143
147
|
self.label = 'J0740 Riley 2021'
|
|
144
148
|
#: Attribute providing additional notes about the observation.
|
|
145
149
|
self.note = "write notes about this observation."
|
|
146
150
|
self.marker = 's'
|
|
151
|
+
elif obs==3:
|
|
152
|
+
#: Attribute providing the full reference to the paper to be citted.
|
|
153
|
+
self.ref='T. Salmi, D. Choudhury, Y. Kini, T.E. Riley et al., ApJ 974, 294 (2024)'
|
|
154
|
+
#: Attribute providing the label the data is references for figures.
|
|
155
|
+
self.label = 'J0740 Salmi 2024'
|
|
156
|
+
#: Attribute providing additional notes about the observation.
|
|
157
|
+
self.note = "write notes about this observation."
|
|
158
|
+
self.marker = 's'
|
|
147
159
|
elif source.lower()=='j0437-4715':
|
|
148
160
|
file_in = nuda.param.path_data+'astro/NICER/J0437-4715.dat'
|
|
149
161
|
if obs==1:
|
|
150
162
|
#: Attribute providing the full reference to the paper to be citted.
|
|
151
|
-
self.ref='D. Choudhury, T. Salmi, S. Vinciguerra, T.E. Riley, et al., ApJL 971, L20 (2024)
|
|
163
|
+
self.ref='D. Choudhury, T. Salmi, S. Vinciguerra, T.E. Riley, et al., ApJL 971, L20 (2024)'
|
|
152
164
|
#: Attribute providing the label the data is references for figures.
|
|
153
165
|
self.label = 'J0437 Choudhury 2024'
|
|
154
166
|
#: Attribute providing additional notes about the observation.
|
|
155
167
|
self.note = "write notes about this observation."
|
|
156
168
|
self.marker = 'o'
|
|
169
|
+
elif source.lower()=='j0614-3329':
|
|
170
|
+
file_in = nuda.param.path_data+'astro/NICER/J0614-3329.dat'
|
|
171
|
+
if obs==1:
|
|
172
|
+
#: Attribute providing the full reference to the paper to be citted.
|
|
173
|
+
self.ref='L. Mauviard, S. Guillot, T. Salmi, D. Choudhury, et al., arXiv:2506.14883'
|
|
174
|
+
#: Attribute providing the label the data is references for figures.
|
|
175
|
+
self.label = 'J0614 Mauviard 2025'
|
|
176
|
+
#: Attribute providing additional notes about the observation.
|
|
177
|
+
self.note = "write notes about this observation."
|
|
178
|
+
self.marker = 'o'
|
|
179
|
+
elif source.lower()=='j1731-347':
|
|
180
|
+
file_in = nuda.param.path_data+'astro/HESS/J1731-347.dat'
|
|
181
|
+
if obs==1:
|
|
182
|
+
#: Attribute providing the full reference to the paper to be citted.
|
|
183
|
+
self.ref='V. Doroshenko, V. Suleimanov, G. P\"uhlhofer and A. Santangelo, Nature Astronomy volume 6, pages 1444–1451 (2022)'
|
|
184
|
+
#: Attribute providing the label the data is references for figures.
|
|
185
|
+
self.label = 'J1731 HESS 2022'
|
|
186
|
+
#: Attribute providing additional notes about the observation.
|
|
187
|
+
self.note = "write notes about this observation."
|
|
188
|
+
self.marker = 's'
|
|
157
189
|
#
|
|
158
190
|
#: Attribute the observational mass of the source.
|
|
159
191
|
self.mass = None
|
|
@@ -176,24 +208,49 @@ class setupMR():
|
|
|
176
208
|
for line in file:
|
|
177
209
|
if '#' in line: continue
|
|
178
210
|
ele = line.split(',')
|
|
179
|
-
#print('ele[0]:',ele[0],' obs:',obs
|
|
211
|
+
#print('ele[0]:',ele[0],' obs:',obs)
|
|
212
|
+
#print('ele[:]:',ele[:])
|
|
180
213
|
if int(ele[0]) == obs:
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
214
|
+
try:
|
|
215
|
+
self.rad = float(ele[1])
|
|
216
|
+
self.rad_sig_up = float(ele[2])
|
|
217
|
+
self.rad_sig_lo = float(ele[3])
|
|
218
|
+
except ValueError:
|
|
219
|
+
self.rad = 0.0
|
|
220
|
+
self.rad_sig_up = 0.0
|
|
221
|
+
self.rad_sig_lo = 0.0
|
|
222
|
+
try:
|
|
223
|
+
self.mass = float(ele[4])
|
|
224
|
+
self.mass_sig_up = float(ele[5])
|
|
225
|
+
self.mass_sig_lo = float(ele[6])
|
|
226
|
+
except ValueError:
|
|
227
|
+
self.mass = 0.0
|
|
228
|
+
self.mass_sig_up = 0.0
|
|
229
|
+
self.mass_sig_lo = 0.0
|
|
230
|
+
#print('ele[7]:',ele[7],isinstance(ele[7].replace(' ',''), (int, float)),' len:',len(ele[7]))
|
|
231
|
+
#print('ele[10]:',ele[10],isinstance(ele[10].replace(' ',''), (int, float)))
|
|
232
|
+
try:
|
|
189
233
|
self.comp = float(ele[7])
|
|
190
234
|
self.comp_sig_up = float(ele[8])
|
|
191
235
|
self.comp_sig_lo = float(ele[9])
|
|
192
|
-
|
|
236
|
+
except ValueError:
|
|
193
237
|
self.comp = 0.0
|
|
194
|
-
self.comp_sig_up =
|
|
195
|
-
self.comp_sig_lo =
|
|
196
|
-
|
|
238
|
+
self.comp_sig_up = 0.0
|
|
239
|
+
self.comp_sig_lo = 0.0
|
|
240
|
+
try:
|
|
241
|
+
self.spin = float(ele[10])
|
|
242
|
+
except ValueError:
|
|
243
|
+
self.spin = 0.0
|
|
244
|
+
# if len(ele[7])>1:
|
|
245
|
+
# self.comp = float(ele[7])
|
|
246
|
+
# self.comp_sig_up = float(ele[8])
|
|
247
|
+
# self.comp_sig_lo = float(ele[9])
|
|
248
|
+
# else:
|
|
249
|
+
# self.comp = 0.0
|
|
250
|
+
# self.comp_sig_up = 1.0
|
|
251
|
+
# self.comp_sig_lo = 1.0
|
|
252
|
+
self.latexCite = ele[11].replace('\n','').replace(' ','')
|
|
253
|
+
#print('outputs:',self.rad,self.mass,self.comp,self.spin,self.latexCite)
|
|
197
254
|
#
|
|
198
255
|
# compute compactness
|
|
199
256
|
#
|
|
@@ -310,8 +367,8 @@ class setupMRAverage():
|
|
|
310
367
|
# construct the distribution of observations in ay
|
|
311
368
|
ar = np.linspace(rmin,rmax,300); ar=np.array( ar )
|
|
312
369
|
am = np.linspace(mmin,mmax,300); am=np.array( am )
|
|
313
|
-
print('cmax:',cmax)
|
|
314
|
-
print('cmin:',cmin)
|
|
370
|
+
#print('cmax:',cmax)
|
|
371
|
+
#print('cmin:',cmin)
|
|
315
372
|
ac = np.linspace(cmin,cmax,300); ac=np.array( ac )
|
|
316
373
|
#ac = 0.5 * nuda.cst.rshsol_si / 1.e3 * am / ar
|
|
317
374
|
ayr = np.zeros(300); ayr=np.array( ayr )
|
|
@@ -333,12 +390,36 @@ class setupMRAverage():
|
|
|
333
390
|
stdr = sum ( ayr*ar**2 )
|
|
334
391
|
stdm = sum ( aym*am**2 )
|
|
335
392
|
stdc = sum ( ayc*ac**2 )
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
393
|
+
try:
|
|
394
|
+
if nor != 0.0:
|
|
395
|
+
self.rad_cen = cenr / nor
|
|
396
|
+
self.rad_sig_std = round( math.sqrt( stdr/nor - self.rad_cen**2 ), 3 )
|
|
397
|
+
else:
|
|
398
|
+
self.rad_cen = 0.0
|
|
399
|
+
self.rad_sig_std = 0.0
|
|
400
|
+
except ZeroDivisionError:
|
|
401
|
+
self.rad_cen = 0.0
|
|
402
|
+
self.rad_sig_std = 0.0
|
|
403
|
+
try:
|
|
404
|
+
if nom != 0.0:
|
|
405
|
+
self.mass_cen = cenm / nom
|
|
406
|
+
self.mass_sig_std = round( math.sqrt( stdm/nom - self.mass_cen**2 ), 3 )
|
|
407
|
+
else:
|
|
408
|
+
self.mass_cen = 0.0
|
|
409
|
+
self.mass_sig_std = 0.0
|
|
410
|
+
except ZeroDivisionError:
|
|
411
|
+
self.mass_cen = 0.0
|
|
412
|
+
self.mass_sig_std = 0.0
|
|
413
|
+
try:
|
|
414
|
+
if noc != 0.0:
|
|
415
|
+
self.comp_cen = cenc / noc
|
|
416
|
+
self.comp_sig_std = round( math.sqrt( stdc/noc - self.comp_cen**2 ), 3 )
|
|
417
|
+
else:
|
|
418
|
+
self.comp_cen = 0.0
|
|
419
|
+
self.comp_sig_std = 0.0
|
|
420
|
+
except ZeroDivisionError:
|
|
421
|
+
self.comp_cen = 0.0
|
|
422
|
+
self.comp_sig_std = 0.0
|
|
342
423
|
self.rad_cen = round( self.rad_cen, 3)
|
|
343
424
|
self.mass_cen = round( self.mass_cen, 3)
|
|
344
425
|
self.comp_cen = round( self.comp_cen, 3)
|
|
@@ -389,11 +470,20 @@ def gauss( ax, cent, sig_up, sig_lo ):
|
|
|
389
470
|
gauss = []
|
|
390
471
|
for x in ax:
|
|
391
472
|
if x < cent:
|
|
392
|
-
|
|
473
|
+
if sig_lo != 0.0:
|
|
474
|
+
z = ( x - cent ) / sig_lo
|
|
475
|
+
else:
|
|
476
|
+
z= x * 0.0
|
|
393
477
|
norm = sig_lo * fac
|
|
394
478
|
else:
|
|
395
|
-
|
|
479
|
+
if sig_up != 0.0:
|
|
480
|
+
z = ( x - cent ) / sig_up
|
|
481
|
+
else:
|
|
482
|
+
z= x * 0.0
|
|
396
483
|
norm = sig_up * fac
|
|
397
|
-
|
|
484
|
+
if norm != 0.0:
|
|
485
|
+
gauss.append( math.exp( -0.5*z**2 ) / norm )
|
|
486
|
+
else:
|
|
487
|
+
gauss.append( 0.0 )
|
|
398
488
|
return gauss
|
|
399
489
|
|
nucleardatapy/astro/setup_mup.py
CHANGED
|
@@ -141,7 +141,7 @@ class setupMup():
|
|
|
141
141
|
#: Attribute the positive uncertainty.
|
|
142
142
|
self.sig_up = None
|
|
143
143
|
#: Attribute the negative uncertainty.
|
|
144
|
-
self.
|
|
144
|
+
self.sig_lo = None
|
|
145
145
|
#: Attribute latexCite.
|
|
146
146
|
self.latexCite = None
|
|
147
147
|
#
|
|
@@ -156,7 +156,7 @@ class setupMup():
|
|
|
156
156
|
if int(ele[0]) == hyp:
|
|
157
157
|
self.mup = float(ele[2])
|
|
158
158
|
self.sig_up = float(ele[3])
|
|
159
|
-
self.
|
|
159
|
+
self.sig_lo = float(ele[4])
|
|
160
160
|
self.latexCite = ele[5].replace('\n','').replace(' ','')
|
|
161
161
|
#
|
|
162
162
|
if nuda.env.verb: print("Exit setupMup()")
|
|
@@ -173,7 +173,7 @@ class setupMup():
|
|
|
173
173
|
print(" source: ",self.source)
|
|
174
174
|
print(" hyp:",self.hyp)
|
|
175
175
|
print(" mup:",self.mup)
|
|
176
|
-
print(" sigma(mup):",self.sig_up,self.
|
|
176
|
+
print(" sigma(mup):",self.sig_up,self.sig_lo)
|
|
177
177
|
print(" latexCite:",self.latexCite)
|
|
178
178
|
print(" ref: ",self.ref)
|
|
179
179
|
print(" label: ",self.label)
|
|
@@ -190,7 +190,7 @@ class setupMup():
|
|
|
190
190
|
if nuda.env.verb: print("Enter print_latex()")
|
|
191
191
|
#
|
|
192
192
|
if nuda.env.verb_latex:
|
|
193
|
-
print(rf"- table: {self.source} & {self.hyp} & ${self.mup:.2f}^{{{+self.sig_up}}}_{{{-self.
|
|
193
|
+
print(rf"- table: {self.source} & {self.hyp} & ${self.mup:.2f}^{{{+self.sig_up}}}_{{{-self.sig_lo}}}$ & \cite{{{self.latexCite}}} \\\\")
|
|
194
194
|
else:
|
|
195
195
|
print(rf"- No table for source {self.source}. To get table, write 'verb_latex = True' in env.py.")
|
|
196
196
|
#
|
|
@@ -228,9 +228,9 @@ class setupMupAverage():
|
|
|
228
228
|
for hyp in hyps:
|
|
229
229
|
mup = nuda.setupMup( source = source, hyp = hyp )
|
|
230
230
|
#mup.print_outputs( )
|
|
231
|
-
|
|
231
|
+
muplo = mup.mup - 3*mup.sig_lo
|
|
232
232
|
mupup = mup.mup + 3*mup.sig_up
|
|
233
|
-
if
|
|
233
|
+
if muplo < mupmin: mupmin = muplo
|
|
234
234
|
if mupup > mupmax: mupmax = mupup
|
|
235
235
|
# construct the distribution of observations in ay
|
|
236
236
|
ax = np.linspace(mupmin,mupmax,300)
|
|
@@ -240,7 +240,7 @@ class setupMupAverage():
|
|
|
240
240
|
#print('hyp:',hyp)
|
|
241
241
|
mup = nuda.setupMup( source = source, hyp = hyp )
|
|
242
242
|
#mup.print_outputs( )
|
|
243
|
-
ay += gauss(ax,mup.mup,mup.sig_up,mup.
|
|
243
|
+
ay += gauss(ax,mup.mup,mup.sig_up,mup.sig_lo)
|
|
244
244
|
# determine the centroid and standard deviation from the distribution of obs.
|
|
245
245
|
nor = sum( ay )
|
|
246
246
|
cen = sum( ay*ax )
|
|
@@ -288,13 +288,13 @@ class setupMupAverage():
|
|
|
288
288
|
if nuda.env.verb: print("Exit print_latex()")
|
|
289
289
|
#
|
|
290
290
|
|
|
291
|
-
def gauss( ax, mass, sig_up,
|
|
291
|
+
def gauss( ax, mass, sig_up, sig_lo ):
|
|
292
292
|
fac = math.sqrt( 2*math.pi )
|
|
293
293
|
gauss = []
|
|
294
294
|
for x in ax:
|
|
295
295
|
if x < mass:
|
|
296
|
-
z = ( x - mass ) /
|
|
297
|
-
norm =
|
|
296
|
+
z = ( x - mass ) / sig_lo
|
|
297
|
+
norm = sig_lo * fac
|
|
298
298
|
else:
|
|
299
299
|
z = ( x - mass ) / sig_up
|
|
300
300
|
norm = sig_up * fac
|
|
@@ -3,13 +3,8 @@ import sys
|
|
|
3
3
|
import numpy as np # 1.15.0
|
|
4
4
|
import random
|
|
5
5
|
|
|
6
|
-
#nucleardatapy_tk = os.getenv('NUCLEARDATAPY_TK')
|
|
7
|
-
#sys.path.insert(0, nucleardatapy_tk)
|
|
8
|
-
|
|
9
6
|
import nucleardatapy as nuda
|
|
10
7
|
|
|
11
|
-
#nsat = 0.16
|
|
12
|
-
|
|
13
8
|
class setupEsymDen():
|
|
14
9
|
"""
|
|
15
10
|
Instantiate the values of Esym and Lsym from the constraint.
|
|
@@ -12,17 +12,19 @@ def EsymLsym_constraints():
|
|
|
12
12
|
"""
|
|
13
13
|
Return a list of constraints available in this toolkit in the \
|
|
14
14
|
following list: '2009-HIC', '2010-RNP', '2012-FRDM', '2013-NS', \
|
|
15
|
-
'2014-IAS', '2014-IAS+RNP', '2015-POL-
|
|
16
|
-
'2015-POL-
|
|
17
|
-
'2021-PREXII-Reinhard', '2023-PREXII+CREX-Zhang'
|
|
18
|
-
|
|
15
|
+
'2014-IAS', '2014-IAS+RNP', '2015-POL-208Pb', '2015-POL-120Sn', \
|
|
16
|
+
'2015-POL-68Ni', '2017-UG', '2021-PREXII-Reed', \
|
|
17
|
+
'2021-PREXII-Reinhard', '2023-PREXII+CREX-Zhang', \
|
|
18
|
+
'2023-EDF-D4', '2023-EDF-D4-IAS', '2023-EDF-D4-IAS-Rnp'; \
|
|
19
|
+
and print them all on the prompt.
|
|
19
20
|
|
|
20
21
|
:return: The list of constraints.
|
|
21
22
|
:rtype: list[str].
|
|
22
23
|
"""
|
|
23
24
|
constraints = [ '2009-HIC', '2010-RNP', '2012-FRDM', '2013-NS', '2014-IAS', '2014-IAS+RNP', \
|
|
24
|
-
'2015-POL-
|
|
25
|
-
'2021-PREXII-Reed', '2021-PREXII-Reinhard', '2023-PREXII+CREX-Zhang'
|
|
25
|
+
'2015-POL-208Pb', '2015-POL-120Sn', '2015-POL-68Ni', '2017-UG', \
|
|
26
|
+
'2021-PREXII-Reed', '2021-PREXII-Reinhard', '2023-PREXII+CREX-Zhang',\
|
|
27
|
+
'2023-EDF-D4', '2023-EDF-D4-IAS', '2023-EDF-D4-IAS-Rnp' ]
|
|
26
28
|
#print('Constraints available in the toolkit:',constraints)
|
|
27
29
|
constraints_lower = [ item.lower() for item in constraints ]
|
|
28
30
|
return constraints, constraints_lower
|
|
@@ -47,9 +49,10 @@ class setupEsymLsym():
|
|
|
47
49
|
|
|
48
50
|
The name of the constraint to be chosen in the \
|
|
49
51
|
following list: '2009-HIC', '2010-RNP', '2012-FRDM', '2013-NS', \
|
|
50
|
-
'2014-IAS', '2014-IAS+RNP', '2015-POL-
|
|
51
|
-
'2015-POL-
|
|
52
|
-
'2021-PREXII-Reinhard', '2021-PREXII+CREX-Zhang'
|
|
52
|
+
'2014-IAS', '2014-IAS+RNP', '2015-POL-208Pb', '2015-POL-120Sn', \
|
|
53
|
+
'2015-POL-68Ni', '2017-UG', '2021-PREXII-Reed', \
|
|
54
|
+
'2021-PREXII-Reinhard', '2021-PREXII+CREX-Zhang',\
|
|
55
|
+
'2023-EDF-D4', '2023-EDF-D4-IAS', '2023-EDF-D4-IAS-Rnp'.
|
|
53
56
|
|
|
54
57
|
:param constraint: Fix the name of `constraint`. Default value: '2014-IAS'.
|
|
55
58
|
:type constraint: str, optional.
|
|
@@ -69,9 +72,9 @@ class setupEsymLsym():
|
|
|
69
72
|
constraints, constraints_lower = EsymLsym_constraints()
|
|
70
73
|
#
|
|
71
74
|
if constraint.lower() not in constraints_lower:
|
|
72
|
-
print('The constraint ',constraint,' is not in the list of constraints.')
|
|
73
|
-
print('list of constraints:',constraints)
|
|
74
|
-
print('-- Exit the code --')
|
|
75
|
+
print('setup_EsymLsym.py: The constraint ',constraint,' is not in the list of constraints.')
|
|
76
|
+
print('setup_EsymLsym.py: list of constraints:',constraints)
|
|
77
|
+
print('setup_EsymLsym.py: -- Exit the code --')
|
|
75
78
|
exit()
|
|
76
79
|
#
|
|
77
80
|
if constraint.lower() == '2009-hic':
|
|
@@ -372,7 +375,7 @@ class setupEsymLsym():
|
|
|
372
375
|
file_in = os.path.join(nuda.param.path_data,'corr/EsymLsym/2021-PREXII-Reed.dat')
|
|
373
376
|
if nuda.env.verb: print('Reads file:',file_in)
|
|
374
377
|
self.ref = 'Reed et al., PRL 126, 172503 (2021)'
|
|
375
|
-
self.label = 'PREXII-Reed'
|
|
378
|
+
self.label = 'PREXII-Reed-2021'
|
|
376
379
|
self.note = "."
|
|
377
380
|
self.Esym, self.Esym_err, self.Lsym, self.Lsym_err = \
|
|
378
381
|
np.loadtxt( file_in, usecols=(0,1,2,3), unpack = True )
|
|
@@ -385,7 +388,7 @@ class setupEsymLsym():
|
|
|
385
388
|
file_in = os.path.join(nuda.param.path_data,'corr/EsymLsym/2021-PREXII-Reinhard.dat')
|
|
386
389
|
if nuda.env.verb: print('Reads file:',file_in)
|
|
387
390
|
self.ref = 'Reinhard et al., PRL 127, 232501 (2021)'
|
|
388
|
-
self.label = 'PREXII-Reinhard'
|
|
391
|
+
self.label = 'PREXII-Reinhard-2021'
|
|
389
392
|
self.note = "."
|
|
390
393
|
self.Esym, self.Esym_err, self.Lsym, self.Lsym_err = \
|
|
391
394
|
np.loadtxt( file_in, usecols=(0,1,2,3), unpack = True )
|
|
@@ -398,7 +401,7 @@ class setupEsymLsym():
|
|
|
398
401
|
file_in = os.path.join(nuda.param.path_data,'corr/EsymLsym/2023-PREXII-Zhang.dat')
|
|
399
402
|
if nuda.env.verb: print('Reads file:',file_in)
|
|
400
403
|
self.ref = 'Z. Zhang, L.W. Chen, Phys. Rev. C 108, 024317 (2023).'
|
|
401
|
-
self.label = 'PREXII+CREX-Zhang'
|
|
404
|
+
self.label = 'PREXII+CREX-Zhang-2023'
|
|
402
405
|
self.note = "."
|
|
403
406
|
self.Esym, self.Esym_err, self.Lsym, self.Lsym_err = \
|
|
404
407
|
np.loadtxt( file_in, usecols=(0,1,2,3), unpack = True )
|
|
@@ -406,10 +409,40 @@ class setupEsymLsym():
|
|
|
406
409
|
self.Lsym_max = self.Lsym + self.Lsym_err
|
|
407
410
|
self.plot = 'point_err_xy'
|
|
408
411
|
#
|
|
412
|
+
elif constraint.lower() == '2023-edf-d4':
|
|
413
|
+
#
|
|
414
|
+
self.ref = 'B.V. Carlson, M. Dutra, O. Lourenco, K. Margueron, Phys. Rev. C 107, 0353805 (2022).'
|
|
415
|
+
self.label = 'EDF(D4)-2023'
|
|
416
|
+
self.note = "."
|
|
417
|
+
# D4:
|
|
418
|
+
self.Esym = [ 29.85, 31.97, 33.06, 37.26, 39.42, 38.58, 36.44, 30.97, 29.85 ]
|
|
419
|
+
self.Lsym = [ 50.3, 45.36, 55.45, 99.14, 126.6, 124.57, 115.71, 61.79, 50.3 ]
|
|
420
|
+
self.plot = 'contour'
|
|
421
|
+
#
|
|
422
|
+
elif constraint.lower() == '2023-edf-d4-ias':
|
|
423
|
+
#
|
|
424
|
+
self.ref = 'B.V. Carlson, M. Dutra, O. Lourenco, K. Margueron, Phys. Rev. C 107, 0353805 (2022).'
|
|
425
|
+
self.label = 'EDF(D4+IAS)-2023'
|
|
426
|
+
self.note = "."
|
|
427
|
+
# D4+IAS:
|
|
428
|
+
self.Esym = [ 29.85, 31.97, 33.06, 33.96, 34.54, 30.97, 29.85 ]
|
|
429
|
+
self.Lsym = [ 50.3, 45.36, 55.45, 71.55, 88.03, 61.79, 50.3 ]
|
|
430
|
+
self.plot = 'contour'
|
|
431
|
+
#
|
|
432
|
+
elif constraint.lower() == '2023-edf-d4-ias-rnp':
|
|
433
|
+
#
|
|
434
|
+
self.ref = 'B.V. Carlson, M. Dutra, O. Lourenco, K. Margueron, Phys. Rev. C 107, 0353805 (2022).'
|
|
435
|
+
self.label = 'EDF(D4+IAS+Rnp)-2023'
|
|
436
|
+
self.note = "."
|
|
437
|
+
# D4sym (D4+IAS+\Delta r_{np}):
|
|
438
|
+
self.Esym = [ 29.85, 32.01, 32.54, 32.74, 31.98, 30.97, 29.85 ]
|
|
439
|
+
self.Lsym = [ 50.3, 48.15, 61.52, 70.45, 67.44, 61.79, 50.3 ]
|
|
440
|
+
self.plot = 'contour'
|
|
441
|
+
#
|
|
409
442
|
else:
|
|
410
443
|
#
|
|
411
|
-
print('The variable constraint:',constraint)
|
|
412
|
-
print('does not fit with the options in the code')
|
|
444
|
+
print('setup_EsymLsym.py: The variable constraint:',constraint)
|
|
445
|
+
print('setup_EsymLsym.py: does not fit with the options in the code')
|
|
413
446
|
|
|
414
447
|
if nuda.env.verb: print("Exit setupEsymLsym()")
|
|
415
448
|
#
|