ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Event
xAOD
xAODMetaDataCnv
python
TestWriteFileMetaDataHITS.py
Go to the documentation of this file.
1
# Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2
"""Test multi-threaded xAOD::FileMetaData writing
3
4
Read default test HITS and configure to write output stream with
5
xAOD::FileMetaData object. Set up to process 4 concurrent events. Inspect the
6
produced file for xAOD::FileMetaData metadata items.
7
8
Typical usage example
9
python -m xAODMetaDataCnv.TestWriteFileMetaDataHITS |tee log
10
"""
11
import
sys
12
from
AthenaConfiguration
import
AllConfigFlags, Enums, TestDefaults, MainServicesConfig
13
from
AthenaCommon
import
Constants, Logging
14
from
OutputStreamAthenaPool
import
OutputStreamConfig
15
from
PyUtils
import
MetaReader
16
from
xAODEventInfoCnv
import
xAODEventInfoCnvConfig
17
from
AthenaPoolCnvSvc.PoolReadConfig
import
PoolReadCfg
18
from
xAODMetaDataCnv.InfileMetaDataConfig
import
SetupMetaDataForStreamCfg
19
20
21
def
writeFileMetaData
(flags):
22
"""set up an output stream and xAOD::EventInfo"""
23
accumulator = OutputStreamConfig.OutputStreamCfg(flags, streamName=
"HITS"
)
24
accumulator.merge(SetupMetaDataForStreamCfg(flags, streamName=
"HITS"
))
25
26
accumulator.merge(
27
xAODEventInfoCnvConfig.EventInfoCnvAlgCfg(
28
flags=flags, inputKey=
""
, disableBeamSpot=flags.Common.Project
is
not
Enums.Project.Athena
29
)
30
)
31
32
return
accumulator
33
34
35
def
testMetaData
(file_name):
36
"""Check that file metadata is in output"""
37
meta = MetaReader.read_metadata([file_name])[file_name][
"metadata_items"
]
38
file_info_items = [
39
v
for
_, v
in
meta.items()
if
"FileMetaData"
in
v
40
]
41
print
(
"found file metadata objects:"
, file_info_items)
42
return
bool(file_info_items)
43
44
45
def
main
():
46
"""Run a job writing a file with FileMetaData"""
47
msg = Logging.logging.getLogger(
"TestFileMetaData"
)
48
49
flags = AllConfigFlags.initConfigFlags()
50
flags.Exec.OutputLevel = Constants.DEBUG
51
flags.Input.Files = TestDefaults.defaultTestFiles.HITS_RUN2
52
flags.Output.HITSFileName =
"test.pool.root"
53
flags.Concurrency.NumThreads = 4
54
flags.Concurrency.NumConcurrentEvents = 4
55
flags.lock()
56
57
write = MainServicesConfig.MainServicesCfg(flags)
58
write.merge(PoolReadCfg(flags))
59
write.merge(
writeFileMetaData
(flags))
60
write.run(100)
61
62
try
:
63
if
testMetaData
(flags.Output.HITSFileName):
64
msg.info(
"File contains xAOD::FileMetaData"
)
65
return
0
66
msg.error(
"File does not contain xAOD::FileMetaData"
)
67
except
ReferenceError:
68
msg.error(
"Failed to produce output file"
)
69
except
KeyError:
70
msg.error(
"Failed to get metadata item list from file"
)
71
return
1
72
73
74
if
__name__ ==
"__main__"
:
75
sys.exit(
main
())
print
void print(char *figname, TCanvas *c1)
Definition
TRTCalib_StrawStatusPlots.cxx:26
TestWriteFileMetaDataHITS.writeFileMetaData
writeFileMetaData(flags)
Definition
TestWriteFileMetaDataHITS.py:21
TestWriteFileMetaDataHITS.main
main()
Definition
TestWriteFileMetaDataHITS.py:45
TestWriteFileMetaDataHITS.testMetaData
testMetaData(file_name)
Definition
TestWriteFileMetaDataHITS.py:35
Generated on
for ATLAS Offline Software by
1.17.0