ATLAS Offline Software
Loading...
Searching...
No Matches
ActsObjectDecorationConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2
3from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4from AthenaConfiguration.ComponentFactory import CompFactory
5
6
8 name: str = "ActsTrackStateOnSurfaceDecoratorAlg",
9 **kwargs) -> ComponentAccumulator:
10 acc = ComponentAccumulator()
11
12 kwargs.setdefault('TrackParticles', 'InDetTrackParticles')
13 kwargs.setdefault('PixelMSOSs', 'ITkPixelMSOSs')
14 kwargs.setdefault('StripMSOSs', 'ITkStripMSOSs')
15 kwargs.setdefault('ExtraInputs',[
16 ( 'xAOD::PixelClusterContainer' , 'StoreGateSvc+ITkPixelClusters.validationMeasurementLink' ),
17 ( 'xAOD::StripClusterContainer' , 'StoreGateSvc+ITkStripClusters.validationMeasurementLink' ),
18 ( 'xAOD::TrackMeasurementValidationContainer' , 'StoreGateSvc+ITkPixelMeasurements' ),
19 ( 'xAOD::TrackMeasurementValidationContainer' , 'StoreGateSvc+ITkStripMeasurements' )
20 ])
21
22 acc.addEventAlgo(CompFactory.ActsTrk.ActsTrackStateOnSurfaceDecoratorAlg(name, **kwargs))
23
24 toAOD = []
25 toAOD += [f'xAOD::TrackStateValidationContainer#{kwargs["PixelMSOSs"]}',
26 f'xAOD::TrackStateValidationAuxContainer#{kwargs["PixelMSOSs"]}Aux.',
27 f'xAOD::TrackStateValidationContainer#{kwargs["StripMSOSs"]}',
28 f'xAOD::TrackStateValidationAuxContainer#{kwargs["StripMSOSs"]}Aux.']
29
30 from OutputStreamAthenaPool.OutputStreamConfig import addToAOD
31 acc.merge(addToAOD(flags, toAOD))
32 return acc
33
34
36 name: str = "ActsMeasurementToTrackParticleDecorationAlg",
37 **kwargs) -> ComponentAccumulator:
38 acc = ComponentAccumulator()
39 kwargs.setdefault("TrackParticleKey", "InDetTrackParticles")
40
41 # TODO:: The tracking geometry tool is not strictly necessary
42 # but can provide extra information on surfaces if needed in the future
43
44 if 'TrackingGeometryTool' not in kwargs:
45 from ActsConfig.ActsGeometryConfig import ActsTrackingGeometryToolCfg
46 kwargs.setdefault(
47 "TrackingGeometryTool",
48 acc.getPrimaryAndMerge(ActsTrackingGeometryToolCfg(flags)),
49 )
50
51 acc.addEventAlgo(CompFactory.ActsTrk.MeasurementToTrackParticleDecorationAlg(name, **kwargs))
52 return acc
53
54
56 name: str = "ActsPixelClusterTruthDecoratorAlg",
57 *,
58 TrackParticles: list[str] = None,
59 **kwargs) -> ComponentAccumulator:
60 acc = ComponentAccumulator()
61 kwargs.setdefault("ClusterContainer","ITkPixelClusters")
62 kwargs.setdefault("AssociationMapOut","ITkPixelClustersToTruthParticles")
63 kwargs.setdefault("MeasurementContainer","ITkPixelMeasurements")
64 kwargs.setdefault("UseTruthInfo", flags.Tracking.doTruth)
65
66 if flags.Tracking.PRDInfo.KeepOnlyOnTrackMeasurements:
67 if TrackParticles is None:
68 raise ValueError("Requesting persistification of on-track clusters, but no track particle collection has been provided!")
69
70 kwargs.setdefault("KeepOnlyOnTrackMeasurements", True)
71 kwargs.setdefault("TrackParticles", TrackParticles)
72
73 deps = []
74 for collection in TrackParticles:
75 deps += [( 'xAOD::TrackParticleContainer' , f'StoreGateSvc+{collection}.actsTrack' )]
76 kwargs.setdefault('ExtraInputs', deps)
77
78 if "LorentzAngleTool" not in kwargs:
79 from SiLorentzAngleTool.ITkPixelLorentzAngleConfig import ITkPixelLorentzAngleToolCfg
80 kwargs.setdefault("LorentzAngleTool", acc.popToolsAndMerge( ITkPixelLorentzAngleToolCfg(flags) ))
81
82 acc.addEventAlgo(CompFactory.ActsTrk.PixelClusterTruthDecoratorAlg(name,**kwargs))
83
84 # add SDO and SiHit info
85 if flags.Acts.decoratePRD.sdoSiHit:
87
88 # Persistification
89 if flags.Tracking.writeExtendedSi_PRDInfo:
90 toAOD = [
91 f'xAOD::TrackMeasurementValidationContainer#{kwargs["MeasurementContainer"]}',
92 f'xAOD::TrackMeasurementValidationAuxContainer#{kwargs["MeasurementContainer"]}Aux.'
93 ]
94 from OutputStreamAthenaPool.OutputStreamConfig import addToAOD
95 acc.merge(addToAOD(flags, toAOD))
96
97 return acc
98
99
101 name: str = "ActsStripClusterTruthDecoratorAlg",
102 *,
103 TrackParticles: list[str] = None,
104 **kwargs) -> ComponentAccumulator:
105 acc = ComponentAccumulator()
106 kwargs.setdefault("ClusterContainer","ITkStripClusters")
107 kwargs.setdefault("AssociationMapOut","ITkStripClustersToTruthParticles")
108 kwargs.setdefault("MeasurementContainer","ITkStripMeasurements")
109
110 if flags.Tracking.PRDInfo.KeepOnlyOnTrackMeasurements:
111 if TrackParticles is None:
112 raise ValueError("Requesting persistification of on-track clusters, but no track particle collection has been provided!")
113
114 kwargs.setdefault("KeepOnlyOnTrackMeasurements", True)
115 kwargs.setdefault("TrackParticles", TrackParticles)
116
117 deps = []
118 for collection in TrackParticles:
119 deps += [( 'xAOD::TrackParticleContainer' , f'StoreGateSvc+{collection}.actsTrack' )]
120 kwargs.setdefault('ExtraInputs', deps)
121
122 acc.addEventAlgo(CompFactory.ActsTrk.StripClusterTruthDecoratorAlg(name,**kwargs))
123
124 if flags.Acts.decoratePRD.sdoSiHit:
126
127 # Persistification
128 if flags.Tracking.writeExtendedSi_PRDInfo:
129 toAOD = [
130 f'xAOD::TrackMeasurementValidationContainer#{kwargs["MeasurementContainer"]}',
131 f'xAOD::TrackMeasurementValidationAuxContainer#{kwargs["MeasurementContainer"]}Aux.'
132 ]
133 from OutputStreamAthenaPool.OutputStreamConfig import addToAOD
134 acc.merge(addToAOD(flags, toAOD))
135
136 return acc
137
139 name: str = "ActsPixelClusterSiHitDecoratorAlg",
140 **kwargs) -> ComponentAccumulator:
141 acc = ComponentAccumulator()
142 kwargs.setdefault('Measurements', 'ITkPixelMeasurements')
143 kwargs.setdefault('SDOs', 'ITkPixelSDO_Map')
144 kwargs.setdefault('SiHits', 'ITkPixelHits')
145 acc.addEventAlgo(CompFactory.ActsTrk.PixelClusterSiHitDecoratorAlg(name, **kwargs))
146 return acc
147
149 name: str = "ActsStripClusterSiHitDecoratorAlg",
150 **kwargs) -> ComponentAccumulator:
151 acc = ComponentAccumulator()
152 kwargs.setdefault('Measurements', 'ITkStripMeasurements')
153 kwargs.setdefault('SDOs', 'ITkStripSDO_Map')
154 kwargs.setdefault('SiHits', 'ITkStripHits')
155 acc.addEventAlgo(CompFactory.ActsTrk.StripClusterSiHitDecoratorAlg(name, **kwargs))
156 return acc
ComponentAccumulator ActsStripClusterTruthDecoratorAlgCfg(flags, str name="ActsStripClusterTruthDecoratorAlg", *, list[str] TrackParticles=None, **kwargs)
ComponentAccumulator ActsPixelClusterSiHitDecoratorAlgCfg(flags, str name="ActsPixelClusterSiHitDecoratorAlg", **kwargs)
ComponentAccumulator ActsPixelClusterTruthDecoratorAlgCfg(flags, str name="ActsPixelClusterTruthDecoratorAlg", *, list[str] TrackParticles=None, **kwargs)
ComponentAccumulator ActsTrackStateOnSurfaceDecoratorAlgCfg(flags, str name="ActsTrackStateOnSurfaceDecoratorAlg", **kwargs)
ComponentAccumulator ActsStripClusterSiHitDecoratorAlgCfg(flags, str name="ActsStripClusterSiHitDecoratorAlg", **kwargs)
ComponentAccumulator ActsMeasurementToTrackParticleDecorationAlgCfg(flags, str name="ActsMeasurementToTrackParticleDecorationAlg", **kwargs)