pyxsec

Python framework to measure differential cross-sections of particle physics processes using classical- and quantum-computing based unfolding techniques.

https://github.com/justwhit3/pyxsec

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.6%) to scientific vocabulary

Keywords

particle-physics python3 quantum-annealing quantum-computing statistics
Last synced: 6 months ago · JSON representation ·

Repository

Python framework to measure differential cross-sections of particle physics processes using classical- and quantum-computing based unfolding techniques.

Basic Info
  • Host: GitHub
  • Owner: JustWhit3
  • License: mit
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 98.6 KB
Statistics
  • Stars: 2
  • Watchers: 3
  • Forks: 0
  • Open Issues: 0
  • Releases: 1
Topics
particle-physics python3 quantum-annealing quantum-computing statistics
Created over 2 years ago · Last pushed almost 2 years ago
Metadata Files
Readme Contributing License Citation

README.md

PyXSec

Table of contents

Introduction

PyXSec is a Python framework used to measure the differential cross-sections of particle physics processes using the unfolding technique. The peculiarity of this software is that you can perform this measurements using classical- and quantum-computing based techniques.

This software is currently based ROOT, but plans are work in progress to substitute it with NumPy and uproot.

For the moment the cross-sections can be measured using the following unfolding modules:

  • RooUnfold: for classical unfolding backend
  • QUnfold: for quantum-computing based backend

The idea at the base of this framework was inspired by the TTbarUnfold framework, developed by Marino Romano, which is widely used in particle physics analyses to measure cross-sections using classical unfolding techniques.

:warning: The project is currently work-in-progress and it is still not ready for production. See the contribution file if interested.

:warning: This project is not currently available on PyPI, but it will be very soon. Our idea is to let it be easily installable in order to keep analyses as clean as possible and doesn't require to clone the entire repository everytime for a new study.

Developer environment

To setup the environment for PyXSec development you need two dependencies:

To setup the conda conda environment to work with the repository (only the first time):

shell conda create --name pyxsec-dev python==3.10 conda activate pyxsec-dev pip install -r requirements.txt pip cache purge && pip check

and every time you open a new shell:

shell conda activate pyxsec-dev

How to use

The usage is very simple. You need an input XML configuration file with all the paths and the files needed for the measurement. An example is the following:

XML <configuration> <data file="PWGH7.AFII.root" hpath="reco/2j2b_emu/DR_b1b2" /> <!-- Data --> <sig file="AFII.root" hpath="reco/2j2b_emu/DR_b1b2" /> <!-- Signal --> <bkg file="" hpath="" /> <!-- Background --> <res file="AFII.root" hpath="reco/2j2b_emu/particle_DR_b1b2_vs_DR_b1b2" /> <!-- Response matrix --> <gen file="AFII.root" hpath="particle/2j2b_emu/particle_DR_b1b2" /> <!-- Theory distributions --> <lumi value="138965.16" /> <!-- Luminosity --> <br value="1"/> <!-- Branching ratio --> <do_total value="0" /> <!-- Do total xsec --> <unfolding method="SimNeal" regularization="0" statErr="toys:Gauss" ntoys="0" /> <!-- Unfolding settings --> <spectrum particle="2j2b_emu" variable="DR_b1b2" /> <!-- Particle-level info --> </configuration>

each ROOT file must have reco and particle/parton level tress well separated. Each tree must contain branches for each interested selection and each branch must contain variables distributions to be unfolded and response matrices.

A quick example about how to use the framework:

shell python PyXSec.py --config="config.xml" --output="output.root"

:warning: This usage is still not supported, but this should be the final form of the framework signature.

Credits

Main developers


Gianluca Bianco

Simone Gasperini

Other contributors


DrWatt

Stargazers over time

Stargazers over time

Owner

  • Name: Gianluca Bianco
  • Login: JustWhit3
  • Kind: user
  • Location: Bologna, Italy
  • Company: University of Bologna and INFN

PhD student in particle physics at the University of Bologna and member of the CERN ATLAS experiment. Passionate about coding (C++ in particular)

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
  - family-names: "Bianco"
    given-names: "Gianluca"
  - family-names: "Gasperini"
    given-names: "Simone"
title: "PyXSec"
version: 0.0.1
doi: https://zenodo.org/doi/10.5281/zenodo.10131534
date-released: 2023-11-15
url: "https://github.com/JustWhit3/PyXSec"

GitHub Events

Total
Last Year

Dependencies

requirements.txt pypi