106def SCTCalibAlgCfg(flags, SORTime, EORTime, nLB, prefix, name = 'SCTCalibAlg', **kwargs):
107 acc = ComponentAccumulator()
108
109
110 kwargs.setdefault('RunNumber', flags.SCTCalib.RunNumber)
111 kwargs.setdefault('EventNumber', flags.SCTCalib.EventNumber)
112
113 kwargs.setdefault('RunStartTime', SORTime)
114 kwargs.setdefault('RunEndTime', EORTime)
115 kwargs.setdefault('LBMax', nLB)
116
117 kwargs.setdefault('UseConfiguration', flags.SCTCalib.UseConfiguration)
118 kwargs.setdefault('UseCalibration', flags.SCTCalib.UseCalibration)
119 kwargs.setdefault('UseMajority', flags.SCTCalib.UseMajority)
120 kwargs.setdefault('UseBSError', flags.SCTCalib.UseBSError)
121 kwargs.setdefault('DoHitMaps', flags.SCTCalib.DoHitMaps)
122 kwargs.setdefault('DoHitMapsLB', flags.SCTCalib.DoHitMapsLB)
123 kwargs.setdefault('ReadHitMaps', flags.SCTCalib.ReadHitMaps)
124 kwargs.setdefault('DoBSErrors', flags.SCTCalib.DoBSErrors)
125
126
127 kwargs.setdefault('ReadBS', flags.SCTCalib.ReadBS)
128
129 if flags.SCTCalib.InputType == 'NTUP_TRKVALID':
130 kwargs.setdefault('InputTrkVal', flags.Input.Files)
131 elif flags.SCTCalib.InputType == 'HIST':
132 kwargs.setdefault('InputHist', flags.SCTCalib.InputHist)
133
134
135 kwargs.setdefault('DoNoisyStrip', flags.SCTCalib.DoNoisyStrip)
136 kwargs.setdefault('DoHV', flags.SCTCalib.DoHV)
137 if flags.SCTCalib.DoDeadStrip or flags.SCTCalib.DoQuietStrip:
138 kwargs.setdefault('DoDeadStrip', True)
139 else:
140 kwargs.setdefault('DoDeadStrip', False)
141 if flags.SCTCalib.DoDeadChip or flags.SCTCalib.DoQuietChip:
142 kwargs.setdefault('DoDeadChip', True)
143 else:
144 kwargs.setdefault('DoDeadChip', False)
145 kwargs.setdefault('DoNoiseOccupancy', flags.SCTCalib.DoNoiseOccupancy)
146 kwargs.setdefault('DoRawOccupancy', flags.SCTCalib.DoRawOccupancy)
147 kwargs.setdefault('DoEfficiency', flags.SCTCalib.DoEfficiency)
148 kwargs.setdefault('DoBSErrorDB', flags.SCTCalib.DoBSErrorDB)
149 kwargs.setdefault('DoLorentzAngle', flags.SCTCalib.DoLorentzAngle)
150
151
152 kwargs.setdefault('WriteToCool', flags.SCTCalib.WriteToCool)
153
154
155 kwargs.setdefault('LbsPerWindow', flags.SCTCalib.LbsPerWindow)
156 kwargs.setdefault('NoisyUpdate', flags.SCTCalib.NoisyUpdate)
157 kwargs.setdefault('NoisyWriteAllModules', flags.SCTCalib.NoisyWriteAllModules)
158 kwargs.setdefault('NoisyMinStat', flags.SCTCalib.NoisyMinStat)
159 kwargs.setdefault('NoisyStripAll', flags.SCTCalib.NoisyStripAll)
160 kwargs.setdefault('NoisyStripThrDef', flags.SCTCalib.NoisyStripThrDef)
161 kwargs.setdefault('NoisyStripThrOffline', flags.SCTCalib.NoisyStripThrOffline)
162 kwargs.setdefault('NoisyStripThrOnline', flags.SCTCalib.NoisyStripThrOnline)
163 kwargs.setdefault('NoisyWaferFinder', flags.SCTCalib.NoisyWaferFinder)
164 kwargs.setdefault('NoisyWaferWrite', flags.SCTCalib.NoisyWaferWrite)
165 kwargs.setdefault('NoisyWaferAllStrips', flags.SCTCalib.NoisyWaferAllStrips)
166 kwargs.setdefault('NoisyWaferThrBarrel', flags.SCTCalib.NoisyWaferThrBarrel)
167 kwargs.setdefault('NoisyWaferThrECA', flags.SCTCalib.NoisyWaferThrECA)
168 kwargs.setdefault('NoisyWaferThrECC', flags.SCTCalib.NoisyWaferThrECC)
169 kwargs.setdefault('NoisyWaferFraction', flags.SCTCalib.NoisyWaferFraction)
170 kwargs.setdefault('NoisyChipFraction', flags.SCTCalib.NoisyChipFraction)
171 kwargs.setdefault('NoisyUploadTest', flags.SCTCalib.NoisyUploadTest)
172 kwargs.setdefault('NoisyStripAverageInDB', flags.SCTCalib.NoisyStripAverageInDB)
173 kwargs.setdefault('NoisyModuleAverageInDB', flags.SCTCalib.NoisyModuleAverageInDB)
174 kwargs.setdefault('NoisyStripLastRunInDB', flags.SCTCalib.NoisyStripLastRunInDB)
175 kwargs.setdefault('NoisyModuleList', flags.SCTCalib.NoisyModuleList)
176 kwargs.setdefault('NoisyModuleDiff', flags.SCTCalib.NoisyModuleDiff)
177 kwargs.setdefault('NoisyStripDiff', flags.SCTCalib.NoisyStripDiff)
178
179
180 kwargs.setdefault('DeadStripMinStat', flags.SCTCalib.DeadStripMinStat)
181 kwargs.setdefault('DeadStripMinStatBusy', flags.SCTCalib.DeadStripMinStatBusy)
182 kwargs.setdefault('DeadChipMinStat', flags.SCTCalib.DeadChipMinStat)
183 kwargs.setdefault('DeadStripSignificance', flags.SCTCalib.DeadStripSignificance)
184 kwargs.setdefault('DeadChipSignificance', flags.SCTCalib.DeadChipSignificance)
185 kwargs.setdefault('BusyThr4DeadFinding', flags.SCTCalib.BusyThr4DeadFinding)
186 kwargs.setdefault('NoisyThr4DeadFinding', flags.SCTCalib.NoisyThr4DeadFinding)
187 kwargs.setdefault('DeadChipUploadTest', flags.SCTCalib.DeadChipUploadTest)
188 kwargs.setdefault('DeadStripUploadTest', flags.SCTCalib.DeadStripUploadTest)
189 if flags.SCTCalib.DoDeadStrip or flags.SCTCalib.DoDeadChip:
190 kwargs.setdefault('DeadNotQuiet', True)
191 else:
192 kwargs.setdefault('DeadNotQuiet', False)
193 kwargs.setdefault('QuietThresholdChip', flags.SCTCalib.QuietThresholdChip)
194 kwargs.setdefault('QuietThresholdStrip', flags.SCTCalib.QuietThresholdStrip)
195
196
197 kwargs.setdefault('NoiseOccupancyTriggerAware', flags.SCTCalib.NoiseOccupancyTriggerAware)
198 kwargs.setdefault('NoiseOccupancyMinStat', flags.SCTCalib.NoiseOccupancyMinStat)
199 kwargs.setdefault('RawOccupancyMinStat', flags.SCTCalib.RawOccupancyMinStat)
200 kwargs.setdefault('EfficiencyMinStat', flags.SCTCalib.EfficiencyMinStat)
201 kwargs.setdefault('EfficiencyDoChips', flags.SCTCalib.EfficiencyDoChips)
202 kwargs.setdefault('BSErrorDBMinStat', flags.SCTCalib.BSErrorDBMinStat)
203 kwargs.setdefault('LorentzAngleMinStat', flags.SCTCalib.LorentzAngleMinStat)
204 kwargs.setdefault('LorentzAngleDebugMode', flags.SCTCalib.LorentzAngleDebugMode)
205
206
207 kwargs.setdefault('TagID4NoisyStrips', flags.SCTCalib.TagID4NoisyStrips)
208 kwargs.setdefault('TagID4DeadStrips', flags.SCTCalib.TagID4DeadStrips)
209 kwargs.setdefault('TagID4DeadChips', flags.SCTCalib.TagID4DeadChips)
210 kwargs.setdefault('TagID4NoiseOccupancy', flags.SCTCalib.TagID4NoiseOccupancy)
211
212
213 kwargs.setdefault('BadStripsAllFile', prefix + 'BadStripsAllFile.xml')
214 kwargs.setdefault('BadStripsNewFile', prefix + 'BadStripsNewFile.xml')
215 kwargs.setdefault('BadStripsSummaryFile', prefix + 'BadStripsSummaryFile.xml')
216 kwargs.setdefault('BadModulesFile', prefix + 'BadModulesFile.xml')
217 if ( flags.SCTCalib.DoDeadChip or flags.SCTCalib.DoDeadStrip):
218 kwargs.setdefault('DeadStripsFile', prefix + 'DeadStripsFile.xml')
219 kwargs.setdefault('DeadChipsFile', prefix + 'DeadChipsFile.xml')
220 kwargs.setdefault('DeadSummaryFile', prefix + 'DeadSummaryFile.xml')
221 if ( flags.SCTCalib.DoQuietChip or flags.SCTCalib.DoQuietStrip ):
222 kwargs.setdefault('DeadStripsFile', prefix + 'QuietStripsFile.xml')
223 kwargs.setdefault('DeadChipsFile', prefix + 'QuietChipsFile.xml')
224 kwargs.setdefault('DeadSummaryFile', prefix + 'QuietSummaryFile.xml')
225 kwargs.setdefault('NoiseOccupancyFile', prefix + 'NoiseOccupancyFile.xml')
226 kwargs.setdefault('NoiseOccupancySummaryFile', prefix + 'NoiseOccupancySummaryFile.xml')
227 kwargs.setdefault('LorentzAngleFile', prefix + 'LorentzAngleFile.xml')
228 kwargs.setdefault('LorentzAngleSummaryFile', prefix + 'LorentzAngleSummaryFile.xml')
229
230 kwargs.setdefault('RawOccupancySummaryFile', prefix + 'RawOccupancySummaryFile.xml')
231 kwargs.setdefault('EfficiencyModuleFile', prefix + 'EfficiencyModuleSummary.xml')
232 kwargs.setdefault('EfficiencyChipFile', prefix + 'EfficiencyChipSummary.xml')
233 kwargs.setdefault('EfficiencySummaryFile', prefix + 'EfficiencySummaryFile.xml')
234 kwargs.setdefault('BSErrorSummaryFile', prefix + 'BSErrorSummaryFile.xml')
235 kwargs.setdefault('BSErrorModuleFile', prefix + 'BSErrorModuleSummary.xml')
236
238 kwargs.setdefault('OutputLevel', WARNING)
239 kwargs.setdefault('AuditAlgorithms', True)
240
241
242
243 kwargs.setdefault('SCTCalibWriteTool',
244 acc.popToolsAndMerge(SCTCalibWriteToolCfg(flags)))
245
246
247 from SCT_ConditionsTools.SCT_ConditionsToolsConfig import SCT_ConfigurationConditionsToolCfg
248 kwargs.setdefault('SCT_ConfigurationConditionsTool',
249 acc.popToolsAndMerge(SCT_ConfigurationConditionsToolCfg(flags)))
250
251
252 if flags.SCTCalib.UseCalibration:
253 from SCT_ConditionsTools.SCT_ConditionsToolsConfig import SCT_ReadCalibDataToolCfg
254 kwargs.setdefault('SCT_ReadCalibDataTool',
255 acc.popToolsAndMerge(SCT_ReadCalibDataToolCfg(flags)))
256
257
258 if flags.SCTCalib.UseMajority:
259 from SCT_ConditionsTools.SCT_ConditionsToolsConfig import SCT_MajorityConditionsCfg
260 kwargs.setdefault('SCT_MajorityConditionsTool',
261 acc.popToolsAndMerge(SCT_MajorityConditionsCfg(flags)))
262
263
264 from SCT_Cabling.SCT_CablingConfig import SCT_CablingToolCfg
265 kwargs.setdefault('SCT_CablingTool',
266 acc.popToolsAndMerge(SCT_CablingToolCfg(flags)))
267
268
269 kwargs.setdefault('SCT_CalibHitmapTool',
270 acc.popToolsAndMerge(SCT_CalibHitmapToolCfg(flags)))
271
272
273 kwargs.setdefault('SCT_CalibLbTool',
274 acc.popToolsAndMerge(SCT_CalibLbToolCfg(flags)))
275
276
277 if flags.SCTCalib.UseBSError:
278 kwargs.setdefault('SCT_CalibBsErrorTool',
279 acc.popToolsAndMerge(SCT_CalibBsErrorToolCfg(flags)))
280
281
282 kwargs.setdefault('SCT_CalibModuleListTool',
283 acc.popToolsAndMerge(SCT_CalibModuleListToolCfg(flags)))
284
285
286 kwargs.setdefault('SCT_CalibEventInfo',
287 acc.popToolsAndMerge(SCT_CalibEventInfoCfg(flags)))
288
289 from AthenaConfiguration.ComponentFactory import CompFactory
290 acc.addEventAlgo(CompFactory.SCTCalib(name, **kwargs))
291
292 return acc