File format for \((\text{n},~x\text{n}~\gamma)\) cross section data

A key point of the FAIR principles of Interoperability and Reusability is to have the data easily readable. To that purpose, the data format should be in a well defined format and, if possible, the software to read and interpret it should be available too. All this is stated in the metadata along with the data, but there’s still a requirement to have a well defined format.

Some data sets have a predefined format that can’t be changed (for example, raw data directly from the acquisition system), some others are totally up to the user (histograms data, final values, …). A wise choice in file data is needed.

In the context of nuclear data, several data format exist already.

ENDF-6

The historical evaluated nuclear data format (ENDF) has been around since 1960 (with the latest update in 2011), and bears the stigma of history. Files are divided into material (MAT), data type (MF), reaction (MT) sections. The format uses fixed columns and other methods from old time when storage space was scarce and data was stored on tapes. It is particularly not human-readable. An excerpt from the 183W section of the JEFF 3.3 library related to \((\text{n},~\text{n}')\) reaction is given in Listing 22, and as you can see, it’s not easy to understand what’s going on…

Listing 22 Part of the 183W entry in JEFF-3.3, in ENDF-6 format. Note the use of, for example, 5.0+4 to mean 5.0E+04, a space saving format.
 7.418300+4 1.813786+2          1          0          2          17434 1451    1
 0.000000+0 0.000000+0          0          0          0          67434 1451    2
 1.000000+0 1.500000+8          3          0         10          37434 1451    3
 0.000000+0 0.000000+0          0          0        375        1567434 1451    4
 74-W -183  FZK/IRS,+ EVAL-OCT13 P.Pereslavtsev et al., +         7434 1451    5
  PE03,PE04           DIST-DEC17 REV3-DEC17            20171231   7434 1451    6
---JEFF-3.3           MATERIAL 7434                               7434 1451    7
-----INCIDENT NEUTRON DATA                                        7434 1451    8
------ENDF-6 FORMAT                                               7434 1451    9
...
 MF=3  MT=4  TOTAL INELASTIC CROSS SECTION                        7434 1451  156
                                                                  7434 1451  157
   Equal to the sum of the inelastic level excitation and         7434 1451  158
 continuum cross sections.                                        7434 1451  159
...
------------------------ C O N T E N T -------------------------- 7434 1451  379
 7.418300+4 1.813786+2          0          0          0          07434 3  4    1
 0.000000+0-4.648300+4          0          0          1        1007434 3  4    2
        100          2                                            7434 3  4    3
 4.673928+4 0.000000+0 5.000000+4 8.365700-2 6.000000+4 2.245610-17434 3  4    4
 7.000000+4 3.113560-1 8.000000+4 3.734510-1 9.000000+4 4.205670-17434 3  4    5
 9.962525+4 4.461144-1 1.000000+5 4.481090-1 1.200000+5 5.047930-17434 3  4    6
 1.400000+5 5.293290-1 1.500000+5 5.417281-1 1.600000+5 5.563270-17434 3  4    7
 1.800000+5 5.795610-1 2.000000+5 5.965609-1 2.081000+5 6.012058-17434 3  4    8
 2.081533+5 6.012374-1 2.099572+5 6.036410-1 2.102000+5 6.049178-17434 3  4    9
 2.500000+5 1.070499+0 2.933324+5 1.318352+0 2.936000+5 1.321558+07434 3  4   10
 3.000000+5 1.398313+0 3.106493+5 1.463571+0 3.107000+5 1.463884+07434 3  4   11
 3.111993+5 1.466763+0 3.112000+5 1.466767+0 4.000000+5 1.691896+07434 3  4   12
 4.143000+5 1.719826+0 4.143670+5 1.719945+0 4.555000+5 1.816094+07434 3  4   13
 4.555689+5 1.816244+0 4.896850+5 1.919803+0 4.897000+5 1.919849+07434 3  4   14
 5.000000+5 1.949524+0 5.541384+5 2.045104+0 5.571000+5 2.050429+07434 3  4   15
 5.986223+5 2.106552+0 6.000000+5 2.108461+0 6.033000+5 2.112859+07434 3  4   16
 6.234000+5 2.138962+0 6.261935+5 2.142214+0 7.000000+5 2.237573+07434 3  4   17
 7.439994+5 2.289433+0 7.441000+5 2.289683+0 7.500000+5 2.303002+07434 3  4   18
 8.000000+5 2.388849+0 9.000000+5 2.510261+0 1.000000+6 2.614783+07434 3  4   19
 1.100000+6 2.727683+0 1.200000+6 2.797268+0 1.300000+6 2.867075+07434 3  4   20
 1.400000+6 2.895882+0 1.500000+6 2.937643+0 1.600000+6 2.970448+07434 3  4   21
 1.700000+6 2.985648+0 1.800000+6 3.000151+0 1.900000+6 2.998522+07434 3  4   22
 2.000000+6 3.001463+0 2.100000+6 3.019932+0 2.200000+6 3.021913+07434 3  4   23
 2.300000+6 3.021152+0 2.400000+6 3.014486+0 2.500000+6 3.008775+07434 3  4   24
 2.600000+6 2.993317+0 2.800000+6 2.964127+0 3.000000+6 2.937316+07434 3  4   25
 3.200000+6 2.917485+0 3.400000+6 2.898280+0 3.500000+6 2.888906+07434 3  4   26
 3.600000+6 2.884546+0 3.800000+6 2.876070+0 4.000000+6 2.867934+07434 3  4   27
 4.200000+6 2.847658+0 4.400000+6 2.827546+0 4.500000+6 2.817547+07434 3  4   28
 4.600000+6 2.810430+0 4.800000+6 2.796244+0 5.000000+6 2.782134+07434 3  4   29
 5.500000+6 2.736055+0 6.000000+6 2.691355+0 6.500000+6 2.608172+07434 3  4   30
 7.000000+6 2.407241+0 7.500000+6 2.035581+0 8.000000+6 1.775451+07434 3  4   31
 8.500000+6 1.504183+0 9.000000+6 1.243975+0 1.000000+7 8.460758-17434 3  4   32
 1.100000+7 6.561284-1 1.200000+7 5.358298-1 1.300000+7 4.556767-17434 3  4   33
 1.400000+7 4.047817-1 1.450000+7 3.836709-1 1.500000+7 3.625604-17434 3  4   34
 1.600000+7 3.338595-1 1.700000+7 3.121871-1 1.800000+7 2.900821-17434 3  4   35
 1.900000+7 2.678049-1 2.000000+7 2.537605-1 2.000001+7 0.000000+07434 3  4   36
 1.500000+8 0.000000+0                                            7434 3  4   37
 0.000000+0 0.000000+0          0          0          0          07434 3  099999
GNDS

To overcome the shortcoming of ENDF-6, a working group of the Working Party on International Nuclear Data Evaluation Cooperation was formed in 2012, to propose a new, more modern format, that would allow more flexibility and has fewer limitations. The Generalized Nuclear Database Structure (GNDS), released in 2020 [1], is before all a structure that can be implemented into XML, Json, …

The GNDS formatted version of the data presented in Listing 22 in ENDF format is given in Listing 23. It is somewhat more readable.

Listing 23 Same data as in Listing 22, but formatted in GNDS.
<reactionSuite projectile="n" target="W183" format="gnd version 1.2" temperature="0 K">
  <styles>
    <style name="evaluated" version="3.3.1" library="JEFF"/>
  </styles>
  <documentations>
  </documentations>
  <summedReaction label="30" name="(z,n)" Q="-46483 eV" date="2013-10-01" ENDF_MT="4">
    <crossSection nativeData="linear">
      <linear xData="XYs" length="100" accuracy="0.001">
      <axes>
        <axis index="0" label="energy_in" unit="eV" interpolation="linear,linear" frame="lab"/>
        <axis index="1" label="crossSection" unit="b" frame="lab"/>
      </axes> 
      <data>
            46739.28 0 5e4 0.083657 6e4 0.224561 7e4 0.311356 8e4 0.373451 9e4 0.420567 99625.25 0.4461144 
            1e5 0.448109 1.2e5 0.504793 1.4e5 0.529329 1.5e5 0.5417281 1.6e5 0.556327 1.8e5 0.579561 2e5 
            0.5965609 208100 0.6012058 208153.3 0.6012374 209957.2 0.603641 210200 0.6049178 2.5e5 1.070499 
            293332.4 1.318352 293600 1.321558 3e5 1.398313 310649.3 1.463571 310700 1.463884 311199.3 1.466763 
            311200 1.466767 4e5 1.691896 414300 1.719826 414367 1.719945 455500 1.816094 455568.9 1.816244 
            489685 1.919803 489700 1.919849 5e5 1.949524 554138.4 2.045104 557100 2.050429 598622.3 2.106552 
            6e5 2.108461 603300 2.112859 623400 2.138962 626193.5 2.142214 7e5 2.237573 743999.4 2.289433 
            744100 2.289683 7.5e5 2.303002 8e5 2.388849 9e5 2.510261 1e6 2.614783 1.1e6 2.727683 1.2e6 2.797268 
            1.3e6 2.867075 1.4e6 2.895882 1.5e6 2.937643 1.6e6 2.970448 1.7e6 2.985648 1.8e6 3.000151 1.9e6 
            2.998522 2e6 3.001463 2.1e6 3.019932 2.2e6 3.021913 2.3e6 3.021152 2.4e6 3.014486 2.5e6 3.008775 
            2.6e6 2.993317 2.8e6 2.964127 3e6 2.937316 3.2e6 2.917485 3.4e6 2.89828 3.5e6 2.888906 3.6e6 
            2.884546 3.8e6 2.87607 4e6 2.867934 4.2e6 2.847658 4.4e6 2.827546 4.5e6 2.817547 4.6e6 2.81043 
            4.8e6 2.796244 5e6 2.782134 5.5e6 2.736055 6e6 2.691355 6.5e6 2.608172 7e6 2.407241 7.5e6 2.035581 
            8e6 1.775451 8.5e6 1.504183 9e6 1.243975 1e7 0.8460758 1.1e7 0.6561284 1.2e7 0.5358298 1.3e7 
            0.4556767 1.4e7 0.4047817 1.45e7 0.3836709 1.5e7 0.3625604 1.6e7 0.3338595 1.7e7 0.3121871 1.8e7 
            0.2900821 1.9e7 0.2678049 2e7 0.2537605 20000010 0 1.5e8 0
       </data>
     </linear>
    </crossSection>
  </summedReaction>
</reactionSuite>

However, the GNDS format has one major issue: its versatility. It is very hard to write a full file or just one data set. There are many options, types, … It can be cumbersome to write/read, in particular for a physicist that just wants to format its final data into a standardized format for publication.

Exfor

Exfor has a format for experimental nuclear data sets. Like ENDF, it relies on fixed length format.

Listing 24 is an example of the Exfor entry for refrence [2] and [3] (See Population of an isomer in (\text{n},~\text{n}') reactions).

Listing 24 Part of the Exfor entry 21818.007 [2].
ENTRY            21818   20180311   20190222   20190220       2270
SUBENT        21818001   20180311   20190222   20190220       2270
BIB                 14         39
INSTITUTE  (2GERKIG) Experimental site,R.P.,H.-U.F.
           (2GERHAM) B.A.
REFERENCE  (C,82ANTWER,,859,1982)
AUTHOR     (B.Anders,R.Pepelnik,H.-U.Fanger)
TITLE       Application of a novel 14 MeV neutron activation
            analysis system for cross section measurements
            with short-lived nuclides
FACILITY   (NGEN,2GERKIG) 14 MeV neutron generator KORONA at
                           GKSS Geesthacht.
INC-SOURCE (D-T) No details given.
INC-SPECT  (EN-RSV-HW) Neutron flux more that 3 x 10**10 n/cm2/s
METHOD     .Activation. The gamma line of the decay of the
            isomeric state is measured.
DETECTOR   (GELI) 18% Ge(Li) detector at 26.5 mm from the sample.
           (LONGC) Long counter to monitor the neutron
            source strength of about 3.E+12 n/sec.
MONITOR    (23-V-51(N,P)22-TI-51,,SIG)  - value is given in
           82ANTWER,,859 with comment that it is measured
           previously at KORONA relative to 27Al(n,alpha) and
           27Al(n,p) reaction. Similar value is given in 21999.014
CORRECTION .Coincidence summing up of gamma-lines,
           .absorption of the gamma lines.
ERR-ANALYS (ERR-T) Total error given. It is composed as follows
            * Gamma intensity errors.
           (ERR-1,0.3,3.) the error of the peak area estimated by
            the peak analysis program                    0.3-3.0%
           (ERR-2,1.5,2.5) Summing correction errors,    1.5-2.5%
           (ERR-3) Absorption correction errors.               5%
           (ERR-4) Flux and gamma-ray efficiency calibration
                                                  estimated to 3%
            * Errors due to half-lives, mass determinations
              and isotopic abundances  are negligible.
STATUS     (TABLE) Data taken from 82ANTWER,,859,1982.
HISTORY    (19830120C) G.C.
           (20180311A) SD:Updated to new date formats,lower case.
           Comma in main ref. was added. ERR-ANALYS update. Data
           were update according to presentation in the Table.
           Two Subents (013,014) were added. REACTION code
           Subent 012 corrected. EN-RSL -> EN-RSL-HW.
ENDBIB              39
COMMON               6          3
EN         EN-RSL-HW  MONIT      MONIT-ERR  ERR-3      ERR-4
MEV        MEV        MB         MB         PER-CENT   PER-CENT
    14.6      0.2       28.0        1.5         5.         3.
ENDCOMMON            3
ENDSUBENT           46
SUBENT        21818007   20180311   20190222   20190220       2270
BIB                  4          5
REACTION   (74-W-183(N,INL)74-W-183-M,,SIG)
SAMPLE     (74-W-183,ENR=0.774) .W sample 77.4% enriched in W-183.
DECAY-DATA (74-W-183-M,5.3SEC,DG,108.,0.18,DG,160.,0.049,
            DG,210.,0.009)
STATUS     (TABLE) Data taken from table 1 of 82ANTWER,,859,1982.
ENDBIB               5
NOCOMMON             0          0
DATA                 2          1
DATA       ERR-T
MB         MB
       127.        14.
ENDDATA              3
ENDSUBENT           13
ENDENTRY             2

These formats suffer from their age (for ENDF and Exfor) or there versatility (for GNDS). Old formats are hard to read and write, the new GNDS has so many options, types, … that writing one little data set into the format is a challenge. In other words, GNDS is a good exchange format (it can easily be read by a software and the data can be transformed into other format). But we have to remember that Readability counts, therefore publishing our data, even a very little dataset, should be done with caution and using a format that is easy to write (for the producer) and to read and import into a database.

The good news, is that Exfor allows the export of data set in json format. Listing 25 is the Exfor data set used as example earlier, exported in json.

Listing 25 Same data as in Listing 24 but formatted in json.
{
    "format":"X4JSON.0.1.2" 
    ,"now":"2023-04-26T14:02:12.000Z" 
    ,"program":"EXFOR converter, by V.Zerkin, IAEA-NDS, 2007-2019 (ver.2020-05-11)" 
    ,"input": {  "files": [ { "name":"X4R8350_tdat.x4"  ,"format":"EXFOR"  ,"created":"2023-04-26T14:02:12.000Z"  } ] }
    ,"output": { "files": [ { "name":"X4R8350_tdat.x4.x4t"  ,"format":"JSON"  ,"outBib":"0"  ,"created":"2023-04-26T14:02:12.000Z"  } ] }
    ,"datasets": [
    
    {"id":"21818007"
     ,"subent": {"id":"21818007", "updated":"20180311" }
     ,"entry": {"id":"21818", "updated":"20180311" }
     ,"author1":"B.Anders+"
     ,"year":"1982"
     ,"ref1":{ "code":"C,82ANTWER,,859,1982" ,"std":"C,82ANTWER,,859,1982"
               ,"exp":"Conf: Conf.on Nucl.Data for Sci.and Technol.,Antwerp 1982, p.859 (1982)"
             }
     ,"reaction": {
        "code": "74-W-183(N,INL)74-W-183-M,,SIG"
       ,"C4Reaction":"(N,INL),SIG"
       ,"Proj":"N" ,"ProjZA":"1"
       ,"Target":"74-W-183" ,"TargZA":"74183"
       ,"ProdMeta":"M"
       ,"MF": 3 ,"MT": 4
       ,"ReactionType":"CS"
       ,"Quantity":"Cross section"
       ,"IndVarFamCode":"0 2"
       ,"ExpectedUnits":"B"
     }
     ,"datasect": {
       "xVariables": 1
       ,"formula":"Y = Y(X1)"
       ,"col": 10
       ,"row": 1
     }
     ,"headers": [
   
        { "ii":1 ,"varType":"Data" ,"varVar":"variable"
       ,"nval":1   ,"minval":"127."   ,"maxval":"127."
       ,"varSorted":"0.1" ,"what":"Y.Value"
       ,"dataType":"21"  ,"numVar":"0.1"
       ,"x4Header":"DATA" ,"SAN":"007" ,"expansion":"Data: data"
       ,"x4Units":"MB" ,"hlpUnits":"millibarns"
       ,"BasicUnits":"B" ,"ConvFactor":"0.001"
       }
   
      , { "ii":2 ,"varType":"Error" ,"varVar":"variable"
       ,"nval":1   ,"minval":"14."   ,"maxval":"14."
       ,"varSorted":"0.911" ,"what":"Y.Err+-"
       ,"dataType":"21"  ,"numVar":"0.911"
       ,"x4Header":"ERR-T" ,"SAN":"007" ,"expansion":"Uncertainty: +-error"
       ,"x4Units":"MB" ,"hlpUnits":"millibarns"
       ,"BasicUnits":"B" ,"ConvFactor":"0.001"
       }
   
      , { "ii":3 ,"varType":"Error" ,"varVar":"constant"
       ,"nval":1   ,"minval":"0.3"   ,"maxval":"0.3"
       ,"varSorted":"0.955" ,"what":"Y.pErr+-"
       ,"dataType":"21"  ,"numVar":"0.955"
       ,"x4Header":"ERR-1" ,"SAN":"007" ,"expansion":"Uncertainty: +-partial error"
       ,"x4Units":"PER-CENT" ,"hlpUnits":"per-cent"
       }
   
      , { "ii":4 ,"varType":"Error" ,"varVar":"constant"
       ,"nval":1   ,"minval":"1.5"   ,"maxval":"1.5"
       ,"varSorted":"0.955" ,"what":"Y.pErr+-"
       ,"dataType":"21"  ,"numVar":"0.955"
       ,"x4Header":"ERR-2" ,"SAN":"007" ,"expansion":"Uncertainty: +-partial error"
       ,"x4Units":"PER-CENT" ,"hlpUnits":"per-cent"
       }
   
      , { "ii":5 ,"varType":"Error" ,"varVar":"constant"
       ,"nval":1   ,"minval":"5."   ,"maxval":"5."
       ,"varSorted":"0.955" ,"what":"Y.pErr+-"
       ,"dataType":"21"  ,"numVar":"0.955"
       ,"x4Header":"ERR-3" ,"SAN":"001" ,"expansion":"Uncertainty: +-partial error"
       ,"x4Units":"PER-CENT" ,"hlpUnits":"per-cent"
       }
   
      , { "ii":6 ,"varType":"Error" ,"varVar":"constant"
       ,"nval":1   ,"minval":"3."   ,"maxval":"3."
       ,"varSorted":"0.955" ,"what":"Y.pErr+-"
       ,"dataType":"21"  ,"numVar":"0.955"
       ,"x4Header":"ERR-4" ,"SAN":"001" ,"expansion":"Uncertainty: +-partial error"
       ,"x4Units":"PER-CENT" ,"hlpUnits":"per-cent"
       }
   
      , { "ii":7 ,"varType":"Error" ,"varVar":"constant"
       ,"nval":1   ,"minval":"1.5"   ,"maxval":"1.5"
       ,"varSorted":"0.955" ,"what":"Y.pErr+-"
       ,"dataType":"21"  ,"numVar":"0.955"
       ,"x4Header":"MONIT-ERR" ,"SAN":"001" ,"expansion":"Uncertainty: +-partial error"
       ,"x4Units":"MB" ,"hlpUnits":"millibarns"
       ,"BasicUnits":"B" ,"ConvFactor":"0.001"
       }
   
      , { "ii":8 ,"varType":"Data" ,"varVar":"constant"
       ,"nval":1   ,"minval":"14.6"   ,"maxval":"14.6"
       ,"varSorted":"1.1" ,"what":"X1.Value"
       ,"dataType":"41"  ,"numVar":"2.1"
       ,"x4Header":"EN" ,"SAN":"001" ,"expansion":"Incident energy: energy"
       ,"x4Units":"MEV" ,"hlpUnits":"MeV"
       ,"BasicUnits":"EV" ,"ConvFactor":"1.e+06"
       }
   
      , { "ii":9 ,"varType":"Error" ,"varVar":"constant"
       ,"nval":1   ,"minval":"0.2"   ,"maxval":"0.2"
       ,"varSorted":"1.933" ,"what":"X1.hRes+-"
       ,"dataType":"41"  ,"numVar":"2.933"
       ,"x4Header":"EN-RSL-HW" ,"SAN":"001" ,"expansion":"Uncertainty: +-half resolution"
       ,"x4Units":"MEV" ,"hlpUnits":"MeV"
       ,"BasicUnits":"EV" ,"ConvFactor":"1.e+06"
       }
   
      , { "ii":10 ,"varType":"Data" ,"varVar":"constant"
       ,"nval":1   ,"minval":"28."   ,"maxval":"28."
       ,"varSorted":"" ,"what":"ZZZ"
       ,"dataType":"11"  ,"numVar":"ZZZ"
       ,"x4Header":"MONIT" ,"SAN":"001" ,"expansion":"Assumed values: monitor"
       ,"x4Units":"MB" ,"hlpUnits":"millibarns"
       ,"BasicUnits":"B" ,"ConvFactor":"0.001"
       }
      ]
     ,"data": [
        [127.0,14.0,0.3,1.5,5.0,3.0,1.5,14.6,0.2,28.0]
      ]
    }
   ]
   }

The json format is not the easiet to read, but can be completely reformated in yaml, which is very human friendly, as seen in Listing 26

Listing 26 Same data as in Listing 25 but formatted in Yaml.
---
format: X4JSON.0.1.2
now: '2023-04-26T14:02:12.000Z'
program: EXFOR converter, by V.Zerkin, IAEA-NDS, 2007-2019 (ver.2020-05-11)
input:
  files:
  - name: X4R8350_tdat.x4
    format: EXFOR
    created: '2023-04-26T14:02:12.000Z'
output:
  files:
  - name: X4R8350_tdat.x4.x4t
    format: JSON
    outBib: '0'
    created: '2023-04-26T14:02:12.000Z'
datasets:
- id: '21818007'
  subent:
    id: '21818007'
    updated: '20180311'
  entry:
    id: '21818'
    updated: '20180311'
  author1: B.Anders+
  year: '1982'
  ref1:
    code: C,82ANTWER,,859,1982
    std: C,82ANTWER,,859,1982
    exp: 'Conf: Conf.on Nucl.Data for Sci.and Technol.,Antwerp 1982, p.859 (1982)'
  reaction:
    code: 74-W-183(N,INL)74-W-183-M,,SIG
    C4Reaction: "(N,INL),SIG"
    Proj: N
    ProjZA: '1'
    Target: 74-W-183
    TargZA: '74183'
    ProdMeta: M
    MF: 3
    MT: 4
    ReactionType: CS
    Quantity: Cross section
    IndVarFamCode: 0 2
    ExpectedUnits: B
  datasect:
    xVariables: 1
    formula: Y = Y(X1)
    col: 10
    row: 1
  headers:
  - ii: 1
    varType: Data
    varVar: variable
    nval: 1
    minval: '127.'
    maxval: '127.'
    varSorted: '0.1'
    what: Y.Value
    dataType: '21'
    numVar: '0.1'
    x4Header: DATA
    SAN: '007'
    expansion: 'Data: data'
    x4Units: MB
    hlpUnits: millibarns
    BasicUnits: B
    ConvFactor: '0.001'
  - ii: 2
    varType: Error
    varVar: variable
    nval: 1
    minval: '14.'
    maxval: '14.'
    varSorted: '0.911'
    what: Y.Err+-
    dataType: '21'
    numVar: '0.911'
    x4Header: ERR-T
    SAN: '007'
    expansion: 'Uncertainty: +-error'
    x4Units: MB
    hlpUnits: millibarns
    BasicUnits: B
    ConvFactor: '0.001'
  - ii: 3
    varType: Error
    varVar: constant
    nval: 1
    minval: '0.3'
    maxval: '0.3'
    varSorted: '0.955'
    what: Y.pErr+-
    dataType: '21'
    numVar: '0.955'
    x4Header: ERR-1
    SAN: '007'
    expansion: 'Uncertainty: +-partial error'
    x4Units: PER-CENT
    hlpUnits: per-cent
  - ii: 4
    varType: Error
    varVar: constant
    nval: 1
    minval: '1.5'
    maxval: '1.5'
    varSorted: '0.955'
    what: Y.pErr+-
    dataType: '21'
    numVar: '0.955'
    x4Header: ERR-2
    SAN: '007'
    expansion: 'Uncertainty: +-partial error'
    x4Units: PER-CENT
    hlpUnits: per-cent
  - ii: 5
    varType: Error
    varVar: constant
    nval: 1
    minval: '5.'
    maxval: '5.'
    varSorted: '0.955'
    what: Y.pErr+-
    dataType: '21'
    numVar: '0.955'
    x4Header: ERR-3
    SAN: '001'
    expansion: 'Uncertainty: +-partial error'
    x4Units: PER-CENT
    hlpUnits: per-cent
  - ii: 6
    varType: Error
    varVar: constant
    nval: 1
    minval: '3.'
    maxval: '3.'
    varSorted: '0.955'
    what: Y.pErr+-
    dataType: '21'
    numVar: '0.955'
    x4Header: ERR-4
    SAN: '001'
    expansion: 'Uncertainty: +-partial error'
    x4Units: PER-CENT
    hlpUnits: per-cent
  - ii: 7
    varType: Error
    varVar: constant
    nval: 1
    minval: '1.5'
    maxval: '1.5'
    varSorted: '0.955'
    what: Y.pErr+-
    dataType: '21'
    numVar: '0.955'
    x4Header: MONIT-ERR
    SAN: '001'
    expansion: 'Uncertainty: +-partial error'
    x4Units: MB
    hlpUnits: millibarns
    BasicUnits: B
    ConvFactor: '0.001'
  - ii: 8
    varType: Data
    varVar: constant
    nval: 1
    minval: '14.6'
    maxval: '14.6'
    varSorted: '1.1'
    what: X1.Value
    dataType: '41'
    numVar: '2.1'
    x4Header: EN
    SAN: '001'
    expansion: 'Incident energy: energy'
    x4Units: MEV
    hlpUnits: MeV
    BasicUnits: EV
    ConvFactor: '1.e+06'
  - ii: 9
    varType: Error
    varVar: constant
    nval: 1
    minval: '0.2'
    maxval: '0.2'
    varSorted: '1.933'
    what: X1.hRes+-
    dataType: '41'
    numVar: '2.933'
    x4Header: EN-RSL-HW
    SAN: '001'
    expansion: 'Uncertainty: +-half resolution'
    x4Units: MEV
    hlpUnits: MeV
    BasicUnits: EV
    ConvFactor: '1.e+06'
  - ii: 10
    varType: Data
    varVar: constant
    nval: 1
    minval: '28.'
    maxval: '28.'
    varSorted: ''
    what: ZZZ
    dataType: '11'
    numVar: ZZZ
    x4Header: MONIT
    SAN: '001'
    expansion: 'Assumed values: monitor'
    x4Units: MB
    hlpUnits: millibarns
    BasicUnits: B
    ConvFactor: '0.001'
  data:
  - - 127
    - 14
    - 0.3
    - 1.5
    - 5
    - 3
    - 1.5
    - 14.6
    - 0.2
    - 28

Even in yaml, the data from Exfor suffers from its origin (the old Exfor format). But we can get inspired by it to include metadata in our data set and facilitate their import into databases.

An example of yaml formatted metadata for one cross section file is below (other examples are given in Experimental (n, n’ \gamma) and (n, 2n \gamma) cross sections):

Listing 27 Yaml formatted metadata from a given cross section file from our analysis.
  title: 183W(n, n' gamma[209.8 keV - 183L06L02])
  date: '2024-03-18'
  author: Greg Henning
  reaction:
    proj: N
    target: 74-W-183
    code: 74-W-183(N, INL)74-W-183,PAR,SIG,G
  transition:
    emitter: 183W
    gamma energy: 209.8
    energy unit: keV
    label: 183L06L02
    threshold energy: 308.0
    icc: 2.620E-01
    initial level:
      excitation energy: 308.9
      spin parity: 9/2 -
    final level:
      excitation energy: 99.1
      spin parity: 5/2 -
  columns:
  - title: Neutron energy window, middle of range
    unit: keV
  - title: gamma cross section
    unit: barns
  - title: neutron energy window low range
    unit: keV
  - title: Uncertainty on neutron energy window low range
    unit: keV
  - title: neutron energy window high range
    unit: keV
  - title: Uncertainty on neutron energy window high range
    unit: keV
  - title: cross section parameter uncertainty
    unit: barns
  - title: cross section intrinsic uncertainty
    unit: barns
  - title: cross section total combined uncertainty
    unit: barns
  number of lines: 17

  end of file: True

The choice of this format and content of meta data has been made for even-even Tungsten results [4] and [5] and the results presented in the current manuscript.

Summary on data format

As used in tungsten data sets, the combination of yaml and text files is a simple, easy to read, choice. That works well for small data sets (json would be a good format choice for publication too).

For larger data sets (histograms, matrices, …) the HDF5 [6] format would a good choice. HDF is a hierarchical format, and the data is stored in binary format. Therefore, it’s not directly readable by humans. However, it is a standard format that can be read by many software libraries, making it a good option.

The Tabular Data Package format [7] can also be used. It combines comma separated values (CSV) with added json metadata. Its specifications even include some general metadata associated with the dataset.

Footnotes