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-2022 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  # charge calib
37  DefaultBarrelAnalogThreshold = [900, 600, 600, 600, 600],
38  DefaultEndcapAnalogThreshold = [600, 600, 600, 600, 600, 600, 600, 600, 600],
39  DefaultBarrelAnalogThresholdSigma = [36, 24, 24, 24, 24],
40  DefaultEndcapAnalogThresholdSigma = [24, 24, 24, 24, 24, 24, 24, 24, 24],
41  DefaultBarrelAnalogThresholdNoise = [110, 75, 75, 75, 75],
42  DefaultEndcapAnalogThresholdNoise = [75, 75, 75, 75, 75, 75, 75, 75, 75],
43  DefaultBarrelInTimeThreshold = [1000, 1000, 1000, 1000, 1000],
44  DefaultEndcapInTimeThreshold = [1500, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000],
45  DefaultCalibrationParameterA = 14.0,
46  DefaultCalibrationParameterE = -1000.0,
47  DefaultCalibrationParameterC = 8000.0,
48  )
49  CondArgs.update(kwargs)
50  acc.addCondAlgo(CompFactory.PixelModuleConfigCondAlg(name, **CondArgs))
51  return acc
52 
53 def ITkPixelAlignCondAlgCfg(flags, name="ITkPixelAlignCondAlg",setAlignmentFolderName="/Indet/Align", **kwargs):
54  """Return a ComponentAccumulator with configured PixelAlignCondAlg for ITk"""
55  acc = ComponentAccumulator()
56 
57  if flags.GeoModel.Align.Dynamic:
58  raise RuntimeError("Dynamic alignment not supported for ITk yet")
59  else:
60  acc.merge(addFoldersSplitOnline(flags, "INDET", "/Indet/Onl/Align", setAlignmentFolderName, className="AlignableTransformContainer"))
61 
62  kwargs.setdefault("DetManagerName", "ITkPixel")
63  kwargs.setdefault("UseDynamicAlignFolders", flags.GeoModel.Align.Dynamic)
64  kwargs.setdefault("ReadKeyStatic", setAlignmentFolderName)
65  # kwargs.setdefault("ReadKeyDynamicL1", "/Indet/AlignL1/ID")
66  # kwargs.setdefault("ReadKeyDynamicL2", "/Indet/AlignL2/PIX")
67  # kwargs.setdefault("ReadKeyDynamicL3", "/Indet/AlignL3")
68  kwargs.setdefault("ReadKeyIBLDist", "")
69  kwargs.setdefault("WriteKey", "ITkPixelAlignmentStore")
70 
71  acc.addCondAlgo(CompFactory.PixelAlignCondAlg(name, **kwargs))
72  return acc
73 
74 def ITkPixelChargeCalibCondAlgCfg(flags, name="ITkPixelChargeCalibCondAlg", **kwargs):
75  """Return a ComponentAccumulator with configured PixelChargeCalibCondAlg for ITk"""
76  acc = ComponentAccumulator()
77  acc.merge(ITkPixelModuleConfigCondAlgCfg(flags))
78  folderName = ""
79  if flags.ITk.Conditions.PixelChargeCalibTag:
80  folderName = "/ITk/PixelChargeCalib"
81  if flags.ITk.Conditions.PixelChargeCalibFile:
82  acc.merge(addFolders(flags, folderName, flags.ITk.Conditions.PixelChargeCalibFile, tag=flags.ITk.Conditions.PixelChargeCalibTag, db="OFLP200", className="CondAttrListCollection"))
83  else:
84  acc.merge(addFolders(flags, folderName, "INDET_OFL", tag=flags.ITk.Conditions.PixelChargeCalibTag, db="OFLP200", className="CondAttrListCollection"))
85  from PixelGeoModelXml.ITkPixelGeoModelConfig import ITkPixelReadoutGeometryCfg
86  acc.merge(ITkPixelReadoutGeometryCfg(flags))
87  kwargs.setdefault("PixelDetEleCollKey", "ITkPixelDetectorElementCollection")
88  kwargs.setdefault("PixelModuleData", "ITkPixelModuleData")
89  kwargs.setdefault("ReadKey", folderName)
90  kwargs.setdefault("WriteKey", "ITkPixelChargeCalibCondData")
91  acc.addCondAlgo(CompFactory.PixelChargeLUTCalibCondAlg(name, **kwargs))
92  return acc
93 
94 def ITkPixelDCSCondHVAlgCfg(flags, name="ITkPixelDCSCondHVAlg", **kwargs):
95  """Return a ComponentAccumulator with configured PixelDCSCondHVAlg for ITk"""
96  acc = ComponentAccumulator()
97  acc.merge(ITkPixelModuleConfigCondAlgCfg(flags))
98  kwargs.setdefault("ReadKey", "") # disable for ITk for now
99  kwargs.setdefault("PixelModuleData", "ITkPixelModuleData")
100  kwargs.setdefault("WriteKey", "ITkPixelDCSHVCondData")
101  acc.addCondAlgo(CompFactory.PixelDCSCondHVAlg(name, **kwargs))
102  return acc
103 
104 def ITkPixelDCSCondStateAlgCfg(flags, name="ITkPixelDCSCondStateAlg", **kwargs):
105  """Return a ComponentAccumulator with configured PixelDCSCondStateAlg for ITk"""
106  acc = ComponentAccumulator()
107  kwargs.setdefault("ReadKeyState", "") #To be configured when final DCS implementation for ITk becomes available
108  kwargs.setdefault("WriteKeyState", "ITkPixelDCSStateCondData")
109  acc.addCondAlgo(CompFactory.PixelDCSCondStateAlg(name, **kwargs))
110  return acc
111 
112 def ITkPixelDCSCondStatusAlgCfg(flags, name="ITkPixelDCSCondStatusAlg", **kwargs):
113  """Return a ComponentAccumulator with configured PixelDCSCondStatusAlg for ITk"""
114  acc = ComponentAccumulator()
115  kwargs.setdefault("ReadKeyStatus", "") #To be configured when final DCS implementation for ITk becomes available
116  kwargs.setdefault("WriteKeyStatus", "ITkPixelDCSStatusCondData")
117  acc.addCondAlgo(CompFactory.PixelDCSCondStatusAlg(name, **kwargs))
118  return acc
119 
120 def ITkPixelDCSCondTempAlgCfg(flags, name="ITkPixelDCSCondTempAlg", **kwargs):
121  """Return a ComponentAccumulator with configured PixelDCSCondTempAlg for ITk"""
122  acc = ComponentAccumulator()
123  acc.merge(ITkPixelModuleConfigCondAlgCfg(flags))
124  kwargs.setdefault("ReadKey", "") # disable for ITk for now
125  kwargs.setdefault("WriteKey", "ITkPixelDCSTempCondData")
126  acc.addCondAlgo(CompFactory.PixelDCSCondTempAlg(name, **kwargs))
127  return acc
128 
129 def ITkPixelDeadMapCondAlgCfg(flags, name="ITkPixelDeadMapCondAlg", **kwargs):
130  """Return a ComponentAccumulator with configured PixelDeadMapCondAlg for ITk"""
131  acc = ComponentAccumulator()
132  acc.merge(ITkPixelModuleConfigCondAlgCfg(flags))
133 
134  # TODO: not enabled for ITk for now
135  kwargs.setdefault("ReadKey", "")
136  kwargs.setdefault("WriteKey", "ITkPixelDeadMapCondData")
137  acc.addCondAlgo(CompFactory.PixelDeadMapCondAlg(name, **kwargs))
138  return acc
139 
140 def ITkPixelDetectorElementCondAlgCfg(flags, name="ITkPixelDetectorElementCondAlg",setAlignmentFolderName="/Indet/Align", **kwargs):
141  """Return a ComponentAccumulator with configured PixelDetectorElementCondAlg for ITk"""
142  acc = ComponentAccumulator()
143  acc.merge(ITkPixelAlignCondAlgCfg(flags,setAlignmentFolderName=setAlignmentFolderName))
144  kwargs.setdefault("DetManagerName", "ITkPixel")
145  kwargs.setdefault("PixelAlignmentStore", "ITkPixelAlignmentStore")
146  kwargs.setdefault("WriteKey", "ITkPixelDetectorElementCollection")
147  acc.addCondAlgo(CompFactory.PixelDetectorElementCondAlg(name, **kwargs))
148  return acc
149 
150 def ITkPixelDistortionAlgCfg(flags, name="ITkPixelDistortionAlg", **kwargs):
151  """Return a ComponentAccumulator with configured PixelDistortionAlg for ITk"""
152  acc = ComponentAccumulator()
153  acc.merge(ITkPixelModuleConfigCondAlgCfg(flags))
154  acc.merge(addFoldersSplitOnline(flags,"INDET", "/Indet/Onl/PixelDist", "/Indet/PixelDist", className="DetCondCFloat"))
155  kwargs.setdefault("ReadKey", "/Indet/PixelDist")
156  kwargs.setdefault("WriteKey", "ITkPixelDistortionData")
157  from RngComps.RngCompsConfig import AthRNGSvcCfg
158  kwargs.setdefault("RndmSvc", acc.getPrimaryAndMerge(AthRNGSvcCfg(flags)).name)
159  acc.addCondAlgo(CompFactory.PixelDistortionAlg(name, **kwargs))
160  return acc
161 
162 def ITkPixelOfflineCalibCondAlgCfg(flags, name="ITkPixelOfflineCalibCondAlg", **kwargs):
163  """Return a ComponentAccumulator with configured ITkPixelOfflineCalibCondAlg"""
164  acc = ComponentAccumulator()
165 
166  folderName = ""
167  if flags.ITk.Conditions.PixelOfflineCalibTag:
168  folderName = '/PIXEL/ITkClusterError'
169  CalibTag = flags.ITk.Conditions.PixelOfflineCalibTag
170  if flags.ITk.Conditions.PixelOfflineCalibFile:
171  acc.merge(addFolders(flags, folderName, flags.ITk.Conditions.PixelOfflineCalibFile, tag=CalibTag, db="OFLP200", className="CondAttrListCollection"))
172  else:
173  acc.merge(addFolders(flags, folderName, "PIXEL_OFL", tag=CalibTag, db="OFLP200", className="CondAttrListCollection"))
174 
175 
176  # TODO: enable once in the DB
177  # else:
178  # acc.merge(addFolders(flags, "/PIXEL/ITkClusterError", "PIXEL_OFL", db="OFLP200", className="CondAttrListCollection"))
179 
180  kwargs.setdefault("ReadKey", "/PIXEL/ITkClusterError")
181  kwargs.setdefault("WriteKey", "ITkPixelOfflineCalibData")
182  kwargs.setdefault("InputSource", 2)
183  acc.addCondAlgo(CompFactory.ITk.PixelOfflineCalibCondAlg(name, **kwargs))
184  return acc
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
ITkPixelConditionsConfig.ITkPixelAlignCondAlgCfg
def ITkPixelAlignCondAlgCfg(flags, name="ITkPixelAlignCondAlg", setAlignmentFolderName="/Indet/Align", **kwargs)
Definition: ITkPixelConditionsConfig.py:53
ITkPixelConditionsConfig.ITkPixelDCSCondStateAlgCfg
def ITkPixelDCSCondStateAlgCfg(flags, name="ITkPixelDCSCondStateAlg", **kwargs)
Definition: ITkPixelConditionsConfig.py:104
python.IOVDbSvcConfig.addFolders
def addFolders(flags, folderStrings, detDb=None, className=None, extensible=False, tag=None, db=None, modifiers='')
Definition: IOVDbSvcConfig.py:72
ITkPixelConditionsConfig.ITkPixelDistortionAlgCfg
def ITkPixelDistortionAlgCfg(flags, name="ITkPixelDistortionAlg", **kwargs)
Definition: ITkPixelConditionsConfig.py:150
ITkPixelConditionsConfig.ITkPixelDeadMapCondAlgCfg
def ITkPixelDeadMapCondAlgCfg(flags, name="ITkPixelDeadMapCondAlg", **kwargs)
Definition: ITkPixelConditionsConfig.py:129
ITkPixelConditionsConfig.ITkPixelDCSCondHVAlgCfg
def ITkPixelDCSCondHVAlgCfg(flags, name="ITkPixelDCSCondHVAlg", **kwargs)
Definition: ITkPixelConditionsConfig.py:94
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:153
ITkPixelConditionsConfig.ITkPixelDCSCondStatusAlgCfg
def ITkPixelDCSCondStatusAlgCfg(flags, name="ITkPixelDCSCondStatusAlg", **kwargs)
Definition: ITkPixelConditionsConfig.py:112
ITkPixelGeoModelConfig.ITkPixelReadoutGeometryCfg
def ITkPixelReadoutGeometryCfg(flags, setGeometryAlignable=False, setAlignmentFolderName="/Indet/Align")
Definition: ITkPixelGeoModelConfig.py:39
ITkPixelConditionsConfig.ITkPixelDetectorElementCondAlgCfg
def ITkPixelDetectorElementCondAlgCfg(flags, name="ITkPixelDetectorElementCondAlg", setAlignmentFolderName="/Indet/Align", **kwargs)
Definition: ITkPixelConditionsConfig.py:140
ITkPixelConditionsConfig.ITkPixelChargeCalibCondAlgCfg
def ITkPixelChargeCalibCondAlgCfg(flags, name="ITkPixelChargeCalibCondAlg", **kwargs)
Definition: ITkPixelConditionsConfig.py:74
ITkPixelConditionsConfig.ITkPixelOfflineCalibCondAlgCfg
def ITkPixelOfflineCalibCondAlgCfg(flags, name="ITkPixelOfflineCalibCondAlg", **kwargs)
Definition: ITkPixelConditionsConfig.py:162
ITkPixelConditionsConfig.ITkPixelDCSCondTempAlgCfg
def ITkPixelDCSCondTempAlgCfg(flags, name="ITkPixelDCSCondTempAlg", **kwargs)
Definition: ITkPixelConditionsConfig.py:120
RngCompsConfig.AthRNGSvcCfg
def AthRNGSvcCfg(flags, name="AthRNGSvc")
Definition: RngCompsConfig.py:51