diff --git a/PhysicsAnalysis/MCTruthClassifier/MCTruthClassifier/MCTruthClassifier.h b/PhysicsAnalysis/MCTruthClassifier/MCTruthClassifier/MCTruthClassifier.h index e30b2663622b2cf5d437940b71a00799d69702b2..8c3954a4b30feaa8b468d6f1c0774b9283e74ea2 100644 --- a/PhysicsAnalysis/MCTruthClassifier/MCTruthClassifier/MCTruthClassifier.h +++ b/PhysicsAnalysis/MCTruthClassifier/MCTruthClassifier/MCTruthClassifier.h @@ -53,24 +53,74 @@ CREATED: Sep 2007 //std includes #include <cmath> #include <utility> -class MCTruthClassifier - : virtual public IMCTruthClassifier - , public asg::AsgTool +class MCTruthClassifier : virtual public IMCTruthClassifier , public asg::AsgTool { ASG_TOOL_CLASS(MCTruthClassifier, IMCTruthClassifier) public: // constructor - MCTruthClassifier(const std::string& type); + MCTruthClassifier(const std::string& type) : asg::AsgTool(type) { +#if !defined(XAOD_ANALYSIS) && !defined(GENERATIONBASE) + declareProperty("FwdElectronUseG4Sel" , m_FwdElectronUseG4Sel = true, "Use Geant4 selection for forward electrons calo clusters"); + declareProperty("FwdElectronTruthExtrEtaCut", m_FwdElectronTruthExtrEtaCut = 2.4, "Cut on the eta of the truth Particles to be extrapolated for Fwd electrons"); + declareProperty("FwdElectronTruthExtrEtaWindowCut", m_FwdElectronTruthExtrEtaWindowCut = 0.15, "Cut on the delta eta of the truth Particles to be extrapolated for Fwd electrons and the current FwdElectron"); + declareProperty("partExtrConePhi", m_partExtrConePhi = 0.4); + declareProperty("partExtrConeEta", m_partExtrConeEta = 0.2); + declareProperty("phtClasConePhi", m_phtClasConePhi = 0.05); + declareProperty("phtClasConeEta", m_phtClasConeEta = 0.025); + declareProperty("useCaching", m_useCaching = true); + declareProperty("phtdRtoTrCut", m_phtdRtoTrCut = 0.1); + declareProperty("fwrdEledRtoTrCut", m_fwrdEledRtoTrCut = 0.15); + declareProperty("ROICone", m_ROICone = false); +#endif +#ifndef GENERATIONBASE + declareProperty("deltaRMatchCut", m_deltaRMatchCut = 0.2); + declareProperty("deltaPhiMatchCut", m_deltaPhiMatchCut = 0.2); + declareProperty("NumOfSiHitsCut", m_NumOfSiHitsCut = 3); + declareProperty("jetPartDRMatch", m_jetPartDRMatch = 0.4); +#endif + // Properties Available in all + declareProperty("inclEgammaFwrdEle", m_inclEgammaFwrdEle = true); + declareProperty("inclEgammaPhoton", m_inclEgammaPhoton = true); + declareProperty("pTChargePartCut", m_pTChargePartCut = 1.0); + declareProperty("pTNeutralPartCut", m_pTNeutralPartCut = 0.); + declareProperty("inclG4part", m_inclG4part = false); + } // destructor - virtual ~MCTruthClassifier(); + virtual ~MCTruthClassifier() = default ; - // Gaudi algorithm hooks - virtual StatusCode initialize() override; + // Gaudi algorithm hooks + virtual StatusCode initialize() override { + ATH_MSG_INFO(" Initializing MCTruthClassifier"); +#ifndef XAOD_ANALYSIS + // Only needed for GenParticle interface + if (!m_truthLinkVecReadHandleKey.key().empty()) { + ATH_CHECK(m_truthLinkVecReadHandleKey.initialize()); + } +#endif + ATH_CHECK(m_truthParticleContainerKey.initialize()); + +#if !defined(XAOD_ANALYSIS) && !defined(GENERATIONBASE) + if (!m_caloExtensionTool.empty()) { + ATH_CHECK(m_caloExtensionTool.retrieve()); + } else { + m_caloExtensionTool.disable(); + } + + ATH_CHECK(m_caloMgrKey.initialize(SG::AllowEmpty)); + + if (!m_truthInConeTool.empty()) { + ATH_CHECK(m_truthInConeTool.retrieve()); + } else { + m_truthInConeTool.disable(); + } +#endif + return StatusCode::SUCCESS; + } virtual StatusCode finalize() #ifndef XAOD_STANDALONE override #endif // not XAOD_STANDALONE - ; + { return StatusCode::SUCCESS;} /* All get to see these*/ virtual std::pair<MCTruthPartClassifier::ParticleType, MCTruthPartClassifier::ParticleOrigin> diff --git a/PhysicsAnalysis/MCTruthClassifier/Root/MCTruthClassifier.cxx b/PhysicsAnalysis/MCTruthClassifier/Root/MCTruthClassifier.cxx deleted file mode 100644 index 58e842b93cc2a9f63b03a48778bbcad3fea20d0c..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/MCTruthClassifier/Root/MCTruthClassifier.cxx +++ /dev/null @@ -1,93 +0,0 @@ -/* - Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration -*/ - -/*********************************************************************** - -NAME: MCTruthClassifier.cxx -PACKAGE: atlasoff/PhysicsAnalysis/MCTruthClassifier - -AUTHORS: O. Fedin -CREATED: Sep 2007 - -PURPOSE: to classify truth particles according to their origin. Based on - the truth particle classification the tool provide classification of - ID and combined muon tracks, egamma electrons (including forward - electrons) and egamma photons. Both AOD and ESD files can be used. - See for details: - https://twiki.cern.ch/twiki/bin/view/AtlasProtected/EgammaMCTruthClassifier -Updated: -************************************************************************ -Updated Feb 2024 by Andrii Verbytskyi <andrii.verbytskyi@mpp.mpg.de> -************************************************************************/ - -#include "MCTruthClassifier/MCTruthClassifier.h" -using namespace MCTruthPartClassifier; - -// ----------------------------------------------------------------------- -// Constructor -// ----------------------------------------------------------------------- -MCTruthClassifier::MCTruthClassifier(const std::string& type) : asg::AsgTool(type) { - -#if !defined(XAOD_ANALYSIS) && !defined(GENERATIONBASE) - declareProperty("FwdElectronUseG4Sel" , m_FwdElectronUseG4Sel = true, "Use Geant4 selection for forward electrons calo clusters"); - declareProperty("FwdElectronTruthExtrEtaCut", m_FwdElectronTruthExtrEtaCut = 2.4, "Cut on the eta of the truth Particles to be extrapolated for Fwd electrons"); - declareProperty("FwdElectronTruthExtrEtaWindowCut", m_FwdElectronTruthExtrEtaWindowCut = 0.15, "Cut on the delta eta of the truth Particles to be extrapolated for Fwd electrons and the current FwdElectron"); - declareProperty("partExtrConePhi", m_partExtrConePhi = 0.4); - declareProperty("partExtrConeEta", m_partExtrConeEta = 0.2); - declareProperty("phtClasConePhi", m_phtClasConePhi = 0.05); - declareProperty("phtClasConeEta", m_phtClasConeEta = 0.025); - declareProperty("useCaching", m_useCaching = true); - declareProperty("phtdRtoTrCut", m_phtdRtoTrCut = 0.1); - declareProperty("fwrdEledRtoTrCut", m_fwrdEledRtoTrCut = 0.15); - declareProperty("ROICone", m_ROICone = false); -#endif -#ifndef GENERATIONBASE - declareProperty("deltaRMatchCut", m_deltaRMatchCut = 0.2); - declareProperty("deltaPhiMatchCut", m_deltaPhiMatchCut = 0.2); - declareProperty("NumOfSiHitsCut", m_NumOfSiHitsCut = 3); - declareProperty("jetPartDRMatch", m_jetPartDRMatch = 0.4); -#endif - // Properties Available in all - declareProperty("inclEgammaFwrdEle", m_inclEgammaFwrdEle = true); - declareProperty("inclEgammaPhoton", m_inclEgammaPhoton = true); - declareProperty("pTChargePartCut", m_pTChargePartCut = 1.0); - declareProperty("pTNeutralPartCut", m_pTNeutralPartCut = 0.); - declareProperty("inclG4part", m_inclG4part = false); - -} - -MCTruthClassifier::~MCTruthClassifier() = default; - -StatusCode MCTruthClassifier::initialize(){ - ATH_MSG_INFO(" Initializing MCTruthClassifier"); -#ifndef XAOD_ANALYSIS - // Only needed for GenParticle interface - if (!m_truthLinkVecReadHandleKey.key().empty()) { - ATH_CHECK(m_truthLinkVecReadHandleKey.initialize()); - } -#endif - ATH_CHECK(m_truthParticleContainerKey.initialize()); - -#if !defined(XAOD_ANALYSIS) && !defined(GENERATIONBASE) - if (!m_caloExtensionTool.empty()) { - ATH_CHECK(m_caloExtensionTool.retrieve()); - } else { - m_caloExtensionTool.disable(); - } - - ATH_CHECK(m_caloMgrKey.initialize(SG::AllowEmpty)); - - if (!m_truthInConeTool.empty()) { - ATH_CHECK(m_truthInConeTool.retrieve()); - } else { - m_truthInConeTool.disable(); - } -#endif - return StatusCode::SUCCESS; -} - -StatusCode MCTruthClassifier::finalize() -{ - return StatusCode::SUCCESS; -}