Skip to content
Snippets Groups Projects
Rivet_tf.py 1.43 KiB
Newer Older
#  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
"""
Take an input EVNT file and run Rivet on it
"""

import os, sys, time, shutil
from PyJobTransforms.trfLogger import msg
from PyJobTransforms.transform import transform
from PyJobTransforms.trfExe import athenaExecutor
from PyJobTransforms.trfArgs import addAthenaArguments
from PyJobTransforms.trfDecorators import stdTrfExceptionHandler, sigUsrStackTrace
from EvgenJobTransforms.evgenTrfArgs import addStdEvgenArgs
import PyJobTransforms.trfArgClasses as trfArgClasses


class RivetExecutor(athenaExecutor):
    "Specialised trf executor class for Rivet jobs"

    def __init__(self, skeleton):
        athenaExecutor.__init__(self, name="rivet", skeletonFile=skeleton, substep="evnt2yoda", tryDropAndReload=False, inData=["EVNT"], outData=["outNULL"])


def getTransform():
    exeSet = set()
    exeSet.add(RivetExecutor("EvgenJobTransforms/skeleton.EVGENtoRivet.py"))
    trf = transform(executor=exeSet)
    addAthenaArguments(trf.parser)
    addStdEvgenArgs(trf.parser)
    return trf


@stdTrfExceptionHandler
@sigUsrStackTrace
def main():
    msg.info("This is %s" % sys.argv[0])
    trf = getTransform()
    trf.parseCmdLineArgs(sys.argv[1:])
    trf.execute()
    trf.generateReport()
    msg.info("%s stopped at %s, trf exit code %d" % (sys.argv[0], time.asctime(), trf.exitCode))
    sys.exit(trf.exitCode)


if __name__ == "__main__":
    main()