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'
65 digitizationFolderKey =
''
67 return {
'LuminosityFolderInputKey' :
'',
68 'DigitizationFolderInputKey' : digitizationFolderKey,
69 'OnlineLumiCalibrationInputKey' :
'',
70 'BunchLumisInputKey' :
'',
71 'BunchGroupInputKey' :
'',
72 'FillParamsInputKey' :
'',
78 log = logging.getLogger(name)
83 if flags.Common.doExpressProcessing:
84 lumiFolder =
"/TRIGGER/LUMI/OnlPrefLumi"
85 result.merge (addFolders (flags, lumiFolder,
'TRIGGER_ONL',
86 className =
'CondAttrListCollection'))
89 lumiFolder =
"/TRIGGER/OFLLUMI/OflPrefLumi"
90 result.merge (addFolders (flags, lumiFolder,
'TRIGGER_OFL',
91 className =
'CondAttrListCollection'))
93 log.info (
"luminosityCondAlgRun2Config requested %s", lumiFolder)
94 kwargs[
'LuminosityFolderInputKey'] = lumiFolder
96 log.info (
"Created Run2 %s using folder %s" % (name, lumiFolder))
99 from CoolLumiUtilities.OnlineLumiCalibrationCondAlgConfig \
100 import OnlineLumiCalibrationCondAlgCfg
101 result.merge (OnlineLumiCalibrationCondAlgCfg(flags))
102 olalg = result.getCondAlgo (
'OnlineLumiCalibrationCondAlg')
103 kwargs[
'OnlineLumiCalibrationInputKey'] = olalg.LumiCalibOutputKey
106 kwargs[
'BunchLumisInputKey'] =
''
107 kwargs[
'BunchGroupInputKey'] =
''
108 kwargs[
'FillParamsInputKey'] =
''
111 if flags.Beam.Type
is BeamType.Cosmics:
112 kwargs[
'ExpectInvalid'] =
True
119 log = logging.getLogger(name)
124 if flags.Common.doExpressProcessing:
125 lumiFolder =
"/TRIGGER/LUMI/LBLESTONL"
126 result.merge (addFolders (flags, lumiFolder,
'TRIGGER_ONL',
127 className =
'CondAttrListCollection'))
130 lumiFolder =
"/TRIGGER/OFLLUMI/LBLESTOFL"
131 result.merge (addFolders (flags, lumiFolder,
'TRIGGER_OFL',
132 className =
'CondAttrListCollection'))
134 log.info (
"configureLuminosityCondAlgRun1 requested %s", lumiFolder)
135 kwargs[
'LuminosityFolderInputKey'] = lumiFolder
138 from CoolLumiUtilities.FillParamsCondAlgConfig \
139 import FillParamsCondAlgCfg
140 result.merge (FillParamsCondAlgCfg (flags))
141 fpalg = result.getCondAlgo (
'FillParamsCondAlg')
142 kwargs[
'FillParamsInputKey'] = fpalg.FillParamsOutputKey
144 from CoolLumiUtilities.BunchLumisCondAlgConfig \
145 import BunchLumisCondAlgCfg
146 result.merge (BunchLumisCondAlgCfg (flags))
147 blalg = result.getCondAlgo (
'BunchLumisCondAlg')
148 kwargs[
'BunchLumisInputKey'] = blalg.BunchLumisOutputKey
150 from CoolLumiUtilities.BunchGroupCondAlgConfig \
151 import BunchGroupCondAlgCfg
152 result.merge (BunchGroupCondAlgCfg (flags))
153 bgalg = result.getCondAlgo (
'BunchGroupCondAlg')
154 kwargs[
'BunchGroupInputKey'] = bgalg.BunchGroupOutputKey
156 from CoolLumiUtilities.OnlineLumiCalibrationCondAlgConfig \
157 import OnlineLumiCalibrationCondAlgCfg
158 result.merge (OnlineLumiCalibrationCondAlgCfg (flags))
159 olalg = result.getCondAlgo (
'OnlineLumiCalibrationCondAlg')
160 kwargs[
'OnlineLumiCalibrationInputKey'] = olalg.LumiCalibOutputKey
168 log = logging.getLogger(name)
173 kwargs[
'SkipInvalid'] =
False
175 if flags.IOVDb.DatabaseInstance ==
'COMP200':
176 folder =
"/TRIGGER/LUMI/LBLESTONL"
177 result.merge (addFolders (flags, folder,
'TRIGGER_ONL',
178 className =
'CondAttrListCollection'))
181 if flags.IOVDb.DatabaseInstance !=
'CONDBR2':
182 log.warning(
"LuminosityCondAlgOnlineCfg can't resolve DatabaseInstance = %s, assuming CONDBR2!", flags.IOVDb.DatabaseInstance)
184 folder =
"/TRIGGER/LUMI/HLTPrefLumi"
185 result.merge (addFolders (flags, folder,
'TRIGGER_ONL',
186 className =
'CondAttrListCollection',
187 extensible = flags.Trigger.doHLT
and flags.Trigger.Online.isPartition))
189 kwargs[
'LuminosityFolderInputKey'] = folder
190 log.info (
"Created online %s using folder %s" % (name, folder))
193 from CoolLumiUtilities.OnlineLumiCalibrationCondAlgConfig \
194 import OnlineLumiCalibrationCondAlgCfg
195 result.merge (OnlineLumiCalibrationCondAlgCfg(flags))
196 olalg = result.getCondAlgo (
'OnlineLumiCalibrationCondAlg')
197 kwargs[
'OnlineLumiCalibrationInputKey'] = olalg.LumiCalibOutputKey
200 kwargs[
'BunchLumisInputKey'] =
''
201 kwargs[
'BunchGroupInputKey'] =
''
202 kwargs[
'FillParamsInputKey'] =
''
207if __name__ ==
"__main__":
208 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
209 from AthenaConfiguration.TestDefaults
import defaultTestFiles
212 flags1 = initConfigFlags()
213 flags1.Input.Files = defaultTestFiles.RAW_RUN2
215 acc1 = LuminosityCondAlgCfg (flags1)
216 acc1.printCondAlgs(summariseProps=
True)
217 print (
'IOVDbSvc:', acc1.getService(
'IOVDbSvc').Folders)
220 print (
'--- run2/express')
221 flags2 = initConfigFlags()
222 flags2.Input.Files = defaultTestFiles.RAW_RUN2
223 flags2.Common.doExpressProcessing =
True
225 acc2 = LuminosityCondAlgCfg (flags2)
226 acc2.printCondAlgs(summariseProps=
True)
227 print (
'IOVDbSvc:', acc2.getService(
'IOVDbSvc').Folders)
231 flags3 = initConfigFlags()
232 flags3.Input.Files = defaultTestFiles.RAW_RUN2
233 flags3.Input.ProjectName =
'data12_8TeV'
235 acc3 = LuminosityCondAlgCfg (flags3)
236 acc3.printCondAlgs(summariseProps=
True)
237 print (
'IOVDbSvc:', acc3.getService(
'IOVDbSvc').Folders)
240 print (
'--- run1/express')
241 flags4 = initConfigFlags()
242 flags4.Input.Files = defaultTestFiles.RAW_RUN2
243 flags4.Input.ProjectName =
'data12_8TeV'
244 flags4.Common.doExpressProcessing =
True
246 acc4 = LuminosityCondAlgCfg (flags4)
247 acc4.printCondAlgs(summariseProps=
True)
248 print (
'IOVDbSvc:', acc4.getService(
'IOVDbSvc').Folders)
252 flags5 = initConfigFlags()
253 flags5.Input.Files = defaultTestFiles.ESD
255 acc5 = LuminosityCondAlgCfg (flags5)
256 acc5.printCondAlgs(summariseProps=
True)
260 flags6 = initConfigFlags()
261 flags6.Input.Files = defaultTestFiles.RAW_RUN2
262 flags6.Common.useOnlineLumi =
True
264 acc6 = LuminosityCondAlgCfg (flags6)
265 acc6.printCondAlgs(summariseProps=
True)
268 print (
'--- forced online')
269 flags7 = initConfigFlags()
270 flags7.Input.Files = defaultTestFiles.RAW_RUN2
272 acc7 = LuminosityCondAlgCfg (flags7, useOnlineLumi=
True, suffix=
'Online')
273 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)