Git Product home page Git Product logo

mieskolainen / graniitti Goto Github PK

View Code? Open in Web Editor NEW
3.0 5.0 2.0 169.38 MB

Monte Carlo Event Generator for High Energy Diffraction [arXiv:1910.06300] [arXiv:2304.06010]

License: MIT License

Makefile 0.11% Shell 0.49% C++ 96.60% CMake 0.14% C 0.40% Cuda 0.91% Jupyter Notebook 0.05% MATLAB 0.29% Python 1.00%
high-energy-physics quantum-chromodynamics gamma-gamma-interactions monte-carlo-simulations pomeron inverse-problems diffraction scattering-amplitudes angular-momentum regge-theory

graniitti's Introduction

GRANIITTI

https://arxiv.org/abs/2304.06010
https://arxiv.org/abs/1910.06300

https://indico.cern.ch/event/1148802/contributions/5004853 -- Diffraction and Low-x 2022 talk

License: MIT License: GPL v3 Build Status

Algorithmic Engine and Monte Carlo Event Generator for High Energy Diffraction

See VERSION.json for the latest version information.


Physics introduction

See the page: https://mieskolainen.github.io


Installation

1. Pull the repository

git clone --depth 1 https://github.com/mieskolainen/graniitti && cd graniitti

2. Environment setup

Standalone Ubuntu

sudo apt install cmake g++ python3-dev curl

CERN lxplus (CVMFS) environment

source /cvmfs/sft.cern.ch/lcg/views/setupViews.sh LCG_98python3 x86_64-centos7-gcc9-opt

Conda environment with C++ compilation and Python analysis tools

wget https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-x86_64.sh
chmod +x and execute the installer

conda env create -f environment.yml
conda activate graniitti
pip install -r requirements.txt

3. Autoinstall IO-format dependencies

cd install && source autoinstall.sh && cd ..

4. Set environment variables and compile the generator C++ code

source install/setenv.sh
make -j4

First run

Set environment variables, then execute the main generator program

source install/setenv.sh
./bin/gr

See /docs/FAQ for more information.


Event generation

Simulate MC events

./bin/gr -i gencard/STAR_1792394_pipi.json -w true -l true -n 50000

Analysis

(Python) Analyze MC and data

python python/iceshot --hepmc3 STAR_1792394_pipi --hepdata dataset_STAR_1792394_pipi --pid '[[211,-211]]' --cuts STAR_none

(Python) Compare MC with differential fiducial measurements made at RHIC/Tevatron/LHC

pytest tests/testbench_STAR_1792394.py -s --POMLOOP true
pytest tests/testbench_exloop.py -s --POMLOOP true

(Python) MC model tuning via HPC-distributed Bayesian / evolutionary optimization

ray start --head --temp-dir=/tmp/ray
python python/icetune --tuneset default

For C++ (ROOT) based analysis tools, see /docs/FAQ and examples under /tests.


Code quality assurance

Unit and integration tests

make -j4 TEST=TRUE && ./bin/testbench*
pytest tests/testbench_*.py -s

Reference

If you use this work in your research, please cite the paper:

@article{mieskolainen2019graniitti,
    title={GRANIITTI: A Monte Carlo Event Generator for High Energy Diffraction},
    author={Mikael Mieskolainen},
    year={2019},
    journal={arXiv:1910.06300},
    eprint={1910.06300},
    archivePrefix={arXiv},
    primaryClass={hep-ph}
}

graniitti's People

Contributors

mieskolainen avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.