11 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
12 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
13 from AthenaConfiguration.ComponentFactory
import CompFactory
14 from AthenaPython.PyAthenaComps
import Alg, StatusCode
27 flags.Exec.MaxEvents = evtMax
28 flags.Exec.OutputLevel = INFO
29 flags.Common.MsgSourceLength = 18
36 flags.Input.Files = [infile]
37 for stream, outfile
in kw.items():
38 flags.addFlag (f
'Output.{stream}FileName', outfile)
41 from Campaigns.Utils
import Campaign
42 flags.Input.RunNumbers = [0]
43 flags.Input.TimeStamps = [0]
44 flags.Input.ProcessingTags = []
45 flags.Input.TypedCollections = []
46 flags.Input.isMC =
True
47 flags.IOVDb.GlobalTag =
''
48 flags.Input.MCCampaign = Campaign.Unknown
51 if 'ROOTRNTUPLE' in flags.Output.StorageTechnology.EventData.values():
53 return s.replace (
'.root',
'.rntup.root')
54 flags.Input.Files = [to_rntup(f)
for f
in flags.Input.Files]
55 for stream, outfile
in kw.items():
56 setattr (flags.Output, stream+
'FileName', to_rntup (outfile))
65 loadReadDicts = False,
66 loadWriteDicts = False,
68 TimeStampInterval = None,
70 from AthenaConfiguration.MainServicesConfig
import \
71 MainServicesCfg, MessageSvcCfg
72 cfg = MainServicesCfg (flags)
73 cfg.merge (MessageSvcCfg (flags))
74 cfg.getService(
"MessageSvc").debugLimit = 10000
75 cfg.addService (CompFactory.ClassIDSvc (OutputLevel = INFO))
76 cfg.addService (CompFactory.ChronoStatSvc (ChronoPrintOutTable =
False,
77 PrintUserTime =
False,
78 StatPrintOutTable =
False))
80 if flags.Input.Files == [
'_ATHENA_GENERIC_INPUTFILE_NAME_']:
83 from McEventSelector.McEventSelectorConfig
import McEventSelectorCfg
85 if EventsPerLB
is not None:
86 mckw[
'EventsPerLB'] = EventsPerLB
87 if TimeStampInterval
is not None:
88 mckw[
'TimeStampInterval'] = TimeStampInterval
89 cfg.merge (McEventSelectorCfg (flags, **mckw))
91 from xAODEventInfoCnv.xAODEventInfoCnvConfig
import EventInfoCnvAlgCfg
92 cfg.merge (EventInfoCnvAlgCfg (flags, disableBeamSpot =
True))
93 elif not flags.Input.Files[0].endswith (
'.bs'):
95 from AthenaPoolCnvSvc.PoolReadConfig
import PoolReadCfg
96 cfg.merge (PoolReadCfg (flags))
100 cfg.merge (LoadWriteDictsCfg (flags))
102 cfg.merge (LoadReadDictsCfg (flags))
105 if 'ROOTRNTUPLE' in flags.Output.StorageTechnology.EventData.values():
106 testName = testName +
'_rntup'
107 fileCatalog = testName +
'_catalog.xml'
108 from AthenaPoolCnvSvc.PoolCommonConfig
import PoolSvcCfg
109 kw = {
'WriteCatalog' :
'file:' + fileCatalog}
111 kw[
'ReadCatalog'] = [
'file:' + readCatalog]
112 cfg.merge (PoolSvcCfg (flags, **kw))
115 os.remove (fileCatalog)
126 def TestOutputCfg (flags, stream, itemList, typeNames = [], metaItemList = []):
127 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg, outputStreamName
129 itemList = [
'xAOD::EventInfo#EventInfo',
130 'xAOD::EventAuxInfo#EventInfoAux.'] + itemList
132 metaItemList = [
"IOVMetaDataContainer#*"]
134 helperTools = [ CompFactory.xAODMaker.EventFormatStreamHelperTool(
135 f
'{stream}_EventFormatStreamHelperTool',
136 Key = f
'EventFormat{stream}',
137 TypeNames = typeNames,
138 DataHeaderKey = f
'Stream{stream}') ]
139 metaItemList = [ f
'xAOD::EventFormat#EventFormat{stream}' ] + metaItemList
140 acc.merge (OutputStreamCfg (flags, stream,
142 HelperTools = helperTools,
143 MetadataItemList = metaItemList))
146 alg.WritingTool.SubLevelBranchName =
'<key>'
147 acc.getService (
'AthenaPoolCnvSvc').PoolAttributes += [
"DEFAULT_SPLITLEVEL='1'"]
158 def __init__ (self, name = 'LoadWriteDicts', **kw):
159 super(LoadWriteDicts, self).__init__ (name=name, **kw)
162 ROOT.gROOT.SetBatch(
True)
164 cppyy.load_library(
"libDataModelTestDataCommonDict")
165 cppyy.load_library(
"libDataModelTestDataWriteDict")
166 cppyy.load_library(
"libDataModelTestDataWriteCnvDict")
168 ROOT.DMTest.setConverterLibrary (
'libDataModelTestDataWriteCnvPoolCnv.so')
169 ROOT.DMTest.setTrigConverterLibrary (
'libDataModelTestDataWriteSerCnv.so')
170 return StatusCode.Success
185 super(LoadReadDicts, self).__init__ (name=name, **kw)
188 ROOT.gROOT.SetBatch(
True)
190 cppyy.load_library(
"libDataModelTestDataCommonDict")
191 cppyy.load_library(
"libDataModelTestDataReadDict")
193 ROOT.gROOT.GetClass(
'DMTest::HAuxContainer_v1')
194 ROOT.gROOT.GetClass(
'DataVector<DMTest::H_v1>')
195 ROOT.gROOT.GetClass(
'DMTest::HView_v1')
196 ROOT.DMTest.setConverterLibrary (
'libDataModelTestDataReadCnvPoolCnv.so')
197 ROOT.DMTest.setTrigConverterLibrary (
'libDataModelTestDataReadSerCnv.so')
198 return StatusCode.Success
207 is_rntuple =
'ROOTRNTUPLE' in flags.Output.StorageTechnology.EventData.values()
209 return True,
lambda k:
''
210 return False,
lambda k:k