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))
102 if flags.Tracking.doTruth:
103 from ActsConfig.ActsTruthConfig
import ActsTruthAssociationAlgCfg, ActsTruthParticleHitCountAlgCfg
104 acc.merge(ActsTruthAssociationAlgCfg(flags))
105 acc.merge(ActsTruthParticleHitCountAlgCfg(flags))
107 from ActsConfig.ActsSeedingConfig
import ActsSeedingCfg
108 acc.merge(ActsSeedingCfg(flags))
109 seedsLocation = DataLocation.HOST
113 if flags.Acts.Device.doTrackReconstruction:
115 raise ValueError(
"Unsupported operation, we do not have this step on device yet")
120 if clustersLocation
is DataLocation.DEVICE:
121 from ActsGPUEventCnv.ActsGPUEventCnvConfig
import TracccMeasurementConverterAlgCfg
122 acc.merge(TracccMeasurementConverterAlgCfg(flags,
123 InputMeasurements=
"TracccMeasurementCollection",
124 InputClusters=
"TracccClusterCollection",
125 InputTracccCells=
"TracccCellCollection",
126 ConvertClustersWithCells = flags.Tracking.doTruth,
127 OutputPixelClusters=
"ITkPixelClusters",
128 OutputStripClusters=
"ITkStripClusters"
131 if seedsLocation
is DataLocation.DEVICE:
132 raise ValueError(
"Unsupported operation, we do not have this conversion yet")
135 from ActsConfig.ActsTrackFindingConfig
import ActsTrackFindingCfg
136 acc.merge(ActsTrackFindingCfg(flags))
139 if flags.Acts.doAmbiguityResolution:
140 from ActsConfig.ActsTrackFindingConfig
import ActsAmbiguityResolutionCfg
141 acc.merge(ActsAmbiguityResolutionCfg(flags))
145 from ActsConfig.ActsPrdAssociationConfig
import ActsPrdAssociationAlgCfg
146 acc.merge(ActsPrdAssociationAlgCfg(flags,
147 name = f
'{flags.Tracking.ActiveConfig.extension}PrdAssociationAlg',
148 previousActsExtension = previousExtension))
151 if flags.Tracking.doTruth:
154 from ActsConfig.ActsTruthConfig
import ActsTruthAssociationAlgCfg, ActsTruthParticleHitCountAlgCfg
155 acc.merge(ActsTruthAssociationAlgCfg(flags))
156 acc.merge(ActsTruthParticleHitCountAlgCfg(flags))
157 if flags.Acts.doTruthInspection:
158 from ActsConfig.ActsInspectTruthContentConfig
import ActsInspectTruthContentAlgCfg
159 acc.merge(ActsInspectTruthContentAlgCfg(flags))
165 if flags.Tracking.ActiveConfig.storeSiSPSeededTracks
or not flags.Acts.doAmbiguityResolution:
166 from ActsConfig.ActsTruthConfig
import ActsTrackToTruthAssociationAlgCfg, ActsTrackFindingValidationAlgCfg
167 acts_tracks = f
"{flags.Tracking.ActiveConfig.extension}Tracks"
168 acc.merge(ActsTrackToTruthAssociationAlgCfg(flags,
169 name = f
"{acts_tracks}TrackToTruthAssociationAlg",
170 ACTSTracksLocation = acts_tracks,
171 AssociationMapOut = f
"{acts_tracks}ToTruthParticleAssociation"))
173 acc.merge(ActsTrackFindingValidationAlgCfg(flags,
174 name = f
"{acts_tracks}TrackFindingValidationAlg",
175 TrackToTruthAssociationMap = f
"{acts_tracks}ToTruthParticleAssociation"))
179 if flags.Acts.doAmbiguityResolution:
180 acts_tracks = f
"{flags.Tracking.ActiveConfig.extension}ResolvedTracks"
181 from ActsConfig.ActsTruthConfig
import ActsTrackToTruthAssociationAlgCfg, ActsTrackFindingValidationAlgCfg
182 acc.merge(ActsTrackToTruthAssociationAlgCfg(flags,
183 name = f
"{acts_tracks}TrackToTruthAssociationAlg",
184 ACTSTracksLocation = acts_tracks,
185 AssociationMapOut = f
"{acts_tracks}ToTruthParticleAssociation"))
187 acc.merge(ActsTrackFindingValidationAlgCfg(flags,
188 name = f
"{acts_tracks}TrackFindingValidationAlg",
189 TrackToTruthAssociationMap = f
"{acts_tracks}ToTruthParticleAssociation"))