Skip to content

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.

Merge request reports