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.getPrimaryAndMerge(
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 from PixelReadoutGeometry.PixelReadoutGeometryConfig
import ITkPixelReadoutManagerCfg
120 kwargs.setdefault(
"PixelDetEleCollKey",
"ITkPixelDetectorElementCollection")
121 kwargs.setdefault(
"CheckGanged",
False)
122 kwargs.setdefault(
"isITk",
True)
124 acc.setPrivateTools(CompFactory.InDet.PixelRDOTool(name, **kwargs))
135 kwargs.setdefault(
"globalPosAlg", acc.popToolsAndMerge(
137 kwargs.setdefault(
"PixelRDOTool", acc.popToolsAndMerge(
140 acc.setPrivateTools(CompFactory.InDet.MergedPixelsTool(name, **kwargs))
151 acc.setPrivateTools(CompFactory.InDet.MergedPixelsTool(name, **kwargs))
158 kwargs.setdefault(
"globalPosAlg", acc.popToolsAndMerge(
160 kwargs.setdefault(
"PixelRDOTool", acc.popToolsAndMerge(
163 kwargs.setdefault(
"PixelChargeCalibCondData",
"ITkPixelChargeCalibCondData")
164 kwargs.setdefault(
"PixelOfflineCalibData",
"")
166 acc.setPrivateTools(CompFactory.InDet.MergedPixelsTool(name, **kwargs))
171 flags, name="PixelClusterNnCondAlg", trackNetwork=False, **kwargs):
175 "NumberParticles_NoTrack/",
176 "ImpactPoints1P_NoTrack/",
177 "ImpactPoints2P_NoTrack/",
178 "ImpactPoints3P_NoTrack/",
179 "ImpactPointErrorsX1_NoTrack/",
180 "ImpactPointErrorsX2_NoTrack/",
181 "ImpactPointErrorsX3_NoTrack/",
182 "ImpactPointErrorsY1_NoTrack/",
183 "ImpactPointErrorsY2_NoTrack/",
184 "ImpactPointErrorsY3_NoTrack/"]
187 nn_names = [elm.replace(
'_NoTrack',
'')
for elm
in nn_names]
189 kwargs.setdefault(
"NetworkNames", nn_names)
190 kwargs.setdefault(
"GetInputsInfo",
True)
191 kwargs.setdefault(
"WriteKey", (
"PixelClusterNN" if not trackNetwork
192 else "PixelClusterNNWithTrack"))
196 "/PIXEL/Onl/PixelClustering/PixelClusNNCalib",
197 "/PIXEL/PixelClustering/PixelClusNNCalib",
198 className=
'CondAttrListCollection'))
200 if "NetworkToHistoTool" not in kwargs:
201 from TrkConfig.TrkNeuralNetworkUtilsConfig
import (
202 NeuralNetworkToHistoToolCfg)
203 kwargs.setdefault(
"NetworkToHistoTool", acc.popToolsAndMerge(
206 acc.addCondAlgo(CompFactory.InDet.TTrainedNetworkCondAlg(name, **kwargs))
211 flags, name="PixelClusterNnWithTrackCondAlg"):
220 "/PIXEL/Onl/PixelClustering/PixelNNCalibJSON",
221 "/PIXEL/PixelClustering/PixelNNCalibJSON",
222 className=
"CondAttrListCollection"))
224 kwargs.setdefault(
"WriteKey",
"PixelClusterNNJSON")
226 acc.addCondAlgo(CompFactory.InDet.LWTNNCondAlg(name, **kwargs))
231 from PixelReadoutGeometry.PixelReadoutGeometryConfig
import (
232 PixelReadoutManagerCfg)
235 from PixelConditionsAlgorithms.PixelConditionsConfig
import (
236 PixelChargeCalibCondCfg)
239 if flags.GeoModel.Run
is LHCPeriod.Run1:
245 if "PixelLorentzAngleTool" not in kwargs:
246 from SiLorentzAngleTool.PixelLorentzAngleConfig
import (
247 PixelLorentzAngleToolCfg)
248 kwargs.setdefault(
"PixelLorentzAngleTool", acc.popToolsAndMerge(
251 kwargs.setdefault(
"doRunI", flags.GeoModel.Run
is LHCPeriod.Run1)
252 kwargs.setdefault(
"useToT",
False)
253 kwargs.setdefault(
"useRecenteringNNWithoutTracks", (
254 flags.GeoModel.Run
is LHCPeriod.Run1))
255 kwargs.setdefault(
"useRecenteringNNWithTracks",
False)
256 kwargs.setdefault(
"correctLorShiftBarrelWithoutTracks", 0)
257 kwargs.setdefault(
"correctLorShiftBarrelWithTracks", (
258 0.03
if flags.GeoModel.Run
is LHCPeriod.Run1
else 0.))
259 kwargs.setdefault(
"useTTrainedNetworks",
260 flags.GeoModel.Run
is LHCPeriod.Run1)
261 kwargs.setdefault(
"NnCollectionReadKey", (
262 "PixelClusterNN" if flags.GeoModel.Run
is LHCPeriod.Run1
else ""))
263 kwargs.setdefault(
"NnCollectionWithTrackReadKey", (
264 "PixelClusterNNWithTrack" if flags.GeoModel.Run
is LHCPeriod.Run1
266 kwargs.setdefault(
"NnCollectionJSONReadKey", (
267 "" if flags.GeoModel.Run
is LHCPeriod.Run1
268 else "PixelClusterNNJSON"))
271 CompFactory.InDet.NnClusterizationFactory(name, **kwargs))
279 from PixelConditionsAlgorithms.PixelConditionsConfig
import (
280 PixelChargeCalibCondCfg)
286 from SiLorentzAngleTool.PixelLorentzAngleConfig
import (
287 PixelLorentzAngleToolCfg)
288 kwargs[
"PixelLorentzAngleTool"] = acc.popToolsAndMerge(
291 kwargs[
"useToT"] =
False
292 kwargs[
"NnCollectionReadKey"] =
"PixelClusterNN"
293 kwargs[
"NnCollectionWithTrackReadKey"] =
"PixelClusterNNWithTrack"
296 CompFactory.InDet.NnClusterizationFactory(name, **kwargs))
300 from PixelReadoutGeometry.PixelReadoutGeometryConfig
import (
301 ITkPixelReadoutManagerCfg)
304 from PixelConditionsAlgorithms.ITkPixelConditionsConfig
import (
305 ITkPixelChargeCalibCondAlgCfg)
310 if "PixelLorentzAngleTool" not in kwargs:
311 from SiLorentzAngleTool.ITkPixelLorentzAngleConfig
import (
312 ITkPixelLorentzAngleToolCfg)
313 kwargs.setdefault(
"PixelLorentzAngleTool", acc.popToolsAndMerge(
316 kwargs.setdefault(
"useToT",
False)
317 kwargs.setdefault(
"NnCollectionReadKey",
"")
318 kwargs.setdefault(
"NnCollectionWithTrackReadKey",
"")
319 kwargs.setdefault(
"NnCollectionJSONReadKey",
"PixelClusterNNJSON")
321 kwargs.setdefault(
"PixelReadoutManager", acc.getPrimary())
322 kwargs.setdefault(
"PixelChargeCalibCondData",
"ITkPixelChargeCalibCondData")
325 CompFactory.InDet.NnClusterizationFactory(name, **kwargs))
330 flags, name="NnPixelClusterSplitProbTool", **kwargs):
333 kwargs.setdefault(
"NnClusterizationFactory", acc.popToolsAndMerge(
335 kwargs.setdefault(
"PriorMultiplicityContent", [1, 1, 1])
336 kwargs.setdefault(
"useBeamSpotInfo", flags.Tracking.useBeamSpotInfoNN)
339 CompFactory.InDet.NnPixelClusterSplitProbTool(name, **kwargs))
343 flags, name="ITkNnPixelClusterSplitProbTool", **kwargs):
346 kwargs.setdefault(
"NnClusterizationFactory", acc.popToolsAndMerge(
348 kwargs.setdefault(
"PriorMultiplicityContent", [1, 1, 1])
349 kwargs.setdefault(
"useBeamSpotInfo", flags.Tracking.useBeamSpotInfoNN)
352 CompFactory.InDet.NnPixelClusterSplitProbTool(name, **kwargs))
357 flags, name="InDetPixelGangedAmbiguitiesFinder", **kwargs):
359 from PixelGeoModel.PixelGeoModelConfig
import PixelReadoutGeometryCfg
362 CompFactory.InDet.PixelGangedAmbiguitiesFinder(name, **kwargs))
367 flags, name="ITkPixelGangedAmbiguitiesFinder", **kwargs):
369 from PixelGeoModelXml.ITkPixelGeoModelConfig
import (
370 ITkPixelReadoutGeometryCfg)
372 kwargs.setdefault(
"PixelDetEleCollKey",
"ITkPixelDetectorElementCollection")
374 CompFactory.InDet.PixelGangedAmbiguitiesFinder(name, **kwargs))
379 flags, name="InDetSCT_ClusteringTool", **kwargs):
381 from SCT_GeoModel.SCT_GeoModelConfig
import SCT_ReadoutGeometryCfg
384 kwargs.setdefault(
"SCTDetElStatus",
385 "SCTDetectorElementStatusWithoutFlagged")
387 kwargs.setdefault(
"doSimplePositionWidthCalculation",
388 flags.InDet.doSCTSimpleWidth)
390 if "conditionsTool" not in kwargs:
391 from SCT_ConditionsTools.SCT_ConditionsToolsConfig
import (
392 SCT_ConditionsSummaryToolCfg)
393 kwargs.setdefault(
"conditionsTool", acc.popToolsAndMerge(
396 if "LorentzAngleTool" not in kwargs:
397 from SiLorentzAngleTool.SCT_LorentzAngleConfig
import (
398 SCT_LorentzAngleToolCfg)
399 kwargs.setdefault(
"LorentzAngleTool", acc.popToolsAndMerge(
402 kwargs.setdefault(
"globalPosAlg", acc.popToolsAndMerge(
405 if flags.InDet.selectSCTIntimeHits:
406 coll_25ns = (flags.Beam.BunchSpacing <= 25
and
407 flags.Beam.Type
is BeamType.Collisions)
408 kwargs.setdefault(
"timeBins",
"01X" if coll_25ns
else "X1X")
410 acc.setPrivateTools(CompFactory.InDet.SCT_ClusteringTool(name, **kwargs))
417 if "conditionsTool" not in kwargs:
418 from SCT_ConditionsTools.SCT_ConditionsToolsConfig
import (
419 SCT_ConditionsSummaryToolCfg)
420 kwargs.setdefault(
"conditionsTool", acc.popToolsAndMerge(
423 kwargs.setdefault(
"SCTDetElStatus",
"")
426 kwargs.setdefault(
"doSimplePositionWidthCalculation",
False)
428 acc.setPrivateTools(acc.popToolsAndMerge(
434 flags, name="ITkStripClusteringTool", **kwargs):
436 from StripGeoModelXml.ITkStripGeoModelConfig
import (
437 ITkStripReadoutGeometryCfg)
440 kwargs.setdefault(
"SCTDetEleCollKey",
"ITkStripDetectorElementCollection")
441 kwargs.setdefault(
"doSimplePositionWidthCalculation",
True)
443 kwargs.setdefault(
"conditionsTool",
None)
444 if "SCTDetElStatus" not in kwargs :
445 if not flags.Trigger.doHLT :
446 from SCT_ConditionsAlgorithms.ITkStripConditionsAlgorithmsConfig
import (
447 ITkStripDetectorElementStatusAlgCfg)
449 kwargs.setdefault(
"SCTDetElStatus",
"ITkStripDetectorElementStatus")
451 if "LorentzAngleTool" not in kwargs:
452 from SiLorentzAngleTool.ITkStripLorentzAngleConfig
import (
453 ITkStripLorentzAngleToolCfg)
454 kwargs.setdefault(
"LorentzAngleTool", acc.popToolsAndMerge(
457 kwargs.setdefault(
"globalPosAlg", acc.popToolsAndMerge(
460 if flags.ITk.selectStripIntimeHits:
461 coll_25ns = (flags.Beam.BunchSpacing <= 25
and
462 flags.Beam.Type
is BeamType.Collisions)
463 kwargs.setdefault(
"timeBins",
"01X" if coll_25ns
else "X1X")
465 acc.setPrivateTools(CompFactory.InDet.SCT_ClusteringTool(name, **kwargs))
470 flags, name='TruthClusterizationFactory', **kwargs):
473 kwargs.setdefault(
"discardPUHits", flags.Digitization.PileUp)
474 kwargs.setdefault(
"truthClusterSplittingEff", flags.Tracking.TruthClusterSplittingEff)
476 CompFactory.InDet.TruthClusterizationFactory(name, **kwargs))
481 flags, name='ITkTruthClusterizationFactory', **kwargs):
484 kwargs.setdefault(
"InputSDOMap",
"ITkPixelSDO_Map")
485 kwargs.setdefault(
"discardPUHits", flags.Digitization.PileUp)
486 kwargs.setdefault(
"truthClusterSplittingEff", flags.Tracking.TruthClusterSplittingEff)
488 CompFactory.InDet.TruthClusterizationFactory(name, **kwargs))
493 flags, name="TruthPixelClusterSplitProbTool", **kwargs):
495 kwargs.setdefault(
"PriorMultiplicityContent", [1, 1, 1])
496 kwargs.setdefault(
"NnClusterizationFactory", acc.popToolsAndMerge(
499 CompFactory.InDet.TruthPixelClusterSplitProbTool(name, **kwargs))
504 flags, name="ITkTruthPixelClusterSplitProbTool", **kwargs):
506 kwargs.setdefault(
"PriorMultiplicityContent", [1, 1, 1])
507 kwargs.setdefault(
"NnClusterizationFactory", acc.popToolsAndMerge(
510 CompFactory.InDet.TruthPixelClusterSplitProbTool(name, **kwargs))
516 from InDetConfig.SiClusterizationToolConfig
import ITkPixelRDOToolCfg
518 alg = CompFactory.InDet.HitsToxAODCopier(PixelRDOTool=tool, PixelRDOContainerKey=
"ITkPixelRDOs")
521 from OutputStreamAthenaPool.OutputStreamConfig
import addToESD, addToAOD
523 toRecod = [
"xAOD::BaseContainer#PixelHits",
"xAOD::AuxContainerBase#PixelHitsAux.col.row.tot.eta_module.phi_module.layer_disk.barrel_ec.detid",
524 "xAOD::BaseContainer#StripHits",
"xAOD::AuxContainerBase#StripHitsAux.strip.side.eta_module.phi_module.layer_disk.barrel_ec.detid" ]