ATLAS Offline Software
Loading...
Searching...
No Matches
HGTD_PrepRawDataFormationConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2
3from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4from AthenaConfiguration.ComponentFactory import CompFactory
5from HGTD_Calibration.HGTD_CalibrationConfig import HGTD_TdcCalibrationToolCfg
6
7def HGTD_ClusterMakerToolCfg(flags, name = "HGTD_ClusterMakerTool", **kwargs):
8 """Configures a tool that forms HGTD clusters """
9 acc = ComponentAccumulator()
10
11 acc.setPrivateTools(CompFactory.HGTD_ClusterMakerTool(name, **kwargs))
12 return acc
13
14def SinglePadClusterToolCfg(flags, name = "SinglePadClusterTool", **kwargs):
15 """Configures a tool that creates 1-to-1 HGTD clusters out of single pads """
16 if flags.HGTD.Geometry.useGeoModelXml:
17 from HGTD_GeoModelXml.HGTD_GeoModelConfig import HGTD_ReadoutGeometryCfg
18 else:
19 from HGTD_GeoModel.HGTD_GeoModelConfig import HGTD_ReadoutGeometryCfg
20 acc = HGTD_ReadoutGeometryCfg(flags)
21
22 kwargs.setdefault("ClusterMakerTool", acc.popToolsAndMerge(HGTD_ClusterMakerToolCfg(flags)))
23
24 if flags.HGTD.useALTIROC_RDO:
25 kwargs.setdefault("useALTIROC_RDO", True)
26 kwargs.setdefault("HGTD_TdcCalibrationTool", acc.popToolsAndMerge(HGTD_TdcCalibrationToolCfg(flags)))
27
28 acc.setPrivateTools(CompFactory.HGTD.SinglePadClusterTool(name, **kwargs))
29 return acc
30
31def PadClusterizationCfg(flags, name = "PadClusterizationAlg", **kwargs):
32 """Schedules a clusterization alg to produce HGTD_Clusters out of HGTD_RDOs """
33 acc = ComponentAccumulator()
34
35 kwargs.setdefault("ClusterizationTool", acc.popToolsAndMerge(SinglePadClusterToolCfg(flags)))
36 kwargs.setdefault("PRDContainerName", "HGTD_Clusters")
37
38 if flags.HGTD.useALTIROC_RDO:
39 kwargs.setdefault("useALTIROC_RDO", True)
40 kwargs.setdefault("AltirocRDOContainerName", "HGTD_ALTIROC_RDOs")
41 else:
42 kwargs.setdefault("useALTIROC_RDO", False)
43 kwargs.setdefault("RDOContainerName", "HGTD_RDOs")
44
45 # Monitor Execution Time
46 if flags.HGTD.doMonitoring and 'MonTool' not in kwargs:
47 # Monitoring lives in ACTS since this is (will be) the same used for the ACTS clusterisation algorithm
48 from ActsConfig.ActsMonitoringConfig import ActsHgtdClusterizationMonitoringToolCfg
49 kwargs.setdefault('MonTool', acc.popToolsAndMerge(ActsHgtdClusterizationMonitoringToolCfg(flags)))
50
51 acc.addEventAlgo(CompFactory.HGTD.PadClusterizationAlg(name, **kwargs))
52 return acc
HGTD_ClusterMakerToolCfg(flags, name="HGTD_ClusterMakerTool", **kwargs)
SinglePadClusterToolCfg(flags, name="SinglePadClusterTool", **kwargs)
PadClusterizationCfg(flags, name="PadClusterizationAlg", **kwargs)