diff --git a/Reconstruction/MET/METReconstruction/METReconstruction/METBuilderTool.h b/Reconstruction/MET/METReconstruction/METReconstruction/METBuilderTool.h
index 6a2271de1e8ba79e28a60632f0edd9008cd16fe3..c62a5b3bcc0c7fd31f5b323cc9b4f20359fb471a 100644
--- a/Reconstruction/MET/METReconstruction/METReconstruction/METBuilderTool.h
+++ b/Reconstruction/MET/METReconstruction/METReconstruction/METBuilderTool.h
@@ -72,7 +72,6 @@ namespace met {
     std::string m_input_data_key;
     std::string m_output_met_key;
     std::string m_mod_clus_key;
-    int m_signalstate;  // use an int for now - signal states seem to be defined in the object classes, e.g. CaloCluster and Jet
     bool m_useRapidity; // by default, use pseudorapidity for matching
     bool m_useModClus;  // use modified e.g. origin-corrected clusters
 
diff --git a/Reconstruction/MET/METReconstruction/METReconstruction/METJetFilterTool.h b/Reconstruction/MET/METReconstruction/METReconstruction/METJetFilterTool.h
deleted file mode 100644
index c2d8bffbe88055739b9f64dd568b3ef03e504f84..0000000000000000000000000000000000000000
--- a/Reconstruction/MET/METReconstruction/METReconstruction/METJetFilterTool.h
+++ /dev/null
@@ -1,88 +0,0 @@
-///////////////////////// -*- C++ -*- /////////////////////////////
-
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// METJetFilterTool.h 
-// Header file for class METJetFilterTool
-//
-// This is a scheduler for the MET Reconstruction, and sets up
-// the sequence in which the individual terms are constructed.
-//
-//  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-//
-// Author: P Loch, S Resconi, TJ Khoo
-/////////////////////////////////////////////////////////////////// 
-#ifndef METRECONSTRUCTION_METJETFILTERTOOL_H
-#define METRECONSTRUCTION_METJETFILTERTOOL_H 1
-
-// STL includes
-#include <string>
-
-// METReconstruction includes
-#include "METReconstruction/METRefinerTool.h"
-
-// Forward declaration
-#include "xAODJet/Jet.h"
-
-namespace met{
-
-  class METJetFilterTool
-    : public METRefinerTool
-  { 
-    // This macro defines the constructor with the interface declaration
-    ASG_TOOL_CLASS(METJetFilterTool, IMETToolBase)
-
-
-    /////////////////////////////////////////////////////////////////// 
-    // Public methods: 
-    /////////////////////////////////////////////////////////////////// 
-    public: 
-
-    // Constructor with name (does this have to be a non-const
-    // std::string and not a const reference?)
-    METJetFilterTool(const std::string& name);
-    ~METJetFilterTool();
-
-    // AsgTool Hooks
-    StatusCode  initialize();
-    StatusCode  finalize();
-
-    /////////////////////////////////////////////////////////////////// 
-    // Const methods: 
-    ///////////////////////////////////////////////////////////////////
-
-    /////////////////////////////////////////////////////////////////// 
-    // Non-const methods: 
-    /////////////////////////////////////////////////////////////////// 
-
-    /////////////////////////////////////////////////////////////////// 
-    // Private data: 
-    /////////////////////////////////////////////////////////////////// 
-  protected: 
-    StatusCode  executeTool(xAOD::MissingET* metTerm, xAOD::MissingETComponentMap* metMap) const;
-    // Accept functions
-    bool isHSJet         (const xAOD::Jet* jet) const;
-
-  private:
-    // Default constructor: 
-    METJetFilterTool();
-
-    bool m_jet_doJVFCut;
-    double m_jet_minAbsJVF;
-    double m_jet_maxPtJVF;
-    double m_jet_maxEtaJVF;
-  }; 
-
-}
-
-// I/O operators
-//////////////////////
-
-/////////////////////////////////////////////////////////////////// 
-// Inline methods: 
-/////////////////////////////////////////////////////////////////// 
-
-
-#endif //> !METRECONSTRUCTION_METJETFILTERTOOL_H
diff --git a/Reconstruction/MET/METReconstruction/Root/METBuilderTool.cxx b/Reconstruction/MET/METReconstruction/Root/METBuilderTool.cxx
index e6818a31ee631aa01858e0e1bc720c1bd6b121ab..5b7975720e0f5ee2ad6baa3c6a45731e087b74d6 100644
--- a/Reconstruction/MET/METReconstruction/Root/METBuilderTool.cxx
+++ b/Reconstruction/MET/METReconstruction/Root/METBuilderTool.cxx
@@ -40,7 +40,6 @@ namespace met {
   {
     declareProperty( "InputCollection", m_input_data_key      );
     declareProperty( "MissingETKey",    m_output_met_key      );
-    declareProperty( "SignalState",     m_signalstate = 0     );
     declareProperty( "UseRapidity",     m_useRapidity = false );
     declareProperty( "ModifiedClusKey", m_mod_clus_key = ""   );
   }
diff --git a/Reconstruction/MET/METReconstruction/python/METCfg_Associator.py b/Reconstruction/MET/METReconstruction/python/METCfg_Associator.py
index 8c41ffe52a366620adf8b5045344a65f5498184c..96ee52f496c1a6bbfca6b6b03ca4775784d57647 100644
--- a/Reconstruction/MET/METReconstruction/python/METCfg_Associator.py
+++ b/Reconstruction/MET/METReconstruction/python/METCfg_Associator.py
@@ -3,7 +3,6 @@
 #from METReconstruction.METRecoFlags import metFlags
 from METReconstruction.METAssocCfg import AssocConfig, METAssocConfig,getMETAssocTool,getMETAssocAlg
 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
-from AthenaCommon import CfgMgr
 from METUtilities.METMakerConfig import getMETMakerAlg
 
 #attempt at migrating to the new configuration system
@@ -88,6 +87,6 @@ def getAssocCA(config,sequencename='METAssociation',METName=''):
     assocAlg = getMETAssocAlg(algName='METAssociation_LCJets',tools=[assoctool])
     components.addEventAlgo(assocAlg,sequencename)
     if not METName=='':
-    	makerAlg=getMETMakerAlg(METName)
+        makerAlg=getMETMakerAlg(METName)
         components.addEventAlgo(makerAlg,sequencename)
     return components
diff --git a/Reconstruction/MET/METReconstruction/python/METCfg_Calo.py b/Reconstruction/MET/METReconstruction/python/METCfg_Calo.py
index a1c94dc6cb57515f0f1bc1be069ed8851b274cae..431a277b454d1130079299540a734dd663c41ea5 100644
--- a/Reconstruction/MET/METReconstruction/python/METCfg_Calo.py
+++ b/Reconstruction/MET/METReconstruction/python/METCfg_Calo.py
@@ -1,9 +1,8 @@
 # Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 
 #from METReconstruction.METRecoFlags import metFlags
-from METReconstruction.METRecoCfg import BuildConfig, RefConfig, METConfig,clusterSigStates,getMETRecoTool,getMETRecoAlg,getRegionRecoTool
+from METReconstruction.METRecoCfg import BuildConfig, METConfig,getMETRecoTool,getMETRecoAlg,getRegionRecoTool
 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
-from AthenaCommon import CfgMgr
 
 
 def METCalo_Cfg(configFlags):
@@ -20,7 +19,6 @@ def METCalo_Cfg(configFlags):
                     doRegions=True,
                     doOriginCorrClus=False
                     )
-    cfg_emt.builders['SoftClus'].SignalState = clusterSigStates['EMScale']
 
     #metFlags.METConfigs()[cfg_emt.suffix] = cfg_emt
     #metFlags.METOutputList().append(cfg_emt.suffix)
@@ -36,13 +34,12 @@ def METCalo_Cfg(configFlags):
                     doRegions=True,
                     doOriginCorrClus=False
                     )
