Skip to content

Backend for columnar, fully orchestrated HEP analyses with pure Python, law and order.

License

Notifications You must be signed in to change notification settings

CoffeaTeam/columnflow

 
 

Repository files navigation

columnflow logo
Build status Package version Documentation status Code coverge License

Backend for columnar, fully orchestrated HEP analyses with pure Python, law and order.

Note on current development

This project is currently in a beta phase. The project setup, suggested workflows, definitions of particular tasks, and the signatures of various helper classes and functions are mostly frozen but could still be subject to changes in the near future. At this point (December 2022), four large-scale analyses based upon columnflow are being developed, and in the process, help test and verify various aspects of its core. The first released version is expected in early 2023. However, if you would like to join early on, contribute or just give it a spin, feel free to get in touch!

Quickstart

Modules, exported shell functions and environment variables might have a prefix CF or cf to express their connection to this project.

A couple test tasks are listed below. They might require a valid voms proxy for accessing input data.

For a better overview of the tasks that are triggered by the commands below, checkout the current (yet stylized) task graph.

# clone the project
git clone --recursive [email protected]:uhh-cms/columnflow.git
cd columnflow

# source the setup and store decisions in .setups/dev.sh (arbitrary name)
source setup.sh dev

# index existing tasks once to enable auto-completion for "law run"
law index --verbose

# run your first task
law run cf.ReduceEvents \
    --version v1 \
    --dataset st_tchannel_t \
    --branch 0

# create a plot
# (if "imgcat" is installed for your shell, add ``--view-cmd imgcat``)
law run cf.PlotVariables1D \
    --version v1 \
    --datasets st_tchannel_t \
    --producers example \
    --variables jet1_pt \
    --categories incl

# create a (test) datacard (CMS-style)
law run cf.CreateDatacards \
    --version v1 \
    --producers example \
    --inference-model example \
    --workers 3

Projects using columnflow

  • hh2bbtautau: HH → bb𝜏𝜏 analysis with CMS.
  • hh2bbww: HH → bbWW analysis with CMS.
  • topmass: Top quark mass measurement with CMS.
  • mttbar: Search for heavy resonances in ttbar events with CMS.
  • analysis playground: A testing playground for HEP analyses.

Development

About

Backend for columnar, fully orchestrated HEP analyses with pure Python, law and order.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 90.2%
  • Shell 9.8%