Project

General

Profile

UPS products genie phyopt and genie xsec

setup genie_phyopt

This UPS product provides a standardized way of packaging an alternative UserPhysicsOptions.xml file to the default found in $GENIE/config.

the basic thought is users (or expts) would invoke:

  setup genie <version> -q <qualifier>
  setup genie_phyopt <version> -q dkcharmtau

which would put in the $GXMLPATH a UserPhysicsOptions.xml file that has been modified to have GENIE decay charm and tau particles
before they are passed out (i.e. decays are done at the genie stage rather than, say, Geant4). Only one UserPhysicsOptions.xml file
is read for any genie session, so picking the right one is important.

setup genie_xsec

This UPS product provides a standardized way of packaging genie cross-section spline files.

the basic thought is users (or expts) would invoke:

  setup genie <version> -q <qualifier>
  setup genie_xsec <version> -q default

Allowable isotopes

GENIE (currently) requires cross-section splines for all isotopes found in the geometry, even those only found in the hierarchy above a sub-element TopVolume.

Setting up the UPS genie_xsec product set the environment variables:

  • $GENIEXSECPATH - the path to the data area where the spline files are found
  • $GENIEXSECFILE - the default spline file

The default UPS sets contain a large compressed file gxspl-FNALbig.xml.bz2 (or gxspl-NuMIbig.xml.gz) and
a smaller uncompressed file, e.g. gxspl-FNALsmall.xml; GENIEXSECFILE points to the later.

The current list of isotopes for which splines are generate is (symbol : name, Z, [ A1, A2, ...]):

ionlist = {
    'H'  : ['hydrogen',    1, [ 1, 2 ]],  # don't duplicate free proton?
    'He' : ['helium',      2, [ 4 ]],   # skip 3
    'Be' : ['beryllium',   4, [ 9 ]],  # only v2.8.6a and beyond
    'B'  : ['boron',       5, [ 10, 11 ]],
    'C'  : ['carbon',      6, [ 12, 13 ]],
    'N'  : ['nitrogen',    7, [ 14, 15 ]],
    'O'  : ['oxygen',      8, [ 16, 17, 18 ]],
    'F'  : ['fluorine',    9, [ 19 ]],
    'Na' : ['sodium',     11, [ 23 ]],
    'Mg' : ['magnesium',  12, [ 24, 25, 26 ]],
    'Al' : ['aluminum',   13, [ 27 ]],
    'Si' : ['silicon',    14, [ 28, 29, 30 ]],
    'P'  : ['phosphorus', 15, [ 31 ]],
    'S'  : ['sulfur',     16, [ 32, 33, 34 ]],  # skip 36
    'Cl' : ['chlorine',   17, [ 35, 36, 37 ]],
    'Ar' : ['argon',      18, [ 36, 38, 39, 40 ]],
    'K'  : ['potassium',  19, [ 39, 40, 41 ]],
    'Ca' : ['calcium',    20, [ 40, 41, 42, 43, 44 ]], # skip 46, 48
    'Ti' : ['titanium',   22, [ 46, 47, 48, 49, 50 ]],
    'V'  : ['vanadium',   23, [ 50, 51 ]],
    'Cr' : ['chromium',   24, [ 50, 51, 52, 53, 54 ]],
    'Mn' : ['manganese',  25, [ 55 ]],
    'Fe' : ['iron',       26, [ 54, 56, 57, 58 ]],
    'Co' : ['cobalt',     27, [ 59 ]],
    'Ni' : ['nickel',     28, [ 58, 59, 60, 61, 62, 64 ]],
    'Cu' : ['copper',     29, [ 63, 64, 65 ]],
    'Zn' : ['zinc',       30, [ 64, 65, 66, 67, 68, 70 ]],
    'Br' : ['bromine',    35, [ 79, 80, 81 ]],
    'Sn' : ['tin',        50, [ 116, 117,  # skip 112, 114, 115, 122, 124
                                118, 119, 120 ]],
    'Ba' : ['barium',     56, [ 130, 132, 134, 135, 136, 137, 138 ]],
    'Gd' : ['gadolinium', 64, [ 152, 154, 155, 156, 157, 158, 160 ]],  # only R-2_9_0 and beyond
    'Pb' : ['lead',       82, [ 204, 206, 207, 208 ]]
    }