-    cfg_lht.builders['SoftClus'].SignalState = clusterSigStates['LocHad']
 
     #metFlags.METConfigs()[cfg_lht.suffix] = cfg_lht
     #metFlags.METOutputList().append(cfg_lht.suffix)
     #metFlags.METOutputList().append(cfg_lht.suffix+"Regions")
-    recotool_lht = getMETRecoTool(cfg_lht)
-    recotools.append(recotool_lht)
+    #recotool_lht = getMETRecoTool(cfg_lht)
+    #recotools.append(recotool_lht)
 
     ############################################################################
     # Calo regions
@@ -54,14 +51,15 @@ def METCalo_Cfg(configFlags):
 
     #metFlags.METConfigs()[cfg_calo.suffix] = cfg_calo
     #metFlags.METOutputList().append(cfg_calo.suffix)
-    recotool_caloreg= getMETRecoTool(cfg_calo)
-    regiontool_calo= getRegionRecoTool(cfg_calo)
-    recotools.append(recotool_caloreg)
-    recotools.append(regiontool_calo)
+    #recotool_caloreg= getMETRecoTool(cfg_calo)
+    #regiontool_calo= getRegionRecoTool(cfg_calo)
+    #recotools.append(recotool_caloreg)
+    #recotools.append(regiontool_calo)
     #SO FAR THIS WON'T RUN, AND GIVES A KEY ERROR: 
     #File "/usera/sarahw/testareas/PostPHD/METDec2019/build/x86_64-centos7-gcc8-opt/python/METReconstruction/METRecoCfg.py", line 126, in getBuilder
     #tool.InputCollection = defaultInputKey[config.objType]
     #KeyError: 'CaloReg'
