diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkCore/python/DerivationFrameworkProdFlags.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkCore/python/DerivationFrameworkProdFlags.py
index 765154d5141db0e5140308b300302912a170892d..21b27cc57f388b39a4093c973da9eddcd0d7f01b 100644
--- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkCore/python/DerivationFrameworkProdFlags.py
+++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkCore/python/DerivationFrameworkProdFlags.py
@@ -2011,6 +2011,20 @@ class WriteDAOD_FTAG5Stream (JobProperty):
 jobproperties.DerivationFrameworkProdFlags.add_JobProperty(WriteDAOD_FTAG5Stream)
 listAODtoDPD.append(WriteDAOD_FTAG5Stream.StreamName)
 
+class WriteDAOD_FTAG6Stream (JobProperty):
+    """FTAG5: MC-based optimization studies"""
+    statusOn = True
+    allowedTypes = ['bool']
+    StoredValue = False
+    StreamName = 'StreamDAOD_FTAG6'
+    FileName = ''
+    isVirtual = False
+    DPDMakerScript = "DerivationFrameworkFlavourTag/FTAG6.py"
+    pass
+jobproperties.DerivationFrameworkProdFlags.add_JobProperty(WriteDAOD_FTAG6Stream)
+listAODtoDPD.append(WriteDAOD_FTAG6Stream.StreamName)
+
+
 ######################################
 # Defined by the B-physics group
 ######################################
diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/share/FTAG6.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/share/FTAG6.py
new file mode 100644
index 0000000000000000000000000000000000000000..612d7b8e91fc06a78e89411671f228bf1716e438
--- /dev/null
+++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/share/FTAG6.py
@@ -0,0 +1,358 @@
+# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
+
+#====================================================================
+# DAOD_FTAG6.py
+# This defines DAOD_FTAG6, an unskimmed DAOD format for Run 3.
+# It contains inputs for the flavor tagging algorithms training.
+# It requires the reductionConf flag FTAG6 in Reco_tf.py
+#====================================================================
+
+from DerivationFrameworkCore.DerivationFrameworkMaster import buildFileName, DerivationFrameworkIsMonteCarlo, DerivationFrameworkJob
+from DerivationFrameworkInDet import InDetCommon
+from DerivationFrameworkJetEtMiss.JetCommon import OutputJets
+from DerivationFrameworkJetEtMiss.ExtendedJetCommon import replaceAODReducedJets, addDefaultTrimmedJets, addJetTruthLabel, addQGTaggerTool
+from DerivationFrameworkJetEtMiss import METCommon
+from DerivationFrameworkEGamma import EGammaCommon
+from DerivationFrameworkEGamma import ElectronsCPDetailedContent
+from DerivationFrameworkMuons import MuonsCommon
+from TriggerMenu.api.TriggerAPI import TriggerAPI
+from TriggerMenu.api.TriggerEnums import TriggerPeriod, TriggerType
+from DerivationFrameworkTrigger.TriggerMatchingHelper import TriggerMatchingHelper
+
+#====================================================================
+# SET UP STREAM
+#====================================================================
+streamName = derivationFlags.WriteDAOD_FTAG6Stream.StreamName
+fileName   = buildFileName( derivationFlags.WriteDAOD_FTAG6Stream )
+FTAG6Stream = MSMgr.NewPoolRootStream( streamName, fileName )
+FTAG6Stream.AcceptAlgs(["FTAG6Kernel"])
+
+### Thinning and augmentation tools lists
+thinningTools       = []
+AugmentationTools   = []
+
+# Special sequence
+SeqFTAG6 = CfgMgr.AthSequencer("SeqFTAG6")
+
+#====================================================================
+# MONTE CARLO TRUTH
+#====================================================================
+if (DerivationFrameworkIsMonteCarlo):
+   from DerivationFrameworkMCTruth.MCTruthCommon import addStandardTruthContents,addMiniTruthCollectionLinks,addHFAndDownstreamParticles,addPVCollection
+   #import DerivationFrameworkHiggs.TruthCategories
+   # Add charm quark collection
+   from DerivationFrameworkMCTruth.DerivationFrameworkMCTruthConf import DerivationFramework__TruthCollectionMaker
+   FTAG6TruthCharmTool = DerivationFramework__TruthCollectionMaker(name                    = "FTAG6TruthCharmTool",
+                                                                  NewCollectionName       = "TruthCharm",
+                                                                  KeepNavigationInfo      = False,
+                                                                  ParticleSelectionString = "(abs(TruthParticles.pdgId) == 4)",
+                                                                  Do_Compress             = True)
+   ToolSvc += FTAG6TruthCharmTool
+   #from DerivationFrameworkCore.DerivationFrameworkCoreConf import DerivationFramework__CommonAugmentation
+   SeqFTAG6 += CfgMgr.DerivationFramework__CommonAugmentation("FTAG6TruthCharmKernel",AugmentationTools=[FTAG6TruthCharmTool])
+   # Add HF particles
+   addHFAndDownstreamParticles(SeqFTAG6)
+   # Add standard truth
+   addStandardTruthContents(SeqFTAG6,prefix='FTAG6_')
+   # Update to include charm quarks and HF particles - require a separate instance to be train safe
+   from DerivationFrameworkMCTruth.DerivationFrameworkMCTruthConf import DerivationFramework__TruthNavigationDecorator
+   FTAG6TruthNavigationDecorator = DerivationFramework__TruthNavigationDecorator( name="FTAG6TruthNavigationDecorator",
+          InputCollections=["TruthElectrons", "TruthMuons", "TruthPhotons", "TruthTaus", "TruthNeutrinos", "TruthBSM", "TruthBottom", "TruthTop", "TruthBoson","TruthCharm","TruthHFWithDecayParticles"])
+   ToolSvc += FTAG6TruthNavigationDecorator
+   SeqFTAG6.FTAG6_MCTruthNavigationDecoratorKernel.AugmentationTools = [FTAG6TruthNavigationDecorator]
+   # Re-point links on reco objects
+   addMiniTruthCollectionLinks(SeqFTAG6)
+   addPVCollection(SeqFTAG6)
+   # Set appropriate truth jet collection for tau truth matching
+   ToolSvc.DFCommonTauTruthMatchingTool.TruthJetContainerName = "AntiKt4TruthDressedWZJets"
+   # Add sumOfWeights metadata for LHE3 multiweights =======
+   #from DerivationFrameworkCore.LHE3WeightMetadata import *
+
+
+
+#====================================================================
+# TRIGGER CONTENT
+#====================================================================
+## See https://twiki.cern.ch/twiki/bin/view/Atlas/TriggerAPI
+## Get single and multi mu, e, photon triggers
+## Jet, tau, multi-object triggers not available in the matching code
+allperiods = TriggerPeriod.y2015 | TriggerPeriod.y2016 | TriggerPeriod.y2017 | TriggerPeriod.y2018 | TriggerPeriod.future2e34
+trig_el  = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.el,  livefraction=0.8)
+trig_mu  = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.mu,  livefraction=0.8)
+trig_g   = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.g,   livefraction=0.8)
+trig_tau = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.tau, livefraction=0.8)
+## Add cross-triggers for some sets
+trig_em = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.el, additionalTriggerType=TriggerType.mu,  livefraction=0.8)
+trig_et = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.el, additionalTriggerType=TriggerType.tau, livefraction=0.8)
+trig_mt = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.mu, additionalTriggerType=TriggerType.tau, livefraction=0.8)
+## Note that this seems to pick up both isolated and non-isolated triggers already, so no need for extra grabs
+trig_txe = TriggerAPI.getLowestUnprescaledAnyPeriod(allperiods, triggerType=TriggerType.tau, additionalTriggerType=TriggerType.xe, livefraction=0.8)
+#
+## Merge and remove duplicates
+trigger_names_full_notau = list(set(trig_el+trig_mu+trig_g+trig_em+trig_et+trig_mt))
+trigger_names_full_tau = list(set(trig_tau+trig_txe))
+#
+## Now reduce the list...
+trigger_names_notau = []
+trigger_names_tau = []
+from AthenaCommon.AthenaCommonFlags import athenaCommonFlags
+from AthenaConfiguration.AutoConfigFlags import GetFileMD
+for chain_name in GetFileMD(athenaCommonFlags.FilesInput.get_Value())['TriggerMenu']['HLTChains']:
+   if chain_name in trigger_names_full_notau: trigger_names_notau.append(chain_name)
+   if chain_name in trigger_names_full_tau:   trigger_names_tau.append(chain_name)
+# Create trigger matching decorations
+trigmatching_helper_notau = TriggerMatchingHelper(name='FTAG6TriggerMatchingToolNoTau',
+        trigger_list = trigger_names_notau, add_to_df_job=True)
+trigmatching_helper_tau = TriggerMatchingHelper(name='FTAG6TriggerMatchingToolTau',
+        trigger_list = trigger_names_tau, add_to_df_job=True, DRThreshold=0.2)
+
+
+
+#====================================================================
+# INNER DETECTOR TRACK THINNING
+#====================================================================
+# See recommedations here:
+# https://twiki.cern.ch/twiki/bin/viewauth/AtlasProtected/DaodRecommendations
+
+# Inner detector group recommendations for indet tracks in analysis
+FTAG6_thinning_expression = "InDetTrackParticles.DFCommonTightPrimary && abs(DFCommonInDetTrackZ0AtPV)*sin(InDetTrackParticles.theta) < 3.0*mm && InDetTrackParticles.pt > 10*GeV"
+from DerivationFrameworkInDet.DerivationFrameworkInDetConf import DerivationFramework__TrackParticleThinning
+FTAG6TrackParticleThinningTool = DerivationFramework__TrackParticleThinning(name                    = "FTAG6TrackParticleThinningTool",
+                                                                           StreamName              = FTAG6Stream.Name,
+                                                                           SelectionString         = FTAG6_thinning_expression,
+                                                                           InDetTrackParticlesKey  = "InDetTrackParticles")
+
+ToolSvc += FTAG6TrackParticleThinningTool
+thinningTools.append(FTAG6TrackParticleThinningTool)
+
+# Include inner detector tracks associated with muons
+from DerivationFrameworkInDet.DerivationFrameworkInDetConf import DerivationFramework__MuonTrackParticleThinning
+FTAG6MuonTPThinningTool = DerivationFramework__MuonTrackParticleThinning(name                    = "FTAG6MuonTPThinningTool",
+                                                                        StreamName              = FTAG6Stream.Name,
+                                                                        MuonKey                 = "Muons",
+                                                                        InDetTrackParticlesKey  = "InDetTrackParticles")
+
+ToolSvc += FTAG6MuonTPThinningTool
+thinningTools.append(FTAG6MuonTPThinningTool)
+
+# TauJets thinning
+tau_thinning_expression = "(TauJets.ptFinalCalib >= 13.*GeV) && (TauJets.nTracks>=1) && (TauJets.nTracks<=3) && (TauJets.RNNJetScoreSigTrans>0.01)"
+from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__GenericObjectThinning
+FTAG6TauJetsThinningTool = DerivationFramework__GenericObjectThinning(name            = "FTAG6TauJetsThinningTool",
+                                                                     StreamName      = FTAG6Stream.Name,
+                                                                     ContainerName   = "TauJets",
+                                                                     SelectionString = tau_thinning_expression)
+ToolSvc += FTAG6TauJetsThinningTool
+thinningTools.append(FTAG6TauJetsThinningTool)
+
+# Only keep tau tracks (and associated ID tracks) classified as charged tracks
+from DerivationFrameworkInDet.DerivationFrameworkInDetConf import DerivationFramework__TauTrackParticleThinning
+FTAG6TauTPThinningTool = DerivationFramework__TauTrackParticleThinning(name                   = "FTAG6TauTPThinningTool",
+                                                                      StreamName             = FTAG6Stream.Name,
+                                                                      TauKey                 = "TauJets",
+                                                                      InDetTrackParticlesKey = "InDetTrackParticles",
+                                                                      SelectionString        = tau_thinning_expression,
+                                                                      DoTauTracksThinning    = True,
+                                                                      TauTracksKey           = "TauTracks")
+ToolSvc += FTAG6TauTPThinningTool
+thinningTools.append(FTAG6TauTPThinningTool)
+
+# ID tracks associated with high-pt di-tau
+from DerivationFrameworkInDet.DerivationFrameworkInDetConf import DerivationFramework__DiTauTrackParticleThinning
+FTAG6DiTauTPThinningTool = DerivationFramework__DiTauTrackParticleThinning(name                    = "FTAG6DiTauTPThinningTool",
+                                                                          StreamName              = FTAG6Stream.Name,
+                                                                          DiTauKey                = "DiTauJets",
+                                                                          InDetTrackParticlesKey  = "InDetTrackParticles")
+ToolSvc += FTAG6DiTauTPThinningTool
+thinningTools.append(FTAG6DiTauTPThinningTool)
+
+#====================================================================
+# JET/MET
+#====================================================================
+
+OutputJets["FTAG6"] = ["AntiKt10LCTopoTrimmedPtFrac5SmallR20Jets"]
+reducedJetList = ["AntiKt2PV0TrackJets","AntiKt4PV0TrackJets"]
+
+if (DerivationFrameworkIsMonteCarlo):
+   OutputJets["FTAG6"].append("AntiKt10TruthTrimmedPtFrac5SmallR20Jets")
+
+replaceAODReducedJets(reducedJetList,SeqFTAG6,"FTAG6")
+add_largeR_truth_jets = DerivationFrameworkIsMonteCarlo and not hasattr(SeqFTAG6,'jetalgAntiKt10TruthTrimmedPtFrac5SmallR20')
+addDefaultTrimmedJets(SeqFTAG6,"FTAG6",dotruth=add_largeR_truth_jets)
+
+# Add large-R jet truth labeling
+if (DerivationFrameworkIsMonteCarlo):
+   addJetTruthLabel(jetalg="AntiKt10LCTopoTrimmedPtFrac5SmallR20",sequence=SeqFTAG6,algname="JetTruthLabelingAlg",labelname="R10TruthLabel_R21Consolidated")
+
+addQGTaggerTool(jetalg="AntiKt4EMTopo",sequence=SeqFTAG6,algname="QGTaggerToolAlg")
+addQGTaggerTool(jetalg="AntiKt4EMPFlow",sequence=SeqFTAG6,algname="QGTaggerToolPFAlg")
+
+# fJVT
+# getPFlowfJVT(jetalg='AntiKt4EMPFlow',sequence=SeqPHYS, algname='PHYSJetForwardPFlowJvtToolAlg')
+
+#====================================================================
+# EGAMMA
+#====================================================================
+
+if DerivationFrameworkIsMonteCarlo:
+   # Schedule the two energy density tools for running after the pseudojets are created.
+   for alg in ['EDTruthCentralAlg', 'EDTruthForwardAlg']:
+      if hasattr(topSequence, alg):
+         edtalg = getattr(topSequence, alg)
+         delattr(topSequence, alg)
+         SeqFTAG6 += edtalg
+
+#====================================================================
+# Add our sequence to the top sequence
+#====================================================================
+# Ideally, this should come at the end of the job
+DerivationFrameworkJob += SeqFTAG6
+
+#====================================================================
+# Tau
+#====================================================================
+# Add low-pt di-tau reconstruction
+from DerivationFrameworkTau.TauCommon import addDiTauLowPt
+addDiTauLowPt(Seq=SeqFTAG6)
+
+# Low-pt di-tau thinning
+from DerivationFrameworkTools.DerivationFrameworkToolsConf import DerivationFramework__GenericObjectThinning
+FTAG6DiTauLowPtThinningTool = DerivationFramework__GenericObjectThinning(name            = "FTAG6DiTauLowPtThinningTool",
+                                                                        StreamName      = FTAG6Stream.Name,
+                                                                        ContainerName   = "DiTauJetsLowPt",
+                                                                        SelectionString = "DiTauJetsLowPt.nSubjets > 1")
+ToolSvc += FTAG6DiTauLowPtThinningTool
+thinningTools.append(FTAG6DiTauLowPtThinningTool)
+
+# ID tracks associated with low-pt ditau
+FTAG6DiTauLowPtTPThinningTool = DerivationFramework__DiTauTrackParticleThinning(name                    = "FTAG6DiTauLowPtTPThinningTool",
+                                                                               StreamName              = FTAG6Stream.Name,
+                                                                               DiTauKey                = "DiTauJetsLowPt",
+                                                                               InDetTrackParticlesKey  = "InDetTrackParticles",
+                                                                               SelectionString         = "DiTauJetsLowPt.nSubjets > 1")
+ToolSvc += FTAG6DiTauLowPtTPThinningTool
+thinningTools.append(FTAG6DiTauLowPtTPThinningTool)
+
+#====================================================================
+# CREATE THE DERIVATION KERNEL ALGORITHM
+#====================================================================
+# Add the kernel for thinning (requires the objects be defined)
+#from DerivationFrameworkCore.DerivationFrameworkCoreConf import DerivationFramework__DerivationKernel
+SeqFTAG6 += CfgMgr.DerivationFramework__DerivationKernel("FTAG6Kernel",
+                                                        ThinningTools = thinningTools)
+
+
+#====================================================================
+# FLAVOUR TAGGING
+#====================================================================
+
+from DerivationFrameworkFlavourTag.FtagRun3DerivationConfig import FtagJetCollection
+
+FtagJetCollection('AntiKt4EMPFlowJets',SeqFTAG6)
+
+
+#====================================================================
+# TC-LVT Vertices
+#====================================================================
+
+# from SoftBVrtClusterTool.SoftBVrtConfig import addSoftBVrt
+# addSoftBVrt(SeqFTAG6,'Loose')
+# addSoftBVrt(SeqFTAG6,'Medium')
+# addSoftBVrt(SeqFTAG6,'Tight')
+
+#====================================================================
+# CONTENTS
+#====================================================================
+from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
+FTAG6SlimmingHelper = SlimmingHelper("FTAG6SlimmingHelper")
+
+FTAG6SlimmingHelper.SmartCollections = ["Electrons",
+                                       "Photons",
+                                       "Muons",
+                                       "PrimaryVertices",
+                                       "InDetTrackParticles",
+                                       "AntiKt4EMTopoJets",
+                                       "AntiKt4EMPFlowJets",
+                                       "BTagging_AntiKt4EMPFlow",
+                                       "MET_Baseline_AntiKt4EMTopo",
+                                       "MET_Baseline_AntiKt4EMPFlow",
+                                       "TauJets",
+                                       "DiTauJets",
+                                       "DiTauJetsLowPt",
+                                       "AntiKt10LCTopoTrimmedPtFrac5SmallR20Jets",
+                                       #"AntiKtVR30Rmax4Rmin02TrackJets_BTagging201903",
+                                       #"BTagging_AntiKtVR30Rmax4Rmin02Track_201903"
+                                      ]
+
+excludedVertexAuxData = "-vxTrackAtVertex.-MvfFitInfo.-isInitialized.-VTAV"
+StaticContent = []
+StaticContent += ["xAOD::VertexContainer#SoftBVrtClusterTool_Tight_Vertices"]
+StaticContent += ["xAOD::VertexAuxContainer#SoftBVrtClusterTool_Tight_VerticesAux." + excludedVertexAuxData]
+StaticContent += ["xAOD::VertexContainer#SoftBVrtClusterTool_Medium_Vertices"]
+StaticContent += ["xAOD::VertexAuxContainer#SoftBVrtClusterTool_Medium_VerticesAux." + excludedVertexAuxData]
+StaticContent += ["xAOD::VertexContainer#SoftBVrtClusterTool_Loose_Vertices"]
+StaticContent += ["xAOD::VertexAuxContainer#SoftBVrtClusterTool_Loose_VerticesAux." + excludedVertexAuxData]
+
+FTAG6SlimmingHelper.StaticContent = StaticContent
+
+# Trigger content
+FTAG6SlimmingHelper.IncludeTriggerNavigation = False
+FTAG6SlimmingHelper.IncludeJetTriggerContent = False
+FTAG6SlimmingHelper.IncludeMuonTriggerContent = False
+FTAG6SlimmingHelper.IncludeEGammaTriggerContent = False
+FTAG6SlimmingHelper.IncludeJetTauEtMissTriggerContent = False
+FTAG6SlimmingHelper.IncludeTauTriggerContent = False
+FTAG6SlimmingHelper.IncludeEtMissTriggerContent = False
+FTAG6SlimmingHelper.IncludeBJetTriggerContent = False
+FTAG6SlimmingHelper.IncludeBPhysTriggerContent = False
+FTAG6SlimmingHelper.IncludeMinBiasTriggerContent = False
+
+# Add the jet containers to the stream (defined in JetCommon if import needed)
+#addJetOutputs(FTAG6SlimmingHelper,["FTAG6"])
+
+# Truth containers
+if DerivationFrameworkIsMonteCarlo:
+   FTAG6SlimmingHelper.AppendToDictionary = {'TruthEvents':'xAOD::TruthEventContainer','TruthEventsAux':'xAOD::TruthEventAuxContainer',
+                                            'MET_Truth':'xAOD::MissingETContainer','MET_TruthAux':'xAOD::MissingETAuxContainer',
+                                            'TruthElectrons':'xAOD::TruthParticleContainer','TruthElectronsAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthMuons':'xAOD::TruthParticleContainer','TruthMuonsAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthPhotons':'xAOD::TruthParticleContainer','TruthPhotonsAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthTaus':'xAOD::TruthParticleContainer','TruthTausAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthNeutrinos':'xAOD::TruthParticleContainer','TruthNeutrinosAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthBSM':'xAOD::TruthParticleContainer','TruthBSMAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthBoson':'xAOD::TruthParticleContainer','TruthBosonAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthTop':'xAOD::TruthParticleContainer','TruthTopAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthForwardProtons':'xAOD::TruthParticleContainer','TruthForwardProtonsAux':'xAOD::TruthParticleAuxContainer',
+                                            'BornLeptons':'xAOD::TruthParticleContainer','BornLeptonsAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthBosonsWithDecayParticles':'xAOD::TruthParticleContainer','TruthBosonsWithDecayParticlesAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthBosonsWithDecayVertices':'xAOD::TruthVertexContainer','TruthBosonsWithDecayVerticesAux':'xAOD::TruthVertexAuxContainer',
+                                            'TruthBSMWithDecayParticles':'xAOD::TruthParticleContainer','TruthBSMWithDecayParticlesAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthBSMWithDecayVertices':'xAOD::TruthVertexContainer','TruthBSMWithDecayVerticesAux':'xAOD::TruthVertexAuxContainer',
+                                            'HardScatterParticles':'xAOD::TruthParticleContainer','HardScatterParticlesAux':'xAOD::TruthParticleAuxContainer',
+                                            'HardScatterVertices':'xAOD::TruthVertexContainer','HardScatterVerticesAux':'xAOD::TruthVertexAuxContainer',
+                                            'TruthHFWithDecayParticles':'xAOD::TruthParticleContainer','TruthHFWithDecayParticlesAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthHFWithDecayVertices':'xAOD::TruthVertexContainer','TruthHFWithDecayVerticesAux':'xAOD::TruthVertexAuxContainer',
+                                            'TruthCharm':'xAOD::TruthParticleContainer','TruthCharmAux':'xAOD::TruthParticleAuxContainer',
+                                            'TruthPrimaryVertices':'xAOD::TruthVertexContainer','TruthPrimaryVerticesAux':'xAOD::TruthVertexAuxContainer',
+                                            'AntiKt10TruthTrimmedPtFrac5SmallR20Jets':'xAOD::JetContainer', 'AntiKt10TruthTrimmedPtFrac5SmallR20JetsAux':'xAOD::JetAuxContainer'
+                                           }
+
+   from DerivationFrameworkMCTruth.MCTruthCommon import addTruth3ContentToSlimmerTool
+   addTruth3ContentToSlimmerTool(FTAG6SlimmingHelper)
+   FTAG6SlimmingHelper.AllVariables += ['TruthHFWithDecayParticles','TruthHFWithDecayVertices','TruthCharm']
+
+FTAG6SlimmingHelper.ExtraVariables += ["AntiKt10TruthTrimmedPtFrac5SmallR20Jets.Tau1_wta.Tau2_wta.Tau3_wta.D2.GhostBHadronsFinalCount",
+                                      "Electrons.TruthLink",
+                                      "Muons.TruthLink",
+                                      "Photons.TruthLink",
+                                      "AntiKt2PV0TrackJets.pt.eta.phi.m",
+                                      "AntiKt4EMTopoJets.DFCommonJets_QGTagger_truthjet_nCharged.DFCommonJets_QGTagger_truthjet_pt.DFCommonJets_QGTagger_truthjet_eta.DFCommonJets_QGTagger_NTracks.DFCommonJets_QGTagger_TracksWidth.DFCommonJets_QGTagger_TracksC1.PartonTruthLabelID",
+                                      "AntiKt4EMPFlowJets.DFCommonJets_QGTagger_truthjet_nCharged.DFCommonJets_QGTagger_truthjet_pt.DFCommonJets_QGTagger_truthjet_eta.DFCommonJets_QGTagger_NTracks.DFCommonJets_QGTagger_TracksWidth.DFCommonJets_QGTagger_TracksC1.PartonTruthLabelID.DFCommonJets_fJvt",
+                                      "TruthPrimaryVertices.t.x.y.z"]
+
+# Add trigger matching
+trigmatching_helper_notau.add_to_slimming(FTAG6SlimmingHelper)
+trigmatching_helper_tau.add_to_slimming(FTAG6SlimmingHelper)
+
+# Final construction of output stream
+FTAG6SlimmingHelper.AppendContentToStream(FTAG6Stream)