11from TrigIDR4Monitoring
import TrigIDR4MonConfig
12from TrigIDR4Monitoring
import TrigIDR4MonFlags
14from TrigIDR4Monitoring
import decodeFlags
15from TrigIDR4Monitoring
import updateFlags
17from TrigIDR4Monitoring.TrigIDR4MonConfig
import histsvc
18from TrigIDR4Monitoring.TrigIDR4MonConfig
import parse_files
19from TrigIDR4Monitoring.TrigIDR4MonConfig
import parse_signatures
24if __name__==
'__main__':
27 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
29 flags = initConfigFlags()
32 from AthenaCommon.Logging
import log
33 log.info(
"test running" )
35 parser = flags.getArgumentParser(conflict_handler=
'resolve')
37 parser.add_argument(
'--jsonConfig', type=str, default=
"", help=
'json config' )
38 parser.add_argument(
'--output', type=str, default=
"", help=
'output file' )
39 parser.add_argument(
'--filesInput', nargs=
'+', default=
None, help=
'files' )
40 parser.add_argument(
'--signatures', nargs=
'+', default=
None, help=
'signatures to enable (default, all signatures)')
44 for arg
in sys.argv[1:]:
45 if arg.endswith(
".py")
or (
not arg.startswith(
"-")
and "=" in arg ) :
continue
48 args, _ = parser.parse_known_args(remaining )
51 if args.filesInput
is not None: flags.Input.Files = parse_files( args.filesInput, sys.argv )
52 else: flags.Input.Files = parse_files(
'AOD.pool.root' )
54 if not flags.Input.Files: sys.exit(0)
56 signatures = parse_signatures( args.signatures, sys.argv )
59 flags.Concurrency.NumThreads = 20
60 flags.Concurrency.NumConcurrentEvents = 10
62 args = flags.fillFromArgs(parser=parser)
64 if args.output: flags.Output.HISTFileName = args.output
65 else: flags.Output.HISTFileName =
'duff.root'
68 if args.evtMax
and args.evtMax != -1 : flags.Input.FileNentries = args.evtMax
71 flags.Common.doExpressProcessing =
True
73 if flags.Concurrency.NumThreads < flags.Concurrency.NumConcurrentEvents : flags.Concurrency.NumConcurrentEvents = flags.Concurrency.NumThreads
75 flags.Input.AODFixesDone = {
"egammaAODFixesCfg" }
77 from TrigIDR4Monitoring.NodeUtils
import timer
79 tflags = decodeFlags(flags)
84 jsonConfig = args.jsonConfig
85 log.info( f
"json config: {jsonConfig}" )
87 log.info( f
"enable idtpm2 signatures: {signatures}" )
89 timer( TrigIDR4MonFlags, tflags, signatures, jsonConfig )
91 updateFlags(flags,tflags)
99 for f
in flags.Input.Files: log.info( f
"input file: {f}" )
101 log.info( f
"output file: {flags.Output.HISTFileName}" )
103 log.info( f
"threads: {flags.Concurrency.NumThreads}" )
104 log.info( f
"concurrent events: {flags.Concurrency.NumConcurrentEvents}" )
106 log.info( f
"Nevents: {flags.Input.FileNentries}" )
109 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
110 from AthenaPoolCnvSvc.PoolReadConfig
import PoolReadCfg
112 cfg = MainServicesCfg(tflags)
114 cfg.merge( PoolReadCfg(tflags) )
116 cfg.merge( histsvc(tflags) )
118 cfg.merge( TrigIDR4MonConfig( tflags ) )
121 cfg.printConfig(withDetails=
False)
128 cfg.run(flags.Input.FileNentries)