X4Pro - universal, fully relational EXFOR database
by V.Zerkin, IAEA-NDS, 2021-2023, version: 2023-06-13

This page presents progress in development X4Pro database and tools (download).

Concept.
X4Pro extends EXFOR-Relational database with experimental data points in original and computational form and additional information for data renormalization.
The X4Pro database provides:
- access to all EXFOR meta-data and numerical data using only SQL commands, i.e. no need in original EXFOR, EXFOR parser and converter
- data for renormalization: old and new monitor cross sections, old and new decay data (gamma lines intensity of measured reaction and monitor product)
- experts' instructions for EXFOR data modifications
- EXFOR Subentries and Datasets in X5-json format (since 2023-03-30)

Tasks of the project:
1. Desing of database schema
2. Work out data and programming needs on typical examples
3. Develop new concept of EXFOR data corrections and define workflow
4. Envent/find out possible technical solutions for existing tasks, study problems, implement solutions
5. Prepare for test/demo examples for end-user, confirm working tools on platfroms/enviromnent:
   a) X4Pro: local SQLite database and remote MariaDB database
   b) python on Windows, Linux, MacOS (plot with Plotly and Mathplotlib)
   c) gfortran, gcc on Windows, Linux, MacOS
   d) retrieve ENDF data from Web server and plot together with EXFOR data
   e) populate NoSQL database (CouchDB) using X5-json from X4Pro as data source

Distribution (see readme, license, copyright), ver.2023-06-13:
- X4Pro/SQLite database, ver.2023-06-13
- Python and Fortran demo programs, ver.2023-06-07
- consists of 4 parts:
# Dir Description SF:MF Notes Demo plot/output [code][modules] Comment
Part-1. Retrieve data from local EXFOR database
Python. Retrieve experimental data from X4Pro database and plot data using Plotly amd Matplotlib
0. part1-0-sig Cross sections
SIG Al-27(n,a):CS(Ei) Code: single .py file for copy/paste
2) data groupped Reaction-codes
1. part1-1-sig Cross sections
SIG Al-27(n,a):CS(Ei) Coding: modular (several .py files)
2) data groupped Reaction-codes
2. part1-2-da Angular distributions
DA O-16(a,el):DA(Ei) Plotly/matplotlib
3. part1-3-dap Angular distributions (partial)
PAR,DA Li-6(he3,p):DA(θ) Plotly/matplotlib
4. part1-4-de Emission spectra
DE Th-232(n,xn):DE(Eo) Plotly/matplotlib
5. part1-5-dae Double differntial cross sections DA/DE F-19(n,xn):DAE(Eo) Plotly/matplotlib
6. part1-6-fy Fission yeild (mass distribution) FY U-238(n,f):FY(A)|Ei14MeV

U-235(n,f):hist2(A,TKE)
1) Plotly/matplotlib
2) Plotly: Contour-2D
3) Matplotlib: plot_surface-3D
4) Matplotlib-2d, 2 subplots
7. part1-7-covar Covariance data stored in EXFOR SIG 1) 241Am(n,2n) correlations
    ERR-T,MONIT-ERR,ERR-5
2) Reaction-reaction
    correlations
1) Matplotlib-2d, 3 subplots

