Introduction to EventTemplates and ParticleTemplates

Given that C++ is a compiled language, the compiler needs to know about the source files which hold the definitions of the objects. To achieve this, the package uses CMake to link everything together and make the package available for the compiler.

The Source Files

But first there are some files that need to be created for the event and particles to be defined.

  • Create a new folder within src/AnalysisG/events/.

  • Within the folder create the following files:

    • CMakeLists.txt (copy the one from bsm_4tops for example)

    • event.cxx

    • event.h

    • particles.cxx

    • particles.h

  • Outside of the event folder, create the following files:

    • event_<some name>.pxd

    • event_<some name>.pyx

  • Modify the CMakeLists.txt within the events folder and add the event to the list.

TLDR (Too Long Do Read)

For a quick introduction by example, checkout the template code under src/AnalysisG/templates. A brief explanation:

  • events: Templates used to define an event implementation.

  • graphs: Templates used to define graphs for GNN training and inference.

  • selections: Templates used for indepth studies using the associated event implementation.

  • model: Templates for implementing a custom GNN model.