ATLAS Offline Software
PixelConditionsConfig.py
Go to the documentation of this file.
1 """Define functions to configure Pixel conditions algorithms
2 
3 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
4 """
5 from AthenaConfiguration.AccumulatorCache import AccumulatorCache
6 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
7 from AthenaConfiguration.ComponentFactory import CompFactory
8 from AthenaConfiguration.Enums import BeamType, LHCPeriod, Format
9 from IOVDbSvc.IOVDbSvcConfig import addFolders,addFoldersSplitOnline
10 
11 def PixelConfigCondAlgCfg(flags, name="PixelConfigCondAlg", **kwargs):
12  """Return a ComponentAccumulator with configured PixelConfigCondAlg"""
13  acc = ComponentAccumulator()
14 
15  # FIXME commented properties are not currently accepted by PixelConfigCondAlg
16  CondArgs = {}
17  if flags.Beam.Type is BeamType.Cosmics:
18  CondArgs.update(
19  BarrelTimeJitter=[25.0,25.0,25.0,25.0],
20  EndcapTimeJitter=[25.0,25.0,25.0],
21  DBMTimeJitter=[25.0,25.0,25.0],
22  BarrelNumberOfBCID=[8,8,8,8],
23  EndcapNumberOfBCID=[8,8,8],
24  DBMNumberOfBCID=[8,8,8],
25  BarrelTimeOffset=[100.0,100.0,100.0,100.0],
26  EndcapTimeOffset=[100.0,100.0,100.0],
27  DBMTimeOffset=[100.0,100.0,100.0]
28  )
29 
30  CondArgs.update(
31  PixelParameterConditionsFolder=flags.InDet.PixelConfig.version,
32  UsePrivateFileName=flags.InDet.PixelConfig.UserInputFileName
33  )
34 
35  # Cabling parameters
36  IdMappingDat="PixelCabling/Pixels_Atlas_IdMapping_2016.dat"
37  if flags.Input.isMC:
38  # ITk:
39  if flags.GeoModel.Run >= LHCPeriod.Run4: # RUN4 and beyond
40  IdMappingDat = "ITk_Atlas_IdMapping.dat"
41  elif flags.GeoModel.Run in [LHCPeriod.Run2, LHCPeriod.Run3]:
42  # Planar IBL
43  if flags.GeoModel.IBLLayout == "planar":
44  if flags.GeoModel.Run is LHCPeriod.Run2:
45  IdMappingDat="PixelCabling/Pixels_Atlas_IdMapping_inclIBL_DBM.dat"
46  else:
47  IdMappingDat="PixelCabling/Pixels_Atlas_IdMapping_inclIBL.dat"
48  # Hybrid IBL plus DBM
49  elif flags.GeoModel.IBLLayout == "3D":
50  IdMappingDat="PixelCabling/Pixels_Atlas_IdMapping_Run2.dat"
51  else:
52  IdMappingDat="PixelCabling/Pixels_Atlas_IdMapping.dat"
53  elif not flags.Input.RunNumbers:
54  IdMappingDat="PixelCabling/Pixels_Atlas_IdMapping_344494.dat"
55  else:
56  runNum = flags.Input.RunNumbers[0]
57  if runNum < 222222:
58  IdMappingDat="PixelCabling/Pixels_Atlas_IdMapping_May08.dat"
59  else:
60  # Even though we are reading from COOL, set the correct fallback map.
61  if (runNum >= 344494):
62  IdMappingDat="PixelCabling/Pixels_Atlas_IdMapping_344494.dat"
63  elif (runNum >= 314940 and runNum < 344494):
64  IdMappingDat="PixelCabling/Pixels_Atlas_IdMapping_314940.dat"
65  elif (runNum >= 289350 and runNum < 314940): # 2016
66  IdMappingDat="PixelCabling/Pixels_Atlas_IdMapping_2016.dat"
67  elif (runNum >= 222222 and runNum < 289350): # 2015
68  IdMappingDat="PixelCabling/Pixels_Atlas_IdMapping_Run2.dat"
69  else:
70  IdMappingDat="PixelCabling/Pixels_Atlas_IdMapping_344494.dat"
71 
72  CondArgs.update(
73  CablingMapFileName=IdMappingDat
74  )
75 
76  # set default kwargs
77  CondArgs.update(kwargs)
78  acc.addCondAlgo(CompFactory.PixelConfigCondAlg(name, **CondArgs))
79  return acc
80 
81 @AccumulatorCache
82 def PixelAlignCondAlgCfg(flags, name="PixelAlignCondAlg", **kwargs):
83  """Return a ComponentAccumulator with configured PixelAlignCondAlg"""
84  from PixelGeoModel.PixelGeoModelConfig import PixelGeoModelCfg
85  acc = PixelGeoModelCfg(flags)
86 
87  if flags.GeoModel.Align.Dynamic:
88  acc.merge(addFoldersSplitOnline(flags,"INDET",
89  ["/Indet/Onl/AlignL1/ID","/Indet/Onl/AlignL2/PIX"],
90  ["/Indet/AlignL1/ID","/Indet/AlignL2/PIX"],
91  className="CondAttrListCollection"))
92  acc.merge(addFoldersSplitOnline(flags,"INDET","/Indet/Onl/AlignL3","/Indet/AlignL3",className="AlignableTransformContainer"))
93  else:
94  acc.merge(addFoldersSplitOnline(flags,"INDET","/Indet/Onl/Align","/Indet/Align",className="AlignableTransformContainer"))
95 
96  acc.merge(addFoldersSplitOnline(flags,"INDET","/Indet/Onl/IBLDist","/Indet/IBLDist",className="CondAttrListCollection"))
97 
98  kwargs.setdefault("UseDynamicAlignFolders", flags.GeoModel.Align.Dynamic)
99  kwargs.setdefault("ReadKeyStatic", "/Indet/Align")
100  kwargs.setdefault("ReadKeyDynamicL1", "/Indet/AlignL1/ID")
101  kwargs.setdefault("ReadKeyDynamicL2", "/Indet/AlignL2/PIX")
102  kwargs.setdefault("ReadKeyDynamicL3", "/Indet/AlignL3")
103  kwargs.setdefault("ReadKeyIBLDist", "/Indet/IBLDist")
104  kwargs.setdefault("WriteKey", "PixelAlignmentStore")
105 
106  acc.addCondAlgo(CompFactory.PixelAlignCondAlg(name, **kwargs))
107  return acc
108 
109 def PixelCablingCondAlgCfg(flags, name="PixelCablingCondAlg", **kwargs):
110  """Return a ComponentAccumulator with configured PixelCablingCondAlg"""
111  acc = ComponentAccumulator()
112  acc.merge(PixelConfigCondAlgCfg(flags))
113  acc.merge(PixelReadoutSpeedAlgCfg(flags))
114 
115  from AthenaConfiguration.Enums import LHCPeriod
116 
117  if not flags.Input.isMC and not flags.GeoModel.Run < LHCPeriod.Run2:
118  acc.merge(addFoldersSplitOnline(flags, "PIXEL", "/PIXEL/Onl/CablingMap","/PIXEL/CablingMap", className="AthenaAttributeList"))
119  kwargs.setdefault("ReadKey", "/PIXEL/CablingMap")
120  if flags.Input.RunNumbers and flags.Input.RunNumbers[0]<222222:
121  kwargs.setdefault("ReadKey", "")
122  else:
123  kwargs.setdefault("ReadKey", "")
124  kwargs.setdefault("PixelModuleData", "PixelModuleData")
125  kwargs.setdefault("PixelReadoutSpeedData", "PixelReadoutSpeedData")
126  kwargs.setdefault("WriteKey", "PixelCablingCondData")
127  acc.addCondAlgo(CompFactory.PixelCablingCondAlg(name, **kwargs))
128  return acc
129 
130 def PixelChargeCalibCondAlgCfg(flags, name="PixelChargeCalibCondAlg", **kwargs):
131  """Return a ComponentAccumulator with configured PixelChargeCalibCondAlg"""
132  acc = ComponentAccumulator()
133  acc.merge(PixelConfigCondAlgCfg(flags))
134  PixCalibFolder = 'ChargeCalibration'
135  from PixelGeoModel.PixelGeoModelConfig import PixelReadoutGeometryCfg
136  acc.merge(PixelReadoutGeometryCfg(flags))
137  kwargs.setdefault("PixelDetEleCollKey", "PixelDetectorElementCollection")
138  kwargs.setdefault("PixelModuleData", "PixelModuleData")
139  if flags.GeoModel.Run is LHCPeriod.Run2:
140  acc.merge(addFoldersSplitOnline(flags, "PIXEL", "/PIXEL/Onl/"+PixCalibFolder, "/PIXEL/"+PixCalibFolder, className="CondAttrListCollection"))
141  kwargs.setdefault("ReadKey", "/PIXEL/"+PixCalibFolder)
142  else:
143  kwargs.setdefault("ReadKey", "") # FIXME: temporarily disabling DB access for Run 1 due to crashes
144  kwargs.setdefault("WriteKey", "PixelChargeCalibCondData")
145  acc.addCondAlgo(CompFactory.PixelChargeCalibCondAlg(name, **kwargs))
146  return acc
147 
148 def PixelChargeLUTCalibCondAlgCfg(flags, name="PixelChargeLUTCalibCondAlg", **kwargs):
149  """Return a ComponentAccumulator with configured PixelChargeLUTCalibCondAlg"""
150  acc = ComponentAccumulator()
151  acc.merge(PixelConfigCondAlgCfg(flags))
152  acc.merge(addFoldersSplitOnline(flags, "PIXEL", "/PIXEL/Onl/ChargeCalibration", "/PIXEL/ChargeCalibration", className="CondAttrListCollection"))
153  from PixelGeoModel.PixelGeoModelConfig import PixelReadoutGeometryCfg
154  acc.merge(PixelReadoutGeometryCfg(flags))
155  kwargs.setdefault("PixelDetEleCollKey", "PixelDetectorElementCollection")
156  kwargs.setdefault("PixelModuleData", "PixelModuleData")
157  kwargs.setdefault("ReadKey", "/PIXEL/ChargeCalibration")
158  kwargs.setdefault("WriteKey", "PixelChargeCalibCondData")
159  acc.addCondAlgo(CompFactory.PixelChargeLUTCalibCondAlg(name, **kwargs))
160  return acc
161 
162 def PixelDCSCondHVAlgCfg(flags, name="PixelDCSCondHVAlg", **kwargs):
163  """Return a ComponentAccumulator with configured PixelDCSCondHVAlg"""
164  acc = ComponentAccumulator()
165  acc.merge(PixelConfigCondAlgCfg(flags))
166  if flags.Common.isOnline:
167  kwargs.update( ReadKey="/PIXEL/HLT/DCS/HV")
168  acc.merge(addFolders(flags, kwargs["ReadKey"], "PIXEL_ONL", className="CondAttrListCollection"))
169  else:
170  kwargs.update( ReadKey="/PIXEL/DCS/HV")
171  acc.merge(addFolders(flags, kwargs["ReadKey"], "DCS_OFL", className="CondAttrListCollection"))
172 
173  kwargs.setdefault("WriteKey", "PixelDCSHVCondData")
174  acc.addCondAlgo(CompFactory.PixelDCSCondHVAlg(name, **kwargs))
175  return acc
176 
177 def PixelDCSCondStateAlgCfg(flags, name="PixelDCSCondStateAlg", **kwargs):
178  """Return a ComponentAccumulator with configured PixelDCSCondStateAlg"""
179  acc = ComponentAccumulator()
180  if not flags.Input.isMC and flags.InDet.usePixelDCS:
181  acc.merge(addFolders(flags, "/PIXEL/DCS/FSMSTATE", "DCS_OFL", className="CondAttrListCollection"))
182  kwargs.setdefault("ReadKeyState", "/PIXEL/DCS/FSMSTATE")
183  else:
184  kwargs.setdefault("ReadKeyState", "")
185  kwargs.setdefault("WriteKeyState", "PixelDCSStateCondData")
186  acc.addCondAlgo(CompFactory.PixelDCSCondStateAlg(name, **kwargs))
187  return acc
188 
189 def PixelDCSCondStatusAlgCfg(flags, name="PixelDCSCondStatusAlg", **kwargs):
190  """Return a ComponentAccumulator with configured PixelDCSCondStatusAlg"""
191  acc = ComponentAccumulator()
192  if not flags.Input.isMC and flags.InDet.usePixelDCS:
193  acc.merge(addFolders(flags, "/PIXEL/DCS/FSMSTATUS", "DCS_OFL", className="CondAttrListCollection"))
194  kwargs.setdefault("ReadKeyStatus", "/PIXEL/DCS/FSMSTATUS")
195  else:
196  kwargs.setdefault("ReadKeyStatus", "")
197  kwargs.setdefault("WriteKeyStatus", "PixelDCSStatusCondData")
198  acc.addCondAlgo(CompFactory.PixelDCSCondStatusAlg(name, **kwargs))
199  return acc
200 
201 def PixelDCSCondTempAlgCfg(flags, name="PixelDCSCondTempAlg", **kwargs):
202  """Return a ComponentAccumulator with configured PixelDCSCondTempAlg"""
203  acc = ComponentAccumulator()
204  acc.merge(PixelConfigCondAlgCfg(flags))
205  if flags.Common.isOnline:
206  kwargs.setdefault("ReadKey", "/PIXEL/HLT/DCS/TEMPERATURE")
207  acc.merge(addFolders(flags, kwargs["ReadKey"], "PIXEL_ONL", className="CondAttrListCollection"))
208  else:
209  kwargs.setdefault("ReadKey", "/PIXEL/DCS/TEMPERATURE")
210  acc.merge(addFolders(flags, kwargs["ReadKey"], "DCS_OFL", className="CondAttrListCollection"))
211  kwargs.setdefault("WriteKey", "PixelDCSTempCondData")
212  acc.addCondAlgo(CompFactory.PixelDCSCondTempAlg(name, **kwargs))
213  return acc
214 
215 def PixelDeadMapCondAlgCfg(flags, name="PixelDeadMapCondAlg", **kwargs):
216  """Return a ComponentAccumulator with configured PixelDeadMapCondAlg"""
217  acc = ComponentAccumulator()
218  acc.merge(PixelConfigCondAlgCfg(flags))
219  if flags.InDet.JsonPathPixelModuleVeto:
220  kwargs.setdefault("ReadKey", "")
221  kwargs.setdefault("JsonPath", flags.InDet.JsonPathPixelModuleVeto)
222  elif flags.GeoModel.Run is LHCPeriod.Run1:
223  kwargs.setdefault("ReadKey", "")
224  else:
225  kwargs.setdefault("ReadKey", "/PIXEL/PixelModuleFeMask")
226  acc.merge(addFoldersSplitOnline(flags, "PIXEL", "/PIXEL/Onl/PixelModuleFeMask", "/PIXEL/PixelModuleFeMask", className="CondAttrListCollection"))
227  kwargs.setdefault("WriteKey", "PixelDeadMapCondData")
228  acc.addCondAlgo(CompFactory.PixelDeadMapCondAlg(name, **kwargs))
229  return acc
230 
231 def PixelDetectorElementCondAlgCfg(flags, name="PixelDetectorElementCondAlg", **kwargs):
232  """Return a ComponentAccumulator with configured PixelDetectorElementCondAlg"""
233  acc = ComponentAccumulator()
234  acc.merge(PixelAlignCondAlgCfg(flags))
235 
236  kwargs.setdefault("PixelAlignmentStore", "PixelAlignmentStore")
237  kwargs.setdefault("WriteKey", "PixelDetectorElementCollection")
238 
239  # FIXME
240  # add artifical dependencies to SCT, TRT and Muon
241  # conditions algs to ensure that the IOV
242  # is identical to the IOV of the tracking geometry
243  if flags.Detector.GeometryMuon and flags.Muon.enableAlignment:
244  from MuonConfig.MuonGeometryConfig import MuonGeoModelCfg
245  acc.merge(MuonGeoModelCfg(flags))
246  kwargs.setdefault("MuonManagerKey", "MuonDetectorManager")
247  if flags.Detector.GeometryTRT:
248  from TRT_GeoModel.TRT_GeoModelConfig import TRT_ReadoutGeometryCfg
249  acc.merge(TRT_ReadoutGeometryCfg(flags))
250  kwargs.setdefault("TRT_DetEltContKey", "TRT_DetElementContainer")
251  if not flags.GeoModel.Align.LegacyConditionsAccess and flags.Detector.GeometrySCT:
252  from SCT_GeoModel.SCT_GeoModelConfig import SCT_AlignmentCfg
253  acc.merge(SCT_AlignmentCfg(flags))
254  kwargs.setdefault("SCTAlignmentStore", "SCTAlignmentStore")
255  # end of hack
256 
257  acc.addCondAlgo(CompFactory.PixelDetectorElementCondAlg(name, **kwargs))
258  return acc
259 
260 def PixelDistortionAlgCfg(flags, name="PixelDistortionAlg", **kwargs):
261  """Return a ComponentAccumulator with configured PixelDistortionAlg"""
262  acc = ComponentAccumulator()
263  acc.merge(PixelConfigCondAlgCfg(flags))
264  acc.merge(addFoldersSplitOnline(flags,"INDET","/Indet/Onl/PixelDist","/Indet/PixelDist",className="DetCondCFloat"))
265  kwargs.setdefault("ReadKey", "/Indet/PixelDist")
266  kwargs.setdefault("WriteKey", "PixelDistortionData")
267  from RngComps.RngCompsConfig import AthRNGSvcCfg
268  kwargs.setdefault("RndmSvc", acc.getPrimaryAndMerge(AthRNGSvcCfg(flags)))
269  acc.addCondAlgo(CompFactory.PixelDistortionAlg(name, **kwargs))
270  return acc
271 
272 def PixelHitDiscCnfgAlgCfg(flags, name="PixelHitDiscCnfgAlg", **kwargs):
273  """Return a ComponentAccumulator with configured PixelHitDiscCnfgAlg"""
274  acc = ComponentAccumulator()
275  acc.merge(PixelConfigCondAlgCfg(flags))
276  # not for Run-1 data/MC
277  if flags.GeoModel.IBLLayout in ("noIBL", "UNDEFINED"):
278  return acc
279  if flags.IOVDb.DatabaseInstance == "CONDBR2":
280  acc.merge(addFolders(flags, "/PIXEL/HitDiscCnfg", "PIXEL", className="AthenaAttributeList"))
281  elif flags.Input.isMC and flags.GeoModel.Run in [LHCPeriod.Run2, LHCPeriod.Run3]:
282  acc.merge(addFoldersSplitOnline(flags,"PIXEL","/PIXEL/HitDiscCnfg","/PIXEL/HitDiscCnfg", className="AthenaAttributeList"))
283  kwargs.setdefault("ReadKey", "/PIXEL/HitDiscCnfg")
284  kwargs.setdefault("WriteKey", "PixelHitDiscCnfgData")
285  acc.addCondAlgo(CompFactory.PixelHitDiscCnfgAlg(name, **kwargs))
286  return acc
287 
288 def PixelOfflineCalibCondAlgCfg(flags, name="PixelOfflineCalibCondAlg", **kwargs):
289  """Return a ComponentAccumulator with configured PixelOfflineCalibCondAlg"""
290  acc = ComponentAccumulator()
291  acc.merge(addFoldersSplitOnline(flags, "PIXEL", "/PIXEL/Onl/PixReco", "/PIXEL/PixReco", className="DetCondCFloat"))
292  kwargs.setdefault("InputSource", 2)
293  kwargs.setdefault("PixelClusterErrorDataFile", "PixelClusterErrorData.txt")
294  kwargs.setdefault("PixelClusterOnTrackErrorDataFile", "PixelClusterOnTrackErrorData.txt")
295  kwargs.setdefault("PixelChargeInterpolationDataFile", "PixelChargeInterpolationData.txt")
296  kwargs.setdefault("DumpConstants", 0)
297  kwargs.setdefault("ReadKey", "/PIXEL/PixReco")
298  kwargs.setdefault("WriteKey", "PixelOfflineCalibData")
299  acc.addCondAlgo(CompFactory.PixelOfflineCalibCondAlg(name, **kwargs))
300  return acc
301 
302 def PixelReadoutSpeedAlgCfg(flags, name="PixelReadoutSpeedAlg", **kwargs):
303  """Return a ComponentAccumulator with configured PixelReadoutSpeedAlg"""
304  acc = ComponentAccumulator()
305  if not flags.Input.isMC:
306  acc.merge(addFolders(flags, "/PIXEL/ReadoutSpeed", "PIXEL", className="AthenaAttributeList"))
307  else:
308  acc.merge(addFoldersSplitOnline(flags, "PIXEL","/PIXEL/ReadoutSpeed","/PIXEL/ReadoutSpeed", className="AthenaAttributeList"))
309  kwargs.setdefault("ReadKey", "/PIXEL/ReadoutSpeed")
310  kwargs.setdefault("WriteKey", "PixelReadoutSpeedData")
311  acc.addCondAlgo(CompFactory.PixelReadoutSpeedAlg(name, **kwargs))
312  return acc
313 
314 def PixelRadSimFluenceMapAlgCfg(flags, name="PixelRadSimFluenceMapAlg", **kwargs):
315  """Return a ComponentAccumulator with configured PixelRadSimFluenceMapAlg"""
316  acc = ComponentAccumulator()
317  acc.merge(PixelConfigCondAlgCfg(flags))
318  kwargs.setdefault("PixelModuleData", "PixelModuleData")
319  kwargs.setdefault("WriteRadiationFluenceMapKey", "PixelRadiationDamageFluenceMapData")
320  acc.addCondAlgo(CompFactory.PixelRadSimFluenceMapAlg(name, **kwargs))
321  return acc
322 
323 def PixeldEdxAlgCfg(flags, name="PixeldEdxAlg", **kwargs):
324  """Return a ComponentAccumulator with configured PixeldEdxAlg"""
325  acc = ComponentAccumulator()
326  acc.merge(addFoldersSplitOnline(flags, "PIXEL", "/PIXEL/Onl/PixdEdx", "/PIXEL/PixdEdx", className='AthenaAttributeList'))
327  acc.addCondAlgo(CompFactory.PixeldEdxAlg(name, ReadFromCOOL = True, **kwargs))
328  return acc
329 
330 def PixelSiliconConditionsTestAlgCfg(flags, name="PixelSiliconConditionsTestAlg", **kwargs):
331  """Return a ComponentAccumulator with configured PixelSiliconConditionsTestAlg"""
332  acc = ComponentAccumulator()
333  acc.merge(PixelDCSCondTempAlgCfg(flags))
334  acc.merge(PixelDCSCondHVAlgCfg(flags))
335  acc.merge(PixelChargeCalibCondCfg(flags))
336  acc.merge(PixelDistortionAlgCfg(flags))
337  from SiLorentzAngleTool.PixelLorentzAngleConfig import PixelLorentzAngleToolCfg
338  kwargs.setdefault("LorentzAngleTool", acc.popToolsAndMerge(PixelLorentzAngleToolCfg(flags)))
339  acc.addEventAlgo(CompFactory.PixelSiliconConditionsTestAlg(name, **kwargs))
340  return acc
341 
342 def PixelDetectorElementStatusCondAlgActiveOnlyCfg(flags, name = "PixelDetectorElementStatusCondAlgNoByteStreamErrorActiveOnly", **kwargs) :
343  '''
344  Condition alg to precompute the pixel detector element status.
345  this algo does not consider the DCS status (and the byte stream errors which are event data)
346  '''
347  acc = ComponentAccumulator()
348  if 'ConditionsSummaryTool' not in kwargs :
349  from PixelConditionsTools.PixelConditionsSummaryConfig import PixelConditionsSummaryToolNoByteStreamErrorsActiveOnlyCfg
350  kwargs.setdefault("ConditionsSummaryTool", acc.popToolsAndMerge( PixelConditionsSummaryToolNoByteStreamErrorsActiveOnlyCfg(flags)))
351  kwargs.setdefault( "WriteKey", "PixelDetectorElementStatusNoByteStreamActiveOnly")
352  acc.addCondAlgo( CompFactory.InDet.SiDetectorElementStatusCondAlg(name, **kwargs) )
353  return acc
354 
355 def PixelDetectorElementStatusCondAlgCfg(flags, name = "PixelDetectorElementStatusCondAlgNoByteStreamError", **kwargs) :
356  '''
357  Condition alg to precompute the create pixel detector element status which includes the DCS status
358  this algo does not consider the byte stream errors which are event data
359  '''
360  acc = ComponentAccumulator()
361  if 'ConditionsSummaryTool' not in kwargs :
363  from PixelConditionsTools.PixelConditionsSummaryConfig import PixelActiveDetectorElementStatusToolCfg
364  kwargs.setdefault("ConditionsSummaryTool", acc.popToolsAndMerge( PixelActiveDetectorElementStatusToolCfg(flags,
365  PixelDetElStatusCondDataBaseKey="PixelDetectorElementStatusNoByteStreamActiveOnly")) )
366  kwargs.setdefault("WriteKey", "PixelDetectorElementStatusNoByteStream")
367  acc.addCondAlgo( CompFactory.InDet.SiDetectorElementStatusCondAlg(name, **kwargs) )
368  return acc
369 
370 def PixelDetectorElementStatusAlgCfg(flags, name = "PixelDetectorElementStatusAlg", **kwargs) :
371  '''
372  Event alg which extends the pixel detector element status conditions data which does not consider the DCS status by the bytestream errors.
373  This alg however does only consider errors concerning the module activity, not general errors.
374  '''
375  acc = ComponentAccumulator()
376  active_only = kwargs.pop("ActiveOnly", False)
377  if 'ConditionsSummaryTool' not in kwargs and not active_only :
378  element_status_input=None
379  if flags.InDet.usePixelDCS:
380  acc.merge( PixelDetectorElementStatusCondAlgCfg(flags) )
381  element_status_input="PixelDetectorElementStatusNoByteStream"
382  else :
383  # without DCS PixelDetectorElementStatusNoByteStream and PixelDetectorElementStatusNoByteStreamActiveOnly
384  # are identically
386  element_status_input="PixelDetectorElementStatusNoByteStreamActiveOnly"
387  from PixelConditionsTools.PixelConditionsSummaryConfig import PixelByteStreamErrorDetectorElementStatusToolCfg
388  kwargs.setdefault("ConditionsSummaryTool",
389  acc.popToolsAndMerge(PixelByteStreamErrorDetectorElementStatusToolCfg(flags, PixelDetElStatusCondDataBaseKey=element_status_input) ))
390 
391  elif 'ConditionsSummaryTool' not in kwargs and active_only :
393  from PixelConditionsTools.PixelConditionsSummaryConfig import PixelByteStreamErrorDetectorElementStatusToolActiveOnlyCfg
394  kwargs.setdefault("ConditionsSummaryTool",
395  acc.popToolsAndMerge(PixelByteStreamErrorDetectorElementStatusToolActiveOnlyCfg(flags, PixelDetElStatusCondDataBaseKey="PixelDetectorElementStatusNoByteStreamActiveOnly")))
396 
397  kwargs.setdefault("WriteKey","PixelDetectorElementStatus")
398 
399  # This requires PixelByteStreamErrs provided by PixelRawDataProviderAlg
400  if flags.Input.Format is Format.BS:
401  from PixelRawDataByteStreamCnv.PixelRawDataByteStreamCnvConfig import (
402  PixelRawDataProviderAlgCfg)
403  acc.merge(PixelRawDataProviderAlgCfg(flags))
404 
405  acc.addEventAlgo( CompFactory.InDet.SiDetectorElementStatusAlg(name, **kwargs) )
406  return acc
407 
408 def PixelDetectorElementStatusAlgActiveOnlyCfg(flags, name = "PixelDetectorElementStatusAlgActiveOnly", **kwargs) :
409  '''
410  Event alg which extends the pixel detector element status conditions data which does not consider the DCS status by the bytestream errors.
411  This alg however does only consider errors concerning the module activity, not general errors.
412  '''
413  return PixelDetectorElementStatusAlgCfg(flags, name,
414  WriteKey = "PixelDetectorElementStatusActiveOnly",
415  ActiveOnly = True)
416 
417 
418 def PixelChargeCalibCondCfg(flags, **kwargs):
419  if flags.GeoModel.Run >= LHCPeriod.Run4:
420  from PixelConditionsAlgorithms.ITkPixelConditionsConfig import (
421  ITkPixelChargeCalibCondAlgCfg)
422  return ITkPixelChargeCalibCondAlgCfg(flags, **kwargs)
423  elif flags.GeoModel.Run == LHCPeriod.Run3:
424  return PixelChargeLUTCalibCondAlgCfg(flags, **kwargs)
425  return PixelChargeCalibCondAlgCfg(flags, **kwargs)
426 
428  """Force the job to use the Pixel Module-level mask implemented via the
429  FE-level masking code. See https://gitlab.cern.ch/atlas/athena/-/merge_requests/45356"""
430  from IOVDbSvc.IOVDbSvcConfig import addOverride
431  if (not flags.Input.isMC and flags.IOVDb.DatabaseInstance == 'CONDBR2'): # for data overlay
432  cfg.merge(addOverride(flags, '/PIXEL/PixelModuleFeMask', 'PixelModuleFeMask-RUN2-DATA-UPD4-05'))
433  else:
434  cfg.merge(addOverride(flags, '/PIXEL/PixelModuleFeMask', 'PixelModuleFeMask-SIM-MC16-000-03'))
435  return cfg
436 
437 
438 if __name__ == '__main__':
439  from AthenaConfiguration.MainServicesConfig import MainServicesCfg
440  from AthenaConfiguration.AllConfigFlags import initConfigFlags
441  flags = initConfigFlags()
442  flags.fillFromArgs()
443 
444  from AthenaConfiguration.TestDefaults import defaultTestFiles
445  flags.Input.Files = defaultTestFiles.RAW_RUN2 # need to update this depending on EDMversion
446  flags.Exec.MaxEvents=5
447 
448  flags.lock()
449 
450  acc = MainServicesCfg(flags)
451  acc.merge( PixelDetectorElementCondAlgCfg(flags) )
452  acc.printConfig(withDetails=True)
453  with open("PixelConditions.pkl", "wb") as file:
454  acc.store(file)
455  # TODO decide if we want to run actually
456  sc = acc.run()
457  # if sc.isFailure():
458  # import sys
459  # sys.exit(-1)
460 
461 
PixelConditionsSummaryConfig.PixelActiveDetectorElementStatusToolCfg
def PixelActiveDetectorElementStatusToolCfg(flags, name="PixelActiveDetectorElementStatusTool", **kwargs)
Definition: PixelConditionsSummaryConfig.py:51
PixelConditionsConfig.PixelAlignCondAlgCfg
def PixelAlignCondAlgCfg(flags, name="PixelAlignCondAlg", **kwargs)
Definition: PixelConditionsConfig.py:82
PixelConditionsConfig.PixelDCSCondStateAlgCfg
def PixelDCSCondStateAlgCfg(flags, name="PixelDCSCondStateAlg", **kwargs)
Definition: PixelConditionsConfig.py:177
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
PixelConditionsConfig.PixelDCSCondStatusAlgCfg
def PixelDCSCondStatusAlgCfg(flags, name="PixelDCSCondStatusAlg", **kwargs)
Definition: PixelConditionsConfig.py:189
PixelConditionsConfig.PixelDCSCondTempAlgCfg
def PixelDCSCondTempAlgCfg(flags, name="PixelDCSCondTempAlg", **kwargs)
Definition: PixelConditionsConfig.py:201
SCT_GeoModelConfig.SCT_AlignmentCfg
def SCT_AlignmentCfg(flags)
Definition: SCT_GeoModelConfig.py:23
PixelConditionsConfig.PixelDeadMapCondAlgCfg
def PixelDeadMapCondAlgCfg(flags, name="PixelDeadMapCondAlg", **kwargs)
Definition: PixelConditionsConfig.py:215
TRT_GeoModelConfig.TRT_ReadoutGeometryCfg
def TRT_ReadoutGeometryCfg(flags)
Definition: TRT_GeoModelConfig.py:59
PixelConditionsConfig.PixelDistortionAlgCfg
def PixelDistortionAlgCfg(flags, name="PixelDistortionAlg", **kwargs)
Definition: PixelConditionsConfig.py:260
PixelConditionsConfig.PixelCablingCondAlgCfg
def PixelCablingCondAlgCfg(flags, name="PixelCablingCondAlg", **kwargs)
Definition: PixelConditionsConfig.py:109
PixelRawDataByteStreamCnvConfig.PixelRawDataProviderAlgCfg
def PixelRawDataProviderAlgCfg(flags, **kwargs)
Definition: PixelRawDataByteStreamCnvConfig.py:17
PixelConditionsConfig.PixelDCSCondHVAlgCfg
def PixelDCSCondHVAlgCfg(flags, name="PixelDCSCondHVAlg", **kwargs)
Definition: PixelConditionsConfig.py:162
PixelConditionsConfig.PixelChargeCalibCondCfg
def PixelChargeCalibCondCfg(flags, **kwargs)
Definition: PixelConditionsConfig.py:418
PixelConditionsSummaryConfig.PixelByteStreamErrorDetectorElementStatusToolCfg
def PixelByteStreamErrorDetectorElementStatusToolCfg(flags, name="PixelByteStreamErrorDetectorElementStatusTool", **kwargs)
Definition: PixelConditionsSummaryConfig.py:57
python.PixelLorentzAngleConfig.PixelLorentzAngleToolCfg
def PixelLorentzAngleToolCfg(flags, name="PixelLorentzAngleTool", **kwargs)
Definition: PixelLorentzAngleConfig.py:13
PixelConditionsConfig.PixelChargeLUTCalibCondAlgCfg
def PixelChargeLUTCalibCondAlgCfg(flags, name="PixelChargeLUTCalibCondAlg", **kwargs)
Definition: PixelConditionsConfig.py:148
PixelConditionsConfig.PixelDetectorElementStatusAlgActiveOnlyCfg
def PixelDetectorElementStatusAlgActiveOnlyCfg(flags, name="PixelDetectorElementStatusAlgActiveOnly", **kwargs)
Definition: PixelConditionsConfig.py:408
PixelConditionsConfig.PixelConfigCondAlgCfg
def PixelConfigCondAlgCfg(flags, name="PixelConfigCondAlg", **kwargs)
Definition: PixelConditionsConfig.py:11
PixelConditionsConfig.PixeldEdxAlgCfg
def PixeldEdxAlgCfg(flags, name="PixeldEdxAlg", **kwargs)
Definition: PixelConditionsConfig.py:323
MuonGeometryConfig.MuonGeoModelCfg
def MuonGeoModelCfg(flags)
Definition: MuonGeometryConfig.py:28
PixelGeoModelConfig.PixelGeoModelCfg
def PixelGeoModelCfg(flags)
Definition: PixelGeoModelConfig.py:5
python.MainServicesConfig.MainServicesCfg
def MainServicesCfg(flags, LoopMgr='AthenaEventLoopMgr')
Definition: MainServicesConfig.py:312
PixelConditionsConfig.PixelDetectorElementCondAlgCfg
def PixelDetectorElementCondAlgCfg(flags, name="PixelDetectorElementCondAlg", **kwargs)
Definition: PixelConditionsConfig.py:231
PixelConditionsConfig.PixelChargeCalibCondAlgCfg
def PixelChargeCalibCondAlgCfg(flags, name="PixelChargeCalibCondAlg", **kwargs)
Definition: PixelConditionsConfig.py:130
python.IOVDbSvcConfig.addFolders
def addFolders(flags, folderStrings, detDb=None, className=None, extensible=False, tag=None, db=None, modifiers='')
Definition: IOVDbSvcConfig.py:86
PixelConditionsConfig.PixelDetectorElementStatusCondAlgCfg
def PixelDetectorElementStatusCondAlgCfg(flags, name="PixelDetectorElementStatusCondAlgNoByteStreamError", **kwargs)
Definition: PixelConditionsConfig.py:355
PixelConditionsConfig.PixelOfflineCalibCondAlgCfg
def PixelOfflineCalibCondAlgCfg(flags, name="PixelOfflineCalibCondAlg", **kwargs)
Definition: PixelConditionsConfig.py:288
PixelGeoModelConfig.PixelReadoutGeometryCfg
def PixelReadoutGeometryCfg(flags)
Definition: PixelGeoModelConfig.py:52
PixelConditionsConfig.PixelReadoutSpeedAlgCfg
def PixelReadoutSpeedAlgCfg(flags, name="PixelReadoutSpeedAlg", **kwargs)
Definition: PixelConditionsConfig.py:302
python.IOVDbSvcConfig.addFoldersSplitOnline
def addFoldersSplitOnline(flags, detDb, onlineFolders, offlineFolders, className=None, extensible=False, addMCString='_OFL', splitMC=False, tag=None, forceDb=None, modifiers='')
Definition: IOVDbSvcConfig.py:167
PixelConditionsConfig.PostInclude_UsePixelModuleLevelMask
def PostInclude_UsePixelModuleLevelMask(flags, cfg)
Definition: PixelConditionsConfig.py:427
python.IOVDbSvcConfig.addOverride
def addOverride(flags, folder, tag, tagType="tag", db=None)
Definition: IOVDbSvcConfig.py:238
Trk::open
@ open
Definition: BinningType.h:40
PixelConditionsSummaryConfig.PixelByteStreamErrorDetectorElementStatusToolActiveOnlyCfg
def PixelByteStreamErrorDetectorElementStatusToolActiveOnlyCfg(flags, name="PixelByteStreamErrorDetectorElementStatusToolActiveOnly", **kwargs)
Definition: PixelConditionsSummaryConfig.py:70
PixelConditionsConfig.PixelDetectorElementStatusAlgCfg
def PixelDetectorElementStatusAlgCfg(flags, name="PixelDetectorElementStatusAlg", **kwargs)
Definition: PixelConditionsConfig.py:370
PixelConditionsConfig.PixelHitDiscCnfgAlgCfg
def PixelHitDiscCnfgAlgCfg(flags, name="PixelHitDiscCnfgAlg", **kwargs)
Definition: PixelConditionsConfig.py:272
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
ITkPixelConditionsConfig.ITkPixelChargeCalibCondAlgCfg
def ITkPixelChargeCalibCondAlgCfg(flags, name="ITkPixelChargeCalibCondAlg", **kwargs)
Definition: ITkPixelConditionsConfig.py:63
PixelConditionsConfig.PixelDetectorElementStatusCondAlgActiveOnlyCfg
def PixelDetectorElementStatusCondAlgActiveOnlyCfg(flags, name="PixelDetectorElementStatusCondAlgNoByteStreamErrorActiveOnly", **kwargs)
Definition: PixelConditionsConfig.py:342
PixelConditionsConfig.PixelSiliconConditionsTestAlgCfg
def PixelSiliconConditionsTestAlgCfg(flags, name="PixelSiliconConditionsTestAlg", **kwargs)
Definition: PixelConditionsConfig.py:330
PixelConditionsConfig.PixelRadSimFluenceMapAlgCfg
def PixelRadSimFluenceMapAlgCfg(flags, name="PixelRadSimFluenceMapAlg", **kwargs)
Definition: PixelConditionsConfig.py:314
PixelConditionsSummaryConfig.PixelConditionsSummaryToolNoByteStreamErrorsActiveOnlyCfg
def PixelConditionsSummaryToolNoByteStreamErrorsActiveOnlyCfg(flags, name="PixelConditionsSummaryToolNoByteStreamErrorsAcriveOnly", **kwargs)
Definition: PixelConditionsSummaryConfig.py:44
RngCompsConfig.AthRNGSvcCfg
def AthRNGSvcCfg(flags, name="AthRNGSvc")
Definition: RngCompsConfig.py:51