2) Matplotlib-2d, 1 subplot
./ Common modules:
Fortran. Retrieve X4Pro data from Fortan program via C subroutines
8. part1-fortran/ 0) Simple example Fortran executing SQL
1) Double differntial cross sections
2) Cross sections
3) Cross sections
--
DA/DE
SIG
SIG
First 8 Entries from F-Area
F-19(n,xn):DAE(Eo)
Mn-55(n,a):CS(Ei)
Mn-55(n,a):CS(Ei) →C4
No plots, output text only
9. part1-fortran/
See also implemen-
tation in Python:
part3-7-legrs2da
4) Retrieve LEG/RS and SIG from
the same Entry; calculate missing
Legendre coefficient L[0];
calculate angular distributions
LEG/RS
SIG
Cu-0(n,el):DA,,LEG/RS(Ei)
SIG→L[0]
L[0..n],θ→DA(θ)
FIND:  SIG from <Entry, Reaction, Ei>
CALC: SIG/4π → L[0];
CALC(Ei): L[0..n],θ → DA(Ei,θ)
part1-fortran/ Common subroutines:
Part-2. Retrieve local EXFOR and remote ENDF data
Python. Retrieve and plot experimental (local EXFOR) and evaluated data (Web ENDF-API)
1. part2-1-sig1 Cross sections SIG Al-27(n,a):CS(Ei) 1) using Plotly and Matrplotlib
2) data groupped Reaction-codes
2. part2-2-da1an Angular distributions (Ei:fixed) DA Mn-55(a,el):DA(θ) DA + MF4/MF34#new
3. part2-3-da1ei Angular distributions (Angle:fixed) DA C-12(a,el):DA(Ei) Plotly/matrplotlib
4. part2-4-de1eo Emission spectra
DE Th-232(n,xn):DE(Eo) Plotly/matplotlib
5. part2-5-dae1eo Double differntial cross sections DA/DE F-19(n,xn):DAE(Eo) Plotly/matplotlib
6. part2-6-fy Fission yeild (mass distribution) FY U-238(n,f):FY(A)|Ei14MeV Plotly/matplotlib
./ Additional common modules:
Part-3. EXFOR data corrections and recalculations (for experts)
Python. EXFOR data corrections (automatic*, users, experts*) and calculations + plot with ENDF data
      *Note. All input for corrections (monitor CS data, decay data, experts' operations) are stored in the database.
1. part3-1-auto1 Automatically renormalize CS using
old monitor CS and new standards
SIG Mn-55(n,a):CS(Ei)
mon/std from database
AUTO[0]
[0]: MONITOR, MONIT-REF, MONIT,..
2. part3-2-user1 Correct data by user's program Ratio pu239/u235(n,f):(Ei) USER
3. part3-3-expert1 Apply experts corrections stored in
X4Pro database
SIG Zn-64(n,p):CS(Ei) EXPERT
4. part3-4-auto2 Automatically renormalize CS using
old monitor CS and new standards,
old and new decay data
SIG V-51(n,p):CS(Ei) AUTO[0][1][2]
[1]: DECAY-DATA
[2]: DECAY-MON
5. part3-5-ratio2sig Retrieve ratios, calculate CS and
uncertainties using latest standards
Ratio V-51(n,p)/U-238(n,f):(Ei)
Ratio→SIG
CALC: Ratio×U-238(n,f) → SIG
6. part3-6-daleg2sig Retrieve Legendre coefficient L[0],
calculate cross sections and errors
LEG B-11(n,el):DA,,LEG(Ei)
L[0]→SIG
CALC: L[0]×4π → SIG
7. part3-7-legrs2da Retrieve LEG/RS and SIG from
the same Entry; calculate missing
Legendre coefficient L[0];
calculate angular distributions
LEG/RS
SIG
Cu-0(n,el):DA,,LEG/RS(Ei)
SIG→L[0]
L[0..n],θ→DA(θ)
FIND:  SIG from <Entry, Reaction, Ei>
CALC: SIG/4π → L[0];
CALC(Ei): L[0..n],θ → DA(Ei,θ)
8. part3-8-leg2r33 Retrieve Legendre coefficient
calculate angular distributions
store R33dat (draft of R33)
LEG Li-6(p,he3):LEG(Ei) CALC(Ei): L[0..n],θ → DA(Ei,θ)
./ Additional common modules:
Part-4. Export contents of X4Pro to NoSQL databases (for NoSQL databases developers)
Python. Retrieve data from X4Pro and store them as JSON in NoSQL-Document database
      *Note. Since 2022-08-30 X4Pro includes two tables presenting Subentries and Datasets in X5-json format.
1. part4-0-couchdb Retrieve JSON presentation of
Subent in X5-json format from Table
x4pro_x4z, created a Dictionary
"Entry" and store it as Document
in CouchDB database
-NA- JSON files for each Subent
are retrieved row-by-row
and collected into Python
List


Created by V.Zerkin, IAEA, 09-Dec-2021