First version of CNN tagger in BJT
This MR aims just to start to iterate and get feedbacks about the implementation of the CNN-based tagger the VVJJ team is developing. We plan to have a two stage tagger, a low-level based on a CNN score and combined with the jet Mass and un-groomed tracks for a 3Var-like tagger and a high-level tagger based on a DNN combining the CNN+JSS variables and mass-decorrelated via DisCo. In particular, the low-level one is implemented in this MR, and planning to add the second step soon.
Any feedback and suggestion is super welcome!
For instance, I am already wondering about the actual interface to use. About the low-level (as you can see from the updates here) it is straightforward to re-use the usual 3Var infrastructure in the SmoothedWZTaggers class, but, likely for the high-level stage I will need to add a dedicated tool as for ANN/DNN taggers? Any suggestion is welcome.
Furthermore, I need to use this other package to retrieve the CNN score via ONNX runtime: https://gitlab.cern.ch/angianni/athexonnxruntime_vvjj
what would be the best to integrate it? In my analysis fw I just use it as a sub-module but likely do we need to integrate it somewhere in athena as well? Or would be it enough to add the sub-module?
The main fw I am using to test it is from SF team in JetTagging: https://gitlab.cern.ch/atlas-jetetmiss/tagging/vjetsf/vjetscalib/-/tree/master-antonio/NtupleProduction and the main athena branch (involving changes in the TopPhys package) is here: https://gitlab.cern.ch/angianni/athena/-/tree/21.2-angianni-feb22
of course, once it will be integrated in the BJT, also the VVJJ analysis fw: https://gitlab.cern.ch/CxAODFramework/analysisframeworkvvjj will get huge benefit moving from custom tagging code to the common BJT!
As said, this is just to start to collect technical feedbacks on the implementation, there will be a dedicated review of the VVJJ tagger @JetTagging soon.
Thanks! Cheers, Antonio