nucleardatapy 0.2.1__py3-none-any.whl → 1.0.0__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 (142) hide show
  1. nucleardatapy/__init__.py +3 -1
  2. nucleardatapy/astro/setup_gw.py +18 -18
  3. nucleardatapy/astro/setup_mr.py +9 -1
  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/crust/setup_crust.py +363 -125
  9. nucleardatapy/data/astro/NICER/J0740+6620.dat +1 -0
  10. nucleardatapy/data/matter/micro/2006-BHF/2006-BHF-Av18-E2A-NM.dat +8 -8
  11. nucleardatapy/data/matter/nep/NEPESkyrme.dat +2 -3
  12. nucleardatapy/data/matter/nep/NEPGSkyrme.dat +7 -0
  13. nucleardatapy/data/matter/nep/NEPSkyrme.dat +4 -2
  14. nucleardatapy/data/matter/nep/NEPxEFT.dat +8 -0
  15. nucleardatapy/data/matter/nep/best67DDSkyrme.dat +28 -0
  16. nucleardatapy/data/matter/nep/best90DDSkyrme.dat +46 -0
  17. nucleardatapy/data/matter/nep/best95DDSkyrme.dat +54 -0
  18. nucleardatapy/data/matter/pheno/ESkyrme/BSk31-NM.dat +996 -996
  19. nucleardatapy/data/matter/pheno/ESkyrme/BSk31-SM.dat +991 -991
  20. nucleardatapy/data/matter/pheno/ESkyrme/BSkG4-NM.dat +1002 -0
  21. nucleardatapy/data/matter/pheno/ESkyrme/BSkG4-SM.dat +1002 -0
  22. nucleardatapy/data/matter/pheno/Skyrme/BSkG1-NM.dat +102 -0
  23. nucleardatapy/data/matter/pheno/Skyrme/BSkG1-SM.dat +102 -0
  24. nucleardatapy/data/matter/pheno/Skyrme/BSkG2-NM.dat +102 -0
  25. nucleardatapy/data/matter/pheno/Skyrme/BSkG2-SM.dat +102 -0
  26. nucleardatapy/env.py +1 -1
  27. nucleardatapy/eos/__init__.py +4 -3
  28. nucleardatapy/eos/setupCC.py +429 -0
  29. nucleardatapy/eos/setup_am.py +39 -14
  30. nucleardatapy/eos/setup_am_Beq.py +40 -15
  31. nucleardatapy/eos/setup_am_Leq.py +40 -15
  32. nucleardatapy/fig/__init__.py +24 -15
  33. nucleardatapy/fig/astro_setupGW_fig.py +5 -5
  34. nucleardatapy/fig/astro_setupMR_fig.py +12 -10
  35. nucleardatapy/fig/astro_setupMasses_fig.py +4 -4
  36. nucleardatapy/fig/astro_setupMtov_fig.py +4 -4
  37. nucleardatapy/fig/astro_setupMup_fig.py +5 -5
  38. nucleardatapy/fig/corr_setupEsymDen_fig.py +12 -5
  39. nucleardatapy/fig/corr_setupEsymLsym_fig.py +18 -5
  40. nucleardatapy/fig/corr_setupKsatQsat_fig.py +19 -15
  41. nucleardatapy/fig/crust_setupCrust_fig.py +5 -5
  42. nucleardatapy/fig/eos_setupAMBeq_fig.py +523 -66
  43. nucleardatapy/fig/eos_setupAMLeq_fig.py +18 -18
  44. nucleardatapy/fig/eos_setupAM_asy_lep_fig.py +364 -0
  45. nucleardatapy/fig/eos_setupAM_asy_nuc_fig.py +337 -0
  46. nucleardatapy/fig/eos_setupAM_asy_tot_fig.py +343 -0
  47. nucleardatapy/fig/eos_setupAM_fig.py +504 -0
  48. nucleardatapy/fig/eos_setupCC_fig.py +240 -0
  49. nucleardatapy/fig/hnuc_setupChart_fig.py +2 -2
  50. nucleardatapy/fig/hnuc_setupRE1LExp_fig.py +3 -3
  51. nucleardatapy/fig/matter_all_fig.py +954 -0
  52. nucleardatapy/fig/matter_setupCheck_fig.py +103 -0
  53. nucleardatapy/fig/matter_setupFFGLep_fig.py +70 -0
  54. nucleardatapy/fig/matter_setupFFGNuc_fig.py +267 -104
  55. nucleardatapy/fig/matter_setupHIC_fig.py +98 -58
  56. nucleardatapy/fig/matter_setupMicroEsym_fig.py +248 -63
  57. nucleardatapy/fig/matter_setupMicro_LP_fig.py +175 -78
  58. nucleardatapy/fig/matter_setupMicro_band_fig.py +115 -47
  59. nucleardatapy/fig/matter_setupMicro_effmass_fig.py +248 -73
  60. nucleardatapy/fig/matter_setupMicro_err_NM_fig.py +41 -18
  61. nucleardatapy/fig/matter_setupMicro_fig.py +299 -67
  62. nucleardatapy/fig/matter_setupMicro_gap_fig.py +219 -92
  63. nucleardatapy/fig/matter_setupNEPStats_fig.py +96 -0
  64. nucleardatapy/fig/matter_setupPhenoEsym_fig.py +193 -55
  65. nucleardatapy/fig/matter_setupPheno_fig.py +385 -88
  66. nucleardatapy/fig/nuc_setupBEExp_chart_fig.py +59 -48
  67. nucleardatapy/fig/nuc_setupBEExp_fig.py +48 -41
  68. nucleardatapy/fig/nuc_setupBETheo_fig.py +59 -31
  69. nucleardatapy/fig/nuc_setupISGMRExp_fig.py +5 -5
  70. nucleardatapy/fig/nuc_setupRchExp_fig.py +2 -2
  71. nucleardatapy/fig/nuc_setupRchTheo_fig.py +21 -20
  72. nucleardatapy/fig/nuc_setupRnpExp_fig.py +77 -109
  73. nucleardatapy/fig/nuc_setupRnpTheo_fig.py +92 -93
  74. nucleardatapy/hello.py +6 -0
  75. nucleardatapy/hnuc/setup_re1L_exp.py +6 -6
  76. nucleardatapy/hnuc/setup_re1Xi_exp.py +5 -5
  77. nucleardatapy/hnuc/setup_re2L_exp.py +6 -6
  78. nucleardatapy/matter/__init__.py +14 -14
  79. nucleardatapy/matter/setup_check.py +6 -6
  80. nucleardatapy/matter/setup_ffg.py +66 -39
  81. nucleardatapy/matter/setup_hic.py +91 -74
  82. nucleardatapy/matter/setup_micro.py +1623 -1009
  83. nucleardatapy/matter/setup_micro_band.py +6 -6
  84. nucleardatapy/matter/setup_micro_esym.py +11 -13
  85. nucleardatapy/matter/setup_micro_gap.py +24 -17
  86. nucleardatapy/matter/setup_micro_lp.py +2 -2
  87. nucleardatapy/matter/setup_nep.py +175 -92
  88. nucleardatapy/matter/{setup_nep_model_dist.py → setup_nep_stat_model.py} +13 -8
  89. nucleardatapy/matter/{setup_nep_dist.py → setup_nep_stat_models.py} +12 -8
  90. nucleardatapy/matter/setup_pheno.py +121 -45
  91. nucleardatapy/matter/setup_pheno_esym.py +8 -13
  92. nucleardatapy/nuc/setup_be_exp.py +304 -292
  93. nucleardatapy/nuc/setup_be_theo.py +273 -97
  94. nucleardatapy/nuc/setup_isgmr_exp.py +4 -4
  95. nucleardatapy/nuc/setup_rnp_exp.py +1 -0
  96. nucleardatapy/nuc/setup_rnp_theo.py +2 -1
  97. {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.0.dist-info}/METADATA +48 -16
  98. {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.0.dist-info}/RECORD +127 -120
  99. {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.0.dist-info}/WHEEL +1 -1
  100. tests/test_corr_setupKsatQsat.py +3 -1
  101. tests/test_matter_setupMicro.py +37 -10
  102. nucleardatapy/data/matter/pheno/ESkyrme/BSkG1-NM.dat +0 -1002
  103. nucleardatapy/data/matter/pheno/ESkyrme/BSkG1-SM.dat +0 -1002
  104. nucleardatapy/data/matter/pheno/ESkyrme/BSkG2-NM.dat +0 -1002
  105. nucleardatapy/data/matter/pheno/ESkyrme/BSkG2-SM.dat +0 -1002
  106. nucleardatapy/fig/eos_setupAM_e_asy_lep_fig.py +0 -125
  107. nucleardatapy/fig/eos_setupAM_e_asy_nuc_fig.py +0 -115
  108. nucleardatapy/fig/eos_setupAM_e_asy_tot_fig.py +0 -117
  109. nucleardatapy/fig/eos_setupAM_e_fig.py +0 -173
  110. nucleardatapy/fig/matter_ENM_fig.py +0 -128
  111. nucleardatapy/fig/matter_ESM_fig.py +0 -140
  112. nucleardatapy/fig/matter_Esym_fig.py +0 -134
  113. nucleardatapy/fig/matter_cs2_fig.py +0 -83
  114. nucleardatapy/fig/matter_preNM_fig.py +0 -146
  115. nucleardatapy/fig/matter_preSM_fig.py +0 -144
  116. nucleardatapy/fig/matter_setupNEPModelDist_fig.py +0 -68
  117. /nucleardatapy/data/LandauParameters/micro/{2006-IBHF-NM-AV18.dat → 2006-EBHF-NM-AV18.dat} +0 -0
  118. /nucleardatapy/data/LandauParameters/micro/{2006-IBHF-SM-AV18.dat → 2006-EBHF-SM-AV18.dat} +0 -0
  119. /nucleardatapy/data/crust/{2022-crustGMRS-BSK14.dat → 2022-GMRS-BSK14.dat} +0 -0
  120. /nucleardatapy/data/crust/{2022-crustGMRS-BSK16.dat → 2022-GMRS-BSK16.dat} +0 -0
  121. /nucleardatapy/data/crust/{2022-crustGMRS-DHSL59.dat → 2022-GMRS-DHSL59.dat} +0 -0
  122. /nucleardatapy/data/crust/{2022-crustGMRS-DHSL69.dat → 2022-GMRS-DHSL69.dat} +0 -0
  123. /nucleardatapy/data/crust/{2022-crustGMRS-F0.dat → 2022-GMRS-F0.dat} +0 -0
  124. /nucleardatapy/data/crust/{2022-crustGMRS-H1.dat → 2022-GMRS-H1.dat} +0 -0
  125. /nucleardatapy/data/crust/{2022-crustGMRS-H2.dat → 2022-GMRS-H2.dat} +0 -0
  126. /nucleardatapy/data/crust/{2022-crustGMRS-H3.dat → 2022-GMRS-H3.dat} +0 -0
  127. /nucleardatapy/data/crust/{2022-crustGMRS-H4.dat → 2022-GMRS-H4.dat} +0 -0
  128. /nucleardatapy/data/crust/{2022-crustGMRS-H5.dat → 2022-GMRS-H5.dat} +0 -0
  129. /nucleardatapy/data/crust/{2022-crustGMRS-H7.dat → 2022-GMRS-H7.dat} +0 -0
  130. /nucleardatapy/data/crust/{2022-crustGMRS-LNS5.dat → 2022-GMRS-LNS5.dat} +0 -0
  131. /nucleardatapy/data/crust/{2022-crustGMRS-RATP.dat → 2022-GMRS-RATP.dat} +0 -0
  132. /nucleardatapy/data/crust/{2022-crustGMRS-SGII.dat → 2022-GMRS-SGII.dat} +0 -0
  133. /nucleardatapy/data/crust/{2022-crustGMRS-SLY5.dat → 2022-GMRS-SLY5.dat} +0 -0
  134. /nucleardatapy/data/matter/micro/{2013-QMC-NM.dat → 2013-MBPT-NM.dat} +0 -0
  135. /nucleardatapy/data/{NeutronSkin/ddrhNskin-208Pb.dat → rnp/ddrhrnp-208Pb.dat} +0 -0
  136. /nucleardatapy/data/{NeutronSkin/ddrhNskin-48Ca.dat → rnp/ddrhrnp-48Ca.dat} +0 -0
  137. /nucleardatapy/data/{NeutronSkin/nlrhNskin-208Pb.dat → rnp/nlrhrnp-208Pb.dat} +0 -0
  138. /nucleardatapy/data/{NeutronSkin/nlrhNskin-48Ca.dat → rnp/nlrhrnp-48Ca.dat} +0 -0
  139. /nucleardatapy/data/{NeutronSkin/skyrmeNskin-208Pb.dat → rnp/skyrmernp-208Pb.dat} +0 -0
  140. /nucleardatapy/data/{NeutronSkin/skyrmeNskin-48Ca.dat → rnp/skyrmernp-48Ca.dat} +0 -0
  141. {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.0.dist-info}/licenses/LICENSE +0 -0
  142. {nucleardatapy-0.2.1.dist-info → nucleardatapy-1.0.0.dist-info}/top_level.txt +0 -0
