ATLAS Offline Software
Loading...
Searching...
No Matches
ActsMeasurementCalibrationConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2
3from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4from AthenaConfiguration.ComponentFactory import CompFactory
5
7 name: str='ActsAnalogueClusteringTool',
8 ClusteringToolType=CompFactory.ActsTrk.ITkAnalogueClusteringTool,
9 **kwargs) -> ComponentAccumulator:
10
11 if not flags.Detector.GeometryITk:
12 raise Exception("Acts Analogue Clustering calibration only supports ITk!")
13
14 acc = ComponentAccumulator()
15
16 from PixelConditionsAlgorithms.ITkPixelConditionsConfig import ITkPixelOfflineCalibCondAlgCfg
17 acc.merge(ITkPixelOfflineCalibCondAlgCfg(flags))
18
19 from ActsConfig.ActsConfigFlags import PixelErrorStrategy
20
21 kwargs.setdefault("PerformCovarianceCalibration", flags.Acts.OnTrackCalibration.performCovarianceCalibration)
22 kwargs.setdefault("CalibrateAfterMeasurementSelection", not flags.Acts.PixelCalibrationStrategy.calibrateBeforeSelection())
23 kwargs.setdefault("PixelOfflineCalibData", "ITkPixelOfflineCalibData")
24 kwargs.setdefault("errorStrategy", PixelErrorStrategy.PITCH.value if flags.Acts.Clusters.UsePixelBroadErrors
25 else PixelErrorStrategy.CALIBRATED.value)
26
27 if 'PixelLorentzAngleTool' not in kwargs:
28 from SiLorentzAngleTool.ITkPixelLorentzAngleConfig import ITkPixelLorentzAngleToolCfg
29 kwargs.setdefault("PixelLorentzAngleTool", acc.popToolsAndMerge(ITkPixelLorentzAngleToolCfg(flags)))
30
31 acc.setPrivateTools(ClusteringToolType(name, **kwargs))
32 return acc
33
35 name: str='ActsAnalogueClusteringTool',
36 **kwargs) :
38 name,
39 CompFactory.ActsTrk.ITkAnalogueClusteringTool,
40 **kwargs)
41
43 name: str='ActsNNClusteringTool',
44 **kwargs) -> ComponentAccumulator:
45 acc = ComponentAccumulator()
46 from InDetConfig.SiClusterizationToolConfig import OnnxNNCondAlgCfg
47 acc.merge(OnnxNNCondAlgCfg(flags,
48 NumberNetworkPath=flags.Acts.PixelNNCalibrationModelsFolder+'number.onnx',
49 PositionNetwork1Path=flags.Acts.PixelNNCalibrationModelsFolder+'pos1.onnx',
50 PositionNetwork2Path=flags.Acts.PixelNNCalibrationModelsFolder+'pos2.onnx',
51 PositionNetwork3Path=flags.Acts.PixelNNCalibrationModelsFolder+'pos3.onnx'))
52 kwargs.setdefault("minClusterChargeForNN", 15000.0)
53 tools = acc.popToolsAndMerge(ActsAnalogueClusteringToolBaseCfg(flags,
54 name,
55 CompFactory.ActsTrk.ITkNNClusterCalibratorTool,
56 **kwargs))
57 acc.setPrivateTools(tools)
58 return acc
59
60def ActsTruthClusterSplittingCalibrationToolCfg(flags, name='ActsTruthClusterSplittingCalibrationTool', **kwargs):
61 acc = ComponentAccumulator()
62 kwargs.setdefault("CalibrateAfterMeasurementSelection", not flags.Acts.PixelCalibrationStrategy.calibrateBeforeSelection())
63
64 if 'PixelLorentzAngleTool' not in kwargs:
65 from SiLorentzAngleTool.ITkPixelLorentzAngleConfig import ITkPixelLorentzAngleToolCfg
66 kwargs.setdefault("PixelLorentzAngleTool", acc.popToolsAndMerge(ITkPixelLorentzAngleToolCfg(flags)))
67
68 if 'TruthSelectionTool' not in kwargs:
69 from InDetPhysValMonitoring.InDetPhysValMonitoringConfig import InDetRttTruthSelectionToolCfg
70 kwargs.setdefault("TruthSelectionTool", acc.popToolsAndMerge(InDetRttTruthSelectionToolCfg(flags)))
71
72 acc.setPrivateTools(CompFactory.ActsTrk.ITkTruthClusterSplittingTool(name, **kwargs))
73 return acc
74
76 **kwargs) -> ComponentAccumulator :
77 from ActsConfig.ActsConfigFlags import PixelCalibrationStrategy
78 if flags.Acts.PixelCalibrationStrategy is PixelCalibrationStrategy.AnalogueClusteringBeforeSelection :
79 kwargs.setdefault("CalibrateAfterMeasurementSelection", False)
80 return ActsAnalogueClusteringToolCfg(flags,**kwargs)
81 elif flags.Acts.PixelCalibrationStrategy is PixelCalibrationStrategy.AnalogueClustering :
82 kwargs.setdefault("CalibrateAfterMeasurementSelection", True)
83 return ActsAnalogueClusteringToolCfg(flags,**kwargs)
84 elif flags.Acts.PixelCalibrationStrategy is PixelCalibrationStrategy.NNClusteringBeforeSelection :
85 kwargs.setdefault("CalibrateAfterMeasurementSelection", False)
86 return ActsNNClusteringToolCfg(flags,**kwargs)
87 elif flags.Acts.PixelCalibrationStrategy is PixelCalibrationStrategy.NNClustering :
88 kwargs.setdefault("CalibrateAfterMeasurementSelection", True)
89 return ActsNNClusteringToolCfg(flags,**kwargs)
90 elif flags.Acts.PixelCalibrationStrategy is PixelCalibrationStrategy.TruthClusterSplitting :
91 kwargs.setdefault("CalibrateAfterMeasurementSelection", True)
93 else :
94 raise RuntimeError(f"No pixel calibration tool for calibration strategy {flags.Acts.PixelCalibrationStrategy}")
95
97 name: str='ActsStripCalibrationTool',
98 **kwargs) -> ComponentAccumulator:
99
100 if not flags.Detector.GeometryITk:
101 raise Exception("Acts Strip calibration only supports ITk!")
102
103 acc = ComponentAccumulator()
104
105 from ActsConfig.ActsConfigFlags import StripClusteringErrorMode,StripErrorStrategy
106
107 kwargs.setdefault("PerformCovarianceCalibration", True)
108 kwargs.setdefault("CalibrateAfterMeasurementSelection", not flags.Acts.StripCalibrationStrategy.calibrateBeforeSelection())
109 kwargs.setdefault("errorStrategy", StripErrorStrategy.PITCH.value if flags.Acts.Clusters.StripClusteringErrorMode == StripClusteringErrorMode.WIDTH
110 else StripErrorStrategy.CLUSTERING.value)
111
112 acc.setPrivateTools(CompFactory.ActsTrk.ITkStripCalibrationTool(name, **kwargs))
113 return acc
ComponentAccumulator ActsStripCalibrationToolCfg(flags, str name='ActsStripCalibrationTool', **kwargs)
ActsTruthClusterSplittingCalibrationToolCfg(flags, name='ActsTruthClusterSplittingCalibrationTool', **kwargs)
ComponentAccumulator ActsAnalogueClusteringToolBaseCfg(flags, str name='ActsAnalogueClusteringTool', ClusteringToolType=CompFactory.ActsTrk.ITkAnalogueClusteringTool, **kwargs)
ComponentAccumulator ActsNNClusteringToolCfg(flags, str name='ActsNNClusteringTool', **kwargs)
ActsAnalogueClusteringToolCfg(flags, str name='ActsAnalogueClusteringTool', **kwargs)
ComponentAccumulator ActsPixelCalibrationToolCfg(flags, **kwargs)