Matching needs refactor
eugene274 opened this issue · 0 comments
eugene274 commented
Hi!
I revised AnalysisTree::Matching object and found few issues.
- Branch ids are redundant and should be AT LEAST transient fields (//!). All meta information about the matched branches are stored in the corresponding object inside the
AnalysisTree::Configuration
- Storing direct and inverted maps is redundant. I propose to store more universal (and much less constrained) structure: std::list<std::pair<Integer, Integer>> and build direct and inverted maps on loading (inside Streamer) or if we fight for optimal performance on demand (when user calls
GetMatch{Direct,Inverted}
). With this strategy one can use even boost::bimap since we do not need to store it.