-    recoAlg_calo = getMETRecoAlg(algName='METRecoAlg_Calo',tools=recotools)
+    #recoAlg_calo = getMETRecoAlg(algName='METRecoAlg_Calo',tools=recotools)
+    recoAlg_calo = getMETRecoAlg(algName='METRecoAlg_Calo',configs={cfg_lht, cfg_calo})
     components.addEventAlgo(recoAlg_calo,sequencename)
     return components
diff --git a/Reconstruction/MET/METReconstruction/python/METCfg_Track.py b/Reconstruction/MET/METReconstruction/python/METCfg_Track.py
index 45534cf4063f40b26418cc7f9d2d1f9dae3e5a33..0929df9298e83ada73cc9d4b29da8254fd7bfc71 100644
--- a/Reconstruction/MET/METReconstruction/python/METCfg_Track.py
+++ b/Reconstruction/MET/METReconstruction/python/METCfg_Track.py
@@ -1,8 +1,7 @@
 # Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 
-from METReconstruction.METRecoCfg import BuildConfig, RefConfig, METConfig,clusterSigStates,getMETRecoAlg,getMETRecoTool
+from METReconstruction.METRecoCfg import BuildConfig, RefConfig, METConfig,getMETRecoAlg,getMETRecoTool
 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
-from AthenaCommon import CfgMgr
 
 
 def METTrack_Cfg(configFlags):
diff --git a/Reconstruction/MET/METReconstruction/python/METCfg_Truth.py b/Reconstruction/MET/METReconstruction/python/METCfg_Truth.py
index bec873e708f33da1c636718c30fb040f30dfc348..0b68d3f68f3a667d93960e8dbd32258ffa0e7e61 100644
--- a/Reconstruction/MET/METReconstruction/python/METCfg_Truth.py
+++ b/Reconstruction/MET/METReconstruction/python/METCfg_Truth.py
@@ -1,9 +1,7 @@
 # Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
 
-from METReconstruction.METRecoFlags import metFlags
 from METReconstruction.METRecoCfg import BuildConfig, METConfig,getMETRecoAlg,getMETRecoTool
 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
-from AthenaCommon import CfgMgr
 
 
 def METTruth_Cfg(configFlags):
