ATLAS Offline Software
Loading...
Searching...
No Matches
ActsDeviceClusterizationTest.py
Go to the documentation of this file.
1#!/usr/bin/env athena
2
3# Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
4#
5# Run script for the full GPU clusterization chain:
6# RDO -> traccc cells -> traccc measurements -> xAOD clusters
7
8from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
9from AthenaCommon.Constants import DEBUG
10
11from ActsGPUDataPreparation.ActsGPUDataPreparationConfig import DeviceClusterizationAlgCfg
12from ActsGPUEventCnv.ActsGPUEventCnvConfig import TracccMeasurementConverterAlgCfg
13from ActsGPUGeometry.ActsGPUGeometryConfig import JSONDeviceDetectorDescriptionProviderSvcCfg
14
15def GPUClusterizationCfg(flags) -> ComponentAccumulator:
16 acc = ComponentAccumulator()
17
18 # Service runs first — loads all device detector description data into detStore
19 acc.merge(JSONDeviceDetectorDescriptionProviderSvcCfg(flags))
20
21 if flags.Acts.EDM.PhaseII :
22 print("Running PhaseII RDO to TracccCell conversion")
23 from ActsConfig.ActsPhaseIIRawDataEdmConfig import (
24 PhaseIIPixelRawDataContainerCfg,
25 PhaseIIStripRawDataContainerCfg,
26 )
27 acc.merge(PhaseIIPixelRawDataContainerCfg(flags))
28 acc.merge(PhaseIIStripRawDataContainerCfg(flags))
29 from ActsGPUEventCnv.ActsGPUEventCnvConfig import PhaseIIRDOtoTracccCellConverterAlgCfg
30 acc.merge(PhaseIIRDOtoTracccCellConverterAlgCfg(flags,
31 TracccCells = "TracccCellCollection",
32 OutputLevel = DEBUG
33 ))
34 else:
35 from ActsGPUEventCnv.ActsGPUEventCnvConfig import RDOtoTracccCellConverterAlgCfg
36 acc.merge(RDOtoTracccCellConverterAlgCfg(flags,
37 TracccCells = "TracccCellCollection",
38 OutputLevel = DEBUG
39 ))
40
41 acc.merge(DeviceClusterizationAlgCfg(flags,
42 InputTracccCells="TracccCellCollection",
43 OutputTracccMeasurements="TracccMeasurementCollection",
44 OutputTracccClusters="TracccClusterCollection",
45 RetrieveClusterCells=flags.Tracking.doTruth,
46 OutputLevel = DEBUG,
47
48 ))
49
50 acc.merge(TracccMeasurementConverterAlgCfg(flags,
51 InputMeasurements="TracccMeasurementCollection",
52 InputClusters="TracccClusterCollection",
53 InputCells="TracccCellCollection",
54 ConvertClustersWithCells = flags.Tracking.doTruth,
55 OutputPixelClusters="ITkTracccPixelClusters",
56 OutputStripClusters="ITkTracccStripClusters",
57 OutputLevel = DEBUG
58 ))
59
60 from SiLorentzAngleTool.ITkPixelLorentzAngleConfig import ITkPixelLorentzAngleToolCfg
61 from SiLorentzAngleTool.ITkStripLorentzAngleConfig import ITkStripLorentzAngleToolCfg
62 from AthenaConfiguration.ComponentFactory import CompFactory
63 acc.addEventAlgo(CompFactory.ActsTrk.ActsClusterComparisonAlg(
64 "GPU_ActsClusterComparisonAlg",
65 checkSpacepoints=False,
66 monitoredSpacepointsKey="ITkTracccPixelSpacepoints",
67 referenceSpacepointsKey="ITkPixelSpacePoints",
68 monitoredPixelClustersKey="ITkTracccPixelClusters",
69 referencePixelClustersKey="ITkPixelClusters",
70 monitoredStripClustersKey="ITkTracccStripClusters",
71 referenceStripClustersKey="ITkStripClusters",
72 PixelLorentzAngleTool = acc.popToolsAndMerge(ITkPixelLorentzAngleToolCfg(flags)),
73 StripLorentzAngleTool = acc.popToolsAndMerge(ITkStripLorentzAngleToolCfg(flags)),
74 OutputLevel = DEBUG
75
76 ))
77
78 return acc
79
80if __name__ == "__main__":
81 from AthenaConfiguration.AllConfigFlags import initConfigFlags
82 from AthenaConfiguration.TestDefaults import defaultTestFiles
83
84 flags = initConfigFlags()
85
86 flags.Input.Files = defaultTestFiles.RDO_RUN4
87 flags.Exec.MaxEvents = 1
88
89 # Set the Main Pass
90 flags = flags.cloneAndReplace(
91 "Tracking.ActiveConfig",
92 "Tracking.ITkActsPass")
93
94 flags.Tracking.doPixelDigitalClustering = True
95
96 flags.fillFromArgs()
97
98 flags.lock()
99
100 from AthenaConfiguration.MainServicesConfig import MainServicesCfg
101 acc = MainServicesCfg(flags)
102 from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
103 acc.merge(PoolReadCfg(flags))
104
105 # Needed for PixelID and SCT_ID
106 from PixelGeoModelXml.ITkPixelGeoModelConfig import ITkPixelReadoutGeometryCfg
107 acc.merge(ITkPixelReadoutGeometryCfg(flags))
108 from StripGeoModelXml.ITkStripGeoModelConfig import ITkStripReadoutGeometryCfg
109 acc.merge(ITkStripReadoutGeometryCfg(flags))
110
111 # RoI creator
112 from ActsConfig.ActsRegionsOfInterestConfig import ActsMainRegionsOfInterestCreatorAlgCfg
113 acc.merge(ActsMainRegionsOfInterestCreatorAlgCfg(flags))
114
115 # Data Preparation - Clustering
116 from ActsConfig.ActsClusterizationConfig import ActsPixelClusterizationAlgCfg
117 acc.merge(ActsPixelClusterizationAlgCfg(flags,OutputLevel = DEBUG))
118
119 from ActsConfig.ActsClusterizationConfig import ActsStripClusterizationAlgCfg
120 acc.merge(ActsStripClusterizationAlgCfg(flags,OutputLevel = DEBUG))
121
122
123 acc.merge(GPUClusterizationCfg(flags))
124 acc.printConfig(withDetails=True, summariseProps=True)
125
126 statusCode = acc.run(flags.Exec.MaxEvents)
127 assert statusCode.isSuccess(), "Application execution did not succeed"
void print(char *figname, TCanvas *c1)
ComponentAccumulator GPUClusterizationCfg(flags)