Skip to the content.

RDFAnalyzerCore Documentation

Welcome to the RDFAnalyzerCore documentation! This framework provides a powerful, config-driven system for building physics analyses with ROOT RDataFrame.

Getting Started

New to RDFAnalyzerCore? Start here:

User Documentation

Building Analyses

Python Analysis

Framework Features

Data Management & Outputs

Systematics & Physics Objects

Batch Processing & Performance

API Reference

Developer Documentation

Extending the Framework

Key Concepts

Config-Driven Design

RDFAnalyzerCore separates configuration from code:

# config.txt
fileList=data.root
saveFile=output.root
threads=-1
onnxConfig=cfg/onnx_models.txt

Same binary, different configs = different analyses. Version control your configs with Git for reproducibility.

Plugin Architecture

Framework is extensible via plugins:

Add custom plugins without modifying core code.

Lazy Evaluation

Built on ROOT RDataFrame’s lazy evaluation:

analyzer.Define("var", ...);    // Queued
analyzer.Filter("cut", ...);    // Queued
analyzer.save();                // Executes all at once

Efficient processing with automatic optimization.

For New Users

  1. Installation
  2. First Analysis
  3. Configuration Basics
  4. Analysis Tutorial

For Advanced Users

  1. Architecture Overview
  2. Creating Plugins
  3. Systematic Uncertainties
  4. HTCondor Submission

Common Tasks

Examples

Minimal Analysis

#include <analyzer.h>

int main(int argc, char **argv) {
    Analyzer analyzer(argv[1]);
    
    // Define variable
    analyzer.Define("pt_gev",
        [](float pt) { return pt / 1000.0; },
        {"jet_pt"}
    );
    
    // Apply selection
    analyzer.Filter("pt_cut",
        [](float pt) { return pt > 25.0; },
        {"pt_gev"}
    );
    
    // Apply ML model
    auto* onnx = analyzer.getPlugin<IOnnxManager>("onnx");
    onnx->applyAllModels();
    
    // Save
    analyzer.save();
    return 0;
}

Full Analysis Example

See Complete Example in the Analysis Guide for a production-ready analysis with:

Requirements

ONNX Runtime is downloaded automatically during build.

Support

Contributing

Contributions welcome! See Plugin Development Guide to get started.

For implementation details and design notes for major features, see the DEVELOPMENT directory.

License

See repository for license information.


Repository: https://github.com/brkronheim/RDFAnalyzerCore

Last Updated: March 2026