25                ISvcLocator * pSvcLocator) :
 
   44     return StatusCode::FAILURE;
 
   64   unsigned int tool_count = 0;
 
   72   if (tool_count == 0) {
 
   74     return StatusCode::FAILURE;
 
   77   return StatusCode::SUCCESS;
 
   88   ATH_CHECK(neutralPFOHandle.
record(std::make_unique<xAOD::PFOContainer>(), std::make_unique<xAOD::PFOAuxContainer>()));
 
   93   ATH_CHECK(hadronicPFOHandle.
record(std::make_unique<xAOD::PFOContainer>(), std::make_unique<xAOD::PFOAuxContainer>()));
 
   98   ATH_CHECK(vertOutHandle.
record(std::make_unique<xAOD::VertexContainer>(), std::make_unique<xAOD::VertexAuxContainer>()));
 
  103   ATH_CHECK(chargedPFOHandle.
record(std::make_unique<xAOD::PFOContainer>(), std::make_unique<xAOD::PFOAuxContainer>()));
 
  108   ATH_CHECK(pi0Handle.
record(std::make_unique<xAOD::ParticleContainer>(), std::make_unique<xAOD::ParticleAuxContainer>()));
 
  113   if (!pi0ClusterInHandle.
isValid()) {
 
  114     ATH_MSG_ERROR (
"Could not retrieve HiveDataObj with key " << pi0ClusterInHandle.
key());
 
  115     return StatusCode::FAILURE;
 
  121   if (!tauInputHandle.
isValid()) {
 
  122     ATH_MSG_ERROR (
"Could not retrieve HiveDataObj with key " << tauInputHandle.
key());
 
  123     return StatusCode::FAILURE;
 
  129   ATH_CHECK(outputTauHandle.
record(std::make_unique<xAOD::TauJetContainer>(), std::make_unique<xAOD::TauJetAuxContainer>()));    
 
  145     for (
const ToolHandle<ITauToolBase>& 
tool : 
m_tools) {
 
  147       if ( 
tool->type() == 
"TauPi0ClusterCreator"){
 
  148     sc = 
tool->executePi0ClusterCreator(*pTau, *neutralPFOContainer, *hadronicClusterPFOContainer, *pi0ClusterContainer);
 
  150       else if ( 
tool->type() == 
"TauVertexVariables"){
 
  151     sc = 
tool->executeVertexVariables(*pTau, *pSecVtxContainer);
 
  153       else if ( 
tool->type() == 
"TauPi0ClusterScaler"){
 
  154     sc = 
tool->executePi0ClusterScaler(*pTau, *neutralPFOContainer, *chargedPFOContainer);
 
  156       else if ( 
tool->type() == 
"TauPi0ScoreCalculator"){
 
  157     sc = 
tool->executePi0nPFO(*pTau, *neutralPFOContainer);
 
  159       else if ( 
tool->type() == 
"TauPi0Selector"){
 
  160     sc = 
tool->executePi0nPFO(*pTau, *neutralPFOContainer);
 
  162       else if ( 
tool->type() == 
"PanTau::PanTauProcessor"){
 
  163     sc = 
tool->executePanTau(*pTau, *pi0Container, *neutralPFOContainer);
 
  166     sc = 
tool->execute(*pTau);
 
  168       if (
sc.isFailure())  
break;
 
  170     if (
sc.isSuccess()) {
 
  171       ATH_MSG_VERBOSE(
"The tau candidate has been modified successfully by all the invoked tools.");
 
  177   newTauCon->sort( sortByPt );
 
  181   return StatusCode::SUCCESS;