ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Database
EventIndex
EventGUIDLookup
scripts
EventGUIDLookup_tf.py
Go to the documentation of this file.
1
#!/usr/bin/env python
2
# Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
"""
4
EventGUIDLookup_tf.py
5
6
Given an ATLAS data type (RAW, ESD, AOD, DAOD_PHYS, DAOD_PHYSLITE, RDO,
7
HITS, EVNT) and a text file listing (run number, event number) pairs
8
-- one pair per line, space separated -- resolve, for every requested
9
event actually present in the input file(s), the provenance GUID for
10
that data type by decoding the "Stream references" POOL writes into the
11
CollectionTree, exactly as
12
Database/EventIndex/EventIndexProducer/python/POOL2EI_Lib.py
13
does when building the full Event Index -- except here only the
14
requested (run,event,dataType) GUIDs are resolved and written out as
15
plain text, one "runNumber eventNumber GUID" triplet per line.
16
"""
17
18
import
sys
19
20
from
PyJobTransforms.trfLogger
import
msg
21
from
PyJobTransforms.transform
import
transform
22
from
PyJobTransforms.trfExe
import
athenaExecutor
23
from
PyJobTransforms.trfArgs
import
addAthenaArguments
24
from
PyJobTransforms.trfDecorators
import
stdTrfExceptionHandler, sigUsrStackTrace
25
import
PyJobTransforms.trfArgClasses
as
trfArgClasses
26
27
28
SUPPORTED_TYPES = (
'RAW'
,
'ESD'
,
'AOD'
,
'DAOD_PHYS'
,
'DAOD_PHYSLITE'
,
29
'RDO'
,
'HITS'
,
'EVNT'
)
30
31
32
@stdTrfExceptionHandler
33
@sigUsrStackTrace
34
35
def
addEventGUIDLookupArgs
(parser):
36
parser.defineArgGroup(
'EventGUIDLookup'
,
'EventGUIDLookup Options'
)
37
38
parser.add_argument(
'--dataType'
,
39
type=trfArgClasses.argFactory(trfArgClasses.argString,
40
runarg=
True
),
41
required=
True
,
42
group=
'EventGUIDLookup'
,
43
help=
'Data type whose provenance GUID to resolve: '
44
'one of %s'
%
', '
.join(SUPPORTED_TYPES))
45
46
parser.add_argument(
'--inputFile'
, nargs=
'+'
, required=
True
,
47
type=trfArgClasses.argFactory(
48
trfArgClasses.argAthenaFile, io=
'input'
,
49
runarg=
True
, type=
'input'
),
50
group=
'EventGUIDLookup'
,
51
help=
'Input file(s) to search (any POOL format, '
52
'or RAW if --dataType RAW)'
)
53
54
parser.add_argument(
'--inputDataType'
,
55
type=trfArgClasses.argFactory(trfArgClasses.argString,
56
runarg=
True
),
57
required=
True
,
58
group=
'EventGUIDLookup'
,
59
help=
'Actual data type of --inputFile (always a '
60
'POOL format): one of %s'
61
%
', '
.join(SUPPORTED_TYPES))
62
63
parser.add_argument(
'--eventList'
, required=
True
,
64
type=trfArgClasses.argFactory(trfArgClasses.argString,
65
runarg=
True
),
66
group=
'EventGUIDLookup'
,
67
help=
'Text file, one "runNumber eventNumber" pair '
68
'per line (space separated)'
)
69
70
parser.add_argument(
'--outputTXTFile'
, required=
True
,
71
type=trfArgClasses.argFactory(trfArgClasses.argFile,
72
io=
'output'
, runarg=
True
,
73
type=
'eventGUIDOutput'
),
74
group=
'EventGUIDLookup'
,
75
help=
'Output text file: "runNumber eventNumber GUID" '
76
'triplets, one per line'
)
77
78
def
getTransform
():
79
executorSet = {athenaExecutor(
80
name=
'EventGUIDLookup'
,
81
skeletonCA=
'EventGUIDLookup.EventGUIDLookup_Skeleton'
,
82
substep=
'eglkp'
,
83
inData=
set
(),
84
outData=
set
())}
85
86
trf = transform(executor=executorSet,
87
description=
'Resolve provenance GUIDs, for a given '
88
'data type, of a list of (run,event) '
89
'pairs -- via the same Stream-references '
90
'mechanism used by POOL2EI_Lib.py.'
)
91
addAthenaArguments(trf.parser)
92
addEventGUIDLookupArgs
(trf.parser)
93
return
trf
94
95
def
main
():
96
msg.info(
'This is %s'
, sys.argv[0])
97
98
trf =
getTransform
()
99
trf.parseCmdLineArgs(sys.argv[1:])
100
101
dataType = trf.argdict[
'dataType'
].value
102
if
dataType
not
in
SUPPORTED_TYPES:
103
msg.error(
'Unsupported --dataType %r (must be one of: %s)'
,
104
dataType,
', '
.join(SUPPORTED_TYPES))
105
sys.exit(1)
106
107
trf.execute()
108
trf.generateReport()
109
110
msg.info(
'%s stopped gracefully'
, sys.argv[0])
111
sys.exit(0)
112
113
if
__name__ ==
'__main__'
:
114
main
()
set
STL class.
EventGUIDLookup_tf.main
main()
Definition
EventGUIDLookup_tf.py:95
EventGUIDLookup_tf.getTransform
getTransform()
Definition
EventGUIDLookup_tf.py:78
EventGUIDLookup_tf.addEventGUIDLookupArgs
addEventGUIDLookupArgs(parser)
Definition
EventGUIDLookup_tf.py:35
PyJobTransforms.transform
Main package for new style ATLAS job transforms.
PyJobTransforms.trfArgClasses
Transform argument class definitions.
PyJobTransforms.trfExe
Transform execution functions.
PyJobTransforms.trfLogger
Logging configuration for ATLAS job transforms.
Generated on
for ATLAS Offline Software by
1.17.0