diff --git a/Reconstruction/MET/METReconstruction/python/METRecoCfg.py b/Reconstruction/MET/METReconstruction/python/METRecoCfg.py
index 85fa0b44d4971bcb4665809516cf83e6bb5e90a4..d0ac6e49bcad75ada6e1424c0f5efc0a3601ba6d 100644
--- a/Reconstruction/MET/METReconstruction/python/METRecoCfg.py
+++ b/Reconstruction/MET/METReconstruction/python/METRecoCfg.py
@@ -5,11 +5,6 @@ from AthenaCommon import CfgMgr
 #################################################################################
 # Define some default values
 
-clusterSigStates = {
-    'EMScale':0,
-    'LocHad':1,
-    'Mod':1
-}
 
 defaultSelection = {
     'Ele':'Medium',
@@ -65,38 +60,12 @@ class BuildConfig:
 def getBuilder(config,suffix,doTracks,doCells,doTriggerMET,doOriginCorrClus):
     tool = None
     # Construct tool and set defaults for case-specific configuration
-    if config.objType == 'Ele':
-        tool = CfgMgr.met__METElectronTool('MET_ElectronTool_'+suffix)
-        tool.PIDSel = defaultSelection['Ele']
-        tool.AuthorSel = defaultAuthor['Ele']
-        tool.DoTracks = doTracks
-    if config.objType == 'Gamma':
-        tool = CfgMgr.met__METPhotonTool('MET_PhotonTool_'+suffix)
-        tool.PIDSel = defaultSelection['Gamma']
-        tool.AuthorSel = defaultAuthor['Gamma']
-        tool.DoTracks = doTracks
-    if config.objType == 'Tau':
-        tool = CfgMgr.met__METTauTool('MET_TauTool_'+suffix)
-        tool.DoTracks = doTracks
-    if config.objType == 'Jet':
-        tool = CfgMgr.met__METJetTool('MET_JetTool_'+suffix)
-        tool.DoTracks = doTracks
-        if "EMTopo" in suffix:
-            tool.SignalState = clusterSigStates['EMScale']
-        else:
-            tool.SignalState = clusterSigStates['LocHad']
-    if config.objType == 'Muon':
-        tool = CfgMgr.met__METMuonTool('MET_MuonTool_'+suffix)
     if config.objType == 'SoftTrk':
         tool = CfgMgr.met__METSoftTermsTool('MET_SoftTrkTool_'+suffix)
         tool.InputComposition = 'Tracks'
     if config.objType.endswith('SoftClus'):
         tool = CfgMgr.met__METSoftTermsTool('MET_SoftClusTool_'+suffix)
         tool.InputComposition = 'Clusters'
-        if doOriginCorrClus:
-            tool.SignalState = clusterSigStates['Mod']
-        else:
-            tool.SignalState = clusterSigStates['LocHad']
     if config.objType == 'SoftPFlow':
         tool = CfgMgr.met__METSoftTermsTool('MET_SoftPFlowTool_'+suffix)
         tool.InputComposition = 'PFlow'
@@ -158,11 +127,6 @@ def getRefiner(config,suffix,trkseltool=None,trkvxtool=None,trkisotool=None,calo
         from METReconstruction.METRecoFlags import metFlags
         tool.DoPVSel = metFlags.UseTracks()
         tool.DoVxSep = metFlags.UseTracks()
-
-    if config.type == 'JetFilter':
-        tool = CfgMgr.met__METJetFilterTool('MET_JetFilterTool_'+suffix)
-    if config.type == 'MuonEloss':
-        tool = CfgMgr.met__METMuonElossTool('MET_MuonElossTool_'+suffix)
     tool.MissingETKey = config.outputKey
     return tool
 
diff --git a/Reconstruction/MET/METReconstruction/share/METRecConfig.py b/Reconstruction/MET/METReconstruction/share/METRecConfig.py
index 33a09df03484e20ece2747ba65e2d720a7398a10..f86c60dbea78a7e1568ea2fb43e09a0e5c9fa448 100644
--- a/Reconstruction/MET/METReconstruction/share/METRecConfig.py
+++ b/Reconstruction/MET/METReconstruction/share/METRecConfig.py
@@ -1 +1 @@
-from AthenaCommon import Logging
from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator


if __name__=="__main__":

    # Setting needed for the ComponentAccumulator to do its thing
    from AthenaCommon.Configurable import Configurable
    Configurable.configurableRun3Behavior=True
    
    # Set message levels
    from AthenaCommon import Constants
    msgLvl = "WARNING"
    from AthenaCommon.Logging import log
    log.setLevel(msgLvl)


    
    # Config flags steer the job at various levels
    from AthenaConfiguration.AllConfigFlags import ConfigFlags
    ConfigFlags.Input.isMC  = True
    ConfigFlags.Input.Files = ["/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/ASG/mc16_13TeV.410501.PowhegPythia8EvtGen_A14_ttbar_hdamp258p75_nonallhad.merge.AOD.e5458_s3126_r9364_r9315/AOD.11182705._000001.pool.root.1"]
    # Flags relating to multithreaded execution


    nthreads=0
    ConfigFlags.Concurrency.NumThreads =nthreads
    if nthreads>0:
    	ConfigFlags.Concurrency.NumThreads = 1
    	ConfigFlags.Concurrency.NumConcurrentEvents = 1
    ConfigFlags.MET.UseTracks = True
    ConfigFlags.MET.DoPFlow = True
    if ConfigFlags.Beam.Type == 'cosmics' or ConfigFlags.Beam.Type == 'singlebeam':# used to have " or not rec.doInDet()" on the end
        ConfigFlags.MET.UseTracks = False
        ConfigFlags.MET.DoPFlow = False
        print "METReconstruction_jobOptions: detected cosmics/single-beam configuration -- switch off track-based MET reco"
 

    ConfigFlags.lock()

    # Get a ComponentAccumulator setting up the fundamental Athena job
    from AthenaConfiguration.MainServicesConfig import MainServicesThreadedCfg 
    cfg=MainServicesThreadedCfg(ConfigFlags) 

    # Add the components for reading in pool files
    from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
    cfg.merge(PoolReadCfg(ConfigFlags))

    from StoreGate.StoreGateConf import StoreGateSvc
    cfg.addService(StoreGateSvc("DetectorStore"))

    #Setup up general geometry
    modelConfig=ComponentAccumulator()
    from AtlasGeoModel.GeoModelConfig import GeoModelCfg
    modelConfig=GeoModelCfg(ConfigFlags)
    cfg.merge(modelConfig)

    from MagFieldServices.MagFieldServicesConfig import MagneticFieldSvcCfg
    cfg.merge(MagneticFieldSvcCfg(ConfigFlags))

    from TrkConfig.AtlasTrackingGeometrySvcConfig import TrackingGeometrySvcCfg
    cfg.merge(TrackingGeometrySvcCfg(ConfigFlags))

    from MuonConfig.MuonGeometryConfig import MuonGeoModelCfg
    cfg.merge(MuonGeoModelCfg(ConfigFlags))  
    
    # Get Jet Inputs
    from JetRecConfig.StandardJetDefs import EMTopoOrigin, LCTopoOrigin, CHSPFlow
    from JetRecConfig import JetRecConfig
    cfg1 = JetRecConfig.JetInputCfg( [EMTopoOrigin], ConfigFlags)
    cfg.merge( cfg1 )
    cfg2 = JetRecConfig.JetInputCfg( [LCTopoOrigin], ConfigFlags)
    cfg.merge( cfg2 )
    cfg3 = JetRecConfig.JetInputCfg( [CHSPFlow], ConfigFlags)
    cfg.merge( cfg3 )

    # Need to rename the collections in the xAOD in order to avoid conflicts
    from SGComps.AddressRemappingConfig import InputRenameCfg
    remap_track=InputRenameCfg('xAOD::MissingETContainer','MET_Track','MET_Track_Old')
    remap_trackaux=InputRenameCfg('xAOD::MissingETAuxContainer','MET_TrackAux.','MET_Track_OldAux.')
    cfg.merge(remap_track)
    cfg.merge(remap_trackaux)    
    remap_emt=InputRenameCfg('xAOD::MissingETContainer','MET_EMTopo','MET_EMTopo_Old')
    remap_emtaux=InputRenameCfg('xAOD::MissingETAuxContainer','MET_EMTopoAux.','MET_EMTopo_OldAux.')
    cfg.merge(remap_emt)
    cfg.merge(remap_emtaux)    
    remap_lht=InputRenameCfg('xAOD::MissingETContainer','MET_LocHadTopo','MET_LocHadTopo_Old')
    remap_lhtaux=InputRenameCfg('xAOD::MissingETAuxContainer','MET_LocHadTopoAux.','MET_LocHadTopo_OldAux.')
    cfg.merge(remap_lht)
    cfg.merge(remap_lhtaux)    
    
    from METReconstruction.METCfg_Track import METTrack_Cfg
    cfg4=METTrack_Cfg(ConfigFlags)
    cfg.merge(cfg4)

    from METReconstruction.METCfg_Calo import METCalo_Cfg
    cfg5=METCalo_Cfg(ConfigFlags)
    cfg.merge(cfg5)
    
    # Need to understand how to access the doTruth flag in the current reconstruction SW.
    doTruth=True
    if doTruth:
    	from METReconstruction.METCfg_Truth import METTruth_Cfg
    	cfg.merge(METTruth_Cfg(ConfigFlags))
    from METReconstruction.METCfg_Associator import METAssociator_Cfg
    cfg6=METAssociator_Cfg(ConfigFlags)
    cfg.merge(cfg6)
            
    # Start by just trying to add in MET Reconstruction based on METReconstruction_jobOptions.py
    #from METReconstruction.METRecoFlags import metFlags
    # from AthenaCommon.BeamFlags import jobproperties NO LONGER ALLOWED
    # from RecExConfig.RecFlags import rec NO LONGER ALLOWED
    #NEED TO CHANGE THIS TO DEPEND ON ConfigFlags.Beam.Type => for now ignore
 
   # TJ: Best to start each of these from scratch as a new CA module,
   # Can e.g. make files called METCaloConfig.py that just put the
   # old alg into a CA.
   
   # Rather than have N reco tools that get thrown into one alg later,
   # have each CA generate its own METRecoAlg and add this to the sequence.
   
   # Probably want to define one CA each for EMTopo, LCTopo and PFlow,
   # then have a higher level one that merges in all three,
   # then the top-level (i.e. this) can just pull in the all-associators CA


    outputlist = ["EventInfo#*"]
    outputlist+=["xAOD::MissingETContainer#"+"MET_Track","xAOD::MissingETAuxContainer#"+"MET_Track"+"Aux."]
    outputlist+=["xAOD::MissingETContainer#"+"MET_Track_Old","xAOD::MissingETAuxContainer#"+"MET_Track_Old"+"Aux."]
    outputlist+=["xAOD::MissingETContainer#"+"MET_EMTopo","xAOD::MissingETAuxContainer#"+"MET_EMTopo"+"Aux."]
    outputlist+=["xAOD::MissingETContainer#"+"MET_EMTopo_Old","xAOD::MissingETAuxContainer#"+"MET_EMTopo_Old"+"Aux."]
    outputlist+=["xAOD::MissingETContainer#"+"MET_AntiKt4EMPFlow","xAOD::MissingETAuxContainer#"+"MET_AntiKt4EMPFlow"+"Aux."]
    from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
    cfg.merge(OutputStreamCfg(ConfigFlags,"xAOD",ItemList=outputlist))
    
    # Optionally, print the contents of the store every event
    cfg.getService("StoreGateSvc").Dump = False
    #print "Running final component accumulator"
    #cfg.printConfig()
    cfg.run(maxEvents=20)
\ No newline at end of file
+from AthenaCommon import Logging
from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator


if __name__=="__main__":

    # Setting needed for the ComponentAccumulator to do its thing
    from AthenaCommon.Configurable import Configurable
    Configurable.configurableRun3Behavior=True
    
    # Set message levels
    from AthenaCommon import Constants
    msgLvl = "WARNING"
    from AthenaCommon.Logging import log
    log.setLevel(msgLvl)


    
    # Config flags steer the job at various levels
    from AthenaConfiguration.AllConfigFlags import ConfigFlags
    ConfigFlags.Input.isMC  = True
    ConfigFlags.Input.Files = ["/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/ASG/mc16_13TeV.410501.PowhegPythia8EvtGen_A14_ttbar_hdamp258p75_nonallhad.merge.AOD.e5458_s3126_r9364_r9315/AOD.11182705._000001.pool.root.1"]
    # Flags relating to multithreaded execution


    nthreads=0
    ConfigFlags.Concurrency.NumThreads =nthreads
    if nthreads>0:
    	ConfigFlags.Concurrency.NumThreads = 1
    	ConfigFlags.Concurrency.NumConcurrentEvents = 1
    ConfigFlags.MET.UseTracks = True
    ConfigFlags.MET.DoPFlow = True
    if ConfigFlags.Beam.Type == 'cosmics' or ConfigFlags.Beam.Type == 'singlebeam':# used to have " or not rec.doInDet()" on the end
        ConfigFlags.MET.UseTracks = False
        ConfigFlags.MET.DoPFlow = False
        print "METReconstruction_jobOptions: detected cosmics/single-beam configuration -- switch off track-based MET reco"
 

    ConfigFlags.lock()

    # Get a ComponentAccumulator setting up the fundamental Athena job
    from AthenaConfiguration.MainServicesConfig import MainServicesCfg 
    cfg=MainServicesCfg(ConfigFlags) 

    # Add the components for reading in pool files
    from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
    cfg.merge(PoolReadCfg(ConfigFlags))
    """
    from StoreGate.StoreGateConf import StoreGateSvc
    cfg.addService(StoreGateSvc("DetectorStore"))

    #Setup up general geometry
    modelConfig=ComponentAccumulator()
    from AtlasGeoModel.GeoModelConfig import GeoModelCfg
    modelConfig=GeoModelCfg(ConfigFlags)
    cfg.merge(modelConfig)

    from MagFieldServices.MagFieldServicesConfig import MagneticFieldSvcCfg
    cfg.merge(MagneticFieldSvcCfg(ConfigFlags))

    from TrkConfig.AtlasTrackingGeometrySvcConfig import TrackingGeometrySvcCfg
    cfg.merge(TrackingGeometrySvcCfg(ConfigFlags))

    from MuonConfig.MuonGeometryConfig import MuonGeoModelCfg
    cfg.merge(MuonGeoModelCfg(ConfigFlags))  
    """
    # Nowadays the jet calibration tool requires the EventInfo


    # to be decorated with lumi info, which is not in Run 2 AODs


    from LumiBlockComps.LuminosityCondAlgConfig import LuminosityCondAlgCfg


    cfg.merge(LuminosityCondAlgCfg(ConfigFlags))

    from AthenaConfiguration.ComponentFactory import CompFactory


    muWriter = CompFactory.LumiBlockMuWriter("LumiBlockMuWriter",LumiDataKey="LuminosityCondData")


    cfg.addEventAlgo(muWriter,"AthAlgSeq")



    # Get Jet Inputs
    from JetRecConfig.StandardJetDefs import EMTopoOrigin, LCTopoOrigin, CHSPFlow
    from JetRecConfig import JetRecConfig
    cfg1 = JetRecConfig.JetInputCfg( [EMTopoOrigin], ConfigFlags)
    cfg.merge( cfg1 )
    cfg2 = JetRecConfig.JetInputCfg( [LCTopoOrigin], ConfigFlags)
    cfg.merge( cfg2 )
    cfg3 = JetRecConfig.JetInputCfg( [CHSPFlow], ConfigFlags)
    cfg.merge( cfg3 )

    # Need to rename the collections in the xAOD in order to avoid conflicts
    from SGComps.AddressRemappingConfig import InputRenameCfg
    remap_track=InputRenameCfg('xAOD::MissingETContainer','MET_Track','MET_Track_Old')
    remap_trackaux=InputRenameCfg('xAOD::MissingETAuxContainer','MET_TrackAux.','MET_Track_OldAux.')
    cfg.merge(remap_track)
    cfg.merge(remap_trackaux)    
    remap_emt=InputRenameCfg('xAOD::MissingETContainer','MET_EMTopo','MET_EMTopo_Old')
    remap_emtaux=InputRenameCfg('xAOD::MissingETAuxContainer','MET_EMTopoAux.','MET_EMTopo_OldAux.')
    cfg.merge(remap_emt)
    cfg.merge(remap_emtaux)    
    remap_lht=InputRenameCfg('xAOD::MissingETContainer','MET_LocHadTopo','MET_LocHadTopo_Old')
    remap_lhtaux=InputRenameCfg('xAOD::MissingETAuxContainer','MET_LocHadTopoAux.','MET_LocHadTopo_OldAux.')
    cfg.merge(remap_lht)
    cfg.merge(remap_lhtaux)    
    
    from METReconstruction.METCfg_Track import METTrack_Cfg
    cfg4=METTrack_Cfg(ConfigFlags)
    cfg.merge(cfg4)

    from METReconstruction.METCfg_Calo import METCalo_Cfg
    cfg5=METCalo_Cfg(ConfigFlags)
    cfg.merge(cfg5)
    
    # Need to understand how to access the doTruth flag in the current reconstruction SW.
    doTruth=True
    if doTruth:
    	from METReconstruction.METCfg_Truth import METTruth_Cfg
    	cfg.merge(METTruth_Cfg(ConfigFlags))
    from METReconstruction.METCfg_Associator import METAssociator_Cfg
    cfg6=METAssociator_Cfg(ConfigFlags)
    cfg.merge(cfg6)
            
    # Start by just trying to add in MET Reconstruction based on METReconstruction_jobOptions.py
    #from METReconstruction.METRecoFlags import metFlags
    # from AthenaCommon.BeamFlags import jobproperties NO LONGER ALLOWED
    # from RecExConfig.RecFlags import rec NO LONGER ALLOWED
    #NEED TO CHANGE THIS TO DEPEND ON ConfigFlags.Beam.Type => for now ignore
 
   # TJ: Best to start each of these from scratch as a new CA module,
   # Can e.g. make files called METCaloConfig.py that just put the
   # old alg into a CA.
   
   # Rather than have N reco tools that get thrown into one alg later,
   # have each CA generate its own METRecoAlg and add this to the sequence.
   
   # Probably want to define one CA each for EMTopo, LCTopo and PFlow,
   # then have a higher level one that merges in all three,
   # then the top-level (i.e. this) can just pull in the all-associators CA


    outputlist = ["EventInfo#*"]
    outputlist+=["xAOD::MissingETContainer#"+"MET_Track","xAOD::MissingETAuxContainer#"+"MET_Track"+"Aux."]
    outputlist+=["xAOD::MissingETContainer#"+"MET_Track_Old","xAOD::MissingETAuxContainer#"+"MET_Track_Old"+"Aux."]
    outputlist+=["xAOD::MissingETContainer#"+"MET_EMTopo","xAOD::MissingETAuxContainer#"+"MET_EMTopo"+"Aux."]
    outputlist+=["xAOD::MissingETContainer#"+"MET_EMTopo_Old","xAOD::MissingETAuxContainer#"+"MET_EMTopo_Old"+"Aux."]
    outputlist+=["xAOD::MissingETContainer#"+"MET_AntiKt4EMPFlow","xAOD::MissingETAuxContainer#"+"MET_AntiKt4EMPFlow"+"Aux."]
    from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
    cfg.merge(OutputStreamCfg(ConfigFlags,"xAOD",ItemList=outputlist))
    
    # Optionally, print the contents of the store every event
    cfg.getService("StoreGateSvc").Dump = False
    #print "Running final component accumulator"
    #cfg.printConfig()
    cfg.run(maxEvents=20)
\ No newline at end of file