3 from AthenaConfiguration.ComponentAccumulator 
import ComponentAccumulator
 
    4 from InDetConfig.InDetTrackOutputConfig 
import FTAG_AUXDATA
 
    7     if extensions_list 
is None:
 
   10     from OutputStreamAthenaPool.OutputStreamConfig 
import addToESD, addToAOD
 
   15     excludedAuxData = (
'-clusterAssociation.-TTVA_AMVFVertices_forReco.-AssoClustersUFO' 
   16                        '.-TTVA_AMVFWeights_forReco')
 
   18     excludedAuxData += 
'.-'.
join([
''] + FTAG_AUXDATA)
 
   21     excludedAuxData += 
'.-TTVA_AMVFVertices.-TTVA_AMVFWeights' 
   24     from DerivationFrameworkInDet.IDTIDE 
import IDTIDE_AOD_EXCLUDED_AUXDATA
 
   25     excludedAuxData += 
'.-'.
join([
''] + IDTIDE_AOD_EXCLUDED_AUXDATA)
 
   26     from DerivationFrameworkInDet.IDTRKVALID 
import IDTRKVALID_AOD_EXCLUDED_AUXDATA
 
   27     excludedAuxData += 
'.-'.
join([
''] + IDTRKVALID_AOD_EXCLUDED_AUXDATA)
 
   29     if not flags.Tracking.writeExtendedSi_PRDInfo:
 
   30         excludedAuxData += 
'.-msosLink' 
   34         "InDet::SCT_ClusterContainer#ITkStripClusters",
 
   35         "InDet::PixelClusterContainer#ITkPixelClusters",
 
   36         "InDet::PixelGangedClusterAmbiguities#ITkPixelClusterAmbiguitiesMap",
 
   38     if flags.Tracking.doPixelClusterSplitting:
 
   40             "InDet::PixelGangedClusterAmbiguities#ITkSplitClusterAmbiguityMap"]
 
   42     from InDetConfig.ITkTrackRecoConfig 
import ITkClusterSplitProbabilityContainerName
 
   43     toESD += [
"Trk::ClusterSplitProbabilityContainer#" +
 
   47     if flags.Tracking.doTruth:
 
   49             "TrackTruthCollection#CombinedITkTracksTrackTruthCollection",
 
   50             "DetailedTrackTruthCollection#CombinedITkTracksDetailedTrackTruth"]
 
   52     if flags.Tracking.doStoreTrackSeeds:
 
   53         listOfExtensionsRequesting = [
 
   54             e 
for e 
in extensions_list
 
   55             if (e == 
'' or flags.Tracking[f
"ITk{e}Pass"].storeTrackSeeds) ]
 
   57         for extension 
in listOfExtensionsRequesting:
 
   58             toESD += [
"TrackCollection#SiSPSeedSegments"+extension]
 
   60     toESD += [
"TrackCollection#CombinedITkTracks"]
 
   64         "xAOD::TrackParticleContainer#InDetTrackParticles",
 
   65         f
"xAOD::TrackParticleAuxContainer#InDetTrackParticlesAux.{excludedAuxData}" 
   71         "xAOD::TrackParticleContainer#ActsInDetTrackParticles",
 
   72         f
"xAOD::TrackParticleAuxContainer#ActsInDetTrackParticlesAux.{excludedAuxData}"]
 
   74     if flags.Tracking.writeExtendedSi_PRDInfo:
 
   80             "xAOD::TrackMeasurementValidationContainer#ITkPixelMeasurements",
 
   81             "xAOD::TrackMeasurementValidationAuxContainer#ITkPixelMeasurementsAux.",
 
   82             "xAOD::TrackMeasurementValidationContainer#ITkStripMeasurements",
 
   83             "xAOD::TrackMeasurementValidationAuxContainer#ITkStripMeasurementsAux.",
 
   84             "xAOD::TrackStateValidationContainer#ITkPixelMSOSs",
 
   85             "xAOD::TrackStateValidationAuxContainer#ITkPixelMSOSsAux.",
 
   86             "xAOD::TrackStateValidationContainer#ITkStripMSOSs",
 
   87             "xAOD::TrackStateValidationAuxContainer#ITkStripMSOSsAux." 
   90         if flags.Tracking.doStoreSiSPSeededTracks:
 
   92                 "xAOD::TrackStateValidationContainer#SiSP_ITkPixel_MSOSs",
 
   93                 "xAOD::TrackStateValidationAuxContainer#SiSP_ITkPixel_MSOSsAux.",
 
   94                 "xAOD::TrackStateValidationContainer#SiSP_ITkStrip_MSOSs",
 
   95                 "xAOD::TrackStateValidationAuxContainer#SiSP_ITkStrip_MSOSsAux." 
   98     if (flags.Tracking.doLargeD0 
and 
   99             flags.Tracking.storeSeparateLargeD0Container):
 
  101             "xAOD::TrackParticleContainer#InDetLargeD0TrackParticles",
 
  102             f
"xAOD::TrackParticleAuxContainer#InDetLargeD0TrackParticlesAux.{excludedAuxData}" 
  105     if flags.Tracking.doStoreSiSPSeededTracks:
 
  107         listOfExtensionsRequesting = [
 
  108             e 
for e 
in extensions_list
 
  109             if (e == 
'' or flags.Tracking[f
"ITk{e}Pass"].storeSiSPSeededTracks) ]
 
  111         for extension 
in listOfExtensionsRequesting:
 
  113                 f
"xAOD::TrackParticleContainer#SiSPSeededTracks{extension}TrackParticles",
 
  114                 f
"xAOD::TrackParticleAuxContainer#SiSPSeededTracks{extension}TrackParticlesAux.{excludedAuxData}"]
 
  116     if flags.Tracking.doStoreTrackSeeds:
 
  118         listOfExtensionsRequesting = [
 
  119             e 
for e 
in extensions_list
 
  120             if (e == 
'' or flags.Tracking[f
"ITk{e}Pass"].storeTrackSeeds) ]
 
  121         for extension 
in listOfExtensionsRequesting:
 
  123                 f
"xAOD::TrackParticleContainer#SiSPSeedSegments{extension}PixelTrackParticles",
 
  124                 f
"xAOD::TrackParticleAuxContainer#SiSPSeedSegments{extension}PixelTrackParticlesAux.",
 
  125                 f
"xAOD::TrackParticleContainer#SiSPSeedSegments{extension}StripTrackParticles",
 
  126                 f
"xAOD::TrackParticleAuxContainer#SiSPSeedSegments{extension}StripTrackParticlesAux." 
  130     result.merge(
addToESD(flags, toAOD+toESD))
 
  131     result.merge(
addToAOD(flags, toAOD))