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"};
 	
 };