Newer
Older
# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
#! /usr/bin/env python
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
"""
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()