diff --git a/Reconstruction/TrackCaloClusterRec/TrackCaloClusterRecTools/python/TrackCaloClusterConfig.py b/Reconstruction/TrackCaloClusterRec/TrackCaloClusterRecTools/python/TrackCaloClusterConfig.py
index 9983aea8f572b33a4d5e894e69112a85aa0383ca..ef5325e40717a5bc4d6a1f35dae7aebd6e40a15c 100644
--- a/Reconstruction/TrackCaloClusterRec/TrackCaloClusterRecTools/python/TrackCaloClusterConfig.py
+++ b/Reconstruction/TrackCaloClusterRec/TrackCaloClusterRecTools/python/TrackCaloClusterConfig.py
@@ -135,7 +135,8 @@ def setupTrackCaloAssoc(configFlags, caloClusterName="CaloCalTopoClusters",track
         TrackVertexAssoTool=setupTrackVertexAssocTool(), # will associate trks from PV0 only
         VertexContainerName = "PrimaryVertices" if onlyPV0Tracks else "",
         AssociatedClusterDecorKey = decorKey("AssoClusters"),
-        OutputLevel=2)
+#        OutputLevel=2
+    )
 
 
     components.addEventAlgo( trackParticleClusterAssociation )
@@ -205,26 +206,26 @@ def runTCCReconstruction(configFlags, caloClusterName="CaloCalTopoClusters",trac
     
     FEContainerName=""
     if(doNeutral):
-        FEContainerName="JetETMissNeutralFlowElements"
+        FEContainerName="JetETMissNeutralParticleFlowObjects"
         neutraloutputTCCName=outputTCCName+"Neutral"
         neutraltccAlg = CompFactory.TrackCaloClusterAlg(name = "TrackCaloClusterAlg_neutral",
                                                         OutputTCCName = neutraloutputTCCName,
                                                         TCCInfo = "TCCInfo",
                                                         TCCTools = tccTools,
-                                                        OutputLevel = 2,
+                                                        #OutputLevel
                                                         AppendToTCCName = FEContainerName
                                                         
                                                     )
         components.addEventAlgo(neutraltccAlg)
 
     if(doCharged):
-        FEContainerName="JetETMissChargedFlowElements"
+        FEContainerName="JetETMissChargedParticleFlowObjects"
         chargedoutputTCCName=outputTCCName+"Charged"
         chargedtccAlg = CompFactory.TrackCaloClusterAlg(name = "TrackCaloClusterAlg_charged",
                                                         OutputTCCName = chargedoutputTCCName,
                                                         TCCInfo = "TCCInfo",
                                                         TCCTools = tccTools,
-                                                        OutputLevel = 2,
+                                                        #OutputLevel = 2,
                                                         AppendToTCCName = FEContainerName                                                        
                                                     )
         components.addEventAlgo(chargedtccAlg)
diff --git a/Reconstruction/eflowRec/eflowRec/PFEGamFlowElementAssoc.h b/Reconstruction/eflowRec/eflowRec/PFEGamFlowElementAssoc.h
index b6da4bd856c2dc82d61318e3f0b1e471539edc1c..1148c146ee19ab8dff24cc194fd66c98074f0f1f 100644
--- a/Reconstruction/eflowRec/eflowRec/PFEGamFlowElementAssoc.h
+++ b/Reconstruction/eflowRec/eflowRec/PFEGamFlowElementAssoc.h
@@ -62,11 +62,13 @@ private:
   SG::WriteDecorHandleKey<xAOD::ElectronContainer> m_electronChargedFEWriteDecorKey{this,"ElectronChargedFEDecorKey","Electrons.chargedFELinks","Output key for electron link to charged FE"};
   
   /** The write key for adding electron element link decorations to Neutral Flow Elements */
+
   SG::WriteDecorHandleKey<xAOD::FlowElementContainer> m_neutralFEElectronWriteDecorKey{this,"NeutralFEElectronDecorKey","JetETMissNeutralParticleFlowObjects.FE_ElectronLinks","Output key for link from charged FE to electron"};
 
   /** The write key for adding electron element link decorations to Charged Flow Elements */
   SG::WriteDecorHandleKey<xAOD::FlowElementContainer> m_chargedFEElectronWriteDecorKey{this,"ChargedFEElectronDecorKey","JetETMissChargedParticleFlowObjects.FE_ElectronLinks","Output key for link from charged FE to electron"};
 
+
   /** The write key for adding Neutral Flow Element element link decorations to photons */
   SG::WriteDecorHandleKey<xAOD::PhotonContainer> m_photonNeutralFEWriteDecorKey{this,"PhotonNeutralFEDecorKey","Photons.neutralFELinks","Output key for photon link to neutral FE"};
   /** The write key for adding Charged Flow Element element link decorations to photons */
diff --git a/Reconstruction/eflowRec/python/PFCfg.py b/Reconstruction/eflowRec/python/PFCfg.py
index 5ff242da8053a9e904cd1be4e187d80a9d31a2ea..6af98670c9652510407ed4d8c4ff61f3560c329c 100644
--- a/Reconstruction/eflowRec/python/PFCfg.py
+++ b/Reconstruction/eflowRec/python/PFCfg.py
@@ -176,7 +176,7 @@ def getNeutralFlowElementCreatorAlgorithm(inputFlags,neutralFlowElementOutputNam
 
     return FlowElementNeutralCreatorAlgorithm
 
-def getEGamFlowElementAssocAlgorithm(inputFlags,neutral_FE_cont_name="",charged_FE_cont_name="",AODTest=False):
+def getEGamFlowElementAssocAlgorithm(inputFlags,neutral_FE_cont_name="",charged_FE_cont_name="",AODTest=False,doTCC=False):
 
     PFEGamFlowElementLinkerAlgorithmFactory=CompFactory.PFEGamFlowElementAssoc
     PFEGamFlowElementLinkerAlgorithm=PFEGamFlowElementLinkerAlgorithmFactory("PFEGamFlowElementAssoc")
@@ -202,7 +202,6 @@ def getEGamFlowElementAssocAlgorithm(inputFlags,neutral_FE_cont_name="",charged_
         EL_CFE_Link=str(PFEGamFlowElementLinkerAlgorithm.ElectronChargedFEDecorKey)
         PFEGamFlowElementLinkerAlgorithm.ElectronChargedFEDecorKey=EL_CFE_Link.replace("FELinks","CustomFELinks")
 
-
         NFE_EL_Link=str(PFEGamFlowElementLinkerAlgorithm.NeutralFEElectronDecorKey)
         PFEGamFlowElementLinkerAlgorithm.NeutralFEElectronDecorKey=NFE_EL_Link.replace("FE","CustomFE")
 
@@ -222,11 +221,41 @@ def getEGamFlowElementAssocAlgorithm(inputFlags,neutral_FE_cont_name="",charged_
         CFE_PH_Link=str(PFEGamFlowElementLinkerAlgorithm.ChargedFEPhotonDecorKey)
         PFEGamFlowElementLinkerAlgorithm.ChargedFEPhotonDecorKey=CFE_PH_Link.replace("FE","CustomFE")
 
-
-
+    if(doTCC):
+        # ReadHandles to change
+        PFEGamFlowElementLinkerAlgorithm.JetEtMissNeutralFlowElementContainer="TrackCaloClustersNeutral"
+        PFEGamFlowElementLinkerAlgorithm.JetEtMissChargedFlowElementContainer="TrackCaloClustersCharged"
+        
+        #Now to change the writeHandles
+        # first the Electron -> FE links
+        EL_NFE_Link=str(PFEGamFlowElementLinkerAlgorithm.ElectronNeutralFEDecorKey)
+        PFEGamFlowElementLinkerAlgorithm.ElectronNeutralFEDecorKey=EL_NFE_Link.replace("FELinks","TCCLinks")
+        EL_CFE_Link=str(PFEGamFlowElementLinkerAlgorithm.ElectronChargedFEDecorKey)
+        PFEGamFlowElementLinkerAlgorithm.ElectronChargedFEDecorKey=EL_CFE_Link.replace("FELinks","TCCLinks")
+        #then the converse case (FE -> Electron)
+        
+        PFEGamFlowElementLinkerAlgorithm.ChargedFEElectronDecorKey="TrackCaloClustersCharged.TCC_ElectronLinks"
+        PFEGamFlowElementLinkerAlgorithm.NeutralFEElectronDecorKey="TrackCaloClustersNeutral.TCC_ElectronLinks"
+        
+
+        # first the Photon -> FE links
+        PH_NFE_Link=str(PFEGamFlowElementLinkerAlgorithm.PhotonNeutralFEDecorKey)
+        PFEGamFlowElementLinkerAlgorithm.PhotonNeutralFEDecorKey=PH_NFE_Link.replace("FELinks","TCCLinks")
+        PH_CFE_Link=str(PFEGamFlowElementLinkerAlgorithm.PhotonChargedFEDecorKey)
+        PFEGamFlowElementLinkerAlgorithm.PhotonChargedFEDecorKey=PH_CFE_Link.replace("FELinks","TCCLinks")
+        #then the converse case (FE -> Photons)
+        
+        PFEGamFlowElementLinkerAlgorithm.ChargedFEPhotonDecorKey="TrackCaloClustersCharged.TCC_PhotonLinks"
+        PFEGamFlowElementLinkerAlgorithm.NeutralFEPhotonDecorKey="TrackCaloClustersNeutral.TCC_PhotonLinks"
+        
+        
+        
+        
+        
     return PFEGamFlowElementLinkerAlgorithm
 
-def getMuonFlowElementAssocAlgorithm(inputFlags,neutral_FE_cont_name="",charged_FE_cont_name="",LinkNeutralFEClusters=True,useMuonTopoClusters=False,AODTest=False):
+def getMuonFlowElementAssocAlgorithm(inputFlags,neutral_FE_cont_name="",charged_FE_cont_name="",LinkNeutralFEClusters=True,useMuonTopoClusters=False,AODTest=False,doTCC=False):
+    
 
     PFMuonFlowElementLinkerAlgorithmFactory=CompFactory.PFMuonFlowElementAssoc
     PFMuonFlowElementLinkerAlgorithm=PFMuonFlowElementLinkerAlgorithmFactory("PFMuonFlowElementAssoc")
@@ -239,37 +268,71 @@ def getMuonFlowElementAssocAlgorithm(inputFlags,neutral_FE_cont_name="",charged_
         #update the readhandle
         PFMuonFlowElementLinkerAlgorithm.JetEtMissNeutralFlowElementContainer=neutral_FE_cont_name
         #update the write handle for the link
-
+        
     if(charged_FE_cont_name!=""):
         PFMuonFlowElementLinkerAlgorithm.JetEtMissChargedFlowElementContainer=charged_FE_cont_name
 
-
+    
     PFMuonFlowElementLinkerAlgorithm.m_LinkNeutralFEClusters=LinkNeutralFEClusters
     PFMuonFlowElementLinkerAlgorithm.m_UseMuonTopoClusters=useMuonTopoClusters
 
     #prototype on AOD with the linkers already defined - so need to rename the output links to something besides their default name.
 
     if(AODTest):
-        # use same Gaudi trick to rename the container input name.
+        # use same Gaudi trick to rename the container input name.         
         MuonFELink=str(PFMuonFlowElementLinkerAlgorithm.MuonContainer_chargedFELinks)
         PFMuonFlowElementLinkerAlgorithm.MuonContainer_chargedFELinks=MuonFELink.replace("FELinks","CustomFELinks")
-
+        
         PFMuonFlowElementLinkerAlgorithm.MuonContainer_neutralFELinks=str(PFMuonFlowElementLinkerAlgorithm.MuonContainer_neutralFELinks).replace("FELinks","CustomFELinks")
-
+                                                                                                                        
         PFMuonFlowElementLinkerAlgorithm.JetETMissNeutralFlowElementContainer_FE_MuonLinks=str(PFMuonFlowElementLinkerAlgorithm.JetETMissNeutralFlowElementContainer_FE_MuonLinks).replace("MuonLinks","CustomMuonLinks")
         PFMuonFlowElementLinkerAlgorithm.JetETMissChargedFlowElements_FE_MuonLinks=str(PFMuonFlowElementLinkerAlgorithm.JetETMissChargedFlowElements_FE_MuonLinks).replace("MuonLinks","CustomMuonLinks")
+        
 
         # and because debug info is also written, need to rename each handle for this too.... - might want to change this in future/re-work it so that a rename -> no debug info saved by default.
         PFMuonFlowElementLinkerAlgorithm.FlowElementContainer_FE_efrac_matched_muon=str(PFMuonFlowElementLinkerAlgorithm.FlowElementContainer_FE_efrac_matched_muon).replace("FE","CustomFE")
         PFMuonFlowElementLinkerAlgorithm.MuonContainer_muon_efrac_matched_FE=str(PFMuonFlowElementLinkerAlgorithm.MuonContainer_muon_efrac_matched_FE).replace("FE","CustomFE")
         PFMuonFlowElementLinkerAlgorithm.FlowElementContainer_nMatchedMuons=str(PFMuonFlowElementLinkerAlgorithm.FlowElementContainer_nMatchedMuons).replace("FE","CustomFE")
 
+    #Track Calo cluster (TCC) specific configuration. Input is differently named FE container, and in the AOD step specifically
+    if(doTCC):
+        #input containers are TrackCaloClustersCharged and TrackCaloClustersNeutral, so rename them
+        #service_key="StoreGateSvc+"
+        service_key=""
+        PFMuonFlowElementLinkerAlgorithm.JetEtMissChargedFlowElementContainer=service_key+"TrackCaloClustersCharged"
+        PFMuonFlowElementLinkerAlgorithm.JetEtMissNeutralFlowElementContainer=service_key+"TrackCaloClustersNeutral"
+        
+        #Output
+        #rename the FE_MuonLinks as TCC_MuonLinks
+        #rename output containers
+        PFMuonFlowElementLinkerAlgorithm.MuonContainer_chargedFELinks=service_key+"Muons.chargedTCCLinks"
+        PFMuonFlowElementLinkerAlgorithm.MuonContainer_neutralFELinks=service_key+"Muons.neutralTCCLinks"
+        PFMuonFlowElementLinkerAlgorithm.JetETMissNeutralFlowElementContainer_FE_MuonLinks=service_key+"TrackCaloClustersNeutral.TCC_MuonLinks"
+        PFMuonFlowElementLinkerAlgorithm.JetETMissChargedFlowElements_FE_MuonLinks=service_key+"TrackCaloClustersCharged.TCC_MuonLinks"
+        # several variables relating to Neutral Flow Elements/TCCs to Muons for debug. perhaps at some point these should be removed by default 
+        PFMuonFlowElementLinkerAlgorithm.FlowElementContainer_nMatchedMuons="TrackCaloClustersNeutral.TCC_nMatchedMuons"
+        PFMuonFlowElementLinkerAlgorithm.FlowElementContainer_FE_efrac_matched_muon="TrackCaloClustersNeutral.TCC_efrac_matched_muon"
+        
+        PFMuonFlowElementLinkerAlgorithm.MuonContainer_muon_efrac_matched_FE="Muons.muon_efrac_matched_TCC"
+        # this is because the algorithm adds this debug container which we don't need 
+        PFMuonFlowElementLinkerAlgorithm.MuonContainer_ClusterInfo_deltaR="Muons.deltaR_muon_clus_TCCalg"
+    if(LinkNeutralFEClusters):
+        if (doTCC or AODTest):
+            # since the cells are deleted on AOD, if you try to run the link between NFE and Muon on AOD, it will crash. Terminate to catch this.
+            # This is a known bug to rectify soon
+            from AthenaCommon.Logging import logging
+            msg=logging.getLogger("PFCfg.py::getMuonFlowElementAssocAlgorithm")
+            msg.error("Neutral FE from AOD configured to be linked with Muon. This link will fail due to missing CaloCells in the AOD")
+            msg.info("Terminating job")
+            exit(0)
+        
+        
 
+    return PFMuonFlowElementLinkerAlgorithm
 
 
-    return PFMuonFlowElementLinkerAlgorithm
 
-def getTauFlowElementAssocAlgorithm(inputFlags,neutral_FE_cont_name="",charged_FE_cont_name="",AODTest=False) :
+def getTauFlowElementAssocAlgorithm(inputFlags,neutral_FE_cont_name="",charged_FE_cont_name="",AODTest=False,doTCC=False) :
 
     PFTauFlowElementLinkerAlgorithmFactory=CompFactory.PFTauFlowElementAssoc
     PFTauFlowElementLinkerAlgorithm=PFTauFlowElementLinkerAlgorithmFactory("PFTauFlowElementAssoc")
@@ -280,10 +343,10 @@ def getTauFlowElementAssocAlgorithm(inputFlags,neutral_FE_cont_name="",charged_F
     #setting algorithm.SpecificContainerName="myNewContainerName" changes parameter "myContainerName"
     #(also applies to ReadHandles)
     if(neutral_FE_cont_name!=""):
-        PFTauFlowElementLinkerAlgorithm.JetEtMissNeutralFlowElementContainer=neutral_FE_cont_name
+        PFTauFlowElementLinkerAlgorithm.JetETMissNeutralFlowElementContainer=neutral_FE_cont_name
 
     if(charged_FE_cont_name!=""):
-        PFTauFlowElementLinkerAlgorithm.JetEtMissChargedFlowElementContainer=charged_FE_cont_name
+        PFTauFlowElementLinkerAlgorithm.JetETMissChargedFlowElementContainer=charged_FE_cont_name
 
     if(AODTest):
         TAU_NFE_Link=str(PFTauFlowElementLinkerAlgorithm.TauNeutralFEDecorKey)
@@ -298,4 +361,17 @@ def getTauFlowElementAssocAlgorithm(inputFlags,neutral_FE_cont_name="",charged_F
         CFE_TAU_Link=str(PFTauFlowElementLinkerAlgorithm.ChargedFETauDecorKey)
         PFTauFlowElementLinkerAlgorithm.ChargedFETauDecorKey=CFE_TAU_Link.replace("FE","CustomFE")
 
+    if(doTCC):
+         PFTauFlowElementLinkerAlgorithm.JetETMissNeutralFlowElementContainer="TrackCaloClustersNeutral"
+         PFTauFlowElementLinkerAlgorithm.JetETMissChargedFlowElementContainer="TrackCaloClustersCharged"
+
+         PFTauFlowElementLinkerAlgorithm.TauNeutralFEDecorKey="TauJets.neutralTCCLinks"
+         PFTauFlowElementLinkerAlgorithm.TauChargedFEDecorKey="TauJets.chargedTCCLinks"
+         
+         PFTauFlowElementLinkerAlgorithm.NeutralFETauDecorKey="TrackCaloClustersNeutral.TCC_TauLinks"
+         PFTauFlowElementLinkerAlgorithm.ChargedFETauDecorKey="TrackCaloClustersCharged.TCC_TauLinks"
+
     return PFTauFlowElementLinkerAlgorithm
+
+
+
diff --git a/Reconstruction/eflowRec/python/PFRun3Config.py b/Reconstruction/eflowRec/python/PFRun3Config.py
index ff918589f9c5ee318c041f43ad943e2084982550..50f1bcd7ccc6e5cc22cf7f2a9e240b1827c3e9eb 100644
--- a/Reconstruction/eflowRec/python/PFRun3Config.py
+++ b/Reconstruction/eflowRec/python/PFRun3Config.py
@@ -140,6 +140,10 @@ def PFCfg(inputFlags,**kwargs):
     result.addEventAlgo(getChargedFlowElementCreatorAlgorithm(inputFlags,""))
     result.addEventAlgo(getNeutralFlowElementCreatorAlgorithm(inputFlags,""))
 
+    from eflowRec.PFCfg import getMuonFlowElementAssocAlgorithm,getEGamFlowElementAssocAlgorithm
+    result.addEventAlgo(getMuonFlowElementAssocAlgorithm(inputFlags))
+    result.addEventAlgo(getEGamFlowElementAssocAlgorithm(inputFlags))
+
     return result
 
 if __name__=="__main__":
diff --git a/Reconstruction/eflowRec/share/run_AODTCCLinking.py b/Reconstruction/eflowRec/share/run_AODTCCLinking.py
new file mode 100644
index 0000000000000000000000000000000000000000..07e078d86d412d47e03764c2bdc4a0ab40b2f78f
--- /dev/null
+++ b/Reconstruction/eflowRec/share/run_AODTCCLinking.py
@@ -0,0 +1,132 @@
+#Matt A's custom python accumulator for R22 
+# Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
+from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
+from AthenaConfiguration.ComponentFactory import CompFactory
+from pprint import pprint
+
+    
+
+def MyAlgConfigNeutral(inputFlags,**kwargs,):
+    # this is based on the PFRun3Config, so parts of it are gonna be used as is
+    result=ComponentAccumulator()
+
+    StoreGateSvc=CompFactory.StoreGateSvc
+
+    result.addService(StoreGateSvc("DetectorStore"))
+    
+
+    from TrackCaloClusterRecTools.TrackCaloClusterConfig import runTCCReconstruction
+    TCCReco=runTCCReconstruction(inputFlags, outputTCCName="TrackCaloClusters",doNeutral=True,doCharged=False,doCombined=False)
+    result.merge(TCCReco)
+
+    StoreGateSvc.Dump = True
+    return result
+
+
+
+
+def MyAlgConfigCharged(inputFlags,**kwargs,):
+    # this is based on the PFRun3Config, so parts of it are gonna be used as is
+    result=ComponentAccumulator()
+
+    StoreGateSvc=CompFactory.StoreGateSvc
+
+    result.addService(StoreGateSvc("DetectorStore"))
+    
+
+
+    from TrackCaloClusterRecTools.TrackCaloClusterConfig import runTCCReconstruction
+    TCCReco=runTCCReconstruction(inputFlags, outputTCCName="TrackCaloClusters",doNeutral=False,doCharged=True,doCombined=False)
+    result.merge(TCCReco)
+    
+    StoreGateSvc.Dump = True
+    return result
+
+
+def LinkerAlgConfig(inputFlags,**kwargs):
+    #link El/Phot/Muon to TrackCaloClusters
+    CA=ComponentAccumulator()
+    StoreGateSvc=CompFactory.StoreGateSvc
+    CA.addService(StoreGateSvc("DetectorStore"))
+
+    from eflowRec.PFCfg import getEGamFlowElementAssocAlgorithm
+    from eflowRec.PFCfg import getMuonFlowElementAssocAlgorithm
+    
+    CA.addEventAlgo(getEGamFlowElementAssocAlgorithm(inputFlags,AODTest=False,doTCC=True))
+    CA.addEventAlgo(getMuonFlowElementAssocAlgorithm(inputFlags,LinkNeutralFEClusters=False,useMuonTopoClusters=True,AODTest=False,doTCC=True))
+
+
+    return CA
+
+
+def TauLinkerConfig(inputFlags, **kwargs):
+    #separate linker, can merge to main one for no loss of generality
+    TauLinkerCA=ComponentAccumulator()
+    # add Storegate
+    StoreGateSvc=CompFactory.StoreGateSvc
+    TauLinkerCA.addService(StoreGateSvc("DetectorStore"))
+    
+    from eflowRec.PFCfg import getTauFlowElementAssocAlgorithm
+    TauLinkerCA.addEventAlgo(getTauFlowElementAssocAlgorithm(inputFlags,doTCC=True))
+    return TauLinkerCA
+
+
+
+if __name__=="__main__":
+    #the "standard" main loop for Athena R22
+    from AthenaCommon.Configurable import Configurable
+    Configurable.configurableRun3Behavior = True
+    from AthenaConfiguration.AllConfigFlags import ConfigFlags as cfgFlags
+    
+    cfgFlags.Input.isMC=True
+    cfgFlags.Input.Format="AOD"
+
+    cfgFlags.Input.Files=["/scratch/anthony/GPF_CODE/TCC_STUDIES/CustomAlg/myAOD.root"]
+    cfgFlags.Output.AODFileName="/scratch/anthony/GPF_CODE/TCC_STUDIES/CustomAlg/output_AOD.root"
+    cfgFlags.Exec.MaxEvents=20
+    cfgFlags.Output.doWriteAOD=True
+    cfgFlags.Common.ProductionStep=""
+    cfgFlags.dump()
+    cfgFlags.lock()
+    
+
+    from AthenaConfiguration.MainServicesConfig import MainServicesCfg
+    cfg=MainServicesCfg(cfgFlags)
+
+    from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
+    inputList=["xAOD::TrackParticleContainer#InDetTrackParticles", "xAOD::TrackParticleAuxContainer#InDetTrackParticlesAux."]
+    inputList.append("xAOD::FlowElementContainer#JetETMissChargedParticleFlowObjects")
+    inputList.append("xAOD::FlowElementContainer#JetETMissNeutralParticleFlowObjects")
+    inputList.append("xAOD::FlowElementAuxContainer#JetETMissNeutralParticleFlowObjectsAux.")
+    inputList.append("xAOD::FlowElementAuxContainer#JetETMissChargedParticleFlowObjectsAux.")
+    inputList.append("xAOD::FlowElementContainer#TrackCaloClustersCharged")
+    inputList.append("xAOD::FlowElementAuxContainer#TrackCaloClustersChargedAux.")
+    inputList.append("xAOD::FlowElementContainer#TrackCaloClustersNeutral")
+    inputList.append("xAOD::FlowElementAuxContainer#TrackCaloClustersNeutralAux.")
+
+    inputList.append("xAOD::MuonContainer#Muons")
+    inputList.append("xAOD::MuonAuxContainer#*")
+    inputList.append("xAOD::PhotonContainer#Photons")
+    inputList.append("xAOD::PhotonAuxContainer#*")
+    inputList.append("xAOD::ElectronContainer#Electrons")
+    inputList.append("xAOD::ElectronAuxContainer#*")
+    inputList.append("xAOD::TauJetContainer#*")
+    inputList.append("xAOD::TauJetAuxContainer#*")
+    
+    
+    cfg.merge(OutputStreamCfg(cfgFlags,"AOD",ItemList=inputList))
+    
+    from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
+
+    
+    cfg.merge(PoolReadCfg(cfgFlags))
+    cfg.merge(MyAlgConfigNeutral(cfgFlags))
+    cfg.merge(MyAlgConfigCharged(cfgFlags))
+    cfg.merge(LinkerAlgConfig(cfgFlags)) # El/Phot/Muon linkers
+    #cfg.merge(TauLinkerConfig(cfgFlags)) # Doesn't yet work because of "passTauThinning" attrib not saved at AOD
+    print("MASTER CA CONFIG")
+    print(cfg)
+    cfg.printConfig()
+
+    cfg.run()
+