/// Remove a single child node identified by it's handle from the tree of the element Handle_t Handle_t::remove(Handle_t node) const { #ifdef DD4HEP_USE_TINYXML bool e = (m_node && node.ptr() ? _N(m_node)->RemoveChild(_N(node.ptr())) : false); #else Elt_t e = Elt_t(m_node && node.ptr() ? _N(m_node)->removeChild(_N(node.ptr())) : 0); #endif if (e) return node.ptr(); string msg = "Handle_t::remove: "; if (m_node && node.ptr()) msg += "Element [" + tag() + "] has no child of type '" + node.tag() + "'"; else if (node) msg += "Element [INVALID]. Cannot remove child of type: '" + node.tag() + "'"; else if (!node) msg += "Element [INVALID]. Cannot remove [INVALID] child. Big Shit!!!!"; throw runtime_error(msg); }