ATLAS Offline Software
Functions
python.PoolReadConfig Namespace Reference

Functions

def EventSelectorAthenaPoolCfg (flags)
 
def PoolReadCfg (flags)
 

Function Documentation

◆ EventSelectorAthenaPoolCfg()

def python.PoolReadConfig.EventSelectorAthenaPoolCfg (   flags)

Definition at line 9 of file PoolReadConfig.py.

10  result = ComponentAccumulator()
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:
17  DataRunNumber = -1
18  FirstLB = 1
19  InitialTimeStamp = 1
20  OldRunNumber = -1
21  if flags.Input.ConditionsRunNumber > 0:
22  # Behaviour for Digitization jobs using DataRunNumber
23  DataRunNumber = flags.Input.ConditionsRunNumber
24  FirstLB = 1
25  InitialTimeStamp = flags.IOVDb.RunToTimestampDict.get(DataRunNumber, 1) # TODO fix repeated configuration
26  if not flags.Sim.DoFullChain:
27  OldRunNumber = flags.Input.RunNumbers[0] # CHECK this should be the Run Number from the HITS file
28  elif flags.Input.RunNumbers:
29  # Behaviour for Simulation jobs
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 # Necessary to avoid a crash
40  if hasattr(evSel, "OverrideRunNumberFromInput"):
41  evSel.OverrideRunNumberFromInput = True
42  if OldRunNumber > 0:
43  evSel.OldRunNumber = OldRunNumber
44  elif flags.Common.ProductionStep in [ProductionStep.Simulation, ProductionStep.FastChain]:
45  # Behaviour for Simulation and FastChain jobs using RunAndLumiOverrideList
46  from AthenaKernel.EventIdOverrideConfig import getMinMaxRunNumbers, getFirstLumiBlock
47  minMax = getMinMaxRunNumbers(flags)
48  evSel.OverrideRunNumber = True
49  evSel.RunNumber = minMax[0]
50  evSel.FirstLB = getFirstLumiBlock(flags, minMax[0])
51  evSel.InitialTimeStamp = flags.IOVDb.RunToTimestampDict.get(minMax[0], 1) # TODO fix repeated configuration
52  if hasattr(evSel, "OverrideRunNumberFromInput"):
53  evSel.OverrideRunNumberFromInput = True
54  else:
55  # Behaviour for Digitization jobs using RunAndLumiOverrideList
56  pass
57  from AthenaKernel.EventIdOverrideConfig import EvtIdModifierSvcCfg
58  result.merge(EvtIdModifierSvcCfg(flags))
59  elif flags.Common.ProductionStep in [ProductionStep.Simulation] and len(flags.Input.RunNumbers) and flags.Sim.ISF.ReSimulation:
60  # ReSimulation case
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)
66 
67  result.addService(evSel)
68  return result
69 
70 

◆ PoolReadCfg()

def python.PoolReadConfig.PoolReadCfg (   flags)
Creates a ComponentAccumulator instance containing the
athena services required for POOL file reading

Definition at line 71 of file PoolReadConfig.py.

