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.
Files changed (172) hide show
  1. nucleardatapy/__init__.py +3 -1
  2. nucleardatapy/astro/setup_gw.py +18 -18
  3. nucleardatapy/astro/setup_mr.py +123 -33
  4. nucleardatapy/astro/setup_mup.py +10 -10
  5. nucleardatapy/corr/setup_EsymDen.py +0 -5
  6. nucleardatapy/corr/setup_EsymLsym.py +50 -17
  7. nucleardatapy/corr/setup_KsatQsat.py +170 -69
  8. nucleardatapy/create_folder.py +2 -2
  9. nucleardatapy/crust/setup_crust.py +364 -126
  10. nucleardatapy/data/astro/HESS/J1731-347.dat +4 -0
  11. nucleardatapy/data/astro/NICER/J0030+0451.dat +6 -6
  12. nucleardatapy/data/astro/NICER/J0437-4715.dat +4 -3
  13. nucleardatapy/data/astro/NICER/J0614-3329.dat +4 -0
  14. nucleardatapy/data/astro/NICER/J0740+6620.dat +5 -4
  15. nucleardatapy/data/hnuclei/1991-2L-Yamamoto.csv +6 -0
  16. nucleardatapy/data/hnuclei/2013-2L-Ahn.csv +1 -1
  17. nucleardatapy/data/hnuclei/2019-2L-Ekawa.csv +7 -0
  18. nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-Av18-E2A-NM.dat +8 -8
  19. nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-414-E2A.dat +21 -0
  20. nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-414-TD.dat +22 -0
  21. nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-450-E2A.dat +20 -0
  22. nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-450-TD.dat +22 -0
  23. nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-500-E2A.dat +23 -0
  24. nucleardatapy/data/matter/micro/2020-SCGF-NM-N3LO-500-TD.dat +22 -0
  25. nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-414-E2A.dat +15 -0
  26. nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-414-TD.dat +21 -0
  27. nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-450-E2A.dat +15 -0
  28. nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-450-TD.dat +21 -0
  29. nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-500-E2A.dat +20 -0
  30. nucleardatapy/data/matter/micro/2020-SCGF-SM-N3LO-500-TD.dat +20 -0
  31. nucleardatapy/data/matter/micro/2024-ABI-NM-DeltaNNLO450.dat +28 -0
  32. nucleardatapy/data/matter/micro/2024-ABI-NM-DeltaNNLO500.dat +28 -0
  33. nucleardatapy/data/matter/micro/2024-ABI-NM-DeltaNNLOgo394.dat +28 -0
  34. nucleardatapy/data/matter/micro/2024-ABI-NM-DeltaNNLOgo450.dat +28 -0
  35. nucleardatapy/data/matter/micro/2024-ABI-NM-NNLOsat.dat +28 -0
  36. nucleardatapy/data/matter/micro/2024-ABI-SM-DeltaNNLO450.dat +28 -0
  37. nucleardatapy/data/matter/micro/2024-ABI-SM-DeltaNNLO500.dat +28 -0
  38. nucleardatapy/data/matter/micro/2024-ABI-SM-DeltaNNLOgo394.dat +28 -0
  39. nucleardatapy/data/matter/micro/2024-ABI-SM-DeltaNNLOgo450.dat +28 -0
  40. nucleardatapy/data/matter/micro/2024-ABI-SM-NNLOsat.dat +28 -0
  41. nucleardatapy/data/matter/nep/NEPESkyrme.dat +2 -3
  42. nucleardatapy/data/matter/nep/NEPGSkyrme.dat +7 -0
  43. nucleardatapy/data/matter/nep/NEPSkyrme.dat +4 -2
  44. nucleardatapy/data/matter/nep/NEPxEFT.dat +8 -0
  45. nucleardatapy/data/matter/nep/best67DDSkyrme.dat +28 -0
  46. nucleardatapy/data/matter/nep/best90DDSkyrme.dat +46 -0
  47. nucleardatapy/data/matter/nep/best95DDSkyrme.dat +54 -0
  48. nucleardatapy/data/matter/pheno/ESkyrme/BSk31-NM.dat +996 -996
  49. nucleardatapy/data/matter/pheno/ESkyrme/BSk31-SM.dat +991 -991
  50. nucleardatapy/data/matter/pheno/ESkyrme/BSkG4-NM.dat +1002 -0
  51. nucleardatapy/data/matter/pheno/ESkyrme/BSkG4-SM.dat +1002 -0
  52. nucleardatapy/data/matter/pheno/Skyrme/BSkG1-NM.dat +102 -0
  53. nucleardatapy/data/matter/pheno/Skyrme/BSkG1-SM.dat +102 -0
  54. nucleardatapy/data/matter/pheno/Skyrme/BSkG2-NM.dat +102 -0
  55. nucleardatapy/data/matter/pheno/Skyrme/BSkG2-SM.dat +102 -0
  56. nucleardatapy/env.py +1 -1
  57. nucleardatapy/eos/__init__.py +4 -3
  58. nucleardatapy/eos/setupCC.py +429 -0
  59. nucleardatapy/eos/setup_am.py +39 -14
  60. nucleardatapy/eos/setup_am_Beq.py +40 -15
  61. nucleardatapy/eos/setup_am_Leq.py +40 -15
  62. nucleardatapy/fig/__init__.py +24 -15
  63. nucleardatapy/fig/astro_setupGW_fig.py +9 -7
  64. nucleardatapy/fig/astro_setupMR_fig.py +26 -18
  65. nucleardatapy/fig/astro_setupMasses_fig.py +8 -6
  66. nucleardatapy/fig/astro_setupMtov_fig.py +10 -6
  67. nucleardatapy/fig/astro_setupMup_fig.py +9 -7
  68. nucleardatapy/fig/corr_setupEsymDen_fig.py +22 -9
  69. nucleardatapy/fig/corr_setupEsymLsym_fig.py +25 -8
  70. nucleardatapy/fig/corr_setupKsatQsat_fig.py +23 -17
  71. nucleardatapy/fig/crust_setupCrust_fig.py +11 -9
  72. nucleardatapy/fig/eos_setupAMBeq_fig.py +641 -156
  73. nucleardatapy/fig/eos_setupAMLeq_fig.py +53 -50
  74. nucleardatapy/fig/eos_setupAM_asy_lep_fig.py +373 -0
  75. nucleardatapy/fig/eos_setupAM_asy_nuc_fig.py +346 -0
  76. nucleardatapy/fig/eos_setupAM_asy_tot_fig.py +352 -0
  77. nucleardatapy/fig/eos_setupAM_fig.py +519 -0
  78. nucleardatapy/fig/eos_setupCC_fig.py +270 -0
  79. nucleardatapy/fig/hnuc_setupChart_fig.py +19 -16
  80. nucleardatapy/fig/hnuc_setupRE1LExp_fig.py +15 -5
  81. nucleardatapy/fig/matter_all_fig.py +971 -0
  82. nucleardatapy/fig/matter_setupCheck_fig.py +106 -0
  83. nucleardatapy/fig/matter_setupFFGLep_fig.py +74 -0
  84. nucleardatapy/fig/matter_setupFFGNuc_fig.py +286 -115
  85. nucleardatapy/fig/matter_setupHIC_fig.py +107 -67
  86. nucleardatapy/fig/matter_setupMicroEsym_fig.py +259 -73
  87. nucleardatapy/fig/matter_setupMicro_LP_fig.py +185 -82
  88. nucleardatapy/fig/matter_setupMicro_band_fig.py +126 -53
  89. nucleardatapy/fig/matter_setupMicro_effmass_fig.py +253 -77
  90. nucleardatapy/fig/matter_setupMicro_err_NM_fig.py +45 -20
  91. nucleardatapy/fig/matter_setupMicro_fig.py +317 -77
  92. nucleardatapy/fig/matter_setupMicro_gap_fig.py +237 -100
  93. nucleardatapy/fig/matter_setupNEPStats_fig.py +106 -0
  94. nucleardatapy/fig/matter_setupPhenoEsym_fig.py +204 -65
  95. nucleardatapy/fig/matter_setupPheno_fig.py +395 -93
  96. nucleardatapy/fig/nuc_setupBEExp_chart_fig.py +93 -73
  97. nucleardatapy/fig/nuc_setupBEExp_fig.py +97 -87
  98. nucleardatapy/fig/nuc_setupBETheo_fig.py +114 -81
  99. nucleardatapy/fig/nuc_setupISGMRExp_fig.py +12 -15
  100. nucleardatapy/fig/nuc_setupRchExp_fig.py +14 -22
  101. nucleardatapy/fig/nuc_setupRchTheo_fig.py +37 -40
  102. nucleardatapy/fig/nuc_setupRnpExp_fig.py +86 -106
  103. nucleardatapy/fig/nuc_setupRnpTheo_fig.py +105 -94
  104. nucleardatapy/hello.py +6 -0
  105. nucleardatapy/hnuc/setup_re1L_exp.py +6 -6
  106. nucleardatapy/hnuc/setup_re1Xi_exp.py +5 -5
  107. nucleardatapy/hnuc/setup_re2L_exp.py +36 -13
  108. nucleardatapy/matter/__init__.py +14 -14
  109. nucleardatapy/matter/setup_check.py +6 -6
  110. nucleardatapy/matter/setup_ffg.py +66 -39
  111. nucleardatapy/matter/setup_hic.py +91 -74
  112. nucleardatapy/matter/setup_micro.py +2033 -1007
  113. nucleardatapy/matter/setup_micro_band.py +6 -6
  114. nucleardatapy/matter/setup_micro_esym.py +56 -54
  115. nucleardatapy/matter/setup_micro_gap.py +24 -17
  116. nucleardatapy/matter/setup_micro_lp.py +2 -2
  117. nucleardatapy/matter/setup_nep.py +175 -92
  118. nucleardatapy/matter/{setup_nep_model_dist.py → setup_nep_stat_model.py} +13 -8
  119. nucleardatapy/matter/{setup_nep_dist.py → setup_nep_stat_models.py} +12 -8
  120. nucleardatapy/matter/setup_pheno.py +129 -49
  121. nucleardatapy/matter/setup_pheno_esym.py +22 -19
  122. nucleardatapy/nuc/setup_be_exp.py +306 -292
  123. nucleardatapy/nuc/setup_be_theo.py +288 -105
  124. nucleardatapy/nuc/setup_isgmr_exp.py +4 -4
  125. nucleardatapy/nuc/setup_rnp_exp.py +1 -0
  126. nucleardatapy/nuc/setup_rnp_theo.py +2 -1
  127. {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.1.dist-info}/METADATA +48 -16
  128. {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.1.dist-info}/RECORD +157 -124
  129. {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.1.dist-info}/WHEEL +1 -1
  130. tests/test_corr_setupKsatQsat.py +3 -1
  131. tests/test_matter_setupMicro.py +37 -10
  132. nucleardatapy/data/matter/pheno/ESkyrme/BSkG1-NM.dat +0 -1002
  133. nucleardatapy/data/matter/pheno/ESkyrme/BSkG1-SM.dat +0 -1002
  134. nucleardatapy/data/matter/pheno/ESkyrme/BSkG2-NM.dat +0 -1002
  135. nucleardatapy/data/matter/pheno/ESkyrme/BSkG2-SM.dat +0 -1002
  136. nucleardatapy/fig/eos_setupAM_e_asy_lep_fig.py +0 -125
  137. nucleardatapy/fig/eos_setupAM_e_asy_nuc_fig.py +0 -115
  138. nucleardatapy/fig/eos_setupAM_e_asy_tot_fig.py +0 -117
  139. nucleardatapy/fig/eos_setupAM_e_fig.py +0 -173
  140. nucleardatapy/fig/matter_ENM_fig.py +0 -128
  141. nucleardatapy/fig/matter_ESM_fig.py +0 -140
  142. nucleardatapy/fig/matter_Esym_fig.py +0 -134
  143. nucleardatapy/fig/matter_cs2_fig.py +0 -83
  144. nucleardatapy/fig/matter_preNM_fig.py +0 -146
  145. nucleardatapy/fig/matter_preSM_fig.py +0 -144
  146. nucleardatapy/fig/matter_setupNEPModelDist_fig.py +0 -68
  147. /nucleardatapy/data/LandauParameters/micro/{2006-IBHF-NM-AV18.dat → 2006-EBHF-NM-AV18.dat} +0 -0
  148. /nucleardatapy/data/LandauParameters/micro/{2006-IBHF-SM-AV18.dat → 2006-EBHF-SM-AV18.dat} +0 -0
  149. /nucleardatapy/data/crust/{2022-crustGMRS-BSK14.dat → 2022-GMRS-BSK14.dat} +0 -0
  150. /nucleardatapy/data/crust/{2022-crustGMRS-BSK16.dat → 2022-GMRS-BSK16.dat} +0 -0
  151. /nucleardatapy/data/crust/{2022-crustGMRS-DHSL59.dat → 2022-GMRS-DHSL59.dat} +0 -0
  152. /nucleardatapy/data/crust/{2022-crustGMRS-DHSL69.dat → 2022-GMRS-DHSL69.dat} +0 -0
  153. /nucleardatapy/data/crust/{2022-crustGMRS-F0.dat → 2022-GMRS-F0.dat} +0 -0
  154. /nucleardatapy/data/crust/{2022-crustGMRS-H1.dat → 2022-GMRS-H1.dat} +0 -0
  155. /nucleardatapy/data/crust/{2022-crustGMRS-H2.dat → 2022-GMRS-H2.dat} +0 -0
  156. /nucleardatapy/data/crust/{2022-crustGMRS-H3.dat → 2022-GMRS-H3.dat} +0 -0
  157. /nucleardatapy/data/crust/{2022-crustGMRS-H4.dat → 2022-GMRS-H4.dat} +0 -0
  158. /nucleardatapy/data/crust/{2022-crustGMRS-H5.dat → 2022-GMRS-H5.dat} +0 -0
  159. /nucleardatapy/data/crust/{2022-crustGMRS-H7.dat → 2022-GMRS-H7.dat} +0 -0
  160. /nucleardatapy/data/crust/{2022-crustGMRS-LNS5.dat → 2022-GMRS-LNS5.dat} +0 -0
  161. /nucleardatapy/data/crust/{2022-crustGMRS-RATP.dat → 2022-GMRS-RATP.dat} +0 -0
  162. /nucleardatapy/data/crust/{2022-crustGMRS-SGII.dat → 2022-GMRS-SGII.dat} +0 -0
  163. /nucleardatapy/data/crust/{2022-crustGMRS-SLY5.dat → 2022-GMRS-SLY5.dat} +0 -0
  164. /nucleardatapy/data/matter/micro/{2013-QMC-NM.dat → 2013-MBPT-NM.dat} +0 -0
  165. /nucleardatapy/data/{NeutronSkin/ddrhNskin-208Pb.dat → rnp/ddrhrnp-208Pb.dat} +0 -0
  166. /nucleardatapy/data/{NeutronSkin/ddrhNskin-48Ca.dat → rnp/ddrhrnp-48Ca.dat} +0 -0
  167. /nucleardatapy/data/{NeutronSkin/nlrhNskin-208Pb.dat → rnp/nlrhrnp-208Pb.dat} +0 -0
  168. /nucleardatapy/data/{NeutronSkin/nlrhNskin-48Ca.dat → rnp/nlrhrnp-48Ca.dat} +0 -0
  169. /nucleardatapy/data/{NeutronSkin/skyrmeNskin-208Pb.dat → rnp/skyrmernp-208Pb.dat} +0 -0
  170. /nucleardatapy/data/{NeutronSkin/skyrmeNskin-48Ca.dat → rnp/skyrmernp-48Ca.dat} +0 -0
  171. {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.1.dist-info}/licenses/LICENSE +0 -0
  172. {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 module provides microscopic, phenomenological and experimental data constraints.
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 *
@@ -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/gw/GW170817.dat'
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/gw/GW190425.dat'
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.mchirp_sig_do = float(ele[3])
169
- self.q_do = float(ele[4])
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.lam_sig_do = float(ele[8])
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.mchirp_sig_do)
192
- print(" q_do, q_up: ",self.q_do, self.q_up)
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.lam_sig_do)
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.mchirp_sig_do}}}$ & $[{self.q_do}:{self.q_up}]$ & ${{{self.lam:.2f}}}^{{{+self.lam_sig_up}}}_{{{-self.lam_sig_do}}}$ & \cite{{{self.latexCite}}} \\\\")
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.mchirp_sig_do = None
240
- self.q_do = None
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.lambda_sig_do = None
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
- lamdo = gw.lam - 3*gw.lam_sig_do
282
+ lamlo = gw.lam - 3*gw.lam_sig_lo
283
283
  lamup = gw.lam + 3*gw.lam_sig_up
