ATLAS Offline Software
runIDTPM.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 # Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 
4 from glob import glob
5 
7  from argparse import ArgumentParser
8  IDTPMparser = ArgumentParser( description='Parser for IDTPM configuration' )
9  IDTPMparser.add_argument( "--inputFileNames", help="Comma-separated list of input files", required=True)
10  IDTPMparser.add_argument( "--maxEvents", help="Limit number of events. Default: all input events", default=-1, type=int )
11  IDTPMparser.add_argument( "--debug", help="Enable debugging messages", action="store_true", default=False )
12  IDTPMparser.add_argument( "--dirName", help="Main directory name for storing plots", default="InDetTrackPerfMonPlots/" )
13  IDTPMparser.add_argument( "--outputFilePrefix", help='Name of output file', default="myIDTPM_out" )
14  IDTPMparser.add_argument( "--writeAOD_IDTPM", help="Write output file for reprocessing", action="store_true", default=False )
15  IDTPMparser.add_argument( "--trkAnaCfgFile", help='File with track analysis setup (.json format)', default='Default' )
16  IDTPMparser.add_argument( "--unpackTrigChains", help="Run each configured trigger chain in a separate track analysis", action="store_true", default=False )
17  IDTPMparser.add_argument( "--plotsDefFormat", help='Format of the plots definition file', default="JSON" )
18  IDTPMparser.add_argument( "--plotsDefFileList", help='Plain txt file containing the list of .json file names with the plots definitions', default="InDetTrackPerfMon/PlotsDefFileList_default.txt" )
19  IDTPMparser.add_argument( "--plotsCommonValuesFile", help='JSON file listing all the default values to be used in plots', default="" )
20  IDTPMparser.add_argument( "--sortPlotsByChain", help="Arrange plots first in subdirectories named after the current chain", action="store_true", default=False )
21  IDTPMparser.add_argument( "--commonTrkAnaFlags", help="Common flags to be overridden for all track Analises in the format flag_name=value", nargs='*', default=[] )
22  return IDTPMparser.parse_args()
23 
24 
25 MyArgs = GetCustomAthArgs()
26 
27 #from AthenaConfiguration.Enums import LHCPeriod
28 from AthenaConfiguration.AllConfigFlags import initConfigFlags
29 flags = initConfigFlags()
30 
31 
32 flags.Input.Files = []
33 for path in MyArgs.inputFileNames.split( ',' ):
34  flags.Input.Files += glob( path )
35 
36 
37 if MyArgs.debug:
38  from AthenaCommon.Constants import DEBUG
39  flags.Exec.OutputLevel = DEBUG
40 
41 from InDetTrackPerfMon.InDetTrackPerfMonFlags import initializeIDTPMConfigFlags, initializeIDTPMTrkAnaConfigFlags
42 
43 # initialize general IDTPM job flags
44 flags = initializeIDTPMConfigFlags( flags )
45 flags.PhysVal.IDTPM.DirName = MyArgs.dirName
46 flags.PhysVal.IDTPM.outputFilePrefix = MyArgs.outputFilePrefix
47 flags.PhysVal.IDTPM.plotsDefFormat = MyArgs.plotsDefFormat
48 flags.PhysVal.IDTPM.plotsDefFileList = MyArgs.plotsDefFileList
49 flags.PhysVal.IDTPM.plotsCommonValuesFile = MyArgs.plotsCommonValuesFile
50 flags.PhysVal.IDTPM.sortPlotsByChain = MyArgs.sortPlotsByChain
51 flags.PhysVal.IDTPM.trkAnaCfgFile = MyArgs.trkAnaCfgFile
52 flags.Output.doWriteAOD_IDTPM = MyArgs.writeAOD_IDTPM
53 flags.PhysVal.IDTPM.unpackTrigChains = MyArgs.unpackTrigChains
54 flags.PhysVal.IDTPM.commonTrkAnaFlags = MyArgs.commonTrkAnaFlags
55 
56 # initialize individual TrkAnalises flags (and output file names)
57 flags = initializeIDTPMTrkAnaConfigFlags( flags )
58 
59 flags.PhysVal.doExample = False
60 
61 flags.lock()
62 flags.dump()
63 
64 from AthenaConfiguration.MainServicesConfig import MainServicesCfg
65 acc = MainServicesCfg(flags)
66 
67 from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
68 acc.merge( PoolReadCfg(flags) )
69 
70 from InDetTrackPerfMon.InDetTrackPerfMonConfig import InDetTrackPerfMonCfg
71 acc.merge( InDetTrackPerfMonCfg(flags) )
72 
73 acc.printConfig( withDetails=True )
74 
75 # Execute and finish
76 sc = acc.run( maxEvents=MyArgs.maxEvents )
77 
78 # Success should be 0
79 import sys
80 sys.exit( not sc.isSuccess() )
runIDTPM.GetCustomAthArgs
def GetCustomAthArgs()
Definition: runIDTPM.py:6
python.MainServicesConfig.MainServicesCfg
def MainServicesCfg(flags, LoopMgr='AthenaEventLoopMgr')
Definition: MainServicesConfig.py:312
Constants
some useful constants -------------------------------------------------—
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
InDetTrackPerfMonFlags.initializeIDTPMConfigFlags
def initializeIDTPMConfigFlags(flags)
General config flag category for IDTPM tool job configuration.
Definition: InDetTrackPerfMonFlags.py:172
InDetTrackPerfMonFlags.initializeIDTPMTrkAnaConfigFlags
def initializeIDTPMTrkAnaConfigFlags(flags)
Create flags category and corresponding set of flags.
Definition: InDetTrackPerfMonFlags.py:182
python.PoolReadConfig.PoolReadCfg
def PoolReadCfg(flags)
Definition: PoolReadConfig.py:71
InDetTrackPerfMonConfig.InDetTrackPerfMonCfg
def InDetTrackPerfMonCfg(flags)
Definition: InDetTrackPerfMonConfig.py:316