71 def PoolReadCfg(flags):
72  """
73  Creates a ComponentAccumulator instance containing the
74  athena services required for POOL file reading
75  """
76 
77  result = ComponentAccumulator()
78 
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'"]))
83  else:
84  from AthenaPoolCnvSvc.PoolCommonConfig import AthenaPoolCnvSvcCfg
85  result.merge(AthenaPoolCnvSvcCfg(flags, InputPoolAttributes=["DatabaseName = '*'; ContainerName = 'CollectionTree'; TREE_CACHE = '-1'"]))
86 
87  # Suppress ROOT warnings about old I/O classes.
88  from AthenaServices.ROOTMessageFilterSvcConfig import ROOTMessageFilterSvcCfg
89  result.merge(ROOTMessageFilterSvcCfg(flags,
90  SuppressionRules=[('TClass::Init',
91  '.*DataHeader.*_p[12].*',
92  ROOT.kWarning),
93  ('TClass::Init',
94  '.*PoolToken_p1.*',
95  ROOT.kWarning)]))
96 
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
102 
103  # Create DoubleEventSelector (universal for any seconday input type)
104  evSel = CompFactory.DoubleEventSelectorAthenaPool("EventSelector",
105  InputCollections=flags.Input.Files)
106 
107  if flags.Overlay.ByteStream:
108  # In case of data overlay HITS are primary input
109  evSel.SkipEvents = skipEventsPrimary
110 
111  # We have to check if we're running overlay with ByteStream input
112  from ByteStreamCnvSvc.ByteStreamConfig import ByteStreamReadCfg
113  result.merge(ByteStreamReadCfg(flags))
114 
115  # We still have to add primary address provider
116  result.merge(AthenaPoolAddressProviderSvcCfg(flags,
117  name="AthenaPoolAddressProviderSvcPrimary",
118  DataHeaderKey="EventSelector"))
119  else:
120  # In case of MC overlay RDOs are primary input
121  evSel.SkipEvents = skipEventsSecondary
122  # Do not process secondary input metadata
123  evSel.ProcessMetadata = False
124 
125  # We have primary and secondary pool inputs, create two address providers
126  result.merge(AthenaPoolAddressProviderSvcCfg(flags,
127  name="AthenaPoolAddressProviderSvcPrimary",
128  DataHeaderKey="EventSelector",
129  AttributeListKey="Input"))
130  result.merge(AthenaPoolAddressProviderSvcCfg(flags,
131  name="AthenaPoolAddressProviderSvcSecondary",
132  DataHeaderKey="SecondaryEventSelector"))
133 
134  secondarySel = CompFactory.EventSelectorAthenaPool("SecondaryEventSelector",
135  IsSecondary=True,
136  InputCollections=flags.Input.SecondaryFiles,
137  SkipEvents=skipEventsPrimary)
138  result.addService(secondarySel)
139  result.addService(evSel)
140  else:
141  # We have only primary inputs
142  result.merge(AthenaPoolAddressProviderSvcCfg(flags))
143  result.merge(EventSelectorAthenaPoolCfg(flags))
144  evSel = result.getService("EventSelector")
145 
146  #Schedule a (potential) AODFix ...
147  processingTags=flags.Input.ProcessingTags
148  if "StreamAOD" in processingTags:
149  try:
150  from RecJobTransforms.AODFixConfig import AODFixCfg
151  result.merge(AODFixCfg(flags))
152  except ImportError:
153  #Looks like running on AthSimulation or AthAnalysis ... ignore AODFix
154  pass
155 
156 
157 
158  result.setAppProperty("EvtSel", evSel.getFullJobOptName())
159 
160  return result
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.AODFixConfig.AODFixCfg
def AODFixCfg(flags)
Definition: AODFixConfig.py:11
python.ByteStreamConfig.ByteStreamReadCfg
def ByteStreamReadCfg(flags, type_names=None)
Definition: Event/ByteStreamCnvSvc/python/ByteStreamConfig.py:25
python.PoolCommonConfig.AthenaPoolSharedIOCnvSvcCfg
def AthenaPoolSharedIOCnvSvcCfg(flags, **kwargs)
Definition: PoolCommonConfig.py:30
python.ROOTMessageFilterSvcConfig.ROOTMessageFilterSvcCfg
def ROOTMessageFilterSvcCfg(flags, SuppressionRules=[])
Definition: ROOTMessageFilterSvcConfig.py:10
python.PoolCommonConfig.AthenaPoolCnvSvcCfg
def AthenaPoolCnvSvcCfg(flags, **kwargs)
Definition: PoolCommonConfig.py:43
python.EventIdOverrideConfig.getFirstLumiBlock
def getFirstLumiBlock(flags, run)
Definition: EventIdOverrideConfig.py:89
python.EventIdOverrideConfig.EvtIdModifierSvcCfg
def EvtIdModifierSvcCfg(flags, name="EvtIdModifierSvc", **kwargs)
Definition: EventIdOverrideConfig.py:140
python.PoolReadConfig.EventSelectorAthenaPoolCfg
def EventSelectorAthenaPoolCfg(flags)
Definition: PoolReadConfig.py:9
python.EventIdOverrideConfig.getMinMaxRunNumbers
def getMinMaxRunNumbers(flags)
Definition: EventIdOverrideConfig.py:101
python.PoolReadConfig.PoolReadCfg
def PoolReadCfg(flags)
Definition: PoolReadConfig.py:71
python.PoolCommonConfig.AthenaPoolAddressProviderSvcCfg
def AthenaPoolAddressProviderSvcCfg(flags, **kwargs)
Definition: PoolCommonConfig.py:56