3from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
4from AthenaConfiguration.ComponentFactory
import CompFactory
5from AthenaCommon.Utils.unixtools
import find_datafile
6from ActsInterop
import UnitConstants
7from ActsConfig.ActsUtilities
import extractChildKwargs
11 collectionName: str) -> ComponentAccumulator:
12 acc = ComponentAccumulator()
14 AddressRemappingSvc = CompFactory.AddressRemappingSvc(
15 TypeKeyOverwriteMaps = [f
"InDetSimDataCollection#{collectionName}->InDetSimDataCollectionWrap#{collectionName}"]
17 acc.addService(AddressRemappingSvc)
22 name: str =
'ActsPixelClusterToTruthAssociationAlg',
23 **kwargs: dict) -> ComponentAccumulator:
24 acc = ComponentAccumulator()
27 kwargs.setdefault(
'InputTruthParticleLinks',
'xAODTruthLinks')
28 kwargs.setdefault(
'SimData',
'ITkPixelSDO_Map')
29 kwargs.setdefault(
'DepositedEnergyMin', 300)
30 kwargs.setdefault(
'Measurements',
'ITkPixelClusters')
31 kwargs.setdefault(
'AssociationMapOut',
'ITkPixelClustersToTruthParticles')
33 acc.addEventAlgo( CompFactory.ActsTrk.PixelClusterToTruthAssociationAlg(name=name, **kwargs) )
37 name: str =
'ActsStripClusterToTruthAssociationAlg',
38 **kwargs: dict) -> ComponentAccumulator:
39 acc = ComponentAccumulator()
42 kwargs.setdefault(
'InputTruthParticleLinks',
'xAODTruthLinks')
43 kwargs.setdefault(
'SimData',
'ITkStripSDO_Map')
44 kwargs.setdefault(
'DepositedEnergyMin', 600)
45 kwargs.setdefault(
'Measurements',
'ITkStripClusters')
46 kwargs.setdefault(
'AssociationMapOut',
'ITkStripClustersToTruthParticles')
48 acc.addEventAlgo( CompFactory.ActsTrk.StripClusterToTruthAssociationAlg(name=name, **kwargs) )
52 name: str =
'ActsHgtdClusterToTruthAssociationAlg',
53 **kwargs: dict) -> ComponentAccumulator:
54 acc = ComponentAccumulator()
57 kwargs.setdefault(
'InputTruthParticleLinks',
'xAODTruthLinks')
58 kwargs.setdefault(
'SimData',
'HGTD_SDO_Map')
59 kwargs.setdefault(
'DepositedEnergyMin', 600)
60 kwargs.setdefault(
'Measurements',
'HGTD_Clusters')
61 kwargs.setdefault(
'AssociationMapOut',
'HgtdClustersToTruthParticles')
63 acc.addEventAlgo( CompFactory.ActsTrk.HgtdClusterToTruthAssociationAlg(name=name, **kwargs) )
67 name: str =
'ActsInDetPixelClusterToTruthAssociationAlg',
68 **kwargs: dict) -> ComponentAccumulator:
70 acc = ComponentAccumulator()
73 kwargs.setdefault(
'InputTruthParticleLinks',
'xAODTruthLinks')
74 kwargs.setdefault(
'SimData',
'PixelSDO_Map')
75 kwargs.setdefault(
'DepositedEnergyMin', 300)
76 kwargs.setdefault(
'Measurements',
'PixelClusters')
77 kwargs.setdefault(
'AssociationMapOut',
'PixelClustersToTruthParticles')
79 acc.addEventAlgo( CompFactory.ActsTrk.PixelClusterToTruthAssociationAlg(name=name, **kwargs) )
83 name: str =
'ActsInDetStripClusterToTruthAssociationAlg',
84 **kwargs: dict) -> ComponentAccumulator:
86 acc = ComponentAccumulator()
89 kwargs.setdefault(
'InputTruthParticleLinks',
'xAODTruthLinks')
90 kwargs.setdefault(
'SimData',
'SCT_SDO_Map')
91 kwargs.setdefault(
'DepositedEnergyMin', 600)
92 kwargs.setdefault(
'Measurements',
'SCT_Clusters')
93 kwargs.setdefault(
'AssociationMapOut',
'SCT_ClustersToTruthParticles')
95 acc.addEventAlgo( CompFactory.ActsTrk.StripClusterToTruthAssociationAlg(name=name, **kwargs) )
103 if doInner
and flags.Detector.EnablePixel:
104 assocKeys += [
'PixelClustersToTruthParticles']
105 if doInner
and flags.Detector.EnableSCT:
106 assocKeys += [
'SCT_ClustersToTruthParticles']
107 if doInner
and flags.Detector.EnableITkPixel:
108 assocKeys += [
'ITkPixelClustersToTruthParticles']
109 if doInner
and flags.Detector.EnableITkStrip:
110 assocKeys += [
'ITkStripClustersToTruthParticles']
111 if doInner
and flags.Reco.EnableHGTDExtension
and flags.Acts.useHGTDClusterInTrackFinding:
112 assocKeys +=[
'HgtdClustersToTruthParticles']
113 if doMuon
and flags.Muon.usePhaseIIGeoSetup:
114 from MuonConfig.MuonDataPrepConfig
import PrimaryMeasContNamesCfg
115 assocKeys+=[f
"{cont}_TruthAssocMap" for cont
in PrimaryMeasContNamesCfg(flags)]
120 name: str =
'ActsTracksToTruthAssociationAlg',
121 doInner:bool =
True, doMuon: bool =
False,
122 **kwargs: dict) -> ComponentAccumulator:
123 acc = ComponentAccumulator()
124 if doInner
and flags.Detector.GeometryITk:
126 elif doInner
and flags.Detector.GeometryID:
129 kwargs.setdefault(
'ACTSTracksLocation',
'ActsTracks')
131 kwargs.setdefault(
'AssociationMapOut',
'ActsTracksToTruthParticles')
132 kwargs.setdefault(
'MaxEnergyLoss',1e3*UnitConstants.TeV)
133 acc.addEventAlgo( CompFactory.ActsTrk.TrackToTruthAssociationAlg(name=name, **kwargs) )
137 name: str =
'ActsInDetTracksToTruthAssociationAlg',
138 **kwargs: dict) -> ComponentAccumulator:
142 name: str =
'ActsTruthParticleHitCountAlg',
143 doInner:bool =
True, doMuon: bool =
False,
144 **kwargs: dict) -> ComponentAccumulator:
145 acc = ComponentAccumulator()
146 if doInner
and flags.Detector.GeometryITk:
148 elif doInner
and flags.Detector.GeometryID:
152 kwargs.setdefault(
'TruthParticleHitCountsOut',
'TruthParticleHitCounts')
153 kwargs.setdefault(
'MaxEnergyLoss',1e3*UnitConstants.TeV)
154 kwargs.setdefault(
'NHitsMin',4)
157 acc.addEventAlgo( CompFactory.ActsTrk.TruthParticleHitCountAlg(name=name, **kwargs) )
161 name: str =
'ActsInDetTruthParticleHitCountAlg',
162 **kwargs: dict) -> ComponentAccumulator:
166 **kwargs: dict) -> ComponentAccumulator:
167 acc = ComponentAccumulator()
169 if flags.Detector.EnablePixel:
172 if flags.Detector.EnableSCT:
175 if flags.Detector.EnableITkPixel:
178 if flags.Detector.EnableITkStrip:
181 if flags.Reco.EnableHGTDExtension
and flags.Acts.useHGTDClusterInTrackFinding:
187 matchWeights = [0.
for d
in range(UncalibMeasType.nTypes)]
188 countWeights = [0.
for d
in range(UncalibMeasType.nTypes)]
189 matchWeights[UncalibMeasType.PixelClusterType] = 10.
190 matchWeights[UncalibMeasType.StripClusterType] = 5.
193 matchWeights[UncalibMeasType.MdtDriftCircleType] = 1.
194 matchWeights[UncalibMeasType.MMClusterType] = 1.
195 matchWeights[UncalibMeasType.sTgcStripType] = 1.
196 matchWeights[UncalibMeasType.RpcStripType] = 1.
197 matchWeights[UncalibMeasType.TgcStripType] = 1.
199 countWeights[UncalibMeasType.PixelClusterType] = 1.
200 countWeights[UncalibMeasType.StripClusterType] = 1.
201 countWeights[UncalibMeasType.MdtDriftCircleType] = 1.
202 countWeights[UncalibMeasType.RpcStripType] = 0.5
203 countWeights[UncalibMeasType.TgcStripType] = 0.5
204 countWeights[UncalibMeasType.MMClusterType] = 0.25
205 countWeights[UncalibMeasType.sTgcStripType] = 0.25
207 kwargs.setdefault(
'MatchWeights',matchWeights)
208 kwargs.setdefault(
'CountWeights', countWeights)
209 kwargs.setdefault(
'StatisticPtBins',[1e3,2.5e3,5e3,10e3,100e3])
210 kwargs.setdefault(
'ShowDetailedTables',
False)
211 kwargs.setdefault(
'PdgIdCategorisation',
False)
212 kwargs.setdefault(
'StatisticEtaBins',[eta/10.
for eta
in range(5, 40, 5)])
215 name: str =
'ActsTrackParticleTruthDecorationAlg',
216 **kwargs: dict) -> ComponentAccumulator:
217 acc = ComponentAccumulator()
218 kwargs.setdefault(
'TrackToTruthAssociationMaps',
'ActsCombinedTracksToTruthParticleAssociation')
219 kwargs.setdefault(
'TrackParticleContainerName',
'ActsCombinedTracksParticlesAlt')
220 kwargs.setdefault(
'TruthParticleHitCounts',
'TruthParticleHitCounts')
223 kwargs.setdefault(
'TruthLinkedFakeRate', flags.Acts.truthLinkedFakeRate)
224 kwargs.setdefault(
'ComputeTrackRecoEfficiency',
False)
226 if 'TruthSelectionTool' not in kwargs:
228 from InDetPhysValMonitoring.InDetPhysValMonitoringConfig
import InDetRttTruthSelectionToolCfg
229 kwargs.setdefault(
"TruthSelectionTool", acc.popToolsAndMerge(
230 InDetRttTruthSelectionToolCfg(flags,
231 name=
'RelaxedInDetRttTruthSelectionTool',
232 requireOnlyPrimary=
False,
237 if 'MCTruthClassifier' not in kwargs:
238 from MCTruthClassifier.MCTruthClassifierConfig
import MCTruthClassifierCfg
239 kwargs.setdefault(
"MCTruthClassifier", acc.popToolsAndMerge(
240 MCTruthClassifierCfg(flags)))
242 acc.addEventAlgo( CompFactory.ActsTrk.TrackParticleTruthDecorationAlg(name=name, **kwargs) )
246 name: str =
'ActsTracksValidationAlg',
247 **kwargs: dict) -> ComponentAccumulator:
248 acc = ComponentAccumulator()
249 kwargs.setdefault(
'TruthParticleHitCounts',
'TruthParticleHitCounts')
250 kwargs.setdefault(
'TrackToTruthAssociationMap',
'ActsTracksToTruthParticles')
252 kwargs.setdefault(
'TruthLinkedFakeRate', flags.Acts.truthLinkedFakeRate)
253 kwargs.setdefault(
'ComputeTrackRecoEfficiency',
True)
255 if 'TruthSelectionTool' not in kwargs:
256 from InDetPhysValMonitoring.InDetPhysValMonitoringConfig
import InDetRttTruthSelectionToolCfg
257 kwargs.setdefault(
"TruthSelectionTool", acc.popToolsAndMerge(
258 InDetRttTruthSelectionToolCfg(flags)))
260 acc.addEventAlgo( CompFactory.ActsTrk.TrackFindingValidationAlg(name=name, **kwargs) )
265 name: str =
"TruthTrackBuilderTool",
266 **kwargs: dict) -> ComponentAccumulator:
268 acc = ComponentAccumulator()
270 kwargs.setdefault(
"usePixelClusters", flags.Acts.Gbts.Training.usePixelClusters)
271 kwargs.setdefault(
"useStripClusters", flags.Acts.Gbts.Training.useStripClusters)
274 CompFactory.ActsTrk.TruthTrackBuilderTool(
283 name: str =
"ActsGbtsTrainingAlg",
284 **kwargs: dict) -> ComponentAccumulator:
285 acc = ComponentAccumulator()
287 if "TruthTrackBuilderTool" not in kwargs:
289 "TruthTrackBuilderTool",
290 acc.popToolsAndMerge(
295 kwargs.setdefault(
"geometryFile", find_datafile(
"gbts_layer_geometry.txt"))
296 kwargs.setdefault(
"outputConnectionTable", flags.Acts.Gbts.Training.outputConnectionTable)
297 kwargs.setdefault(
"doSymmetrization", flags.Acts.Gbts.Training.doSymmetrization)
298 kwargs.setdefault(
"useOldFormatting", flags.Acts.Gbts.Training.useOldFormatting)
299 kwargs.setdefault(
"probThreshold", flags.Acts.Gbts.Training.probThreshold)
302 CompFactory.ActsTrk.GbtsTrainingAlg(name=name, **kwargs)
ComponentAccumulator ActsTruthTrackBuilderToolCfg(flags, str name="TruthTrackBuilderTool", **dict kwargs)
ComponentAccumulator ActsTruthAssociationAlgCfg(flags, **dict kwargs)
setDefaultTruthMatchingArgs(kwargs)
ComponentAccumulator ActsTrackParticleTruthDecorationAlgCfg(flags, str name='ActsTrackParticleTruthDecorationAlg', **dict kwargs)
ComponentAccumulator ActsGbtsTrainingAlgCfg(flags, str name="ActsGbtsTrainingAlg", **dict kwargs)
ComponentAccumulator ActsInDetPixelClusterToTruthAssociationAlgCfg(flags, str name='ActsInDetPixelClusterToTruthAssociationAlg', **dict kwargs)
ComponentAccumulator ActsInDetStripClusterToTruthAssociationAlgCfg(flags, str name='ActsInDetStripClusterToTruthAssociationAlg', **dict kwargs)
ComponentAccumulator ActsStripClusterToTruthAssociationAlgCfg(flags, str name='ActsStripClusterToTruthAssociationAlg', **dict kwargs)
ComponentAccumulator ActsTrackToTruthAssociationAlgCfg(flags, str name='ActsTracksToTruthAssociationAlg', bool doInner=True, bool doMuon=False, **dict kwargs)
ComponentAccumulator ActsPixelClusterToTruthAssociationAlgCfg(flags, str name='ActsPixelClusterToTruthAssociationAlg', **dict kwargs)
ComponentAccumulator ActsInDetTruthParticleHitCountAlgCfg(flags, str name='ActsInDetTruthParticleHitCountAlg', **dict kwargs)
ComponentAccumulator ActsTruthParticleHitCountAlgCfg(flags, str name='ActsTruthParticleHitCountAlg', bool doInner=True, bool doMuon=False, **dict kwargs)
_truthAssociationKeysCfg(flags, bool doInner=True, bool doMuon=False)
Assemble the list of truth association keys for the TruthHitCount and the Track -> truth association ...
ComponentAccumulator ActsTrackFindingValidationAlgCfg(flags, str name='ActsTracksValidationAlg', **dict kwargs)
ComponentAccumulator ActsHgtdClusterToTruthAssociationAlgCfg(flags, str name='ActsHgtdClusterToTruthAssociationAlg', **dict kwargs)
ComponentAccumulator ActsInDetTrackToTruthAssociationAlgCfg(flags, str name='ActsInDetTracksToTruthAssociationAlg', **dict kwargs)
ComponentAccumulator MapToInDetSimDataWrapSvcCfg(flags, *, str collectionName)