But those only exist in the $GENIEXSECPATH/gxspl-FNALbig.xml.bz2 (but would need to be uncompressed for GENIE to read them.
The gxspl-FNALsmall.xml file pointed to by $GENIEXSECFILE only has:

  tgtkeep[1000000010] = 1;  # free-n
  tgtkeep[1000010010] = 1;  # H1
  tgtkeep[1000020040] = 1;  # He4
  tgtkeep[1000040090] = 1;  # Be9  # only v2.8.6a and beyond
  tgtkeep[1000060120] = 1;  # C12
  tgtkeep[1000070140] = 1;  # N14
  tgtkeep[1000080160] = 1;  # O16
  tgtkeep[1000110230] = 1;  # Na23
  tgtkeep[1000120240] = 1;  # Mg24
  tgtkeep[1000130270] = 1;  # Al27
  tgtkeep[1000140280] = 1;  # Si28
  tgtkeep[1000150310] = 1;  # P31
  tgtkeep[1000160320] = 1;  # S32
  tgtkeep[1000170350] = 1;  # Cl35
  tgtkeep[1000180400] = 1;  # Ar40
  tgtkeep[1000190390] = 1;  # K39
  tgtkeep[1000200400] = 1;  # Ca40
  tgtkeep[1000220480] = 1;  # Ti48
  tgtkeep[1000230510] = 1;  # V51
  tgtkeep[1000240520] = 1;  # Cr52
  tgtkeep[1000250550] = 1;  # Mn55
  tgtkeep[1000260540] = 1;  # Fe54
  tgtkeep[1000260560] = 1;  # Fe56
  tgtkeep[1000260570] = 1;  # Fe57
  tgtkeep[1000260580] = 1;  # Fe58
  tgtkeep[1000280590] = 1;  # Ni59
  tgtkeep[1000290640] = 1;  # Cu64
  tgtkeep[1000501190] = 1;  # Sn119
  tgtkeep[1000561370] = 1;  # Ba137
  tgtkeep[1000641480] = 1;  # Gd158  # only R-2_9_0 and beyond
  tgtkeep[1000822070] = 1;  # Pb207

Identifying missing isotopes

Any geometry with isotopes not found in the supplied spline file eventually fail with a message similar to:

1436895706 WARN GEVGDriver : [n] <GEVGDriver.cxx::UseSplines (602)> : *** At least a spline (algorithm: genie::LwlynSmithQELCCPXSec/Default, interaction: nu:12;tgt:1000160310;N:2112;proc:Weak[CC],QES; doesn't exist. Reverting back to not using splines
...
1436895710 FATAL GEVGDriver : [n] <GEVGDriver.cxx::CreateXSecSumSpline (490)> : You haven't loaded any splines!!
lar: GEVGDriver.cxx:492: void genie::GEVGDriver::CreateXSecSumSpline(int, double, double, bool): Assertion `fUseSplines' failed.

The nu:12;tgt:1000160310; identifies what combination of probe and target couldn't be found in the spline file. In this case, ν μ off of (Z=16,A=31), an isotope of sulfur with a half-life of 2.572 seconds.


Creating new versions of these packages

This section is only for those with nusoft account access that need to make versions of these for the entire community in: /nusoft/app/externals
For both sets of instructions you must log into a machine as nusoft; that machine must have /nusoft/app/externals/ mounted. After doing anything the /nusoft/app/externals area please be sure to log your changes in /nusoft/app/externals/LOG by editing the file.

install new genie_phyopt

As nusoft:

source /nusoft/app/externals/setup

# GENIE version and qualifier needed for setup
GVER=v3470
GQUAL=debug:nu
# version of genie_phyopt to be generated
POQUAL=dkcharmtau

cd /nusoft/app/externals/genie_phyopt
setup genie $GVER -q $GQUAL
./make_skeleton $GVER $POQUAL

setup genie_phyopt $GVER -q $POQUAL
cd $GENIEPHYOPTPATH
./make_dkcharmtau_phyopt

If other parameters are being modified then it should start by initializing the package with a qualifier other than dkcharmtau, but running the@make_dkcharmtau_phyopt@ script as a base (if have GENIE do the decays is the desired behaviour).

install new genie_xsec

As nusoft:

source /nusoft/app/externals/setup

# GENIE version and qualifier needed for setup
GVER=v3470
GQUAL=debug:nu
# version of genie_xsec to be generated
XQUAL=default

cd /nusoft/app/externals/genie_xsec
setup genie $GVER -q $GQUAL
./make_skeleton $GVER $XQUAL

cd $GENIEXSECPATH
pwd
# verify this is the proper directory

[...populate with spline files ...]
cd /path/to/spline/files/subdir
cp -va * $GENIEXSECPATH

Generating the actual spline files requires running on the grid (and, thus, probably can't done as the nusoft account). Instructions can be found at Creating_cross-section_spline_files