@@ -28,28 +28,13 @@ def nuc_setupRchTheo_fig( pname, tables, table_exp ):
28
28
  fig.tight_layout() # Or equivalently, "plt.tight_layout()"
29
29
  fig.subplots_adjust(left=0.12, bottom=0.15, right=None, top=0.9, wspace=0.35, hspace=0.3)
30
30
  #
31
- axs.set_ylabel(r'$R_{ch}$')
32
- axs.set_xlabel(r'N')
31
+ axs.set_ylabel(r'$R_{ch}$ (fm)',fontsize='14')
32
+ axs.set_xlabel(r'N',fontsize='14')
33
33
  axs.set_xlim([10, 160])
34
34
  axs.set_ylim([3.0, 6.5])
35
35
  #
36
36
  Zrefs = [ 20, 28, 40, 50, 60, 70, 82, 90 ]
37
37
  #
38
- for indZ,Zref in enumerate(Zrefs):
39
- rchExpIsot = nuda.nuc.setupRchExpIsotopes( rch_exp, Zref = Zref )
40
- if indZ == 0:
41
- axs.errorbar( rchExpIsot.N, rchExpIsot.Rch, yerr=rchExpIsot.Rch_err, color='k', fmt='s', markersize=3, label=table_exp )
42
- axs.plot( rchExpIsot.N, nuda.nuc.rch_emp( rchExpIsot.A, rchExpIsot.Z, 'classic' ), linestyle='dashed', color='k', label='empirical(classic)' )
43
- axs.plot( rchExpIsot.N, nuda.nuc.rch_emp( rchExpIsot.A, rchExpIsot.Z, '1994-NPP' ), linestyle='dashed', color='red', label='empirical(NPP-1994)' )
44
- axs.plot( rchExpIsot.N, nuda.nuc.rch_emp( rchExpIsot.A, rchExpIsot.Z, '2013-BAKS-1' ), linestyle='dotted', color='k', label='empirical(BAKS-1-2013)' )
45
- axs.plot( rchExpIsot.N, nuda.nuc.rch_emp( rchExpIsot.A, rchExpIsot.Z, '2013-BAKS-3' ), linestyle='dotted', color='red', label='empirical(BAKS-3-2013)' )
46
- else:
47
- axs.errorbar( rchExpIsot.N, rchExpIsot.Rch, yerr=rchExpIsot.Rch_err, color='k', fmt='s', markersize=3 )
48
- axs.plot( rchExpIsot.N, nuda.nuc.rch_emp( rchExpIsot.A, rchExpIsot.Z, 'classic' ), linestyle='dashed', color='k' )
49
- axs.plot( rchExpIsot.N, nuda.nuc.rch_emp( rchExpIsot.A, rchExpIsot.Z, '1994-NPP' ), linestyle='dashed', color='red' )
50
- axs.plot( rchExpIsot.N, nuda.nuc.rch_emp( rchExpIsot.A, rchExpIsot.Z, '2013-BAKS-1' ), linestyle='dotted', color='k' )
51
- axs.plot( rchExpIsot.N, nuda.nuc.rch_emp( rchExpIsot.A, rchExpIsot.Z, '2013-BAKS-3' ), linestyle='dotted', color='red' )
52
- #
53
38
  for indT,table in enumerate(tables):
