Draft: Accessing hit-level information for trigger algorithms based on GN2-like architectures
Hi @dguest,
this is the merge request for Athena to access hits. It will be connected to two draft MRs to the TDD and Salt, I will post links to this below later. These are the changes / new algorithms that I implemented:
- CMakeList.txt and FlavorTagDiscriminants_entries.cxx: adding new algorithms and tools
- NEW: HitDecoratorAlg.h/.cxx: calculates the relative position of the hits to the beamspot and decorate them to the TrackMeasurementValidation container
- NEW: JetHitAssociationAlg.h/.cxx: calculates the dPhi distance between hits and jets, applies a hit cut around the jet-phi direction. Afterwards ElementLinks to the hits are decorated to each jet. It has two inputs: the maximum number of hits that are saved and the maximum dPhi distance that is allowed. Usually the maximum number of hits is the more relevant restriction.
- GNN.h/.cxx: introduced with HIT another possible ConstituentType which starts the HitsLoader
- NEW: HitsLoader.h/.cxx: General structure to load the hits of the previous new Algorithms. Follows closely the IParticlesLoader structures
- ConstituentsLoader.h/.cxx: Introducing hits options in the config files. There are of course less settings needed than for tracks
- CustomGetterUtils.h/.cxx: First the calculation of the jab-coordinates is made possible here. This follows in general the implementations in the TDD. Here the only severe change of previous code is made (everything else was basically additions). It was necessary to restructure the framework since
getterFromIParticles<T>
lead to an error with T being trackMeasurementValidation. Therefore I just made three explicit cases which should cover everything. Please explicitly check lines 400-422.
Thanks for your review!