Introduction to AnalysisG

AnalysisG is a high-performance analysis framework designed for High Energy Physics (HEP) applications. The framework combines the performance of C++ and CUDA with the ease of use of Python through Cython bindings.

Key Features

  • Multi-Language Support: C++, CUDA, and Cython implementations

  • High Performance: Optimized for large-scale HEP data analysis

  • Graph Neural Networks: Built-in support for GNN-based analyses

  • Extensible Architecture: Template-based design for easy customization

  • GPU Acceleration: CUDA implementations for compute-intensive operations

Architecture Overview

The framework is organized into several key packages:

Core Package

Contains base template classes and core functionality that users extend to implement custom analyses.

Events Package

Implements event-level data structures for various physics analyses (BSM 4-tops, MC20, etc.).

Graphs Package

Provides graph representations of physics events for GNN-based analyses.

Metrics Package

Implements various metrics for model evaluation (accuracy, PageRank, etc.).

Models Package

Contains machine learning model implementations (GRIFT, Recursive GNN, etc.).

Modules Package

Low-level C++ implementations of core algorithms and data structures.

PyC Package

Python-C++ interface layer with CUDA-accelerated operations for physics calculations, graph operations, and transformations.

Design Philosophy

AnalysisG follows a two-tier architecture:

  1. Simple Interfaces: High-level template classes that users inherit from and override to implement custom behavior.

  2. Complex Technical Components: Low-level C++/CUDA implementations that provide high-performance operations.

This design allows users to focus on physics analysis while leveraging highly optimized backend implementations.