This repository is the collection of generators available in the CLAS12 Docker/Singularity containers for offsite (e.g. OSG) simulation jobs. These generators are also available for use on JLab machines via the CLAS12 environment module mcgen
.
name | description | maintainer |
---|---|---|
clasdis | SIDIS MC based on PEPSI LUND MC | Harut Avakian |
claspyth | SIDIS full event generator based on PYTHIA | Harut Avakian |
clas-stringspinner | SIDIS PYTHIA with hadronization spin effects | Christopher Dilks |
dvcsgen | DVCS/pi0/eta generator based on GPD and PDF parameterizations | Harut Avakian |
genKYandOnePion | KY, pi0P and pi+N | Valerii Klimenko |
inclusive-dis-rad | Inclusive electron and optionally radiative photon using PDFs | Harut Avakian |
tcsgen | Timelike Compton Scattering | Rafayel Paremuzyan |
jpsigen | J/Psi photoproduction | Rafayel Paremuzyan |
twopeg | pi+pi- electroproduction off protons | Iuliia Skorodumina |
clas12-elspectro | General electroproduction final states | Derek Glazier |
MCEGENpiN_radcorr | Exclusive single pion electroproduction based on MAID | Maksim Davydov |
deep-pipi-gen | Deep double pion production | Dilini Bulumulla |
genepi | Photon and meson electroproduction | Noémie Pilleuxi |
onepigen | Single charged pion production based on AO/Daresbury/MAID | Nick Tyler |
GiBUU | Quark and hadron propagation in nuclear media | Ahmed El Alaoui |
GENIE | Not ready for OSG |
- Create a github repository for your source code, ideally inside https://github.com/JeffersonLab
- Make sure to include the README.md describing the generator, its options, and requirements
- Have a working build system (for example a Makefile)
- Satisfy the additional requirements described below
- Send email to Mauri (
ungaro at jlab.org
) or Nathan (baltzell at jlab.org
) with the repository address and the git tag to use
- C/C++/Fortran/python3, with a working GNU make or cmake build system compliant with GCC no less than 9.0
- The top level README file should contain:
- The location of the executable(s) and any shared libraries produced and required at runtime
- Required environment variables
- Documentation on all command-line options
- The executable to be used on OSG should have the same name as the github repository name and be runnable from any current working directory
- The default output LUND filename should be the same as the exectuable +
.dat
. For example, the output of clasdis must be clasdis.dat - The follow command-line arguments are always passed to all generators on OSG:
--trig #
must be honored and used to specify the number of events to generate.--docker
must be accepted as a valid argument and can be ignored or used for setting conditions for OSG.--seed #
must be accepted as a valid argument and can be ignored or used to initialize the event generator's RNG. Its value is a 32-bit RNG seed based on system clock with microsecond precision. If--seed
is ignored, the generator is responsible for choosing unique random seeds, without preserving state between jobs, which can be done from a millisecond or better precision system clock.
- A git tag to reference for including the generator as a submodule into this repository. Note versions.json stores the current verisions for insertion into the data stream.
- Note, currently CLAS12's OSG web submission portal does not support configuration files for event generators, so users' runtime options must be supported via command-line options.
- Some generators do that via a wrapper script that generates a configuration file on-the-fly.
- If there's popular demand for it, support for user-defined configuration files could be added.
We use this command line to check if the runtime requirements are met:
GENERATOR_NAME --trig 10 --docker --seed 1448577483
That should produce a file GENERATOR_NAME.dat
in the current working directory.
The script requirements.zsh
will compile all the generators, check for their executable names, run them with their environment and the above options, and check for the output file, and then output the table in the next section.
name | compilation and executable name | CLI options | runs in container w/ output |
---|---|---|---|
clasdis | ✅ | ✅ | ✅ |
claspyth | ✅ | ✅ | ✅ |
clas-stringspinner | ✅ | ✅ | ✅ |
dvcsgen | ✅ | ✅ | ✅ |
genKYandOnePion | ✅ | ✅ | ✅ |
inclusive-dis-rad | ✅ | ✅ | ✅ |
JPsiGen | ✅ | ✅ | ✅ |
TCSGen | ✅ | ✅ | ✅ |
twopeg | ✅ | ✅ | ✅ |
clas12-elSpectro | ✅ | ✅ | ✅ |
MCEGENpiN_radcorr | ✅ | ✅ | ✅ |
deep-pipi-gen | ✅ | ✅ | ✅ |
genepi | ✅ | ✅ | ✅ |
gibuu | ✅ | ✅ | ✅ |
genie | ✅ | ✅ | 🔴 |