54
39
  #
55
40
  rch = nuda.nuc.setupRchTheo( table = table )
@@ -66,7 +51,23 @@ def nuc_setupRchTheo_fig( pname, tables, table_exp ):
66
51
  #else:
67
52
  # axs.plot( rchIsot.N, nuda.nuc.rch_emp( rchIsot.A, rchIsot.Z, 'classic' ), linestyle='dashed', color='k' )
68
53
  #
69
- axs.legend(loc='upper left',fontsize='7',frameon=False)
54
+ #
55
+ for indZ,Zref in enumerate(Zrefs):
56
+ rchExpIsot = nuda.nuc.setupRchExpIsotopes( rch_exp, Zref = Zref )
57
+ if indZ == 0:
58
+ axs.errorbar( rchExpIsot.N, rchExpIsot.Rch, yerr=rchExpIsot.Rch_err, color='k', fmt='s', markersize=3, label=table_exp )
59
+ axs.plot( rchExpIsot.N, nuda.nuc.rch_emp( rchExpIsot.A, rchExpIsot.Z, 'classic' ), linestyle='dashed', color='k', label='empirical(classic)' )
60
+ axs.plot( rchExpIsot.N, nuda.nuc.rch_emp( rchExpIsot.A, rchExpIsot.Z, '1994-NPP' ), linestyle='dashed', color='red', label='empirical(NPP-1994)' )
61
+ axs.plot( rchExpIsot.N, nuda.nuc.rch_emp( rchExpIsot.A, rchExpIsot.Z, '2013-BAKS-1' ), linestyle='dotted', color='k', label='empirical(BAKS-1-2013)' )
62
+ axs.plot( rchExpIsot.N, nuda.nuc.rch_emp( rchExpIsot.A, rchExpIsot.Z, '2013-BAKS-3' ), linestyle='dotted', color='red', label='empirical(BAKS-3-2013)' )
63
+ else:
64
+ axs.errorbar( rchExpIsot.N, rchExpIsot.Rch, yerr=rchExpIsot.Rch_err, color='k', fmt='s', markersize=3 )
65
+ axs.plot( rchExpIsot.N, nuda.nuc.rch_emp( rchExpIsot.A, rchExpIsot.Z, 'classic' ), linestyle='dashed', color='k' )
66
+ axs.plot( rchExpIsot.N, nuda.nuc.rch_emp( rchExpIsot.A, rchExpIsot.Z, '1994-NPP' ), linestyle='dashed', color='red' )
67
+ axs.plot( rchExpIsot.N, nuda.nuc.rch_emp( rchExpIsot.A, rchExpIsot.Z, '2013-BAKS-1' ), linestyle='dotted', color='k' )
68
+ axs.plot( rchExpIsot.N, nuda.nuc.rch_emp( rchExpIsot.A, rchExpIsot.Z, '2013-BAKS-3' ), linestyle='dotted', color='red' )
69
+ #
70
+ axs.legend(loc='lower right',fontsize='10',ncol=2,frameon=False)
70
71
  #
71
72
  axs.text( 50,3.7,'Ca')
72
73
  axs.text( 70,4.2,'Ni')
