Skip to content

WIP: Add Tensorflow-Python interface to Gauss to easily test parametrizations based on GANs

Lucio Anderlini requested to merge WIP_TfGanInterface into WIP_bsiddi_merge

Generative Adversarial Networks are a class of Neural Networks developed to generate random output according to the distributions of a reference, training sample. They have been shown to be very effective to describe the detector response automatically learning from Fully Simulated data samples or (still experimentally) from real data. This MR instruments LbDelphes with a Gaudi tool named PythonTool which wraps the output of an algorithm developed in Python to other DelphesAlgorithms. This represents a simplified infrastructure to test the quality and the applicability of the new ML-based parametrizations without dealing with the complications of the C++ APIs of Tensorflow. The performance might be limited by such approach, especially if considering multithread evolutions of Gauss and Delphes. I am developing a performance-oriented, C++-only interface to replace this one in production as soon as we agree on the application range of GANs.

To implement the mechanism as an example, I took Rich PID GANs trained on real data without background subtraction for pions, kaons and protons.

Important Limitations to solve before Merge:

  • the event multiplicity is currently fixed to nTracks=123 for all events because it is unclear what is the best proxy for it. Once we will agree on it, the neural networks must be retrained accordingly and the right value should be passed to the PythonTool
  • the default Gans should be updated to better-trained, more-variable models (Yandex is working on it).

Hopefully starting the merge request now can speed-up convergence on the specifications.

Temporarily assigned to Gloria for reassignment.

Merge request reports