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