8from AthenaConfiguration.ComponentFactory
import CompFactory
9from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
10from AthenaConfiguration.Enums
import BeamType
11from IOVDbSvc.IOVDbSvcConfig
import addFolders
12from AthenaCommon.Logging
import logging
13from AthenaConfiguration.AccumulatorCache
import AccumulatorCache
14from AthenaConfiguration.Enums
import ProductionStep
23 log = logging.getLogger (
'LuminosityCondAlgCfg')
24 name =
'LuminosityCondAlg'
25 result = ComponentAccumulator()
27 if suffix
is None: suffix =
''
28 if useOnlineLumi
is not None and suffix
is None:
29 log.warning(
'useOnlineLumi argument is provided but not a suffix for the lumi object name. Is this really intended?')
32 kwargs = luminosityCondAlgMCCfg (flags, name, result)
33 elif ((useOnlineLumi
is None and flags.Common.useOnlineLumi)
34 or (useOnlineLumi
is not None and useOnlineLumi)):
35 kwargs = luminosityCondAlgOnlineCfg (flags, name, result)
36 elif flags.IOVDb.DatabaseInstance ==
'COMP200':
37 kwargs = luminosityCondAlgRun1Cfg (flags, name, result)
38 elif flags.IOVDb.DatabaseInstance ==
'CONDBR2':
39 kwargs = luminosityCondAlgRun2Cfg (flags, name, result)
42 log.warning (
"LuminosityCondAlgCfg can't resolve database instance = %s, assume Run2!" % flags.IOVDb.DatabaseInstance)
43 kwargs = luminosityCondAlgRun2Cfg (flags, name, result)
45 if flags.Common.ProductionStep
is ProductionStep.PileUpPretracking:
46 kwargs.setdefault(
"EventInfoKey", flags.Overlay.BkgPrefix +
"EventInfo")
48 kwargs.setdefault(
"LuminosityOutputKey",
"LuminosityCondData" + suffix)
50 result.addCondAlgo(CompFactory.LuminosityCondAlg(name, **kwargs))
55 from AthenaConfiguration.Enums
import Format
59 if flags.Input.Format != Format.BS:
60 from DigitizationConfig.DigitizationParametersConfig
import readDigitizationParameters
61 result.merge(readDigitizationParameters(flags))
62 digitizationFolderKey =
'/Digitization/Parameters'
66 digitizationFolderKey =
''
67 bsMetadataKey =
'MetaDataStore+ByteStreamMetadata'
69 return {
'LuminosityFolderInputKey' :
'',
70 'DigitizationFolderInputKey' : digitizationFolderKey,
71 'OnlineLumiCalibrationInputKey' :
'',
72 'ByteStreamMetadataKey': bsMetadataKey,
73 'BunchLumisInputKey' :
'',
74 'BunchGroupInputKey' :
'',
75 'FillParamsInputKey' :
'',
81 log = logging.getLogger(name)
86 if flags.Common.doExpressProcessing:
87 lumiFolder =
"/TRIGGER/LUMI/OnlPrefLumi"
88 result.merge (addFolders (flags, lumiFolder,
'TRIGGER_ONL',
89 className =
'CondAttrListCollection'))
92 lumiFolder =
"/TRIGGER/OFLLUMI/OflPrefLumi"
93 result.merge (addFolders (flags, lumiFolder,
'TRIGGER_OFL',
94 className =
'CondAttrListCollection'))
96 log.info (
"luminosityCondAlgRun2Config requested %s", lumiFolder)
97 kwargs[
'LuminosityFolderInputKey'] = lumiFolder
99 log.info (
"Created Run2 %s using folder %s" % (name, lumiFolder))
102 from CoolLumiUtilities.OnlineLumiCalibrationCondAlgConfig \
103 import OnlineLumiCalibrationCondAlgCfg
104 result.merge (OnlineLumiCalibrationCondAlgCfg(flags))
105 olalg = result.getCondAlgo (
'OnlineLumiCalibrationCondAlg')
106 kwargs[
'OnlineLumiCalibrationInputKey'] = olalg.LumiCalibOutputKey
109 kwargs[
'BunchLumisInputKey'] =
''
110 kwargs[
'BunchGroupInputKey'] =
''
111 kwargs[
'FillParamsInputKey'] =
''
114 if flags.Beam.Type
is BeamType.Cosmics:
115 kwargs[
'ExpectInvalid'] =
True
122 log = logging.getLogger(name)
127 if flags.Common.doExpressProcessing:
128 lumiFolder =
"/TRIGGER/LUMI/LBLESTONL"
129 result.merge (addFolders (flags, lumiFolder,
'TRIGGER_ONL',
130 className =
'CondAttrListCollection'))
133 lumiFolder =
"/TRIGGER/OFLLUMI/LBLESTOFL"
134 result.merge (addFolders (flags, lumiFolder,
'TRIGGER_OFL',
135 className =
'CondAttrListCollection'))
137 log.info (
"configureLuminosityCondAlgRun1 requested %s", lumiFolder)
138 kwargs[
'LuminosityFolderInputKey'] = lumiFolder
141 from CoolLumiUtilities.FillParamsCondAlgConfig \
142 import FillParamsCondAlgCfg
143 result.merge (FillParamsCondAlgCfg (flags))
144 fpalg = result.getCondAlgo (
'FillParamsCondAlg')
145 kwargs[
'FillParamsInputKey'] = fpalg.FillParamsOutputKey
147 from CoolLumiUtilities.BunchLumisCondAlgConfig \
148 import BunchLumisCondAlgCfg
149 result.merge (BunchLumisCondAlgCfg (flags))
150 blalg = result.getCondAlgo (
'BunchLumisCondAlg')
151 kwargs[
'BunchLumisInputKey'] = blalg.BunchLumisOutputKey
153 from CoolLumiUtilities.BunchGroupCondAlgConfig \
154 import BunchGroupCondAlgCfg
155 result.merge (BunchGroupCondAlgCfg (flags))
156 bgalg = result.getCondAlgo (
'BunchGroupCondAlg')
157 kwargs[
'BunchGroupInputKey'] = bgalg.BunchGroupOutputKey
159 from CoolLumiUtilities.OnlineLumiCalibrationCondAlgConfig \
160 import OnlineLumiCalibrationCondAlgCfg
161 result.merge (OnlineLumiCalibrationCondAlgCfg (flags))
162 olalg = result.getCondAlgo (
'OnlineLumiCalibrationCondAlg')
163 kwargs[
'OnlineLumiCalibrationInputKey'] = olalg.LumiCalibOutputKey
171 log = logging.getLogger(name)
176 kwargs[
'SkipInvalid'] =
False
178 if flags.IOVDb.DatabaseInstance ==
'COMP200':
179 folder =
"/TRIGGER/LUMI/LBLESTONL"
180 result.merge (addFolders (flags, folder,
'TRIGGER_ONL',
181 className =
'CondAttrListCollection'))
184 if flags.IOVDb.DatabaseInstance !=
'CONDBR2':
185 log.warning(
"LuminosityCondAlgOnlineCfg can't resolve DatabaseInstance = %s, assuming CONDBR2!", flags.IOVDb.DatabaseInstance)
187 folder =
"/TRIGGER/LUMI/HLTPrefLumi"
188 result.merge (addFolders (flags, folder,
'TRIGGER_ONL',
189 className =
'CondAttrListCollection',
190 extensible = flags.Trigger.doHLT
and flags.Trigger.Online.isPartition))
192 kwargs[
'LuminosityFolderInputKey'] = folder
193 log.info (
"Created online %s using folder %s" % (name, folder))
196 from CoolLumiUtilities.OnlineLumiCalibrationCondAlgConfig \
197 import OnlineLumiCalibrationCondAlgCfg
198 result.merge (OnlineLumiCalibrationCondAlgCfg(flags))
199 olalg = result.getCondAlgo (
'OnlineLumiCalibrationCondAlg')
200 kwargs[
'OnlineLumiCalibrationInputKey'] = olalg.LumiCalibOutputKey
203 kwargs[
'BunchLumisInputKey'] =
''
204 kwargs[
'BunchGroupInputKey'] =
''
205 kwargs[
'FillParamsInputKey'] =
''
210if __name__ ==
"__main__":
211 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
212 from AthenaConfiguration.TestDefaults
import defaultTestFiles
215 flags1 = initConfigFlags()
216 flags1.Input.Files = defaultTestFiles.RAW_RUN2
218 acc1 = LuminosityCondAlgCfg (flags1)
219 acc1.printCondAlgs(summariseProps=
True)
220 print (
'IOVDbSvc:', acc1.getService(
'IOVDbSvc').Folders)
223 print (
'--- run2/express')
224 flags2 = initConfigFlags()
225 flags2.Input.Files = defaultTestFiles.RAW_RUN2
226 flags2.Common.doExpressProcessing =
True
228 acc2 = LuminosityCondAlgCfg (flags2)
229 acc2.printCondAlgs(summariseProps=
True)
230 print (
'IOVDbSvc:', acc2.getService(
'IOVDbSvc').Folders)
234 flags3 = initConfigFlags()
235 flags3.Input.Files = defaultTestFiles.RAW_RUN2
236 flags3.Input.ProjectName =
'data12_8TeV'
238 acc3 = LuminosityCondAlgCfg (flags3)
239 acc3.printCondAlgs(summariseProps=
True)
240 print (
'IOVDbSvc:', acc3.getService(
'IOVDbSvc').Folders)
243 print (
'--- run1/express')
244 flags4 = initConfigFlags()
245 flags4.Input.Files = defaultTestFiles.RAW_RUN2
246 flags4.Input.ProjectName =
'data12_8TeV'
247 flags4.Common.doExpressProcessing =
True
249 acc4 = LuminosityCondAlgCfg (flags4)
250 acc4.printCondAlgs(summariseProps=
True)
251 print (
'IOVDbSvc:', acc4.getService(
'IOVDbSvc').Folders)
255 flags5 = initConfigFlags()
256 flags5.Input.Files = defaultTestFiles.ESD
258 acc5 = LuminosityCondAlgCfg (flags5)
259 acc5.printCondAlgs(summariseProps=
True)
263 flags6 = initConfigFlags()
264 flags6.Input.Files = defaultTestFiles.RAW_RUN2
265 flags6.Common.useOnlineLumi =
True
267 acc6 = LuminosityCondAlgCfg (flags6)
268 acc6.printCondAlgs(summariseProps=
True)
271 print (
'--- forced online')
272 flags7 = initConfigFlags()
273 flags7.Input.Files = defaultTestFiles.RAW_RUN2
275 acc7 = LuminosityCondAlgCfg (flags7, useOnlineLumi=
True, suffix=
'Online')
276 acc7.printCondAlgs(summariseProps=
True)
LuminosityCondAlgCfg(flags, useOnlineLumi=None, suffix=None)
luminosityCondAlgRun1Cfg(flags, name, result)
luminosityCondAlgRun2Cfg(flags, name, result)
luminosityCondAlgOnlineCfg(flags, name, result)
luminosityCondAlgMCCfg(flags, name, result)