@@ -108,8 +109,8 @@ def nuc_setupRchTheo_3Zref_fig( pname, tables, table_exp ):
108
109
  fig.subplots_adjust(left=0.12, bottom=0.15, right=None, top=0.9, wspace=0.35, hspace=0.3)
109
110
  #
110
111
  axs[0].set_title(r'Zr')
111
- axs[0].set_ylabel(r'$R_{ch}$')
112
- axs[0].set_xlabel(r'A')
112
+ axs[0].set_ylabel(r'$R_{ch}$ (fm)',fontsize='14')
113
+ axs[0].set_xlabel(r'A',fontsize='14')
113
114
  axs[0].set_xlim([88, 98])
114
115
  axs[0].set_ylim([4.25, 4.45])
115
116
  #
@@ -1,120 +1,88 @@
1
+ import os
1
2
  import numpy as np
2
3
  import matplotlib.pyplot as plt
3
- from matplotlib.ticker import AutoMinorLocator # Import para minor ticks
4
+ from matplotlib.ticker import AutoMinorLocator
4
5
 
5
6
  import nucleardatapy as nuda
6
7
 
7
- # Dictionary to map sources to LaTeX names
8
8
  SOURCE_LABELS_LATEX = {
9
9
  "48Ca": r"$^{48}\mathrm{Ca}$",
10
10
  "208Pb": r"$^{208}\mathrm{Pb}$"
11
11
  }
12
12
 
13
- def nuc_setupRnpExp_fig( pname ):
14
- """
15
- Generates neutron skin (R_skin) plots for each nucleus using data from the `SetupNeutronSkinExp` class.
16
- """
17
-
18
- print(f'Plot name: {pname}')
19
- #
20
- # Retrieve available sources (e.g., '48Ca', '208Pb')
21
- sources, _ = nuda.nskin_exp()
22
-
23
- # Labels for the subplots
24
- subplot_labels = ["(a)", "(b)"] # Adjust this list based on the number of sources
25
-
26
- # Iterate over each source to create individual plots
27
- for idx, source in enumerate(sources):
28
- # Lists to store data for the plot
29
- labels = [] # Labels for references (e.g., 'Brissaud 1972')
30
- rskin_values = [] # R_skin values
31
- error_lower = [] # Lower errors
32
- error_upper = [] # Upper errors
33
- markers = [] # Marker types to customize the points
34
-
35
- # Retrieve available calculations for the source
36
- cals = nuda.nuc.rnp_exp_source(source)
37
-
38
- for cal in cals:
39
- # Instantiate the object for the specific calculation
40
- neutron_skin_calc = nuda.nuc.setupRnpExp(source=source, cal=cal)
41
-
42
- # Store data only if R_skin is available
43
- if neutron_skin_calc.nskin is not None:
44
- labels.append(neutron_skin_calc.label) # Use `self.label` as label
45
- rskin_values.append(neutron_skin_calc.nskin)
46
-
47
- # Replace `None` error values with 0.0
48
- err_down = neutron_skin_calc.nskin_sig_do if neutron_skin_calc.nskin_sig_do is not None else 0.0
49
- err_up = neutron_skin_calc.nskin_sig_up if neutron_skin_calc.nskin_sig_up is not None else 0.0
50
- error_lower.append(err_down)
51
- error_upper.append(err_up)
52
-
53
- # Ensure the marker is valid
54
- marker = neutron_skin_calc.marker if neutron_skin_calc.marker else 'o'
55
- markers.append(marker)
56
-
57
- # Check if there is data to plot
58
- if not rskin_values:
59
- print(f"No data available for {source}.")
60
- continue
61
-
62
- # Plot configuration
63
- fig, ax = plt.subplots(figsize=(10, 8))
64
- x_positions = range(len(labels)+1) # X-axis positions
65
-
66
- # Add each point to the plot with vertical error bars
67
- for i, (x, y, err_down, err_up, marker) in enumerate(zip(x_positions, rskin_values, error_lower, error_upper, markers)):
68
- # Handle large errors (>= 1000) by limiting the bar to 0.1
69
- adjusted_err_down = min(err_down, 0.2)
70
- adjusted_err_up = min(err_up, 0.2)
71
-
72
- # Add adjusted error bars
73
- ax.errorbar(x, y, yerr=[[adjusted_err_down], [adjusted_err_up]], fmt=marker, markersize=8, capsize=0, label=labels[i])
74
-
75
- # Add arrow as cap for err_down >= 1000
76
- if err_down >= 1000:
77
- ax.plot([x], [y - adjusted_err_down], marker="v", color="grey", markersize=8)
78
-
79
- # Add arrow as cap for err_up >= 1000
80
- if err_up >= 1000:
81
- ax.plot([x], [y + adjusted_err_up], marker="^", color="grey", markersize=8)
82
-
83
- nsav = nuda.nuc.setupRnpAverage(source=source)
84
- # print('label:', nsav.label)
85
- if nsav.nskin_cen is not None:
86
- ax.errorbar(len(labels), nsav.nskin_cen, yerr=nsav.sig_std, label=nsav.label,
87
- color='red', marker='o', markersize=10, linestyle='solid', linewidth=3)
13
+ def nuc_setupRnpExp_fig(pname=None, source=None):
14
+ print(f"Using source: {source}")
15
+
16
+ # subplot_label = "(a)"
17
+ subplot_label = " "
18
+
19
+ if source is None:
20
+ print("Erro: nenhum source fornecido.")
21
+ return
22
+
23
+ labels = []
24
+ rskin_values = []
25
+ error_lower = []
26
+ error_upper = []
27
+ markers = []
28
+
29
+ cals = nuda.nuc.rnp_exp_source(source)
30
+
31
+ for cal in cals:
32
+ neutron_skin_calc = nuda.nuc.setupRnpExp(source=source, cal=cal)
33
+
34
+ if neutron_skin_calc.rnp is not None:
35
+ labels.append(neutron_skin_calc.label)
36
+ rskin_values.append(neutron_skin_calc.rnp)
37
+
38
+ err_down = neutron_skin_calc.rnp_sig_lo if neutron_skin_calc.rnp_sig_lo is not None else 0.0
39
+ err_up = neutron_skin_calc.rnp_sig_up if neutron_skin_calc.rnp_sig_up is not None else 0.0
40
+ error_lower.append(err_down)
41
+ error_upper.append(err_up)
42
+
43
+ marker = getattr(neutron_skin_calc, "marker", 'o')
44
+ markers.append(marker)
45
+
46
+ if not rskin_values:
47
+ print(f"Nenhum dado disponível para {source}.")
48
+ return
49
+
50
+ fig, ax = plt.subplots(figsize=(10, 8))
51
+ x_positions = range(len(labels) + 1)
52
+
53
+ for i, (x, y, err_down, err_up, marker) in enumerate(zip(x_positions, rskin_values, error_lower, error_upper, markers)):
54
+ adjusted_err_down = min(err_down, 0.2)
55
+ adjusted_err_up = min(err_up, 0.2)
56
+
57
+ ax.errorbar(x, y, yerr=[[adjusted_err_down], [adjusted_err_up]], fmt=marker, markersize=8, capsize=0, label=labels[i])
58
+
59
+ if err_down >= 1000:
60
+ ax.plot([x], [y - adjusted_err_down], marker="v", color="grey", markersize=8)
61
+ if err_up >= 1000:
62
+ ax.plot([x], [y + adjusted_err_up], marker="^", color="grey", markersize=8)
63
+
64
+ nsav = nuda.nuc.setupRnpAverage(source=source)
65
+ if nsav.rnp_cen is not None:
66
+ ax.errorbar(len(labels), nsav.rnp_cen, yerr=nsav.sig_std, label=nsav.label,
67
+ color='red', marker='o', markersize=10, linestyle='solid', linewidth=3)
88
68
  labels.append(nsav.label)