284
- if lamdo < lammin: lammin = lamdo
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.lam_sig_do)
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, sig_do ):
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 ) / sig_do
364
- norm = sig_do * fac
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
@@ -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,' ele[:]:',ele[:])
211
+ #print('ele[0]:',ele[0],' obs:',obs)
212
+ #print('ele[:]:',ele[:])
180
213
  if int(ele[0]) == obs:
181
- self.rad = float(ele[1])
182
- self.rad_sig_up = float(ele[2])
183
- self.rad_sig_lo = float(ele[3])
184
- self.mass = float(ele[4])
185
- self.mass_sig_up = float(ele[5])
186
- self.mass_sig_lo = float(ele[6])
187
- #print('ele[7]:',ele[7],' len:',len(ele[7]))
188
- if len(ele[7])>1:
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
- else:
236
+ except ValueError:
193
237
  self.comp = 0.0
194
- self.comp_sig_up = 1.0
195
- self.comp_sig_lo = 1.0
196
- self.latexCite = ele[10].replace('\n','').replace(' ','')
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
- self.rad_cen = cenr / nor
337
- self.mass_cen = cenm / nom
338
- self.comp_cen = cenc / noc
339
- self.rad_sig_std = round( math.sqrt( stdr/nor - self.rad_cen**2 ), 3 )
340
- self.mass_sig_std = round( math.sqrt( stdm/nom - self.mass_cen**2 ), 3 )
341
- self.comp_sig_std = round( math.sqrt( stdc/noc - self.comp_cen**2 ), 3 )
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
- z = ( x - cent ) / sig_lo
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
- z = ( x - cent ) / sig_up
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
- gauss.append( math.exp( -0.5*z**2 ) / norm )
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
 
@@ -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.sig_do = None
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.sig_do = float(ele[4])
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.sig_do)
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.sig_do}}}$ & \cite{{{self.latexCite}}} \\\\")
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
- mupdo = mup.mup - 3*mup.sig_do
231
+ muplo = mup.mup - 3*mup.sig_lo
232
232
  mupup = mup.mup + 3*mup.sig_up
233
- if mupdo < mupmin: mupmin = mupdo
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.sig_do)
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, sig_do ):
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 ) / sig_do
297
- norm = sig_do * fac
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-208PB', '2015-POL-120SN', \
16
- '2015-POL-68NI', '2017-UG', '2021-PREXII-Reed', \
17
- '2021-PREXII-Reinhard', '2023-PREXII+CREX-Zhang'; and \
18
- print them all on the prompt.
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-208PB', '2015-POL-120SN', '2015-POL-68NI', '2017-UG', \
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-208PB', '2015-POL-120SN', \
51
- '2015-POL-68NI', '2017-UG', '2021-PREXII-Reed', \
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
  #