4 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
5 from AthenaConfiguration.ComponentFactory
import CompFactory
6 from AthenaConfiguration.Enums
import BeamType, LHCPeriod
7 from IOVDbSvc.IOVDbSvcConfig
import addFoldersSplitOnline
15 from PixelConditionsAlgorithms.PixelConditionsConfig
import (
16 PixelChargeCalibCondCfg, PixelOfflineCalibCondAlgCfg)
17 if (
'SCT' in flags.Digitization.DoFastDigi
and
18 'Pixel' not in flags.Digitization.DoFastDigi):
24 from PixelReadoutGeometry.PixelReadoutGeometryConfig
import (
25 PixelReadoutManagerCfg)
28 if "PixelLorentzAngleTool" not in kwargs:
29 from SiLorentzAngleTool.PixelLorentzAngleConfig
import (
30 PixelLorentzAngleToolCfg)
31 kwargs.setdefault(
"PixelLorentzAngleTool", acc.popToolsAndMerge(
34 if "SCTLorentzAngleTool" not in kwargs:
35 from SiLorentzAngleTool.SCT_LorentzAngleConfig
import (
36 SCT_LorentzAngleToolCfg)
37 kwargs.setdefault(
"SCTLorentzAngleTool", acc.popToolsAndMerge(
40 acc.setPrivateTools(CompFactory.InDet.ClusterMakerTool(name, **kwargs))
47 from PixelConditionsAlgorithms.ITkPixelConditionsConfig
import (
48 ITkPixelChargeCalibCondAlgCfg)
49 from PixelReadoutGeometry.PixelReadoutGeometryConfig
import (
50 ITkPixelReadoutManagerCfg)
56 kwargs.setdefault(
"PixelReadoutManager", acc.getService(
57 "ITkPixelReadoutManager"))
59 if "PixelLorentzAngleTool" not in kwargs:
60 from SiLorentzAngleTool.ITkPixelLorentzAngleConfig
import (
61 ITkPixelLorentzAngleToolCfg)
62 kwargs.setdefault(
"PixelLorentzAngleTool", acc.popToolsAndMerge(
65 if "SCTLorentzAngleTool" not in kwargs:
66 from SiLorentzAngleTool.ITkStripLorentzAngleConfig
import (
67 ITkStripLorentzAngleToolCfg)
68 kwargs.setdefault(
"SCTLorentzAngleTool", acc.popToolsAndMerge(
71 acc.setPrivateTools(CompFactory.InDet.ClusterMakerTool(name, **kwargs))
77 from PixelGeoModel.PixelGeoModelConfig
import PixelReadoutGeometryCfg
80 kwargs.setdefault(
"PixelDetElStatus",
"PixelDetectorElementStatus")
82 if kwargs[
"PixelDetElStatus"] !=
"":
83 from PixelConditionsAlgorithms.PixelConditionsConfig
import (
84 PixelDetectorElementStatusAlgCfg)
87 if "PixelConditionsSummaryTool" not in kwargs:
88 from PixelConditionsTools.PixelConditionsSummaryConfig
import (
89 PixelConditionsSummaryCfg)
90 kwargs.setdefault(
"PixelConditionsSummaryTool", acc.popToolsAndMerge(
95 kwargs.setdefault(
"CheckDuplicatedRDO",
96 (len(flags.Input.ProjectName) >= 6
and
97 flags.Input.ProjectName[:6] ==
"data15"))
99 acc.setPrivateTools(CompFactory.InDet.PixelRDOTool(name, **kwargs))
105 from PixelGeoModelXml.ITkPixelGeoModelConfig
import (
106 ITkPixelReadoutGeometryCfg)
109 kwargs.setdefault(
"PixelConditionsSummaryTool",
None)
110 if "PixelDetElStatus" not in kwargs :
111 if not flags.Trigger.doHLT :
112 from PixelConditionsAlgorithms.ITkPixelConditionsConfig
import (
113 ITkPixelDetectorElementStatusAlgCfg)
115 kwargs.setdefault(
"PixelDetElStatus",
"ITkPixelDetectorElementStatus")
117 kwargs.setdefault(
"PixelReadoutManager",
"ITkPixelReadoutManager")
119 kwargs.setdefault(
"PixelDetEleCollKey",
"ITkPixelDetectorElementCollection")
120 kwargs.setdefault(
"CheckGanged",
False)
121 kwargs.setdefault(
"isITk",
True)
123 acc.setPrivateTools(CompFactory.InDet.PixelRDOTool(name, **kwargs))
134 kwargs.setdefault(
"globalPosAlg", acc.popToolsAndMerge(
136 kwargs.setdefault(
"PixelRDOTool", acc.popToolsAndMerge(
139 acc.setPrivateTools(CompFactory.InDet.MergedPixelsTool(name, **kwargs))
150 acc.setPrivateTools(CompFactory.InDet.MergedPixelsTool(name, **kwargs))
157 kwargs.setdefault(
"globalPosAlg", acc.popToolsAndMerge(
159 kwargs.setdefault(
"PixelRDOTool", acc.popToolsAndMerge(
162 kwargs.setdefault(
"PixelChargeCalibCondData",
"ITkPixelChargeCalibCondData")
163 kwargs.setdefault(
"PixelOfflineCalibData",
"")
165 acc.setPrivateTools(CompFactory.InDet.MergedPixelsTool(name, **kwargs))
170 flags, name="PixelClusterNnCondAlg", trackNetwork=False, **kwargs):
174 "NumberParticles_NoTrack/",
175 "ImpactPoints1P_NoTrack/",
176 "ImpactPoints2P_NoTrack/",
177 "ImpactPoints3P_NoTrack/",
178 "ImpactPointErrorsX1_NoTrack/",
179 "ImpactPointErrorsX2_NoTrack/",
180 "ImpactPointErrorsX3_NoTrack/",
181 "ImpactPointErrorsY1_NoTrack/",
182 "ImpactPointErrorsY2_NoTrack/",
183 "ImpactPointErrorsY3_NoTrack/"]
186 nn_names = [elm.replace(
'_NoTrack',
'')
for elm
in nn_names]
188 kwargs.setdefault(
"NetworkNames", nn_names)
189 kwargs.setdefault(
"GetInputsInfo",
True)
190 kwargs.setdefault(
"WriteKey", (
"PixelClusterNN" if not trackNetwork
191 else "PixelClusterNNWithTrack"))
195 "/PIXEL/Onl/PixelClustering/PixelClusNNCalib",
196 "/PIXEL/PixelClustering/PixelClusNNCalib",
197 className=
'CondAttrListCollection'))
199 if "NetworkToHistoTool" not in kwargs:
200 from TrkConfig.TrkNeuralNetworkUtilsConfig
import (
201 NeuralNetworkToHistoToolCfg)
202 kwargs.setdefault(
"NetworkToHistoTool", acc.popToolsAndMerge(
205 acc.addCondAlgo(CompFactory.InDet.TTrainedNetworkCondAlg(name, **kwargs))
210 flags, name="PixelClusterNnWithTrackCondAlg"):
219 "/PIXEL/Onl/PixelClustering/PixelNNCalibJSON",
220 "/PIXEL/PixelClustering/PixelNNCalibJSON",
221 className=
"CondAttrListCollection"))
223 kwargs.setdefault(
"WriteKey",
"PixelClusterNNJSON")
225 acc.addCondAlgo(CompFactory.InDet.LWTNNCondAlg(name, **kwargs))
230 from PixelReadoutGeometry.PixelReadoutGeometryConfig
import (
231 PixelReadoutManagerCfg)
234 from PixelConditionsAlgorithms.PixelConditionsConfig
import (
235 PixelChargeCalibCondCfg)
238 if flags.GeoModel.Run
is LHCPeriod.Run1:
244 if "PixelLorentzAngleTool" not in kwargs:
245 from SiLorentzAngleTool.PixelLorentzAngleConfig
import (
246 PixelLorentzAngleToolCfg)
247 kwargs.setdefault(
"PixelLorentzAngleTool", acc.popToolsAndMerge(
250 kwargs.setdefault(
"doRunI", flags.GeoModel.Run
is LHCPeriod.Run1)
251 kwargs.setdefault(
"useToT",
False)
252 kwargs.setdefault(
"useRecenteringNNWithoutTracks", (
253 flags.GeoModel.Run
is LHCPeriod.Run1))
254 kwargs.setdefault(
"useRecenteringNNWithTracks",
False)
255 kwargs.setdefault(
"correctLorShiftBarrelWithoutTracks", 0)
256 kwargs.setdefault(
"correctLorShiftBarrelWithTracks", (
257 0.03
if flags.GeoModel.Run
is LHCPeriod.Run1
else 0.))
258 kwargs.setdefault(
"useTTrainedNetworks",
259 flags.GeoModel.Run
is LHCPeriod.Run1)
260 kwargs.setdefault(
"NnCollectionReadKey", (
261 "PixelClusterNN" if flags.GeoModel.Run
is LHCPeriod.Run1
else ""))
262 kwargs.setdefault(
"NnCollectionWithTrackReadKey", (
263 "PixelClusterNNWithTrack" if flags.GeoModel.Run
is LHCPeriod.Run1
265 kwargs.setdefault(
"NnCollectionJSONReadKey", (
266 "" if flags.GeoModel.Run
is LHCPeriod.Run1
267 else "PixelClusterNNJSON"))
270 CompFactory.InDet.NnClusterizationFactory(name, **kwargs))
278 from PixelConditionsAlgorithms.PixelConditionsConfig
import (
279 PixelChargeCalibCondCfg)
285 from SiLorentzAngleTool.PixelLorentzAngleConfig
import (
286 PixelLorentzAngleToolCfg)
287 kwargs[
"PixelLorentzAngleTool"] = acc.popToolsAndMerge(
290 kwargs[
"useToT"] =
False
291 kwargs[
"NnCollectionReadKey"] =
"PixelClusterNN"
292 kwargs[
"NnCollectionWithTrackReadKey"] =
"PixelClusterNNWithTrack"
295 CompFactory.InDet.NnClusterizationFactory(name, **kwargs))
299 from PixelReadoutGeometry.PixelReadoutGeometryConfig
import (
300 ITkPixelReadoutManagerCfg)
303 from PixelConditionsAlgorithms.ITkPixelConditionsConfig
import (
304 ITkPixelChargeCalibCondAlgCfg)
309 if "PixelLorentzAngleTool" not in kwargs:
310 from SiLorentzAngleTool.ITkPixelLorentzAngleConfig
import (
311 ITkPixelLorentzAngleToolCfg)
312 kwargs.setdefault(
"PixelLorentzAngleTool", acc.popToolsAndMerge(
315 kwargs.setdefault(
"useToT",
False)
316 kwargs.setdefault(
"NnCollectionReadKey",
"")
317 kwargs.setdefault(
"NnCollectionWithTrackReadKey",
"")
318 kwargs.setdefault(
"NnCollectionJSONReadKey",
"PixelClusterNNJSON")
320 kwargs.setdefault(
"PixelReadoutManager",
"ITkPixelReadoutManager")
321 kwargs.setdefault(
"PixelChargeCalibCondData",
"ITkPixelChargeCalibCondData")
324 CompFactory.InDet.NnClusterizationFactory(name, **kwargs))
329 flags, name="NnPixelClusterSplitProbTool", **kwargs):
332 kwargs.setdefault(
"NnClusterizationFactory", acc.popToolsAndMerge(
334 kwargs.setdefault(
"PriorMultiplicityContent", [1, 1, 1])
335 kwargs.setdefault(
"useBeamSpotInfo", flags.Tracking.useBeamSpotInfoNN)
338 CompFactory.InDet.NnPixelClusterSplitProbTool(name, **kwargs))
342 flags, name="ITkNnPixelClusterSplitProbTool", **kwargs):
345 kwargs.setdefault(
"NnClusterizationFactory", acc.popToolsAndMerge(
347 kwargs.setdefault(
"PriorMultiplicityContent", [1, 1, 1])
348 kwargs.setdefault(
"useBeamSpotInfo", flags.Tracking.useBeamSpotInfoNN)
351 CompFactory.InDet.NnPixelClusterSplitProbTool(name, **kwargs))
356 flags, name="InDetPixelGangedAmbiguitiesFinder", **kwargs):
358 from PixelGeoModel.PixelGeoModelConfig
import PixelReadoutGeometryCfg
361 CompFactory.InDet.PixelGangedAmbiguitiesFinder(name, **kwargs))
366 flags, name="ITkPixelGangedAmbiguitiesFinder", **kwargs):
368 from PixelGeoModelXml.ITkPixelGeoModelConfig
import (
369 ITkPixelReadoutGeometryCfg)
371 kwargs.setdefault(
"PixelDetEleCollKey",
"ITkPixelDetectorElementCollection")
373 CompFactory.InDet.PixelGangedAmbiguitiesFinder(name, **kwargs))
378 flags, name="InDetSCT_ClusteringTool", **kwargs):
380 from SCT_GeoModel.SCT_GeoModelConfig
import SCT_ReadoutGeometryCfg
383 kwargs.setdefault(
"SCTDetElStatus",
384 "SCTDetectorElementStatusWithoutFlagged")
386 kwargs.setdefault(
"doSimplePositionWidthCalculation",
387 flags.InDet.doSCTSimpleWidth)
389 if "conditionsTool" not in kwargs:
390 from SCT_ConditionsTools.SCT_ConditionsToolsConfig
import (
391 SCT_ConditionsSummaryToolCfg)
392 kwargs.setdefault(
"conditionsTool", acc.popToolsAndMerge(
395 if "LorentzAngleTool" not in kwargs:
396 from SiLorentzAngleTool.SCT_LorentzAngleConfig
import (
397 SCT_LorentzAngleToolCfg)
398 kwargs.setdefault(
"LorentzAngleTool", acc.popToolsAndMerge(
401 kwargs.setdefault(
"globalPosAlg", acc.popToolsAndMerge(
404 if flags.InDet.selectSCTIntimeHits:
405 coll_25ns = (flags.Beam.BunchSpacing <= 25
and
406 flags.Beam.Type
is BeamType.Collisions)
407 kwargs.setdefault(
"timeBins",
"01X" if coll_25ns
else "X1X")
409 acc.setPrivateTools(CompFactory.InDet.SCT_ClusteringTool(name, **kwargs))
416 if "conditionsTool" not in kwargs:
417 from SCT_ConditionsTools.SCT_ConditionsToolsConfig
import (
418 SCT_ConditionsSummaryToolCfg)
419 kwargs.setdefault(
"conditionsTool", acc.popToolsAndMerge(
422 kwargs.setdefault(
"SCTDetElStatus",
"")
425 kwargs.setdefault(
"doSimplePositionWidthCalculation",
False)
427 acc.setPrivateTools(acc.popToolsAndMerge(
433 flags, name="ITkStripClusteringTool", **kwargs):
435 from StripGeoModelXml.ITkStripGeoModelConfig
import (
436 ITkStripReadoutGeometryCfg)
439 kwargs.setdefault(
"SCTDetEleCollKey",
"ITkStripDetectorElementCollection")
440 kwargs.setdefault(
"doSimplePositionWidthCalculation",
True)
442 kwargs.setdefault(
"conditionsTool",
None)
443 if "SCTDetElStatus" not in kwargs :
444 if not flags.Trigger.doHLT :
445 from SCT_ConditionsAlgorithms.ITkStripConditionsAlgorithmsConfig
import (
446 ITkStripDetectorElementStatusAlgCfg)
448 kwargs.setdefault(
"SCTDetElStatus",
"ITkStripDetectorElementStatus")
450 if "LorentzAngleTool" not in kwargs:
451 from SiLorentzAngleTool.ITkStripLorentzAngleConfig
import (
452 ITkStripLorentzAngleToolCfg)
453 kwargs.setdefault(
"LorentzAngleTool", acc.popToolsAndMerge(
456 kwargs.setdefault(
"globalPosAlg", acc.popToolsAndMerge(
459 if flags.ITk.selectStripIntimeHits:
460 coll_25ns = (flags.Beam.BunchSpacing <= 25
and
461 flags.Beam.Type
is BeamType.Collisions)
462 kwargs.setdefault(
"timeBins",
"01X" if coll_25ns
else "X1X")
464 acc.setPrivateTools(CompFactory.InDet.SCT_ClusteringTool(name, **kwargs))
469 flags, name='TruthClusterizationFactory', **kwargs):
472 kwargs.setdefault(
"discardPUHits", flags.Digitization.PileUp)
473 kwargs.setdefault(
"truthClusterSplittingEff", flags.Tracking.TruthClusterSplittingEff)
475 CompFactory.InDet.TruthClusterizationFactory(name, **kwargs))
480 flags, name='ITkTruthClusterizationFactory', **kwargs):
483 kwargs.setdefault(
"InputSDOMap",
"ITkPixelSDO_Map")
484 kwargs.setdefault(
"discardPUHits", flags.Digitization.PileUp)
485 kwargs.setdefault(
"truthClusterSplittingEff", flags.Tracking.TruthClusterSplittingEff)
487 CompFactory.InDet.TruthClusterizationFactory(name, **kwargs))
492 flags, name="TruthPixelClusterSplitProbTool", **kwargs):
494 kwargs.setdefault(
"PriorMultiplicityContent", [1, 1, 1])
495 kwargs.setdefault(
"NnClusterizationFactory", acc.popToolsAndMerge(
498 CompFactory.InDet.TruthPixelClusterSplitProbTool(name, **kwargs))
503 flags, name="ITkTruthPixelClusterSplitProbTool", **kwargs):
505 kwargs.setdefault(
"PriorMultiplicityContent", [1, 1, 1])
506 kwargs.setdefault(
"NnClusterizationFactory", acc.popToolsAndMerge(
509 CompFactory.InDet.TruthPixelClusterSplitProbTool(name, **kwargs))
515 from InDetConfig.SiClusterizationToolConfig
import ITkPixelRDOToolCfg
517 alg = CompFactory.InDet.HitsToxAODCopier(PixelRDOTool=tool, PixelRDOContainerKey=
"ITkPixelRDOs")
520 from OutputStreamAthenaPool.OutputStreamConfig
import addToESD, addToAOD
522 toRecod = [
"xAOD::BaseContainer#PixelHits",
"xAOD::AuxContainerBase#PixelHitsAux.col.row.tot.eta_module.phi_module.layer_disk.barrel_ec.detid",
523 "xAOD::BaseContainer#StripHits",
"xAOD::AuxContainerBase#StripHitsAux.strip.side.eta_module.phi_module.layer_disk.barrel_ec.detid" ]