8 from AthenaConfiguration.ComponentFactory
import CompFactory
9 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
10 from AthenaConfiguration.Enums
import BeamType
11 from IOVDbSvc.IOVDbSvcConfig
import addFolders
12 from AthenaCommon.Logging
import logging
13 from AthenaConfiguration.AccumulatorCache
import AccumulatorCache
14 from AthenaConfiguration.Enums
import ProductionStep
23 log = logging.getLogger (
'LuminosityCondAlgCfg')
24 name =
'LuminosityCondAlg'
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 DigitizationConfig.DigitizationParametersConfig
import readDigitizationParameters
57 return {
'LuminosityFolderInputKey' :
'',
58 'DigitizationFolderInputKey' :
'/Digitization/Parameters',
59 'OnlineLumiCalibrationInputKey' :
'',
60 'BunchLumisInputKey' :
'',
61 'BunchGroupInputKey' :
'',
62 'FillParamsInputKey' :
'',
68 log = logging.getLogger(name)
73 if flags.Common.doExpressProcessing:
74 lumiFolder =
"/TRIGGER/LUMI/OnlPrefLumi"
75 result.merge (addFolders (flags, lumiFolder,
'TRIGGER_ONL',
76 className =
'CondAttrListCollection'))
79 lumiFolder =
"/TRIGGER/OFLLUMI/OflPrefLumi"
80 result.merge (addFolders (flags, lumiFolder,
'TRIGGER_OFL',
81 className =
'CondAttrListCollection'))
83 log.info (
"luminosityCondAlgRun2Config requested %s", lumiFolder)
84 kwargs[
'LuminosityFolderInputKey'] = lumiFolder
86 log.info (
"Created Run2 %s using folder %s" % (name, lumiFolder))
89 from CoolLumiUtilities.OnlineLumiCalibrationCondAlgConfig \
90 import OnlineLumiCalibrationCondAlgCfg
92 olalg = result.getCondAlgo (
'OnlineLumiCalibrationCondAlg')
93 kwargs[
'OnlineLumiCalibrationInputKey'] = olalg.LumiCalibOutputKey
96 kwargs[
'BunchLumisInputKey'] =
''
97 kwargs[
'BunchGroupInputKey'] =
''
98 kwargs[
'FillParamsInputKey'] =
''
101 if flags.Beam.Type
is BeamType.Cosmics:
102 kwargs[
'ExpectInvalid'] =
True
109 log = logging.getLogger(name)
114 if flags.Common.doExpressProcessing:
115 lumiFolder =
"/TRIGGER/LUMI/LBLESTONL"
116 result.merge (addFolders (flags, lumiFolder,
'TRIGGER_ONL',
117 className =
'CondAttrListCollection'))
120 lumiFolder =
"/TRIGGER/OFLLUMI/LBLESTOFL"
121 result.merge (addFolders (flags, lumiFolder,
'TRIGGER_OFL',
122 className =
'CondAttrListCollection'))
124 log.info (
"configureLuminosityCondAlgRun1 requested %s", lumiFolder)
125 kwargs[
'LuminosityFolderInputKey'] = lumiFolder
128 from CoolLumiUtilities.FillParamsCondAlgConfig \
129 import FillParamsCondAlgCfg
130 result.merge (FillParamsCondAlgCfg (flags))
131 fpalg = result.getCondAlgo (
'FillParamsCondAlg')
132 kwargs[
'FillParamsInputKey'] = fpalg.FillParamsOutputKey
134 from CoolLumiUtilities.BunchLumisCondAlgConfig \
135 import BunchLumisCondAlgCfg
136 result.merge (BunchLumisCondAlgCfg (flags))
137 blalg = result.getCondAlgo (
'BunchLumisCondAlg')
138 kwargs[
'BunchLumisInputKey'] = blalg.BunchLumisOutputKey
140 from CoolLumiUtilities.BunchGroupCondAlgConfig \
141 import BunchGroupCondAlgCfg
142 result.merge (BunchGroupCondAlgCfg (flags))
143 bgalg = result.getCondAlgo (
'BunchGroupCondAlg')
144 kwargs[
'BunchGroupInputKey'] = bgalg.BunchGroupOutputKey
146 from CoolLumiUtilities.OnlineLumiCalibrationCondAlgConfig \
147 import OnlineLumiCalibrationCondAlgCfg
148 result.merge (OnlineLumiCalibrationCondAlgCfg (flags))
149 olalg = result.getCondAlgo (
'OnlineLumiCalibrationCondAlg')
150 kwargs[
'OnlineLumiCalibrationInputKey'] = olalg.LumiCalibOutputKey
158 log = logging.getLogger(name)
163 kwargs[
'SkipInvalid'] =
False
165 if flags.IOVDb.DatabaseInstance ==
'COMP200':
166 folder =
"/TRIGGER/LUMI/LBLESTONL"
167 result.merge (addFolders (flags, folder,
'TRIGGER_ONL',
168 className =
'CondAttrListCollection'))
171 if flags.IOVDb.DatabaseInstance !=
'CONDBR2':
172 log.warning(
"LuminosityCondAlgOnlineCfg can't resolve DatabaseInstance = %s, assuming CONDBR2!", flags.IOVDb.DatabaseInstance)
174 folder =
"/TRIGGER/LUMI/HLTPrefLumi"
175 result.merge (addFolders (flags, folder,
'TRIGGER_ONL',
176 className =
'CondAttrListCollection',
177 extensible = flags.Trigger.doHLT
and flags.Trigger.Online.isPartition))
179 kwargs[
'LuminosityFolderInputKey'] = folder
180 log.info (
"Created online %s using folder %s" % (name, folder))
183 from CoolLumiUtilities.OnlineLumiCalibrationCondAlgConfig \
184 import OnlineLumiCalibrationCondAlgCfg
186 olalg = result.getCondAlgo (
'OnlineLumiCalibrationCondAlg')
187 kwargs[
'OnlineLumiCalibrationInputKey'] = olalg.LumiCalibOutputKey
190 kwargs[
'BunchLumisInputKey'] =
''
191 kwargs[
'BunchGroupInputKey'] =
''
192 kwargs[
'FillParamsInputKey'] =
''
197 if __name__ ==
"__main__":
198 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
199 from AthenaConfiguration.TestDefaults
import defaultTestFiles
203 flags1.Input.Files = defaultTestFiles.RAW_RUN2
205 acc1 = LuminosityCondAlgCfg (flags1)
206 acc1.printCondAlgs(summariseProps=
True)
207 print (
'IOVDbSvc:', acc1.getService(
'IOVDbSvc').Folders)
210 print (
'--- run2/express')
212 flags2.Input.Files = defaultTestFiles.RAW_RUN2
213 flags2.Common.doExpressProcessing =
True
215 acc2 = LuminosityCondAlgCfg (flags2)
216 acc2.printCondAlgs(summariseProps=
True)
217 print (
'IOVDbSvc:', acc2.getService(
'IOVDbSvc').Folders)
222 flags3.Input.Files = defaultTestFiles.RAW_RUN2
223 flags3.Input.ProjectName =
'data12_8TeV'
225 acc3 = LuminosityCondAlgCfg (flags3)
226 acc3.printCondAlgs(summariseProps=
True)
227 print (
'IOVDbSvc:', acc3.getService(
'IOVDbSvc').Folders)
230 print (
'--- run1/express')
232 flags4.Input.Files = defaultTestFiles.RAW_RUN2
233 flags4.Input.ProjectName =
'data12_8TeV'
234 flags4.Common.doExpressProcessing =
True
236 acc4 = LuminosityCondAlgCfg (flags4)
237 acc4.printCondAlgs(summariseProps=
True)
238 print (
'IOVDbSvc:', acc4.getService(
'IOVDbSvc').Folders)
243 flags5.Input.Files = defaultTestFiles.ESD
245 acc5 = LuminosityCondAlgCfg (flags5)
246 acc5.printCondAlgs(summariseProps=
True)
251 flags6.Input.Files = defaultTestFiles.RAW_RUN2
252 flags6.Common.useOnlineLumi =
True
254 acc6 = LuminosityCondAlgCfg (flags6)
255 acc6.printCondAlgs(summariseProps=
True)
258 print (
'--- forced online')
260 flags7.Input.Files = defaultTestFiles.RAW_RUN2
262 acc7 = LuminosityCondAlgCfg (flags7, useOnlineLumi=
True, suffix=
'Online')
263 acc7.printCondAlgs(summariseProps=
True)