Update TrackCaloCluster tools to allow creation of UFO (== TCC created from PFlow objects)
There are many changes, so I'll cc the main authors of TCC code @ncalace, @rjansky, @sschramm and authors of UFO code @jroloff and @dportill
The goal of this MR is to add code enabling the building of UFO objects in the TCC packages. The changes here brings a lot of code re-organization : this was necessary to factorize common code between TCC and UFO building and also allows to make the future migration to master & athena MT easier (ex: use of private tools, prefer uing algs rather than tools when possible).
The physics algorithms for TCC have not changed, and all my tests so far have shown results 100% identical with the original code. I'll remove the WIP flags if/when we have agreed these changes are ok and final tests also show identical results.
Some details about the changes :
- a new
TrackCaloClusterInfo
object is introduced. Its purpose is to hold all the necessary info to build TCC or UFO : maps of weights and original track, cluster and vertex containers. It's transient only (can be put in the evtStore) - new AthenaAlgs to build
TrackCaloClusterInfo
: one for TCC one for UFO. They replaces the previous weight creator tool and they areTrackCaloClusterInfoAlg
andTrackCaloClusterInfoUFOAlg
- new interface for tools building
TrackCaloCluster
objects :ITrackCaloClusterTool
. Tools inheriting it are tasked to build one specific "taste" of TCC or UFO. - new AthenaAlg to drive the creation the creation TCC or UFO object by calling a sequence of ITrackCaloClusterTool (
TrackCaloClusterAlg
) and passing them theTrackCaloClusterInfo
created by previousTrackCaloClusterInfoAlg
- a few Athena AlgTools implementing the ITrackCaloClusterTool interface.
- The original algs and tools have been removed to avoid confusion with the new ones
As there are a lot of change, I'm very open to discussion. Please do not hesitate to comment or suggest changes !