diff --git a/Reconstruction/tauRec/src/TauRunnerAlg.cxx b/Reconstruction/tauRec/src/TauRunnerAlg.cxx index f19d80896b05d529c46d7aba1add9be2fdbb8ffe..4a0a1bf5433114c78672acf13e574a5c0b77cc17 100644 --- a/Reconstruction/tauRec/src/TauRunnerAlg.cxx +++ b/Reconstruction/tauRec/src/TauRunnerAlg.cxx @@ -64,6 +64,7 @@ StatusCode TauRunnerAlg::initialize() { ATH_CHECK( m_hadronicPFOOutputContainer.initialize() ); ATH_CHECK( m_vertexOutputContainer.initialize() ); ATH_CHECK( m_chargedPFOOutputContainer.initialize() ); + ATH_CHECK( m_pi0Container.initialize() ); //------------------------------------------------------------------------- // Allocate tools @@ -168,6 +169,14 @@ StatusCode TauRunnerAlg::execute() { SG::WriteHandle<xAOD::PFOContainer> chargedPFOHandle( m_chargedPFOOutputContainer ); ATH_MSG_DEBUG(" write: " << chargedPFOHandle.key() << " = " << "..." ); ATH_CHECK(chargedPFOHandle.record(std::unique_ptr<xAOD::PFOContainer>{chargedPFOContainer}, std::unique_ptr<xAOD::PFOAuxContainer>{chargedPFOAuxStore})); + + // write pi0 container + xAOD::ParticleContainer* pi0Container = new xAOD::ParticleContainer(); + xAOD::ParticleAuxContainer* pi0AuxStore = new xAOD::ParticleAuxContainer(); + pi0Container->setStore(pi0AuxStore); + SG::WriteHandle<xAOD::ParticleContainer> pi0Handle( m_pi0Container ); + ATH_MSG_DEBUG(" write: " << pi0Handle.key() << " = " << "..." ); + ATH_CHECK(pi0Handle.record(std::unique_ptr<xAOD::ParticleContainer>{pi0Container}, std::unique_ptr<xAOD::ParticleAuxContainer>{pi0AuxStore})); //------------------------------------------------------------------------- // Initialize tools for this event @@ -224,6 +233,10 @@ StatusCode TauRunnerAlg::execute() { else if ( (*itT)->name().find("Pi0ClusterScaler") != std::string::npos){ sc = (*itT)->executePi0ClusterScaler(*pTau, *chargedPFOContainer); } + else if ( (*itT)->name().find("PanTauProcessor") != std::string::npos){ + ATH_MSG_INFO("EXECPANTAU"); + sc = (*itT)->executePanTau(*pTau, *pi0Container); + } else { sc = (*itT)->execute(*pTau); } diff --git a/Reconstruction/tauRec/tauRec/TauRunnerAlg.h b/Reconstruction/tauRec/tauRec/TauRunnerAlg.h index b9b05983fc5194a59cf46e71e29a6eb4bc1d5375..53d5359d73b5cc266f1fa725e9b3acb5cac852cb 100644 --- a/Reconstruction/tauRec/tauRec/TauRunnerAlg.h +++ b/Reconstruction/tauRec/tauRec/TauRunnerAlg.h @@ -24,6 +24,9 @@ #include "xAODTracking/VertexContainer.h" #include "xAODTracking/VertexAuxContainer.h" +#include "xAODParticleEvent/ParticleContainer.h" +#include "xAODParticleEvent/ParticleAuxContainer.h" + /** * @brief Main class for tau candidate processing. */ @@ -63,7 +66,7 @@ class TauRunnerAlg: public AthAlgorithm SG::WriteHandleKey<xAOD::PFOContainer> m_hadronicPFOOutputContainer{this,"Key_hadronicPFOOutputContainer", "TauHadronicParticleFlowObjects", "tau hadronic pfo out key"}; SG::WriteHandleKey<xAOD::VertexContainer> m_vertexOutputContainer{this,"Key_vertexOutputContainer", "TauSecondaryVertices", "input vertex container key"}; SG::WriteHandleKey<xAOD::PFOContainer> m_chargedPFOOutputContainer{this,"Key_chargedPFOOutputContainer", "TauChargedParticleFlowObjects", "tau charged pfo out key"}; - + SG::WriteHandleKey<xAOD::ParticleContainer> m_pi0Container{this,"Key_pi0Container", "finalTauPi0s", "tau final pi0s output"}; };