89
- # Fixed y-axis configuration
90
- ax.set_ylim([0, 0.5]) # Fixed scale from 0 to 0.5 on the y-axis
91
-
92
- # X-axis configuration
93
- ax.set_xticks(x_positions)
94
- ax.set_xticklabels(labels, rotation=45, ha="right", fontsize=15)
95
-
96
- # Y-axis configuration and layout
97
- # Increase font size for y-axis numbers
98
- ax.tick_params(axis='y', labelsize=15) # Adjust the font size as desired
99
- ax.set_ylabel(rf"$R_{{\rm{{skin}}}}$ {SOURCE_LABELS_LATEX[source]} (fm)", fontsize=15)
100
- # ax.set_xlabel(f"References for {SOURCE_LABELS_LATEX[source]}", fontsize=14)
101
- # ax.grid(True, linestyle="--", alpha=0.5)
102
-
103
- # Adjust the legend (only if there are valid labels)
104
- # ax.legend(loc="upper left", bbox_to_anchor=(1, 1), fontsize=10)
105
-
106
- # Add subplot label (e.g., "(a)", "(b)") in the top right corner
107
- ax.text(0.95, 0.95, subplot_labels[idx], transform=ax.transAxes, fontsize=15,
108
- verticalalignment='top', horizontalalignment='right')
109
-
110
- # Add minor ticks on y-axis
111
- ax.yaxis.set_minor_locator(AutoMinorLocator())
112
- ax.tick_params(axis='y', which='minor', length=4, color='gray') # Style for minor ticks
113
-
114
- # Final adjustments and save the plot
115
- #plt.tight_layout()
116
- if pname is not None:
117
- plt.savefig(pname, dpi=200)
118
- plt.close()
119
-
120
- print(f"Plot saved: {pname}")
69
+
70
+ ax.set_ylim([0, 0.5])
71
+ ax.set_xticks(x_positions)
72
+ ax.set_xticklabels(labels, rotation=45, ha="right", fontsize=15)
73
+ ax.tick_params(axis='y', labelsize=15)
74
+ ax.set_ylabel(rf"$R_{{\rm{{skin}}}}$ {SOURCE_LABELS_LATEX[source]} (fm)", fontsize=15)
75
+ ax.text(0.95, 0.95, subplot_label, transform=ax.transAxes, fontsize=15,
76
+ verticalalignment='top', horizontalalignment='right')
77
+ ax.yaxis.set_minor_locator(AutoMinorLocator())
78
+ ax.tick_params(axis='y', which='minor', length=4, color='gray')
79
+
80
+ if pname is None:
81
+ output_dir = os.path.abspath("figs/")
82
+ os.makedirs(output_dir, exist_ok=True)
83
+ pname = os.path.join(output_dir, f"plot_nuc_setupRnp_Exp_{source.replace(' ', '_')}.png")
84
+
85
+ plt.tight_layout()
86
+ plt.savefig(pname, dpi=200)
87
+ plt.close()
88
+ print(f"Plot saved: {pname}")
@@ -1,6 +1,7 @@
1
1
  import numpy as np
2
2
  import matplotlib.pyplot as plt
3
3
  from matplotlib.ticker import AutoMinorLocator # Import para minor ticks
4
+ import os
4
5
 
5
6
  import nucleardatapy as nuda
6
7
 
@@ -11,7 +12,7 @@ SOURCE_LABELS_LATEX = {
11
12
  }
12
13
 
13
14
  # Directory containing the model data tables
14
- MODEL_TABLES_DIR = nuda.param.path_data + '/NeutronSkin/'
15
+ MODEL_TABLES_DIR = nuda.param.path_data + '/rnp/'
15
16
 
16
17
  # Define markers and colors for each model
