HeavyIonAnalysis/AnalysisTree

Matching needs refactor

Opened this issue · 0 comments

Hi!

I revised AnalysisTree::Matching object and found few issues.

  1. 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
  2. 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.