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 ) )