26 flags = initConfigFlags()
27 flags.addFlag(
'rntuple',
False)
28 flags.Exec.MaxEvents = evtMax
29 flags.Exec.OutputLevel = INFO
30 flags.Common.MsgSourceLength = 18
37 flags.Input.Files = [infile]
38 for stream, outfile
in kw.items():
39 flags.addFlag (f
'Output.{stream}FileName', outfile)
42 from Campaigns.Utils
import Campaign
43 flags.Input.RunNumbers = [0]
44 flags.Input.TimeStamps = [0]
45 flags.Input.ProcessingTags = []
46 flags.Input.TypedCollections = []
47 flags.Input.isMC =
True
48 flags.IOVDb.GlobalTag =
''
49 flags.Input.MCCampaign = Campaign.Unknown
51 from AthenaConfiguration.TestDefaults
import defaultGeometryTags
52 flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN3
56 flags.Output.DefaultContainerType =
'ROOTRNTUPLE'
58 return s.replace (
'.root',
'.rntup.root')
59 flags.Input.Files = [to_rntup(f)
for f
in flags.Input.Files]
60 for stream, outfile
in kw.items():
61 setattr (flags.Output, stream+
'FileName', to_rntup (outfile))
70 loadReadDicts = False,
71 loadWriteDicts = False,
73 TimeStampInterval = None,
75 from AthenaConfiguration.MainServicesConfig
import \
76 MainServicesCfg, MessageSvcCfg
77 cfg = MainServicesCfg (flags)
78 cfg.merge (MessageSvcCfg (flags))
79 cfg.getService(
"MessageSvc").debugLimit = 10000
80 cfg.addService (CompFactory.ClassIDSvc (OutputLevel = INFO))
81 cfg.addService (CompFactory.ChronoStatSvc (ChronoPrintOutTable =
False,
82 PrintUserTime =
False,
83 StatPrintOutTable =
False))
84 cfg.addService (CompFactory.DataModelCompatSvc (), create =
True)
86 if flags.Input.Files == [
'_ATHENA_GENERIC_INPUTFILE_NAME_']:
89 from McEventSelector.McEventSelectorConfig
import McEventSelectorCfg
91 if EventsPerLB
is not None:
92 mckw[
'EventsPerLB'] = EventsPerLB
93 if TimeStampInterval
is not None:
94 mckw[
'TimeStampInterval'] = TimeStampInterval
95 cfg.merge (McEventSelectorCfg (flags, **mckw))
97 from xAODEventInfoCnv.xAODEventInfoCnvConfig
import EventInfoCnvAlgCfg
98 cfg.merge (EventInfoCnvAlgCfg (flags, disableBeamSpot =
True))
99 elif not flags.Input.Files[0].endswith (
'.bs'):
101 from AthenaPoolCnvSvc.PoolReadConfig
import PoolReadCfg
102 cfg.merge (PoolReadCfg (flags))
106 cfg.merge (LoadWriteDictsCfg (flags))
108 cfg.merge (LoadReadDictsCfg (flags))
111 if 'ROOTRNTUPLE' in flags.Output.DefaultContainerType:
112 testName = testName +
'_rntup'
113 fileCatalog = testName +
'_catalog.xml'
114 from AthenaPoolCnvSvc.PoolCommonConfig
import PoolSvcCfg
115 kw = {
'WriteCatalog' :
'file:' + fileCatalog}
117 kw[
'ReadCatalog'] = [
'file:' + readCatalog]
118 cfg.merge (PoolSvcCfg (flags, **kw))
121 os.remove (fileCatalog)
132def TestOutputCfg (flags, stream, itemList, typeNames = [], metaItemList = []):
133 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg, outputStreamName
134 acc = ComponentAccumulator()
135 itemList = [
'xAOD::EventInfo#EventInfo',
136 'xAOD::EventAuxInfo#EventInfoAux.'] + itemList
138 metaItemList = [
"IOVMetaDataContainer#*"]
140 helperTools = [ CompFactory.xAODMaker.EventFormatStreamHelperTool(
141 f
'{stream}_EventFormatStreamHelperTool',
142 Key = f
'EventFormat{stream}',
143 TypeNames = typeNames,
144 DataHeaderKey = f
'Stream{stream}') ]
145 metaItemList = [ f
'xAOD::EventFormat#EventFormat{stream}' ] + metaItemList
146 acc.merge (OutputStreamCfg (flags, stream,
148 HelperTools = helperTools,
149 MetadataItemList = metaItemList))
151 alg = acc.getEventAlgo (outputStreamName(stream))
152 alg.WritingTool.SubLevelBranchName =
'<key>'
153 acc.getService (
'AthenaPoolCnvSvc').PoolAttributes += [
"DEFAULT_SPLITLEVEL='1'"]
DataModelTestCfg(flags, testName, loadReadDicts=False, loadWriteDicts=False, EventsPerLB=None, TimeStampInterval=None, readCatalog=None)