14 : base_class(
type, name, parent)
19 return StatusCode::SUCCESS;
26 for (
Decision* outputDecision : decisions ) {
31 if (myROIs.size() == 0) {
33 }
else if (myROIs.size() == 1) {
36 for (
size_t i = 0; i < myROIs.size(); ++i) {
37 if (myROIs.at(i).link.dataID() ==
m_roiSGKey) {
38 ATH_MSG_DEBUG(
"Found " << myROIs.size() <<
" RoI links. However, successfully resolved the ambiguity using roiSGKey=" <<
m_roiSGKey <<
", taking index " << location);
46 ATH_MSG_ERROR(
"Did not find exactly one '" <<
roiString() <<
"' for Decision object index " << outputDecision->index()
47 <<
", found " << myROIs.size() <<
". Unable to supply single ROI to spawn EventView on.");
48 for (
const auto& li : myROIs) {
49 ATH_MSG_ERROR(
" -- " << li.link.dataID() <<
":" << li.link.index() <<
". Dump:" << *(li.source));
51 return StatusCode::FAILURE;
54 outputDecision->setObjectLink(
roiString(), myROIs.at(location).link);
62 for (
Decision* outputDecision : decisions ) {
67 if (oldToNew.count(oldRoI) == 1) {
68 newRoI = oldToNew[oldRoI];
72 oldToNew[oldRoI] = newRoI;
76 outputDecision->setObjectLink(
roiString(), newRoI);
81 return StatusCode::SUCCESS;
#define ATH_CHECK
Evaluate an expression and check for errors.
Athena::TPCnvVers::Current TrigRoiDescriptor
ElementLink implementation for ROOT usage.
SG::WriteHandle< CONT > createAndStoreNoAux(const SG::WriteHandleKey< CONT > &key, const EventContext &ctx)
Creates and right away records the Container CONT with the key.
xAOD::TrigComposite Decision
const std::string & roiString()
void findLinks(const Decision *start, const std::string &linkName, std::vector< LinkInfo< T > > &links, unsigned int behaviour=TrigDefs::allFeaturesOfType, std::set< const xAOD::TrigComposite * > *fullyExploredFrom=nullptr)
search back the TC links for the object of type T linked to the one of TC (recursively) Populates pro...
xAOD::TrigCompositeContainer DecisionContainer
static const unsigned int lastFeatureOfType
Run 3 "enum". Only return the final feature along each route through the navigation.