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;