10 """Return a configured SCT_AlignCondAlg for ITk"""
11 acc = ITkStripGeoModelCfg(flags)
12 if flags.GeoModel.Align.Dynamic:
13 raise RuntimeError(
"Dynamic alignment not supported for ITk yet")
15 if not flags.ITk.Align.useLocalDatabase:
16 acc.merge(addFoldersSplitOnline(flags,
"INDET",
"/Indet/Onl/Align", flags.ITk.Geometry.alignmentFolder, className=
"AlignableTransformContainer"))
18 kwargs.setdefault(
"DetManagerName",
"ITkStrip")
19 kwargs.setdefault(
"WriteKey",
"ITkStripAlignmentStore")
20 kwargs.setdefault(
"UseDynamicAlignFolders", flags.GeoModel.Align.Dynamic)
21 kwargs.setdefault(
"ReadKeyStatic",flags.ITk.Geometry.alignmentFolder)
23 sctAlignCondAlg = CompFactory.SCT_AlignCondAlg(name, **kwargs)
24 acc.addCondAlgo(sctAlignCondAlg)
33 acc = ComponentAccumulator()
35 channelFolder = folder_prefix + (
"Chip" if flags.IOVDb.DatabaseInstance ==
"COMP200" else "ChipSlim")
36 kwargs.setdefault(
"ReadKeyChannel", channelFolder)
37 kwargs.setdefault(
"ReadKeyModule", f
"{folder_prefix}Module")
38 kwargs.setdefault(
"ReadKeyMur", f
"{folder_prefix}MUR")
40 acc.merge(addFoldersSplitOnline(flags,
42 onlineFolders=channelFolder,
43 offlineFolders=channelFolder,
44 className=
"CondAttrListVec",
46 acc.merge(addFoldersSplitOnline(flags,
48 onlineFolders=f
"{folder_prefix}Module",
49 offlineFolders=f
"{folder_prefix}Module",
50 className=
"CondAttrListVec",
52 acc.merge(addFoldersSplitOnline(flags,
54 onlineFolders=f
"{folder_prefix}MUR",
55 offlineFolders=f
"{folder_prefix}MUR",
56 className=
"CondAttrListVec",
59 from ITkStripCabling.ITkStripCablingConfig
import ITkStripCablingToolCfg
60 kwargs.setdefault(
"SCT_CablingTool", acc.popToolsAndMerge(ITkStripCablingToolCfg(flags)))
62 from SCT_ConditionsTools.ITkStripConditionsToolsConfig
import ITkStripReadoutToolCfg
63 kwargs.setdefault(
"SCT_ReadoutTool", acc.popToolsAndMerge(ITkStripReadoutToolCfg(flags)))
65 acc.addCondAlgo(CompFactory.SCT_ConfigurationCondAlg(name, **kwargs))
80 Condition alg to precompute the strip detector element status.
81 This algorithm does not consider the byte stream errors which are event data.
83 acc = ComponentAccumulator()
84 if 'ConditionsSummaryTool' not in kwargs :
85 from SCT_ConditionsTools.ITkStripConditionsToolsConfig
import ITkStripConditionsSummaryToolCfg
86 kwargs.setdefault(
"ConditionsSummaryTool", acc.popToolsAndMerge( ITkStripConditionsSummaryToolCfg(flags)))
87 kwargs.setdefault(
"WriteKey",
"ITkStripDetectorElementStatusNoByteStream")
88 acc.addCondAlgo( CompFactory.InDet.SiDetectorElementStatusCondAlg(name, **kwargs) )
93 Algorithm which adds status from the strip bytestream to the strip status conditions data
95 acc = ComponentAccumulator()
96 if 'ConditionsSummaryTool' not in kwargs :
97 from SCT_ConditionsTools.ITkStripConditionsToolsConfig
import ITkStripDetectorElementStatusAddByteStreamErrorsToolCfg
102 kwargs.setdefault(
"ConditionsSummaryTool", acc.popToolsAndMerge(
103 ITkStripDetectorElementStatusAddByteStreamErrorsToolCfg(flags,
104 SCTDetElStatusCondDataBaseKey =
"ITkStripDetectorElementStatusNoByteStream",
105 SCTDetElStatusEventDataBaseKey =
""
107 kwargs.setdefault(
"WriteKey",
"ITkStripDetectorElementStatus")
110 acc.addEventAlgo( CompFactory.InDet.SiDetectorElementStatusAlg(name, **kwargs) )