12 acc = ComponentAccumulator()
15 print(f
"Setting up GPU algorithms with {flags.Device.Backend.value} backend")
18 acc.merge(JSONDeviceDetectorDescriptionProviderSvcCfg(flags,
19 HostConditionsObjectName=
"TracccHostCondConfig",
20 HostDigitizationObjectName=
"TracccHostDigitizationConfig",
21 DeviceConditionsObjectName=
"TracccDeviceCondConfig",
22 DeviceDigitizationObjectName=
"TracccDeviceDigitizationConfig"
26 if flags.Acts.Device.doClusterization:
29 if not flags.Tracking.doPixelDigitalClustering:
30 raise ValueError(
"clusterization on device is not compatible "
31 "with analog clustering at the moment due to incorrent "
32 "ToT values for Pixel hits in the simulation data.")
35 from ActsConfig.ActsRegionsOfInterestConfig
import ActsRegionsOfInterestCreatorAlgCfg
36 acc.merge(ActsRegionsOfInterestCreatorAlgCfg(flags,
37 name=f
"{flags.Tracking.ActiveConfig.extension}RegionsOfInterestCreatorAlg"))
39 print(
"Performing clusterization on device")
42 if flags.Acts.EDM.PhaseII :
43 from ActsConfig.ActsPhaseIIRawDataEdmConfig
import (
44 PhaseIIPixelRawDataContainerCfg,
45 PhaseIIStripRawDataContainerCfg,
47 acc.merge(PhaseIIPixelRawDataContainerCfg(flags))
48 acc.merge(PhaseIIStripRawDataContainerCfg(flags))
49 from ActsGPUEventCnv.ActsGPUEventCnvConfig
import PhaseIIRDOtoTracccCellConverterAlgCfg
50 acc.merge(PhaseIIRDOtoTracccCellConverterAlgCfg(flags,
51 TracccCells =
"TracccCellCollection",
54 from ActsGPUEventCnv.ActsGPUEventCnvConfig
import RDOtoTracccCellConverterAlgCfg
55 acc.merge(RDOtoTracccCellConverterAlgCfg(flags,
56 TracccCells =
"TracccCellCollection",
60 from ActsGPUDataPreparation.ActsGPUDataPreparationConfig
import DeviceClusterizationAlgCfg
61 acc.merge(DeviceClusterizationAlgCfg(flags,
62 InputTracccCells=
"TracccCellCollection",
63 OutputTracccMeasurements=
"TracccMeasurementCollection",
64 OutputTracccClusters=
"TracccClusterCollection",
65 RetrieveClusterCells=flags.Tracking.doTruth,
66 previousExtension=previousExtension))
67 clustersLocation = DataLocation.DEVICE
70 from InDetConfig.ITkActsDataPreparationConfig
import ITkActsDataPreparationCfg
71 acc.merge(ITkActsDataPreparationCfg(flags, previousExtension=previousExtension))
72 clustersLocation = DataLocation.HOST
75 if flags.Acts.Device.doSeeding:
77 raise ValueError(
"Unsupported: no device seeding yet!")
83 if clustersLocation
is DataLocation.DEVICE:
84 from ActsGPUEventCnv.ActsGPUEventCnvConfig
import TracccMeasurementConverterAlgCfg
85 acc.merge(TracccMeasurementConverterAlgCfg(flags,
86 InputMeasurements=
"TracccMeasurementCollection",
87 InputClusters=
"TracccClusterCollection",
88 InputCells=
"TracccCellCollection",
89 ConvertClustersWithCells = flags.Tracking.doTruth,
90 OutputPixelClusters=
"ITkPixelClusters",
91 OutputStripClusters=
"ITkStripClusters"
93 clustersLocation = DataLocation.HOST
95 from ActsConfig.ActsSpacePointFormationConfig
import ActsSpacePointFormationCfg
96 acc.merge(ActsSpacePointFormationCfg(flags, previousActsExtension=previousExtension))
98 from ActsConfig.ActsSeedingConfig
import ActsSeedingCfg
99 acc.merge(ActsSeedingCfg(flags))
100 seedsLocation = DataLocation.HOST
104 if flags.Acts.Device.doTrackReconstruction:
106 raise ValueError(
"Unsupported operation, we do not have this step on device yet")
111 if clustersLocation
is DataLocation.DEVICE:
112 from ActsGPUEventCnv.ActsGPUEventCnvConfig
import TracccMeasurementConverterAlgCfg
113 acc.merge(TracccMeasurementConverterAlgCfg(flags,
114 InputMeasurements=
"TracccMeasurementCollection",
115 InputClusters=
"TracccClusterCollection",
116 InputTracccCells=
"TracccCellCollection",
117 ConvertClustersWithCells = flags.Tracking.doTruth,
118 OutputPixelClusters=
"ITkPixelClusters",
119 OutputStripClusters=
"ITkStripClusters"
122 if seedsLocation
is DataLocation.DEVICE:
123 raise ValueError(
"Unsupported operation, we do not have this conversion yet")
126 from ActsConfig.ActsTrackFindingConfig
import ActsTrackFindingCfg
127 acc.merge(ActsTrackFindingCfg(flags))
130 if flags.Acts.doAmbiguityResolution:
131 from ActsConfig.ActsTrackFindingConfig
import ActsAmbiguityResolutionCfg
132 acc.merge(ActsAmbiguityResolutionCfg(flags))
136 from ActsConfig.ActsPrdAssociationConfig
import ActsPrdAssociationAlgCfg
137 acc.merge(ActsPrdAssociationAlgCfg(flags,
138 name = f
'{flags.Tracking.ActiveConfig.extension}PrdAssociationAlg',
139 previousActsExtension = previousExtension))
142 if flags.Tracking.doTruth:
145 from ActsConfig.ActsTruthConfig
import ActsTruthAssociationAlgCfg, ActsTruthParticleHitCountAlgCfg
146 acc.merge(ActsTruthAssociationAlgCfg(flags))
147 acc.merge(ActsTruthParticleHitCountAlgCfg(flags))
148 if flags.Acts.doTruthInspection:
149 from ActsConfig.ActsInspectTruthContentConfig
import ActsInspectTruthContentAlgCfg
150 acc.merge(ActsInspectTruthContentAlgCfg(flags))
156 if flags.Tracking.ActiveConfig.storeSiSPSeededTracks
or not flags.Acts.doAmbiguityResolution:
157 from ActsConfig.ActsTruthConfig
import ActsTrackToTruthAssociationAlgCfg, ActsTrackFindingValidationAlgCfg
158 acts_tracks = f
"{flags.Tracking.ActiveConfig.extension}Tracks"
159 acc.merge(ActsTrackToTruthAssociationAlgCfg(flags,
160 name = f
"{acts_tracks}TrackToTruthAssociationAlg",
161 ACTSTracksLocation = acts_tracks,
162 AssociationMapOut = f
"{acts_tracks}ToTruthParticleAssociation"))
164 acc.merge(ActsTrackFindingValidationAlgCfg(flags,
165 name = f
"{acts_tracks}TrackFindingValidationAlg",
166 TrackToTruthAssociationMap = f
"{acts_tracks}ToTruthParticleAssociation"))
170 if flags.Acts.doAmbiguityResolution:
171 acts_tracks = f
"{flags.Tracking.ActiveConfig.extension}ResolvedTracks"
172 from ActsConfig.ActsTruthConfig
import ActsTrackToTruthAssociationAlgCfg, ActsTrackFindingValidationAlgCfg
173 acc.merge(ActsTrackToTruthAssociationAlgCfg(flags,
174 name = f
"{acts_tracks}TrackToTruthAssociationAlg",
175 ACTSTracksLocation = acts_tracks,
176 AssociationMapOut = f
"{acts_tracks}ToTruthParticleAssociation"))
178 acc.merge(ActsTrackFindingValidationAlgCfg(flags,
179 name = f
"{acts_tracks}TrackFindingValidationAlg",
180 TrackToTruthAssociationMap = f
"{acts_tracks}ToTruthParticleAssociation"))