3 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
4 from AthenaConfiguration.ComponentFactory
import CompFactory
5 from AthenaConfiguration.Enums
import ProductionStep
11 evSel = CompFactory.EventSelectorAthenaPool(
"EventSelector",
12 InputCollections=flags.Input.Files,
13 SkipEvents=flags.Exec.SkipEvents,
14 ConversionService=
"AthenaPoolSharedIOCnvSvc" if flags.MP.UseSharedReader
or flags.MP.UseSharedWriter
else "AthenaPoolCnvSvc")
15 if flags.Input.OverrideRunNumber:
16 if not flags.Input.RunAndLumiOverrideList:
21 if flags.Input.ConditionsRunNumber > 0:
23 DataRunNumber = flags.Input.ConditionsRunNumber
25 InitialTimeStamp = flags.IOVDb.RunToTimestampDict.get(DataRunNumber, 1)
26 if not flags.Sim.DoFullChain:
27 OldRunNumber = flags.Input.RunNumbers[0]
28 elif flags.Input.RunNumbers:
30 DataRunNumber = flags.Input.RunNumbers[0]
31 FirstLB = flags.Input.LumiBlockNumbers[0]
32 InitialTimeStamp = flags.Input.TimeStamps[0]
33 assert DataRunNumber >= 0, (
34 "flags.Input.OverrideRunNumber was True, but provided DataRunNumber (%d) is negative. "
35 "Use a real run number from data." % DataRunNumber)
36 evSel.OverrideRunNumber =
True
37 evSel.RunNumber = DataRunNumber
38 evSel.FirstLB = FirstLB
39 evSel.InitialTimeStamp = InitialTimeStamp
40 if hasattr(evSel,
"OverrideRunNumberFromInput"):
41 evSel.OverrideRunNumberFromInput =
True
43 evSel.OldRunNumber = OldRunNumber
44 elif flags.Common.ProductionStep
in [ProductionStep.Simulation, ProductionStep.FastChain]:
46 from AthenaKernel.EventIdOverrideConfig
import getMinMaxRunNumbers, getFirstLumiBlock
48 evSel.OverrideRunNumber =
True
49 evSel.RunNumber = minMax[0]
51 evSel.InitialTimeStamp = flags.IOVDb.RunToTimestampDict.get(minMax[0], 1)
52 if hasattr(evSel,
"OverrideRunNumberFromInput"):
53 evSel.OverrideRunNumberFromInput =
True
57 from AthenaKernel.EventIdOverrideConfig
import EvtIdModifierSvcCfg
59 elif flags.Common.ProductionStep
in [ProductionStep.Simulation]
and len(flags.Input.RunNumbers)
and flags.Sim.ISF.ReSimulation:
61 evSel.OverrideRunNumber =
True
62 evSel.RunNumber = flags.Input.RunNumbers[0]
63 if flags.Input.LumiBlockNumbers:
64 evSel.FirstLB = flags.Input.LumiBlockNumbers[0]
65 evSel.InitialTimeStamp = flags.IOVDb.RunToTimestampDict.get(flags.Input.RunNumbers[0], 1)
67 result.addService(evSel)
73 Creates a ComponentAccumulator instance containing the
74 athena services required for POOL file reading
79 from AthenaPoolCnvSvc.PoolCommonConfig
import AthenaPoolAddressProviderSvcCfg
80 if flags.MP.UseSharedReader
or flags.MP.UseSharedWriter:
81 from AthenaPoolCnvSvc.PoolCommonConfig
import AthenaPoolSharedIOCnvSvcCfg
82 result.merge(
AthenaPoolSharedIOCnvSvcCfg(flags, InputPoolAttributes=[
"DatabaseName = '*'; ContainerName = 'CollectionTree'; TREE_CACHE = '-1'"]))
84 from AthenaPoolCnvSvc.PoolCommonConfig
import AthenaPoolCnvSvcCfg
85 result.merge(
AthenaPoolCnvSvcCfg(flags, InputPoolAttributes=[
"DatabaseName = '*'; ContainerName = 'CollectionTree'; TREE_CACHE = '-1'"]))
88 from AthenaServices.ROOTMessageFilterSvcConfig
import ROOTMessageFilterSvcCfg
90 SuppressionRules=[(
'TClass::Init',
91 '.*DataHeader.*_p[12].*',
97 if flags.Input.SecondaryFiles:
98 skipEventsPrimary = flags.Exec.SkipEvents
99 skipEventsSecondary = flags.Exec.SkipEvents
100 if flags.Overlay.SkipSecondaryEvents >= 0:
101 skipEventsSecondary = flags.Overlay.SkipSecondaryEvents
104 evSel = CompFactory.DoubleEventSelectorAthenaPool(
"EventSelector",
105 InputCollections=flags.Input.Files)
107 if flags.Overlay.ByteStream:
109 evSel.SkipEvents = skipEventsPrimary
112 from ByteStreamCnvSvc.ByteStreamConfig
import ByteStreamReadCfg
117 name=
"AthenaPoolAddressProviderSvcPrimary",
118 DataHeaderKey=
"EventSelector"))
121 evSel.SkipEvents = skipEventsSecondary
123 evSel.ProcessMetadata =
False
127 name=
"AthenaPoolAddressProviderSvcPrimary",
128 DataHeaderKey=
"EventSelector",
129 AttributeListKey=
"Input"))
131 name=
"AthenaPoolAddressProviderSvcSecondary",
132 DataHeaderKey=
"SecondaryEventSelector"))
134 secondarySel = CompFactory.EventSelectorAthenaPool(
"SecondaryEventSelector",
136 InputCollections=flags.Input.SecondaryFiles,
137 SkipEvents=skipEventsPrimary)
138 result.addService(secondarySel)
139 result.addService(evSel)
144 evSel = result.getService(
"EventSelector")
147 processingTags=flags.Input.ProcessingTags
148 if "StreamAOD" in processingTags:
150 from RecJobTransforms.AODFixConfig
import AODFixCfg
158 result.setAppProperty(
"EvtSel", evSel.getFullJobOptName())