Skip to content
Snippets Groups Projects
evgenTrfArgs.py 5.12 KiB
Newer Older
# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration

import PyJobTransforms.trfArgClasses as trfArgClasses

def addStdEvgenArgs(parser):
    parser.defineArgGroup("Evgen", "Event generator options")

    # TODO: Try to automatically determine the run number from the JO name, if not specified
    parser.add_argument('--runNumber', '--RunNumber', group='Evgen',
                        type=trfArgClasses.argFactory(trfArgClasses.argInt, runarg=True),
                         help='Manual run number setting')

    parser.add_argument("--ecmEnergy", "--EcmEnergy", group="Evgen",
                        default=trfArgClasses.argFloat(8000, runarg=True),
                        help="centre-of-mass energy parameter in GeV",
                        type=trfArgClasses.argFactory(trfArgClasses.argFloat, runarg=True))

    parser.add_argument("--firstEvent", "--FirstEvent", group="Evgen",
                        default=trfArgClasses.argInt(1, runarg=True),
                        help="the number of the first event in the output data file",
                        type=trfArgClasses.argFactory(trfArgClasses.argInt, runarg=True))

    parser.add_argument("--randomSeed", "--RandomSeed", "--seed", group="Evgen", nargs="+",
                        default=trfArgClasses.argSubstepInt("all:12345"),
                        help="a seed for the MC generator random number engines",
                        type=trfArgClasses.argFactory(trfArgClasses.argSubstepInt))

    parser.add_argument("--printEvts", group="Evgen",
                        default=trfArgClasses.argInt(5, runarg=True),
                        help="number of full event dumps to print out for debugging",
                        type=trfArgClasses.argFactory(trfArgClasses.argInt, runarg=True))

    parser.add_argument("--jobConfig", "--JobConfig", "--jo", group="Evgen", nargs="+",
                        help="a comma-separated list of job configuration script files",
                        type=trfArgClasses.argFactory(trfArgClasses.argSubstepList, runarg=True))

    # TODO: Add "--eventFile"?
    parser.add_argument("--inputGeneratorFile", "--inputGenEventFile", "--inputGenFile", "--InputGeneratorFile", group="Evgen",
                        help="optional parton-level events file to be processed",
                        type=trfArgClasses.argFactory(trfArgClasses.argString, runarg=True))

    # TODO: Add "--confFile"?
    parser.add_argument("--inputGenConfFile", "--InputGenConfFile", group="Evgen",
                        help="optional generator configuration file",
                        type=trfArgClasses.argFactory(trfArgClasses.argString, runarg=True))

    # parser.add_argument("--inputHepMCFile", group="Evgen",
    #                     help="optional fully showered HepMC input event file",
    #                     type=trfArgClasses.argFactory(trfArgClasses.argString, runarg=True))

    parser.add_argument("--inputEVNTFile", group="Evgen",
                        help="input EVNT file (for use with e.g. Rivet)",
                        type=trfArgClasses.argFactory(trfArgClasses.argPOOLFile, runarg=True))

    parser.add_argument("--inputEVNT_PreFile", group="Evgen",
                        help="input evgen file for processing with afterburner, e.g. EvtGen",
                        type=trfArgClasses.argFactory(trfArgClasses.argPOOLFile, runarg=True))

    parser.add_argument("--evgenJobOpts", "--EvgenJobOpts", group="Evgen",
                        help="download and install the EvgenJobOpts tarball with the given name",
                        type=trfArgClasses.argFactory(trfArgClasses.argString, runarg=True))

    # TODO: make optional: by default auto-determine from the JO name. If NONE, don't write?
    parser.add_argument("--outputEVNTFile", "--OutputEVNTFile", group="Evgen",
                        help="POOL file into which generated events will be written",
                        type=trfArgClasses.argFactory(trfArgClasses.argPOOLFile, runarg=True))

    parser.add_argument("--outputEVNT_PreFile", "--OutputEVNT_PreFile", group="Evgen",
                        help="POOL file into which pre-afterburner generated events will be written",
                        type=trfArgClasses.argFactory(trfArgClasses.argPOOLFile, runarg=True))

    parser.add_argument('--outputNTUP_TRUTHFile',
                        type=trfArgClasses.argFactory(trfArgClasses.argNTUPFile, treeNames=['truth']),
                        help='Output NTUP_TRUTH file', group='Evgen')

    parser.add_argument("--outputYODAFile", group="Evgen",
                        help="Name of YODA file for Rivet histo output",
                        type=trfArgClasses.argFactory(trfArgClasses.argString, runarg=True))

    parser.add_argument("--rivetAnas", group="Evgen",
                        help="a comma-separated list of Rivet analyses to run on the resulting events",
                        type=trfArgClasses.argFactory(trfArgClasses.argList, runarg=True))

    parser.add_argument("--outputTXTFile", group="Evgen",
                        help="optional output TXT file for LHEF events, default is None",
                        type=trfArgClasses.argFactory(trfArgClasses.argString, runarg=True))