26 ATH_MSG_INFO(
"List of modification tools in execution sequence:");
37 ATH_MSG_INFO(
"List of official tools in execution sequence:");
49 ATH_MSG_ERROR(
"Missing input/output containers required for tool " <<
tool->name() <<
" (" <<
tool->type() <<
")");
50 return StatusCode::FAILURE;
60 return StatusCode::FAILURE;
63 return StatusCode::SUCCESS;
70 if (!tauInputHandle.
isValid()) {
71 ATH_MSG_ERROR(
"Could not retrieve TauJetContainer with key " << tauInputHandle.
key());
72 return StatusCode::FAILURE;
82 ATH_CHECK(outputTauTrackHandle.
record(std::make_unique<xAOD::TauTrackContainer>(), std::make_unique<xAOD::TauTrackAuxContainer>()));
83 newTauTrkCon = outputTauTrackHandle.
ptr();
88 ATH_CHECK(outputTauHandle.
record(std::make_unique<xAOD::TauJetContainer>(), std::make_unique<xAOD::TauJetAuxContainer>()));
102 acc_ori_tau_link(*newTau) = link_to_ori_tau;
113 *newTauTrk = *tauTrk;
123 acc_modified(*newTau) =
static_cast<char>(
false);
128 if(
tool->execute(*newTau).isFailure())
break;
144 if(!pi0ClusterInHandle.
isValid()) {
145 ATH_MSG_ERROR (
"Could not retrieve HiveDataObj with key " << pi0ClusterInHandle.
key());
146 return StatusCode::FAILURE;
148 pi0ClusterContainer = pi0ClusterInHandle.
cptr();
156 ATH_CHECK(chargedPFOHandle.
record(std::make_unique<xAOD::PFOContainer>(), std::make_unique<xAOD::PFOAuxContainer>()));
157 chargedPFOContainer = chargedPFOHandle.
ptr();
165 ATH_CHECK(neutralPFOHandle.
record(std::make_unique<xAOD::PFOContainer>(), std::make_unique<xAOD::PFOAuxContainer>()));
166 neutralPFOContainer = neutralPFOHandle.
ptr();
174 ATH_CHECK(pi0Handle.
record(std::make_unique<xAOD::ParticleContainer>(), std::make_unique<xAOD::ParticleAuxContainer>()));
175 pi0Container = pi0Handle.
ptr();
183 ATH_CHECK(hadronicPFOHandle.
record(std::make_unique<xAOD::PFOContainer>(), std::make_unique<xAOD::PFOAuxContainer>()));
184 hadronicClusterPFOContainer = hadronicPFOHandle.
ptr();
192 ATH_CHECK(vertOutHandle.
record(std::make_unique<xAOD::VertexContainer>(), std::make_unique<xAOD::VertexAuxContainer>()));
193 pSecVtxContainer = vertOutHandle.
ptr();
202 if (
tool->type() ==
"TauPi0ClusterCreator")
203 sc =
tool->executePi0ClusterCreator(*pTau, *neutralPFOContainer, *hadronicClusterPFOContainer, *pi0ClusterContainer);
204 else if (
tool->type() ==
"TauVertexVariables")
205 sc =
tool->executeVertexVariables(*pTau, *pSecVtxContainer);
206 else if (
tool->type() ==
"TauPi0ClusterScaler")
207 sc =
tool->executePi0ClusterScaler(*pTau, *neutralPFOContainer, *chargedPFOContainer);
208 else if (
tool->type() ==
"TauPi0ScoreCalculator")
209 sc =
tool->executePi0nPFO(*pTau, *neutralPFOContainer);
210 else if (
tool->type() ==
"TauPi0Selector")
211 sc =
tool->executePi0nPFO(*pTau, *neutralPFOContainer);
212 else if (
tool->type() ==
"PanTau::PanTauProcessor")
213 sc =
tool->executePanTau(*pTau, *pi0Container, *neutralPFOContainer);
214 else if (
tool->type() ==
"tauRecTools::TauTrackRNNClassifier")
215 sc =
tool->executeTrackClassifier(*pTau, *newTauTrkCon);
217 sc =
tool->execute(*pTau);
219 if (
sc.isFailure())
break;
221 if (
sc.isSuccess())
ATH_MSG_VERBOSE(
"The tau candidate has been modified successfully by the invoked official tools.");
224 ATH_MSG_VERBOSE(
"The tau candidate container has been modified by the rest of the tools");
225 ATH_MSG_DEBUG(newTauCon->size() <<
" / " << pTauContainer->size() <<
" taus were modified");
227 return StatusCode::SUCCESS;
234 return acc_modified(*newtau);