Imported AssnsCrosser
algorithm from icarusalg
[1/3]
#2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
AssnsCrosser
is an utility inicarusalg
helping to hop across chains of associations.While it's not a silver bullet and it works on some assumptions, it's usually easier than trying to sort out the several association levels. Documentation is inline and currently in ICARUS Doxygen rendering (in
icarus
namespace).Given the extensive need of association hopping, I am proposing here to move it into
sbnalg
, where it can be used by almost the whole art-aware SBN code base.The header path is changed accordingly, like the namespace that is moved from
icarus::ns::util
tosbn::ns::util
¹. Because of this, this is a breaking change, which is easy to fix.Dependent pull requests
Connected pull requests are in:
AssnsCrosser
algorithm fromicarusalg
[2/3] icarusalg#94 (where the equivalent code is removed)AssnsCrosser
algorithm fromicarusalg
[3/3] icaruscode#825 (fixes for the breaking change)I do not know of any other place where this utility is used (and not much code is aware of
icarusalg
besideicaruscode
).Reviewers
... and that's it because I don't know who else.
This is a technical PR, that only involves details like old and new names and places.
Of course, people are also welcome to contribute comments on the merit of the algorithm, but I expect that this would not have specific consequences for this PR.
The unit test was moved and still passes.
Note that in my (unit) test one of the tests fails due to broken FHiCL configurations (related to ICARUS overlay) which are not related to this PR. This PR did not touch any FHiCL file and is not supposed to break any of those.
[1]
ns
stands for "namespace" and was meant to remove the ambiguity oficarus::util
namespace withutil
when working inicarus
namespace. Whether this trick actually helps is questionable.