ATLAS Offline Software
ITkPixelConditionsConfig.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.ComponentAccumulator import ComponentAccumulator
6 from AthenaConfiguration.ComponentFactory import CompFactory
7 from IOVDbSvc.IOVDbSvcConfig import addFolders, addFoldersSplitOnline
8 
9 def ITkPixelModuleConfigCondAlgCfg(flags, name="ITkPixelModuleConfigCondAlg", **kwargs):
10  """Return a ComponentAccumulator with configured PixelConfigCondAlg for ITk"""
11  acc = ComponentAccumulator()
12  kwargs.setdefault("WriteKey", "ITkPixelModuleData")
13  #These settings should be replaced with values taken from conditions
14  CondArgs = {}
15  CondArgs.update(
16  BarrelToTThreshold = [-1,-1,-1,-1,-1],
17  BarrelCrossTalk = [ 0.06, 0.06, 0.06, 0.06, 0.06],
18  BarrelNoiseOccupancy = [ 5e-8, 5e-8, 5e-8, 5e-8, 5e-8],
19  BarrelDisableProbability = [ 9e-3, 9e-3, 9e-3, 9e-3, 9e-3],
20  BarrelLorentzAngleCorr = [ 1.0, 1.0, 1.0, 1.0, 1.0],
21  DefaultBarrelBiasVoltage = [ 150.0, 150.0, 150.0, 150.0, 150.0],
22  BarrelFluence = [0.0e14,0.0e14,0.0e14,0.0e14,0.0e14],
23  BarrelFluenceMap = ["PixelDigitization/maps_IBL_PL_80V_fl0e14.root",
24  "PixelDigitization/maps_IBL_PL_80V_fl0e14.root",
25  "PixelDigitization/maps_IBL_PL_80V_fl0e14.root",
26  "PixelDigitization/maps_IBL_PL_80V_fl0e14.root",
27  "PixelDigitization/maps_IBL_PL_80V_fl0e14.root"],
28  EndcapToTThreshold = [-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],
29  EndcapCrossTalk = [ 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06],
30  EndcapNoiseOccupancy = [ 5e-8, 5e-8, 5e-8, 5e-8, 5e-8, 5e-8, 5e-8, 5e-8, 5e-8, 5e-8, 5e-8, 5e-8, 5e-8, 5e-8],
31  EndcapDisableProbability = [ 9e-3, 9e-3, 9e-3, 9e-3, 9e-3, 9e-3, 9e-3, 9e-3, 9e-3, 9e-3, 9e-3, 9e-3, 9e-3, 9e-3],
32  EndcapLorentzAngleCorr = [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0],
33  InnermostNoiseShape = [0.0, 1.0],
34  NextInnermostNoiseShape = [0.0, 1.0],
35  PixelNoiseShape = [0.0, 1.0]
36  )
37  CondArgs.update(kwargs)
38  acc.addCondAlgo(CompFactory.PixelModuleConfigCondAlg(name, **CondArgs))
39  return acc
40 
41 def ITkPixelAlignCondAlgCfg(flags,name="ITkPixelAlignCondAlg", **kwargs):
42  """Return a ComponentAccumulator with configured PixelAlignCondAlg for ITk"""
43  acc = ComponentAccumulator()
44 
45  if flags.GeoModel.Align.Dynamic:
46  raise RuntimeError("Dynamic alignment not supported for ITk yet")
47  else:
48  if not flags.ITk.Align.useLocalDatabase:
49  acc.merge(addFoldersSplitOnline(flags, "INDET", "/Indet/Onl/Align", flags.ITk.Geometry.alignmentFolder , className="AlignableTransformContainer"))
50 
51  kwargs.setdefault("DetManagerName", "ITkPixel")
52  kwargs.setdefault("UseDynamicAlignFolders", flags.GeoModel.Align.Dynamic)
53  kwargs.setdefault("ReadKeyStatic", flags.ITk.Geometry.alignmentFolder)
54  # kwargs.setdefault("ReadKeyDynamicL1", "/Indet/AlignL1/ID")
55  # kwargs.setdefault("ReadKeyDynamicL2", "/Indet/AlignL2/PIX")
56  # kwargs.setdefault("ReadKeyDynamicL3", "/Indet/AlignL3")
57  kwargs.setdefault("ReadKeyIBLDist", "")
58  kwargs.setdefault("WriteKey", "ITkPixelAlignmentStore")
59 
60  acc.addCondAlgo(CompFactory.PixelAlignCondAlg(name, **kwargs))
61  return acc
62 
63 def ITkPixelChargeCalibCondAlgCfg(flags, name="ITkPixelChargeCalibCondAlg", **kwargs):
64  """Return a ComponentAccumulator with configured PixelChargeCalibCondAlg for ITk"""
65  acc = ComponentAccumulator()
66 
67  from PixelGeoModelXml.ITkPixelGeoModelConfig import ITkPixelReadoutGeometryCfg
68  acc.merge(ITkPixelReadoutGeometryCfg(flags))
69  kwargs.setdefault("PixelDetEleCollKey", "ITkPixelDetectorElementCollection")
70  kwargs.setdefault("WriteKey", "ITkPixelChargeCalibCondData")
71  acc.addCondAlgo(CompFactory.ITkPixChargeCalibAlg(name, **kwargs))
72  return acc
73 
74 def ITkPixelDCSCondHVAlgCfg(flags, name="ITkPixelDCSCondHVAlg", **kwargs):
75  """Return a ComponentAccumulator with configured PixelDCSCondHVAlg for ITk"""
76  acc = ComponentAccumulator()
77  acc.merge(ITkPixelModuleConfigCondAlgCfg(flags))
78  kwargs.setdefault("ReadKey", "") # disable for ITk for now
79  kwargs.setdefault("PixelModuleData", "ITkPixelModuleData")
80  kwargs.setdefault("WriteKey", "ITkPixelDCSHVCondData")
81  acc.addCondAlgo(CompFactory.PixelDCSCondHVAlg(name, **kwargs))
82  return acc
83 
84 def ITkPixelDCSCondStateAlgCfg(flags, name="ITkPixelDCSCondStateAlg", **kwargs):
85  """Return a ComponentAccumulator with configured PixelDCSCondStateAlg for ITk"""
86  acc = ComponentAccumulator()
87  kwargs.setdefault("ReadKeyState", "") #To be configured when final DCS implementation for ITk becomes available
88  kwargs.setdefault("WriteKeyState", "ITkPixelDCSStateCondData")
89  acc.addCondAlgo(CompFactory.PixelDCSCondStateAlg(name, **kwargs))
90  return acc
91 
92 def ITkPixelDCSCondStatusAlgCfg(flags, name="ITkPixelDCSCondStatusAlg", **kwargs):
93  """Return a ComponentAccumulator with configured PixelDCSCondStatusAlg for ITk"""
94  acc = ComponentAccumulator()
95  kwargs.setdefault("ReadKeyStatus", "") #To be configured when final DCS implementation for ITk becomes available
96  kwargs.setdefault("WriteKeyStatus", "ITkPixelDCSStatusCondData")
97  acc.addCondAlgo(CompFactory.PixelDCSCondStatusAlg(name, **kwargs))
98  return acc
99 
100 def ITkPixelDCSCondTempAlgCfg(flags, name="ITkPixelDCSCondTempAlg", **kwargs):
101  """Return a ComponentAccumulator with configured PixelDCSCondTempAlg for ITk"""
102  acc = ComponentAccumulator()
103  kwargs.setdefault("ReadKey", "") # disable for ITk for now
104  kwargs.setdefault("WriteKey", "ITkPixelDCSTempCondData")
105  acc.addCondAlgo(CompFactory.PixelDCSCondTempAlg(name, **kwargs))
106  return acc
107 
108 def ITkPixelDeadMapCondAlgCfg(flags, name="ITkPixelDeadMapCondAlg", **kwargs):
109  """Return a ComponentAccumulator with configured PixelDeadMapCondAlg for ITk"""
110  acc = ComponentAccumulator()
111 
112  # TODO: not enabled for ITk for now
113  kwargs.setdefault("ReadKey", "")
114  # Use a json file to disable modules. If readKey!="" this option is ignored
115  kwargs.setdefault("JsonPath",flags.ITk.JsonPathPixelModuleVeto)
116  kwargs.setdefault("WriteKey", "ITkPixelDeadMapCondData")
117  acc.addCondAlgo(CompFactory.PixelDeadMapCondAlg(name, **kwargs))
118  return acc
119 
120 def ITkPixelDetectorElementCondAlgCfg(flags, name="ITkPixelDetectorElementCondAlg", **kwargs):
121  """Return a ComponentAccumulator with configured PixelDetectorElementCondAlg for ITk"""
122  acc = ComponentAccumulator()
123  acc.merge(ITkPixelAlignCondAlgCfg(flags))
124  kwargs.setdefault("DetManagerName", "ITkPixel")
125  kwargs.setdefault("PixelAlignmentStore", "ITkPixelAlignmentStore")
126  kwargs.setdefault("WriteKey", "ITkPixelDetectorElementCollection")
127  acc.addCondAlgo(CompFactory.PixelDetectorElementCondAlg(name, **kwargs))
128  return acc
129 
130 def ITkPixelDistortionAlgCfg(flags, name="ITkPixelDistortionAlg", **kwargs):
131  """Return a ComponentAccumulator with configured PixelDistortionAlg for ITk"""
132  acc = ComponentAccumulator()
133  acc.merge(addFoldersSplitOnline(flags,"INDET", "/Indet/Onl/PixelDist", "/Indet/PixelDist", className="DetCondCFloat"))
134  kwargs.setdefault("ReadKey", "/Indet/PixelDist")
135  kwargs.setdefault("WriteKey", "ITkPixelDistortionData")
136  from RngComps.RngCompsConfig import AthRNGSvcCfg
137  kwargs.setdefault("RndmSvc", acc.getPrimaryAndMerge(AthRNGSvcCfg(flags)))
138  acc.addCondAlgo(CompFactory.PixelDistortionAlg(name, **kwargs))
139  return acc
140 
141 def ITkPixelOfflineCalibCondAlgCfg(flags, name="ITkPixelOfflineCalibCondAlg", **kwargs):
142  """Return a ComponentAccumulator with configured ITkPixelOfflineCalibCondAlg"""
143  acc = ComponentAccumulator()
144 
145  folderName = ""
146  if flags.ITk.Conditions.PixelOfflineCalibTag:
147  folderName = '/PIXEL/ITkClusterError'
148 
149  CalibTag = flags.ITk.Conditions.PixelOfflineCalibTag
150  if flags.ITk.Conditions.PixelOfflineCalibFile:
151  acc.merge(addFolders(flags, folderName, flags.ITk.Conditions.PixelOfflineCalibFile, tag=CalibTag, db="OFLP200", className="CondAttrListCollection"))
152  else:
153  acc.merge(addFolders(flags, folderName, "PIXEL_OFL", tag=CalibTag, db="OFLP200", className="CondAttrListCollection"))
154 
155  else:
156  folderName = "/ITk/PixelClusterError"
157  acc.merge(addFolders(flags, folderName, "INDET_OFL", db="OFLP200", className="CondAttrListCollection"))
158 
159  kwargs.setdefault("ReadKey", folderName)
160  kwargs.setdefault("WriteKey", "ITkPixelOfflineCalibData")
161  kwargs.setdefault("InputSource", 2)
162  acc.addCondAlgo(CompFactory.ITk.PixelOfflineCalibCondAlg(name, **kwargs))
163  return acc
164 
165 def ITkPixelDetectorElementStatusCondAlgNoByteStreamErrorsCfg(flags, name = "ITkPixelDetectorElementStatusCondAlgNoByteStreamErrors", **kwargs) :
166  '''
167  Condition alg to precompute the pixel detector element status.
168  This algorithm does not consider the byte stream errors which are event data.
169  '''
170  acc = ComponentAccumulator()
171  if 'ConditionsSummaryTool' not in kwargs :
172  from PixelConditionsTools.ITkPixelConditionsSummaryConfig import ITkPixelConditionsSummaryCfg
173  kwargs.setdefault("ConditionsSummaryTool", acc.popToolsAndMerge( ITkPixelConditionsSummaryCfg(flags)))
174  kwargs.setdefault( "WriteKey", "ITkPixelDetectorElementStatusNoByteStream")
175  acc.addCondAlgo( CompFactory.InDet.SiDetectorElementStatusCondAlg(name, **kwargs) )
176  return acc
177 
178 def ITkPixelDetectorElementStatusAlgCfg(flags, name = "ITkPixelDetectorElementStatusAlg", **kwargs) :
179  '''
180  Event alg which could extend the pixel detector element status conditions data with bytestream errors.
181  '''
182  acc = ComponentAccumulator()
183  if 'ConditionsSummaryTool' not in kwargs:
184  element_status_input=None
186  element_status_input="ITkPixelDetectorElementStatusNoByteStream"
187  from PixelConditionsTools.ITkPixelConditionsSummaryConfig import ITkByteStreamErrorDetectorElementStatusToolCfg
188  kwargs.setdefault("ConditionsSummaryTool",
189  acc.popToolsAndMerge(ITkByteStreamErrorDetectorElementStatusToolCfg(flags, PixelDetElStatusCondDataBaseKey=element_status_input) ))
190 
191  kwargs.setdefault("WriteKey","ITkPixelDetectorElementStatus")
192 
193  # @TODO merge pixel raw data provider for bytestream input
194 
195  acc.addEventAlgo( CompFactory.InDet.SiDetectorElementStatusAlg(name, **kwargs) )
196  return acc
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
ITkPixelConditionsConfig.ITkPixelDetectorElementStatusAlgCfg
def ITkPixelDetectorElementStatusAlgCfg(flags, name="ITkPixelDetectorElementStatusAlg", **kwargs)
Definition: ITkPixelConditionsConfig.py:178
ITkPixelConditionsConfig.ITkPixelDetectorElementCondAlgCfg
def ITkPixelDetectorElementCondAlgCfg(flags, name="ITkPixelDetectorElementCondAlg", **kwargs)
Definition: ITkPixelConditionsConfig.py:120
ITkPixelGeoModelConfig.ITkPixelReadoutGeometryCfg
def ITkPixelReadoutGeometryCfg(flags)
Definition: ITkPixelGeoModelConfig.py:39
ITkPixelConditionsSummaryConfig.ITkPixelConditionsSummaryCfg
def ITkPixelConditionsSummaryCfg(flags, name="ITkPixelConditionsSummary", **kwargs)
Definition: ITkPixelConditionsSummaryConfig.py:13
ITkPixelConditionsConfig.ITkPixelDCSCondStateAlgCfg
def ITkPixelDCSCondStateAlgCfg(flags, name="ITkPixelDCSCondStateAlg", **kwargs)
Definition: ITkPixelConditionsConfig.py:84
ITkPixelConditionsSummaryConfig.ITkByteStreamErrorDetectorElementStatusToolCfg
def ITkByteStreamErrorDetectorElementStatusToolCfg(flags, name="ITkByteStreamErrorDetectorElementStatusTool", **kwargs)
Definition: ITkPixelConditionsSummaryConfig.py:33
python.IOVDbSvcConfig.addFolders
def addFolders(flags, folderStrings, detDb=None, className=None, extensible=False, tag=None, db=None, modifiers='')
Definition: IOVDbSvcConfig.py:86
ITkPixelConditionsConfig.ITkPixelDistortionAlgCfg
def ITkPixelDistortionAlgCfg(flags, name="ITkPixelDistortionAlg", **kwargs)
Definition: ITkPixelConditionsConfig.py:130
ITkPixelConditionsConfig.ITkPixelDeadMapCondAlgCfg
def ITkPixelDeadMapCondAlgCfg(flags, name="ITkPixelDeadMapCondAlg", **kwargs)
Definition: ITkPixelConditionsConfig.py:108
ITkPixelConditionsConfig.ITkPixelDCSCondHVAlgCfg
def ITkPixelDCSCondHVAlgCfg(flags, name="ITkPixelDCSCondHVAlg", **kwargs)
Definition: ITkPixelConditionsConfig.py:74
ITkPixelConditionsConfig.ITkPixelAlignCondAlgCfg
def ITkPixelAlignCondAlgCfg(flags, name="ITkPixelAlignCondAlg", **kwargs)
Definition: ITkPixelConditionsConfig.py:41
ITkPixelConditionsConfig.ITkPixelModuleConfigCondAlgCfg
def ITkPixelModuleConfigCondAlgCfg(flags, name="ITkPixelModuleConfigCondAlg", **kwargs)
Definition: ITkPixelConditionsConfig.py:9
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
ITkPixelConditionsConfig.ITkPixelDCSCondStatusAlgCfg
def ITkPixelDCSCondStatusAlgCfg(flags, name="ITkPixelDCSCondStatusAlg", **kwargs)
Definition: ITkPixelConditionsConfig.py:92
ITkPixelConditionsConfig.ITkPixelDetectorElementStatusCondAlgNoByteStreamErrorsCfg
def ITkPixelDetectorElementStatusCondAlgNoByteStreamErrorsCfg(flags, name="ITkPixelDetectorElementStatusCondAlgNoByteStreamErrors", **kwargs)
Definition: ITkPixelConditionsConfig.py:165
ITkPixelConditionsConfig.ITkPixelChargeCalibCondAlgCfg
def ITkPixelChargeCalibCondAlgCfg(flags, name="ITkPixelChargeCalibCondAlg", **kwargs)
Definition: ITkPixelConditionsConfig.py:63
ITkPixelConditionsConfig.ITkPixelOfflineCalibCondAlgCfg
def ITkPixelOfflineCalibCondAlgCfg(flags, name="ITkPixelOfflineCalibCondAlg", **kwargs)
Definition: ITkPixelConditionsConfig.py:141
ITkPixelConditionsConfig.ITkPixelDCSCondTempAlgCfg
def ITkPixelDCSCondTempAlgCfg(flags, name="ITkPixelDCSCondTempAlg", **kwargs)
Definition: ITkPixelConditionsConfig.py:100
RngCompsConfig.AthRNGSvcCfg
def AthRNGSvcCfg(flags, name="AthRNGSvc")
Definition: RngCompsConfig.py:51