ATLAS Offline Software
Loading...
Searching...
No Matches
AtlasG4_tf.py
Go to the documentation of this file.
1#! /usr/bin/env python
2
3# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
4
5"""
6Run Geant4 simulation on generated events and produce a HITS file.
7"""
8
9import os.path
10import sys
11import time
12
13import logging
14
15# Setup core logging here
16from PyJobTransforms.trfLogger import msg
17msg.info('logging set in %s' % sys.argv[0])
18
19from PyJobTransforms.transform import transform
20from PyJobTransforms.trfExe import athenaExecutor
21from PyJobTransforms.trfArgs import addAthenaArguments, addDetectorArguments
22from PyJobTransforms.trfDecorators import stdTrfExceptionHandler, sigUsrStackTrace
23from SimuJobTransforms.simTrfArgs import addForwardDetTrfArgs, addCosmicsTrfArgs, addCommonSimTrfArgs, addCommonSimDigTrfArgs, addTrackRecordArgs
24
25
26import PyJobTransforms.trfArgClasses as trfArgClasses
27
28# Prodsys hack...
29ListOfDefaultPositionalKeys=['--AFPOn', '--ALFAOn', '--CosmicFilterVolume', '--CosmicFilterVolume2', '--CosmicPtSlice', '--DBRelease', '--DataRunNumber', '--FwdRegionOn', '--LucidOn', '--ZDCOn', '--amiConfig', '--amiMetadataTag', '--asetup', '--athena', '--athenaopts', '--beamType', '--checkEventCount', '--command', '--conditionsTag', '--enableLooperKiller', '--env', '--eventAcceptanceEfficiency', '--execOnly', '--firstEvent', '--geometryVersion', '--ignoreErrors', '--ignoreFiles', '--ignorePatterns', '--imf', '--inputEVNTFile', '--inputEVNT_TRFile', '--jobNumber', '--maxEvents', '--outputEVNT_TRFile', '--outputHITSFile', '--physicsList', '--postExec', '--postInclude', '--preExec', '--preInclude', '--randomSeed', '--reportName', '--reportType', '--runNumber', '--showGraph', '--showPath', '--showSteps', '--skipEvents', '--skipFileValidation', '--skipInputFileValidation', '--skipOutputFileValidation', '--tcmalloc', '--useG4Workers', '--useISF']
30
31@stdTrfExceptionHandler
32@sigUsrStackTrace
33def main():
34
35 msg.info('This is %s' % sys.argv[0])
36
37 trf = getTransform()
38 trf.parseCmdLineArgs(sys.argv[1:])
39 trf.execute()
40 if 'outputFileValidation' in trf._argdict and trf._argdict['outputFileValidation'].value is False and not ('eventService' in trf._argdict and trf._argdict['eventService'].value):
41 msg.info('Skipping report generation')
42 else:
43 trf.generateReport()
44
45 msg.info("%s stopped at %s, trf exit code %d" % (sys.argv[0], time.asctime(), trf.exitCode))
46 sys.exit(trf.exitCode)
47
49 executorSet = set()
50 from SimuJobTransforms.SimTransformUtils import addAtlasG4Substep, addAtlasG4Arguments
51 addAtlasG4Substep(executorSet)
52 trf = transform(executor = executorSet, description = 'Legacy ATLAS Simulation transform. Inputs must be EVNT else a single particle Generator job options must be specified. Outputs must be HITS or TrackRecords.')
53 addAthenaArguments(trf.parser)
54 addDetectorArguments(trf.parser)
55 addAtlasG4Arguments(trf.parser)
56 return trf
57
58
59
60
66
67
68if __name__ == '__main__':
69 main()
STL class.
Main package for new style ATLAS job transforms.
Transform argument class definitions.
Transform execution functions.
Logging configuration for ATLAS job transforms.