17
18
  MODEL_STYLES = {
@@ -24,7 +25,7 @@ def read_model_data(directory, source):
24
25
  model_data = {}
25
26
  for filename in os.listdir(directory):
26
27
  if filename.endswith(".dat") and source in filename:
27
- model_name = filename.split("Nskin")[0].lower()
28
+ model_name = filename.split("rnp")[0].lower()
28
29
  filepath = os.path.join(directory, filename)
29
30
  data = []
30
31
  with open(filepath, 'r') as file:
@@ -40,95 +41,93 @@ def read_model_data(directory, source):
40
41
  print(f"Loaded model data for {model_name}: {model_data[model_name]}")
41
42
  return model_data
42
43
 
43
- def nuc_setupRnpExp_fig( pname ):
44
-
44
+ def nuc_setupRnpTheo_fig(pname, source):
45
45
  print(f'Plot name: {pname}')
46
-
47
- sources, _ = nuda.nuc.rnp_exp()
48
- subplot_labels = ["(a)", "(b)"]
49
-
50
- for idx, source in enumerate(sources):
51
- labels = []
52
- rskin_values = []
53
- error_lower = []
54
- error_upper = []
55
- xexp = []
56
-
57
- cals = nuda.nuc.rnp_exp_source(source)
58
- for i, cal in enumerate(cals):
59
- neutron_skin_calc = nuda.nuc.setupRnpExp(source=source, cal=cal)
60
- if neutron_skin_calc.nskin is not None:
61
- labels.append(neutron_skin_calc.label)
62
- rskin_values.append(neutron_skin_calc.nskin)
63
- xexp.append(i)
64
- err_down = neutron_skin_calc.nskin_sig_do if neutron_skin_calc.nskin_sig_do is not None else 0.0
65
- err_up = neutron_skin_calc.nskin_sig_up if neutron_skin_calc.nskin_sig_up is not None else 0.0
66
- error_lower.append(err_down)
67
- error_upper.append(err_up)
68
-
69
- model_data = read_model_data(MODEL_TABLES_DIR, source)
70
- combined_rskin = []
71
- combined_errors = []
72
- combined_markers = []
73
- combined_colors = []
74
- xtheo = []
75
-
76
- for model_name, data in model_data.items():
77
- for j, (_, _, _, rskin) in enumerate(data):
78
- x_position = xexp[j % len(xexp)] + 0.5 # Cycle through xexp and offset by 0.5
79
- xtheo.append(x_position)
80
- combined_rskin.append(rskin)
81
- combined_errors.append((0.0, 0.0))
82
- combined_markers.append(MODEL_STYLES[model_name]["marker"])
83
- combined_colors.append(MODEL_STYLES[model_name]["color"])
84
-
85
- if nuda.env.verb:
86
- print(f"Experimental positions for {source}: {xexp}")
87
- print(f"Theoretical positions for {source}: {xtheo}")
88
-
89
- fig, ax = plt.subplots(figsize=(10, 8))
90
- for i, (x, y, err_down, err_up) in enumerate(zip(xexp, rskin_values, error_lower, error_upper)):
91
- adjusted_err_down = min(err_down, 0.2)
92
- adjusted_err_up = min(err_up, 0.2)
93
- ax.errorbar(x, y, yerr=[[adjusted_err_down], [adjusted_err_up]], fmt='o', markersize=8, capsize=0, color='black', markerfacecolor='none')
94
- if err_down >= 1000:
95
- ax.plot([x], [y - adjusted_err_down], marker="v", color="black", markersize=8)
96
- if err_up >= 1000:
97
- ax.plot([x], [y + adjusted_err_up], marker="^", color="black", markersize=8)
98
-
99
- nsav = nuda.nuc.setupRnpAverage(source=source)
100
- if nsav.nskin_cen is not None:
101
- ax.errorbar(len(labels), nsav.nskin_cen, yerr=nsav.sig_std, label=nsav.label,
102
- color='k', marker='o', markersize=10, linestyle='solid', linewidth=3)
103
- # labels.append(nsav.label)
104
-
105
- for i, (x, y, marker, color) in enumerate(zip(xtheo, combined_rskin, combined_markers, combined_colors)):
106
- ax.plot(x, y, marker=marker, markersize=8, color=color)
107
-
108
- # Add legend for experimental points
109
- ax.scatter([], [], color='black', marker='o', facecolors='none', label='Experimental/Analysis')
110
-
111
- # Add legend for theoretical models
112
- for model_name, style in MODEL_STYLES.items():
113
- ax.scatter([], [], color=style["color"], marker=style["marker"], label=style["label"])
114
-
115
- ax.set_ylim([0, 0.5])
116
- ax.set_xticks(xexp)
117
- ax.set_xticklabels(labels, rotation=45, ha="right", fontsize=15)
118
- ax.set_ylabel(rf"$R_{{\rm{{skin}}}}$ {SOURCE_LABELS_LATEX[source]} (fm)", fontsize=15)
119
- ax.text(0.95, 0.95, subplot_labels[idx], transform=ax.transAxes, fontsize=15, verticalalignment='top', horizontalalignment='right')
120
-
121
- # Add minor ticks on y-axis
122
- ax.yaxis.set_minor_locator(AutoMinorLocator())
123
- ax.tick_params(axis='y', which='minor', length=4, color='gray') # Style for minor ticks
124
-
125
- ax.legend(loc="upper right", bbox_to_anchor=(0.5, 1), fontsize=12)
126
-
127
- output_dir = "figs/"
128
- os.makedirs(output_dir, exist_ok=True)
129
- fig_name = f"{output_dir}plot_nuc_setup_nskin_theo-{source.replace(' ', '_')}.png"
130
- plt.tight_layout()
131
- plt.savefig(fig_name, dpi=200)
132
- plt.close()
133
-
134
- print(f"Plot saved: {fig_name}")
46
+ print(f'Using source: {source}')
47
+
48
+ # subplot_label = "(a)" # remove this if you don't want any labels
49
+ subplot_label = " "
50
+
51
+ labels = []
52
+ rskin_values = []
53
+ error_lower = []
54
+ error_upper = []
55
+ xexp = []
56
+
57
+ cals = nuda.nuc.rnp_exp_source(source)
58
+ for i, cal in enumerate(cals):
59
+ neutron_skin_calc = nuda.nuc.setupRnpExp(source=source, cal=cal)
60
+ if neutron_skin_calc.rnp is not None:
61
+ labels.append(neutron_skin_calc.label)
62
+ rskin_values.append(neutron_skin_calc.rnp)
63
+ xexp.append(i)
64
+ err_down = neutron_skin_calc.rnp_sig_lo if neutron_skin_calc.rnp_sig_lo is not None else 0.0
65
+ err_up = neutron_skin_calc.rnp_sig_up if neutron_skin_calc.rnp_sig_up is not None else 0.0
66
+ error_lower.append(err_down)
67
+ error_upper.append(err_up)
68
+
69
+ model_data = read_model_data(MODEL_TABLES_DIR, source)
70
+ combined_rskin = []
71
+ combined_errors = []
72
+ combined_markers = []
73
+ combined_colors = []
74
+ xtheo = []
75
+
76
+ for model_name, data in model_data.items():
77
+ for j, (_, _, _, rskin) in enumerate(data):
78
+ x_position = xexp[j % len(xexp)] + 0.5 # Cycle through xexp and offset by 0.5
79
+ xtheo.append(x_position)
80
+ combined_rskin.append(rskin)
81
+ combined_errors.append((0.0, 0.0))
82
+ combined_markers.append(MODEL_STYLES[model_name]["marker"])
83
+ combined_colors.append(MODEL_STYLES[model_name]["color"])
84
+
85
+ if nuda.env.verb:
86
+ print(f"Experimental positions for {source}: {xexp}")
87
+ print(f"Theoretical positions for {source}: {xtheo}")
88
+
89
+ fig, ax = plt.subplots(figsize=(10, 8))
90
+ for i, (x, y, err_down, err_up) in enumerate(zip(xexp, rskin_values, error_lower, error_upper)):
91
+ adjusted_err_down = min(err_down, 0.2)
92
+ adjusted_err_up = min(err_up, 0.2)
93
+ ax.errorbar(x, y, yerr=[[adjusted_err_down], [adjusted_err_up]], fmt='o', markersize=8, capsize=0, color='black', markerfacecolor='none')
94
+ if err_down >= 1000:
95
+ ax.plot([x], [y - adjusted_err_down], marker="v", color="black", markersize=8)
96
+ if err_up >= 1000:
97
+ ax.plot([x], [y + adjusted_err_up], marker="^", color="black", markersize=8)
98
+
99
+ nsav = nuda.nuc.setupRnpAverage(source=source)
100
+ if nsav.rnp_cen is not None:
101
+ ax.errorbar(len(labels), nsav.rnp_cen, yerr=nsav.sig_std, label=nsav.label,
102
+ color='k', marker='o', markersize=10, linestyle='solid', linewidth=3)
103
+
104
+ for i, (x, y, marker, color) in enumerate(zip(xtheo, combined_rskin, combined_markers, combined_colors)):
105
+ ax.plot(x, y, marker=marker, markersize=8, color=color)
106
+
107
+ # Add legend for experimental points
108
+ ax.scatter([], [], color='black', marker='o', facecolors='none', label='Experimental/Analysis')
109
+
110
+ # Add legend for theoretical models
111
+ for model_name, style in MODEL_STYLES.items():
112
+ ax.scatter([], [], color=style["color"], marker=style["marker"], label=style["label"])
113
+
114
+ ax.set_ylim([0, 0.5])
115
+ ax.set_xticks(xexp)
116
+ ax.set_xticklabels(labels, rotation=45, ha="right", fontsize=15)
117
+ ax.set_ylabel(rf"$R_{{\rm{{skin}}}}$ {SOURCE_LABELS_LATEX[source]} (fm)", fontsize=15)
118
+ ax.text(0.95, 0.95, subplot_label, transform=ax.transAxes, fontsize=15, verticalalignment='top', horizontalalignment='right')
119
+
120
+ # Add minor ticks on y-axis
121
+ ax.yaxis.set_minor_locator(AutoMinorLocator())
122
+ ax.tick_params(axis='y', which='minor', length=4, color='gray')
123
+
124
+ ax.legend(loc="upper right", bbox_to_anchor=(0.5, 1), fontsize=12)
125
+
126
+ output_dir = "figs/"
127
+ os.makedirs(output_dir, exist_ok=True)
128
+ fig_name = os.path.join(output_dir, f"plot_nuc_setupRnpTheo_source{source.replace(' ', '_')}.png")
129
+ plt.tight_layout()
130
+ plt.savefig(fig_name, dpi=200)
131
+ plt.close()
132
+
133
+ print(f"Plot saved: {fig_name}")
nucleardatapy/hello.py ADDED
@@ -0,0 +1,6 @@
1
+
2
+ def hello():
3
+ print('hello world!')
4
+
5
+ if __name__ == "__main__":
6
+ hello()
@@ -150,16 +150,16 @@ class setupRE1LExp():
150
150
  #: Attribute A (mass of the nucleus).
151
151
  self.A = self.Z + self.N + np.ones(len(self.N),dtype=int)
152
152
  #: charge of the hypernuclei (=Z, since Lamnda is charged 0)
153
- self.ch = self.Z
153
+ self.Q = self.Z
154
154
  #: Strangness number
155
- self.S = -2*np.ones(len(self.N),dtype=int)
155
+ self.S = -1*np.ones(len(self.N),dtype=int)
156
156
  #: symbol representing the nucleus
157
157
  self.symb = nucSymb
158
- #: Attribute the angular momentum of the state.
158
+ #: Attribute the s.p. state.
159
159
  self.sps = nucsps
160
160
  #: Attribute the angular momentum of the state.
161
161
  self.ell = np.array( nucell, dtype = int )
162
- #: Attribute 1L binding energy in MeV.
162
+ #: Attribute 1L removal energy in MeV.
163
163
  self.lre = np.array( nuclre, dtype = float )
164
164
  #: Attribute 1L binding energy error in MeV.
165
165
  self.lre_err = np.array( nuclre_err, dtype = float )
@@ -204,7 +204,7 @@ class setupRE1LExp():
204
204
  if any(self.Z): print(f" Z: {self.Z}")
205
205
  if any(self.N): print(f" N: {self.N}")
206
206
  if any(self.S): print(f" S: {self.S}")
207
- if any(self.ch): print(f" ch: {self.ch}")
207
+ if any(self.Q): print(f" Q: {self.Q}")
208
208
  if any(self.symb): print(f" symb: {self.symb}")
209
209
  if any(self.ell): print(f" ell: {self.ell}")
210
210
  if any(self.lre): print(f" re: {self.lre}")
@@ -225,7 +225,7 @@ class setupRE1LExp():
225
225
  print(rf" index & Z & N & S & ch & symb & $RE$ & Ref. \\\\")
226
226
  print(rf" & & & & & & (MeV) & \\\\")
227
227
  for ind,A in enumerate(self.A):
228
- print(rf" {ind} & {self.Z[ind]} & {self.N[ind]} & {self.S[ind]} & {self.ch[ind]} & {self.symb[ind]} & ${self.lre[ind]:.3f}\pm {self.lre_err[ind]:.3f}$ & \cite{{"+self.keyref+"} \\\\")
228
+ print(rf" {ind} & {self.Z[ind]} & {self.N[ind]} & {self.S[ind]} & {self.Q[ind]} & {self.symb[ind]} & ${self.lre[ind]:.3f}\pm {self.lre_err[ind]:.3f}$ & \cite{{"+self.keyref+"} \\\\")
229
229
  else:
230
230
  print(f"- No table for source {self.table} (average). To get table, write 'verb_latex = True' in env.py.")
231
231
  #
@@ -117,12 +117,12 @@ class setupRE1XiExp():
117
117
  #: Strangness number (to be checked)
118
118
  self.S = -2*np.ones(len(self.N),dtype=int)
119
119
  #: charge of the hypernuclei (=Z-1, since Xi is charged -1)
120
- self.ch = self.Z - np.ones(len(self.N),dtype=int)
120
+ self.Q = self.Z - np.ones(len(self.N),dtype=int)
121
121
  #: symbol representing the nucleus
122
122
  self.symb = nucSymb
123
- #: Attribute 1L binding energy in MeV.
123
+ #: Attribute 1Xi removal energy in MeV.
124
124
  self.xire = np.array( nucxire, dtype = float )
125
- #: Attribute 1L binding energy error in MeV.
125
+ #: Attribute 1Xi removal energy error in MeV.
126
126
  self.xire_err = np.array( nucxire_err, dtype = float )
127
127
  #: Attribute the probe.
128
128
  self.probe = probe
@@ -162,7 +162,7 @@ class setupRE1XiExp():
162
162
  if any(self.Z): print(f" Z: {self.Z}")
163
163
  if any(self.N): print(f" N: {self.N}")
164
164
  if any(self.S): print(f" S: {self.S}")
165
- if any(self.ch): print(f" ch: {self.ch}")
165
+ if any(self.Q): print(f" Q: {self.Q}")
166
166
  if any(self.symb): print(f" symb: {self.symb}")
167
167
  if any(self.xire): print(f" xibe: {self.xire}")
168
168
  if any(self.xire_err): print(f" xibe_err: {self.xire_err}")
@@ -183,7 +183,7 @@ class setupRE1XiExp():
183
183
  print(rf" index & Z & N & S & ch & symb & RE & & Ref. \\\\")
184
184
  print(rf" & & & & & & (MeV) & & \\\\")
185
185
  for ind,A in enumerate(self.A):
186
- print(rf" {ind} & {self.Z[ind]} & {self.N[ind]} & {self.S[ind]} & {self.ch[ind]} & {self.symb[ind]} & ${self.xire[ind]:.3f}\pm {self.xire_err[ind]:.3f}$ & & \\cite{{"+self.keyref+"} \\\\")
186
+ print(rf" {ind} & {self.Z[ind]} & {self.N[ind]} & {self.S[ind]} & {self.Q[ind]} & {self.symb[ind]} & ${self.xire[ind]:.3f}\pm {self.xire_err[ind]:.3f}$ & & \\cite{{"+self.keyref+"} \\\\")
187
187
  else:
188
188
  print(f"- No table for source {self.table} (average). To get table, write 'verb_latex = True' in env.py.")
189
189
  #
@@ -119,14 +119,14 @@ class setupRE2LExp():
119
119
  #: Attribute A (mass of the nucleus).
120
120
  self.A = self.Z + self.N + 2*np.ones(len(self.N),dtype=int)
121
121
  #: charge of the hypernuclei (=Z, since Lamnda is charged 0)
122
- self.ch = self.Z
122
+ self.Q = self.Z
123
123
  #: Strangness number
124
- self.S = -2*2*np.ones(len(self.N),dtype=int)
124
+ self.S = -2*np.ones(len(self.N),dtype=int)
125
125
  #: symbol representing the nucleus
126
126
  self.symb = nucSymb
127
- #: Attribute 2L binding energy in MeV.
127
+ #: Attribute 2L removal energy in MeV.
128
128
  self.llre = np.array( nuclre, dtype = float )
129
- #: Attribute 2L binding energy error in MeV.
129
+ #: Attribute 2L removal energy error in MeV.
130
130
  self.llre_err = np.array( nuclre_err, dtype = float )
131
131
  #: Attribute 2L bond energy in MeV.
132
132
  self.lldre = np.array( nucldre, dtype = float )
@@ -171,7 +171,7 @@ class setupRE2LExp():
171
171
  if any(self.Z): print(f" Z: {self.Z}")
172
172
  if any(self.N): print(f" N: {self.N}")
173
173
  if any(self.S): print(f" S: {self.S}")
174
- if any(self.ch): print(f" ch: {self.ch}")
174
+ if any(self.Q): print(f" Q: {self.Q}")
175
175
  if any(self.symb): print(f" symb: {self.symb}")
176
176
  if any(self.llre): print(f" be: {self.llre}")
177
177
  if any(self.llre_err): print(f" be_err: {self.llre_err}")
@@ -193,7 +193,7 @@ class setupRE2LExp():
193
193
  print(rf" index & Z & N & S & ch & symb & $RE$ & $\Delta RE$ & Ref. \\\\")
194
194
  print(rf" & & & & & & (MeV) & (MeV) & \\\\")
195
195
  for ind,A in enumerate(self.A):
196
- print(rf" {ind} & {self.Z[ind]} & {self.N[ind]} & {self.S[ind]} & {self.ch[ind]} & {self.symb[ind]} & ${self.llre[ind]:.3f}\pm {self.llre_err[ind]:.3f}$ & ${self.lldre[ind]:.3f}\pm {self.lldre_err[ind]:.3f}$ & \\cite{{"+self.keyref+"} \\\\")
196
+ print(rf" {ind} & {self.Z[ind]} & {self.N[ind]} & {self.S[ind]} & {self.Q[ind]} & {self.symb[ind]} & ${self.llre[ind]:.3f}\pm {self.llre_err[ind]:.3f}$ & ${self.lldre[ind]:.3f}\pm {self.lldre_err[ind]:.3f}$ & \\cite{{"+self.keyref+"} \\\\")
197
197
  else:
198
198
  print(f"- No table for source {self.table} (average). To get table, write 'verb_latex = True' in env.py.")
199
199
  #
@@ -2,17 +2,17 @@
2
2
  This module provides microscopic, phenomenological and experimental data constraints.
3
3
  """
4
4
  #
5
- from nucleardatapy.matter.setup_ffg import *
6
- from nucleardatapy.matter.setup_micro import *
7
- from nucleardatapy.matter.setup_micro_effmass import *
8
- from nucleardatapy.matter.setup_micro_gap import *
9
- from nucleardatapy.matter.setup_micro_band import *
10
- from nucleardatapy.matter.setup_micro_esym import *
11
- from nucleardatapy.matter.setup_micro_lp import *
12
- from nucleardatapy.matter.setup_pheno import *
13
- from nucleardatapy.matter.setup_pheno_esym import *
14
- from nucleardatapy.matter.setup_hic import *
15
- from nucleardatapy.matter.setup_nep import *
16
- from nucleardatapy.matter.setup_nep_dist import *
17
- from nucleardatapy.matter.setup_nep_model_dist import *
18
- from nucleardatapy.matter.setup_check import *
5
+ from nucleardatapy.matter.setup_ffg import *
6
+ from nucleardatapy.matter.setup_micro import *
7
+ from nucleardatapy.matter.setup_micro_effmass import *
8
+ from nucleardatapy.matter.setup_micro_gap import *
9
+ from nucleardatapy.matter.setup_micro_band import *
10
+ from nucleardatapy.matter.setup_micro_esym import *
11
+ from nucleardatapy.matter.setup_micro_lp import *
12
+ from nucleardatapy.matter.setup_pheno import *
13
+ from nucleardatapy.matter.setup_pheno_esym import *
14
+ from nucleardatapy.matter.setup_hic import *
15
+ from nucleardatapy.matter.setup_nep import *
16
+ from nucleardatapy.matter.setup_nep_stat_model import *
17
+ from nucleardatapy.matter.setup_nep_stat_models import *
18
+ from nucleardatapy.matter.setup_check import *