diff --git a/Reconstruction/MuonIdentification/MuonCombinedAlgs/src/MuonCombinedInDetExtensionAlg.cxx b/Reconstruction/MuonIdentification/MuonCombinedAlgs/src/MuonCombinedInDetExtensionAlg.cxx index f4035e47989b8d1e74c6c6bef3263f848e9d0a53..9335065050d1831eacff3eadd102e86b8aab416a 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedAlgs/src/MuonCombinedInDetExtensionAlg.cxx +++ b/Reconstruction/MuonIdentification/MuonCombinedAlgs/src/MuonCombinedInDetExtensionAlg.cxx @@ -12,21 +12,21 @@ MuonCombinedInDetExtensionAlg::MuonCombinedInDetExtensionAlg(const std::string& { declareProperty("MuonCombinedInDetExtensionTools",m_muonCombinedInDetExtensionTools); declareProperty("usePRDs",m_usePRDs=false); + declareProperty("useNSW", m_useNSW=false); } MuonCombinedInDetExtensionAlg::~MuonCombinedInDetExtensionAlg(){} StatusCode MuonCombinedInDetExtensionAlg::initialize() { - ATH_CHECK(m_muonCombinedInDetExtensionTools.retrieve()); ATH_CHECK(m_indetCandidateCollectionName.initialize()); ATH_CHECK(m_MDT_ContainerName.initialize(m_usePRDs)); ATH_CHECK(m_RPC_ContainerName.initialize(m_usePRDs)); ATH_CHECK(m_TGC_ContainerName.initialize(m_usePRDs)); - ATH_CHECK(m_CSC_ContainerName.initialize(m_usePRDs)); - ATH_CHECK(m_sTGC_ContainerName.initialize(m_usePRDs)); - ATH_CHECK(m_MM_ContainerName.initialize(m_usePRDs)); + ATH_CHECK(m_CSC_ContainerName.initialize(m_usePRDs && !m_useNSW)); + ATH_CHECK(m_sTGC_ContainerName.initialize(m_usePRDs && m_useNSW)); + ATH_CHECK(m_MM_ContainerName.initialize(m_usePRDs && m_useNSW)); return StatusCode::SUCCESS; } @@ -45,14 +45,16 @@ StatusCode MuonCombinedInDetExtensionAlg::execute() SG::ReadHandle<Muon::CscPrepDataContainer> cscPRDContainer(m_CSC_ContainerName); SG::ReadHandle<Muon::RpcPrepDataContainer> rpcPRDContainer(m_RPC_ContainerName); SG::ReadHandle<Muon::TgcPrepDataContainer> tgcPRDContainer(m_TGC_ContainerName); - SG::ReadHandle<Muon::sTgcPrepDataContainer> stgcPRDContainer(m_sTGC_ContainerName); - SG::ReadHandle<Muon::MMPrepDataContainer> mmPRDContainer(m_MM_ContainerName); - - for(auto& tool : m_muonCombinedInDetExtensionTools) - tool->extendWithPRDs(*indetCandidateCollection,mdtPRDContainer.cptr(),cscPRDContainer.cptr(),rpcPRDContainer.cptr(),tgcPRDContainer.cptr(),stgcPRDContainer.cptr(),mmPRDContainer.cptr()); - } - else{ - + if (m_useNSW) { + SG::ReadHandle<Muon::sTgcPrepDataContainer> stgcPRDContainer(m_sTGC_ContainerName); + SG::ReadHandle<Muon::MMPrepDataContainer> mmPRDContainer(m_MM_ContainerName); + for(auto& tool : m_muonCombinedInDetExtensionTools) + tool->extendWithPRDs(*indetCandidateCollection,mdtPRDContainer.cptr(),cscPRDContainer.cptr(),rpcPRDContainer.cptr(),tgcPRDContainer.cptr(),stgcPRDContainer.cptr(),mmPRDContainer.cptr()); + } else { + for(auto& tool : m_muonCombinedInDetExtensionTools) + tool->extendWithPRDs(*indetCandidateCollection,mdtPRDContainer.cptr(),cscPRDContainer.cptr(),rpcPRDContainer.cptr(),tgcPRDContainer.cptr(),0,0); + } + } else{ for(auto& tool : m_muonCombinedInDetExtensionTools) tool->extend(*indetCandidateCollection); } diff --git a/Reconstruction/MuonIdentification/MuonCombinedAlgs/src/MuonCombinedInDetExtensionAlg.h b/Reconstruction/MuonIdentification/MuonCombinedAlgs/src/MuonCombinedInDetExtensionAlg.h index 205b20620dee97ce59ae0399d1ad0c2f50d965fc..1233215345ba9eb751478108436dc2d6c1c39990 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedAlgs/src/MuonCombinedInDetExtensionAlg.h +++ b/Reconstruction/MuonIdentification/MuonCombinedAlgs/src/MuonCombinedInDetExtensionAlg.h @@ -39,6 +39,7 @@ class MuonCombinedInDetExtensionAlg : public AthAlgorithm SG::ReadHandleKey<Muon::sTgcPrepDataContainer> m_sTGC_ContainerName{this,"sTGCPrepDataLocation","sTGC_Clusters","sTGC prep data"}; SG::ReadHandleKey<Muon::MMPrepDataContainer> m_MM_ContainerName{this,"MMPrepDataLocation","MM_Clusters","MM prep data"}; bool m_usePRDs; + bool m_useNSW; }; diff --git a/Reconstruction/MuonIdentification/MuonCombinedRecExample/python/MuonCombinedAlgs.py b/Reconstruction/MuonIdentification/MuonCombinedRecExample/python/MuonCombinedAlgs.py index 26b722c7f3376924462bbdd5c61b157b1268ece6..81f84e57b8f64e93bd22c8cd23fa5e3cfb9b6e6d 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedRecExample/python/MuonCombinedAlgs.py +++ b/Reconstruction/MuonIdentification/MuonCombinedRecExample/python/MuonCombinedAlgs.py @@ -3,6 +3,9 @@ from MuonCombinedRecExample.MuonCombinedRecFlags import muonCombinedRecFlags from AthenaCommon.CfgGetter import getPublicTool, getAlgorithm,getPublicToolClone from MuonRecExample.ConfiguredMuonRec import ConfiguredMuonRec +from MuonRecExample.MuonRecFlags import muonRecFlags +muonRecFlags.setDefaults() + from AthenaCommon.AlgSequence import AlgSequence from AthenaCommon import CfgMgr from AthenaCommon.BeamFlags import jobproperties @@ -14,6 +17,7 @@ def MuonCombinedInDetExtensionAlg(name="MuonCombinedInDetExtensionAlg",**kwargs) if muonCombinedRecFlags.doCaloTrkMuId(): tools.append(getPublicTool("MuonCaloTagTool")) kwargs.setdefault("MuonCombinedInDetExtensionTools", tools ) + kwargs.setdefault("useNSW", muonRecFlags.dosTGCs() and muonRecFlags.doMicromegas() ) return CfgMgr.MuonCombinedInDetExtensionAlg(name,**kwargs) def MuGirlAlg(name="MuGirlAlg",**kwargs):