Fixed the linkage for HepMCAnalysis
The problem with HepMCAnalysis interface is that HepMCAnalysis does not support HepMC3, so when Athena uses HepMC3 the
events should be converted to HepMC2 before passing them to HepMCAnalysis.
However, all the functions cannot be written in a single translation unit, as for the HepMC3 compilation
Athena uses HepMC::GenEvent
as a typedef of HepMC3::GenEvent
and simultaneous usage would raise a compilation error.
Therefore, the solution is split into two translation units.
The first one deals with Athena internals and produces a vector of HepMC or HepMC3 events and the second deals with HepMC and HepMC3 outside of Athena, avoiding Athena's typedefs. The Events from Athena are passed from the first unit to the second, converted there and passed to HepMCAnalysis.
The changes make the linkage of HepMCAnalysis more robust.