3 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
10 if flags.Acts.EDM.PersistifyClusters
or flags.Acts.EDM.PersistifySpacePoints:
11 pixel_cluster_shortlist = [
'-pixelClusterLink']
12 strip_cluster_shortlist = [
'-sctClusterLink']
14 pixel_cluster_variables =
'.'.
join(pixel_cluster_shortlist)
15 strip_cluster_variables =
'.'.
join(strip_cluster_shortlist)
17 toAOD += [
'xAOD::PixelClusterContainer#ITkPixelClusters',
18 'xAOD::PixelClusterAuxContainer#ITkPixelClustersAux.' + pixel_cluster_variables,
19 'xAOD::StripClusterContainer#ITkStripClusters',
20 'xAOD::StripClusterAuxContainer#ITkStripClustersAux.' + strip_cluster_variables]
22 if flags.Reco.EnableHGTDExtension:
23 hgtd_cluster_shortlist = [
'-hgtdClusterLink']
25 hgtd_cluster_variables =
'.'.
join(hgtd_cluster_shortlist)
27 toAOD += [
'xAOD::HGTDClusterContainer#HGTD_Clusters',
28 'xAOD::HGTDClusterAuxContainer#HGTD_ClustersAux.' + hgtd_cluster_variables]
30 if flags.Acts.doITkConversion:
31 toAOD += [
'xAOD::StripClusterContainer#ITkConversionStripClusters',
32 'xAOD::StripClusterAuxContainer#ITkConversionStripClustersAux.' + strip_cluster_variables]
34 if flags.Acts.EDM.PersistifySpacePoints:
35 pixel_spacepoint_shortlist = [
'-measurements',
36 '-pixelSpacePointLink']
37 strip_spacepoint_shortlist = [
'topHalfStripLength',
38 'bottomHalfStripLength',
40 'bottomStripDirection',
41 'stripCenterDistance',
45 pixel_spacepoint_variables =
'.'.
join(pixel_spacepoint_shortlist)
46 strip_spacepoint_variables =
'.'.
join(strip_spacepoint_shortlist)
48 toAOD += [
'xAOD::SpacePointContainer#ITkPixelSpacePoints',
49 'xAOD::SpacePointAuxContainer#ITkPixelSpacePointsAux.' + pixel_spacepoint_variables,
50 'xAOD::SpacePointContainer#ITkStripSpacePoints',
51 'xAOD::SpacePointAuxContainer#ITkStripSpacePointsAux.' + strip_spacepoint_variables,
52 'xAOD::SpacePointContainer#ITkStripOverlapSpacePoints',
53 'xAOD::SpacePointAuxContainer#ITkStripOverlapSpacePointsAux.' + strip_spacepoint_variables]
55 if flags.Acts.EDM.PersistifyTracks:
56 trackPrefixes = [
'Acts',
'ActsResolved',
57 'ActsLargeRadius',
'ActsLargeRadiusResolved',
58 'ActsConversion',
'ActsConversionResolved',
59 'ActsHeavyIon',
'ActsHeavyIonResolved']
60 for prefix
in trackPrefixes:
61 toAOD += [f
"xAOD::TrackSummaryContainer#{prefix}TrackSummary",
62 f
"xAOD::TrackSummaryAuxContainer#{prefix}TrackSummaryAux.",
63 f
"xAOD::TrackStateContainer#{prefix}TrackStates",
64 f
"xAOD::TrackStateAuxContainer#{prefix}TrackStatesAux.-uncalibratedMeasurement",
65 f
"xAOD::TrackParametersContainer#{prefix}TrackParameters",
66 f
"xAOD::TrackParametersAuxContainer#{prefix}TrackParametersAux.",
67 f
"xAOD::TrackJacobianContainer#{prefix}TrackJacobians",
68 f
"xAOD::TrackJacobianAuxContainer#{prefix}TrackJacobiansAux.",
69 f
"xAOD::TrackMeasurementContainer#{prefix}TrackMeasurements",
70 f
"xAOD::TrackMeasurementAuxContainer#{prefix}TrackMeasurementsAux.",
71 f
"xAOD::TrackSurfaceContainer#{prefix}TrackStateSurfaces",
72 f
"xAOD::TrackSurfaceAuxContainer#{prefix}TrackStateSurfacesAux.",
73 f
"xAOD::TrackSurfaceContainer#{prefix}TrackSurfaces",
74 f
"xAOD::TrackSurfaceAuxContainer#{prefix}TrackSurfacesAux."]
77 trackCnvPrefixes = [
"Acts"]
78 trackparticles_shortlist = []
if flags.Acts.EDM.PersistifyTracks
else [
'-actsTrack']
79 trackparticles_variables =
".".
join(trackparticles_shortlist)
80 for prefix
in trackCnvPrefixes:
81 toAOD += [f
"xAOD::TrackParticleContainer#InDet{prefix}TrackParticles",
82 f
"xAOD::TrackParticleAuxContainer#InDet{prefix}TrackParticlesAux." + trackparticles_variables]
88 from OutputStreamAthenaPool.OutputStreamConfig
import addToAOD
95 if flags.Tracking.PRDInfo.KeepOnlyOnTrackMeasurements:
96 raise ValueError(
"The ACTSClusterPostInclude is to be used for technical efficiency computation, however the " \
97 f
"config flag 'Tracking.PRDInfo.KeepOnlyOnTrackMeasurements' is set to {flags.Tracking.PRDInfo.KeepOnlyOnTrackMeasurements}, " \
98 "which is incompatible with this purpose")
103 from ActsConfig.ActsRegionsOfInterestConfig
import ActsMainRegionsOfInterestCreatorAlgCfg
105 name =
"ActsOfflineRegionsOfInterestCreatorAlg",
106 RoIs =
"ActsOfflineRegionOfInterest"))
110 clusteringKwargs = dict()
111 clusteringKwargs[
"PixelClusterizationAlg.name"] =
"ActsOfflinePixelClusterizationAlg"
112 clusteringKwargs[
"PixelClusterizationAlg.ClustersKey"] =
"ITkOfflinePixelClusters"
113 clusteringKwargs[
"StripClusterizationAlg.name"] =
"ActsOfflineStripClusterizationAlg"
114 clusteringKwargs[
"StripClusterizationAlg.ClustersKey"] =
"ITkOfflineStripClusters"
115 from ActsConfig.ActsClusterizationConfig
import ActsMainClusterizationCfg
117 RoIs =
"ActsOfflineRegionOfInterest",
122 if flags.Tracking.doTruth:
123 truthAssociationKwargs = dict()
124 truthAssociationKwargs[
"PixelClusterToTruthAssociationAlg.name"] =
"ActsOfflinePixelClusterToTruthAssociationAlg"
125 truthAssociationKwargs[
"PixelClusterToTruthAssociationAlg.Measurements"] =
"ITkOfflinePixelClusters"
126 truthAssociationKwargs[
"PixelClusterToTruthAssociationAlg.AssociationMapOut"] =
"ITkOfflinePixelClustersToTruthParticles"
127 truthAssociationKwargs[
"StripClusterToTruthAssociationAlg.name"] =
"ActsOfflineStripClusterToTruthAssociationAlg"
128 truthAssociationKwargs[
"StripClusterToTruthAssociationAlg.Measurements"] =
"ITkOfflineStripClusters"
129 truthAssociationKwargs[
"StripClusterToTruthAssociationAlg.AssociationMapOut"] =
"ITkOfflineStripClustersToTruthParticles"
131 from ActsConfig.ActsTruthConfig
import ActsTruthAssociationAlgCfg, ActsTruthParticleHitCountAlgCfg
133 **truthAssociationKwargs))
135 name =
"ActsOfflineTruthParticleHitCountAlg",
136 PixelClustersToTruthAssociationMap =
"ITkOfflinePixelClustersToTruthParticles",
137 StripClustersToTruthAssociationMap =
"ITkOfflineStripClustersToTruthParticles",
138 TruthParticleHitCountsOut =
"OfflineTruthParticleHitCounts"))
140 from InDetConfig.InDetPrepRawDataToxAODConfig
import TruthParticleIndexDecoratorAlgCfg
143 from ActsConfig.ActsObjectDecorationConfig
import ActsPixelClusterTruthDecoratorAlgCfg,ActsStripClusterTruthDecoratorAlgCfg
145 name =
"ActsOfflinePixelClusterTruthDecoratorAlgCfg",
146 ClusterContainer =
"ITkOfflinePixelClusters",
147 AssociationMapOut =
"ITkOfflinePixelClustersToTruthParticles",
148 MeasurementContainer =
"ITkPixelMeasurements_offl"))
150 name =
"ActsOfflineStripClusterTruthDecoratorAlgCfg",
151 ClusterContainer =
"ITkOfflineStripClusters",
152 AssociationMapOut =
"ITkOfflineStripClustersToTruthParticles",
153 MeasurementContainer =
"ITkStripMeasurements_offl"))
157 'xAOD::TrackMeasurementValidationContainer#ITkPixelMeasurements_offl',
158 'xAOD::TrackMeasurementValidationAuxContainer#ITkPixelMeasurements_offlAux.',
159 'xAOD::TrackMeasurementValidationContainer#ITkStripMeasurements_offl',
160 'xAOD::TrackMeasurementValidationAuxContainer#ITkStripMeasurements_offlAux.'
163 from OutputStreamAthenaPool.OutputStreamConfig
import addToAOD
164 acc.merge(
addToAOD( flags, toAOD ) )