madanalysis5

A package for event file analysis and recasting of LHC results

https://github.com/madanalysis/madanalysis5

Science Score: 67.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
    Found 4 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org, zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.1%) to scientific vocabulary

Keywords

beyond-standard-model-physics hep hep-ex hep-ph high-energy-physics interpretation-lhc-data lhc recast
Last synced: 9 months ago · JSON representation ·

Repository

A package for event file analysis and recasting of LHC results

Basic Info
Statistics
  • Stars: 23
  • Watchers: 4
  • Forks: 18
  • Open Issues: 45
  • Releases: 10
Topics
beyond-standard-model-physics hep hep-ex hep-ph high-energy-physics interpretation-lhc-data lhc recast
Created over 4 years ago · Last pushed 10 months ago
Metadata Files
Readme Contributing License Code of conduct Citation Zenodo

README.md

Welcome to MadAnalysis 5

PAD TUTO Talks FAQ DOI

Python v3.8 C++

Outline

What is MadAnalysis 5?

MadAnalysis 5 is a framework for phenomenological investigations at particle colliders. Based on a C++ kernel, this program allows to efficiently perform, in a straightforward and user-friendly fashion, sophisticated physics analyses of event files such as those generated by a large class of Monte Carlo event generators.

The first running mode (Normal Mode) of the program, easier to handle, uses the strengths of a powerful Python interface in order to implement physics analyses by means of a set of intuitive commands.

The second running mode (Expert Mode) requires to implement the analyses in the C++ programming language, directly within the core of the analysis framework. This opens unlimited possibilities concerning the level of complexity that can be reached, the latter being only limited by the programming skills and the originality of the user.

More details can be found on the MadAnalysis 5 website.

Requirements

MadAnalysis 5 requires several external libraries in order to properly run:

  • Python 3.8 or a more recent version that can be downloaded from this website In order to check the installed version of Python on a system, it is sufficient to issue in a shell $ python --version.

  • Either the GNU GCC compiler, or the Apple clang compiler. MadAnalysis 5 has been validated:

    • with the version (minimum) 7.0 of the GCC compiler. The GCC compiler can be downloaded from this website.
    • with the version 13.1.6 (clang-1316.0.21.2) of the clang compiler.

To benefit from all options coming with the MadAnalysis 5 program, the following (optional) libraries have to be installed on the system:

  • Zlib headers and libraries that can be downloaded from this website which can also be downloaded by by typing ma5> install zlib through MadAnalysis interface.
  • The FastJet package version 3.3, or a more recent version, that can be downloaded from this link. This package can also be installed by typing ma5> install fastjet in MadAnalysis.
  • LaTeX and pdflatex compilers for report rendering.
  • All Python libraries that MadAnalysis 5 requires can be installed by typing $ python3 -m pip install -r requirements.txt.

Downloading and installing the MadAnalysis 5 package

We are moving from our previous location in Launchpad but the latest MadAnalysis 5 version can still be downloaded through here until the release of v1.10. Note that future versions will only be available through GitHub.

If you satisfy the requirements mentioned above the only thing that you need to do is download the latest release from here and start playing;

bash cd madanalysis5 ./bin/ma5

During your first execution MadAnalysis 5 will build the entire workspace automatically. Note that release versions are always the stable ones the main repository will be under constant development.

Usage of MadAnalysis 5

Syntax: ./bin/ma5 [options] [scripts]

``` [options] This optional argument allows to select the running mode of MadAnalysis 5 appropriate to the type of event files to analyze. If absent, the parton-level mode is selected. Warning: the different modes are self-excluding each other and only one choice has to be made.

List of available options : -P or --partonlevel : parton-level mode -H or --hadronlevel : hadron-level mode -R or --recolevel : detector-level mode -e or -E or --expert : entering expert mode -v or --version or --release : display the version number of MadAnalysis -b or --build : rebuild the SampleAnalyzer static library -f or --forced : do not ask for confirmation when MA5 removes a directory or overwrites an object -s or --script : quit automatically MA5 when the script is loaded -h or --help : dump this help -i or --installcard : produce the default installation card in installation_card.dat -d or --debug : debug mode -q or --qmode : developper mode only for MA5 developpers

[scripts] This optional argument is a list of filenames containing a set of MadAnalysis 5 commands. The file name are handled as concatenated, and the commands are applied sequentially. ```

Description of the package

The directory structure of the MadAnalysis 5 package can be summarized as follows:

+ bin | This directory contains the executable file 'ma5'. + madanalysis | This directory contains all the source files of | MadAnalysis 5. + configuration | This directory contains functions related to the | configuration of the dependencie such as FastJet. + core | This directory contains the core of the Python | interface. + dataset | This directory contains the functions related to the | handling of Monte Carlo event files in MadAnalysis | 5. + enumeration | This directory contains the definition of the | keywords used by within the Python source files. + input | This directory contains the lists of (multi)particles | to be loaded at the start-up of MadAnalysis 5. + IOinterface | This directory contains routines related to | input/output flows. + interpreter | This directory contains all the commands available | within the Python interface of MadAnalysis 5. + job | This directory contains the routines necessary for | the creation and execution of C++ jobs. + layout | This directory contains all the functions necessary | for handling the layout of the figures and reports | produced by MadAnalysis 5. + multiparticle | This directory contains the functions related to the | handling of multiparticle and particle collections. + observable | This directory contains the list of observables | supported within MadAnalysis 5. + selection | This directory contains the routines necessary for | producing histograms and applying event selection | cuts. + tools | This directory contains the packages that are used | by MadAnalysis 5. + SampleAnalyzer | This directory contains the C++ kernel of | MadAnalysis, dubbed SampleAnalyzer (see below). + Glue | This directory contains the glues allowing to use | showering programs (not supported yet). (+) samples | This optional directory is dedicated to event sample | storage.

The main file of the package is also the only one which is supposed to be run on a system:

bash ./bin/ma5

In addition, several text files are dedicated to specific information:

  • README: this file,
  • COPYING: the description of the software license,
  • version.txt: general information about the installed release,
  • madanalysis/UpdateNotes.txt: the update notes.

The C++ kernel of MadAnalysis is stored in the directory tools/SampleAnalyzer This directory has the following structure:

+ tools + SampleAnalyzer + Analyzer | This directory contains the skeleton for the | analysis class as well as for the merging plots. + Core | This directory contains the main routines. + Counter | This directory contains routines related to | histogram and cut referencing. + DataFormat | This directory contains the implementation of the | employed data format for handling event samples | and the related information. + Filter | This directory contains routines for applying event | filtering (to be developped in the future). + JetClustering | This directory contains routines dedicated to jet | clustering algorithms. + Lib | This directory store the SampleAnalyzer library, | once compiled. + Plot | This directory contains all the methods related to | histogram generation. + Reader | This directory contains the definition of classes | dedicated to the reading of the event files. + Service | This directory contains services (logger, physics | tools, ...) + Writer | This directory contains the definition of classes | dedicated to the writing of event files and | result files. + newAnalyzer.py | This script allows to create a blank analysis. + newFilter.py | This script allows to create a blank filter.

The Glue directory contains routines dedicated to future developments and are thus neither supporter, nor documented.

The associated Doxygen documentation can be found on the MadAnalysis 5 wiki.

Very first steps with MadAnalysis 5

To start MadAnalysis 5, it is enough to type in a shell ./bin/ma5

In a first step, the program checks all the dependencies and provide warning and/or error messages if necessary. Next, the SampleAnalyzer C++ kernel library is generated. This is performed once and for all at the first run of MadAnalysis

  • Let us however note that if the system configuration changes, this is detected by MadAnalysis 5 and the library is regenerated.

If everything is going as smoothly as it should, a Python command line interface with a ma5> prompt appears. To learn how to use MadAnalysis 5 and to get an overview of its functionalities, we refer in particular to Section 3 of the manual that can be found here.

Troubleshootings and bug reports

Any public release of MadAnalysis 5 has been automatically and intensely validated. However, especially due to the variety of possible system configurations and the large number of functionalities included in the program, it is not impossible that some bugs are found. In this case, is is strongly suggested to create a report on GitHub Issues.

In this way, you also participate to the improvement of MadAnalysis 5 and the authors thank you for this.

Supported third party software

In the following you can find supported third party software that can be used within MadAnalysis 5. The latest release of MadAnalysis 5 has been tested with enlisted versions.

Authors

MadAnalysis 5 is openly developed by the core dev team consisting of:

Our famous last words

The development team of MadAnalysis 5 hopes that the package will meet the expectations of the users and help particle physicists in their phenomenological investigations.

That's all folks!

Credits

If you use MadAnalysis 5, please cite (BibTeX file can be found here):

Owner

  • Name: MadAnalysis
  • Login: MadAnalysis
  • Kind: organization

A package for event file analysis and recasting of LHC results

Citation (CITATIONS.bib)

%% Please cite the following papers if you use MadAnalysis 5



@article{Araz:2023axv,
    archiveprefix = {arXiv},
    author        = {Araz, Jack Y. and Buckley, Andy and Fuks, Benjamin},
    doi           = {10.1140/epjc/s10052-023-11779-2},
    eprint        = {2303.03427},
    journal       = {Eur. Phys. J. C},
    number        = {7},
    pages         = {664},
    primaryclass  = {hep-ph},
    reportnumber  = {IPPP/23/12, MCNET-23-04},
    title         = {{Searches for new physics with boosted top quarks in the MadAnalysis 5 and Rivet frameworks}},
    volume        = {83},
    year          = {2023},
    bdsk-url-1    = {https://doi.org/10.1140/epjc/s10052-023-11779-2}
}

@article{10.21468/SciPostPhys.14.1.009,
    author     = {Ga{\"e}l Alguero and Jack Y. Araz and Benjamin Fuks and Sabine Kraml},
    doi        = {10.21468/SciPostPhys.14.1.009},
    journal    = {SciPost Phys.},
    pages      = {009},
    publisher  = {SciPost},
    title      = {{Signal region combination with full and simplified likelihoods in MadAnalysis 5}},
    url        = {https://scipost.org/10.21468/SciPostPhys.14.1.009},
    volume     = {14},
    year       = {2023},
    bdsk-url-1 = {https://scipost.org/10.21468/SciPostPhys.14.1.009},
    bdsk-url-2 = {https://doi.org/10.21468/SciPostPhys.14.1.009}
}

@article{Araz:2021akd,
    archiveprefix = {arXiv},
    author        = {Araz, Jack Y. and Fuks, Benjamin and Goodsell, Mark D. and Utsch, Manuel},
    doi           = {10.1140/epjc/s10052-022-10511-w},
    eprint        = {2112.05163},
    journal       = {Eur. Phys. J. C},
    number        = {7},
    pages         = {597},
    primaryclass  = {hep-ph},
    reportnumber  = {IPPP/21/49},
    title         = {{Recasting LHC searches for long-lived particles with MadAnalysis~5}},
    volume        = {82},
    year          = {2022},
    bdsk-url-1    = {https://doi.org/10.1140/epjc/s10052-022-10511-w}
}

@article{Araz:2020lnp,
    archiveprefix = {arXiv},
    author        = {Araz, Jack Y. and Fuks, Benjamin and Polykratis, Georgios},
    doi           = {10.1140/epjc/s10052-021-09052-5},
    eprint        = {2006.09387},
    journal       = {Eur. Phys. J. C},
    number        = {4},
    pages         = {329},
    primaryclass  = {hep-ph},
    title         = {{Simplified fast detector simulation in MADANALYSIS 5}},
    volume        = {81},
    year          = {2021},
    bdsk-url-1    = {https://doi.org/10.1140/epjc/s10052-021-09052-5}
}

@article{Araz:2019otb,
    archiveprefix = {arXiv},
    author        = {Araz, Jack Y. and Frank, Mariana and Fuks, Benjamin},
    doi           = {10.1140/epjc/s10052-020-8076-6},
    eprint        = {1910.11418},
    journal       = {Eur. Phys. J. C},
    number        = {6},
    pages         = {531},
    primaryclass  = {hep-ph},
    title         = {{Reinterpreting the results of the LHC with MadAnalysis 5: uncertainties and higher-luminosity estimates}},
    volume        = {80},
    year          = {2020},
    bdsk-url-1    = {https://doi.org/10.1140/epjc/s10052-020-8076-6}
}

@article{Conte:2018vmg,
    archiveprefix = {arXiv},
    author        = {Conte, Eric and Fuks, Benjamin},
    doi           = {10.1142/S0217751X18300272},
    eprint        = {1808.00480},
    journal       = {Int. J. Mod. Phys. A},
    number        = {28},
    pages         = {1830027},
    primaryclass  = {hep-ph},
    title         = {{Confronting new physics theories to LHC data with MADANALYSIS 5}},
    volume        = {33},
    year          = {2018},
    bdsk-url-1    = {https://doi.org/10.1142/S0217751X18300272}
}

@article{Dumont:2014tja,
    archiveprefix = {arXiv},
    author        = {Dumont, B. and Fuks, B. and Kraml, S. and Bein, S. and Chalons, G. and Conte, E. and Kulkarni, S. and Sengupta, D. and Wymant, C.},
    doi           = {10.1140/epjc/s10052-014-3242-3},
    eprint        = {1407.3278},
    journal       = {Eur. Phys. J. C},
    number        = {2},
    pages         = {56},
    primaryclass  = {hep-ph},
    reportnumber  = {CERN-PH-TH-2014-109, LAPTH-048-14, LPSC14143},
    title         = {{Toward a public analysis database for LHC new physics searches using MADANALYSIS 5}},
    volume        = {75},
    year          = {2015},
    bdsk-url-1    = {https://doi.org/10.1140/epjc/s10052-014-3242-3}
}

@article{Conte:2014zja,
    archiveprefix = {arXiv},
    author        = {Conte, Eric and Dumont, B\'eranger and Fuks, Benjamin and Wymant, Chris},
    doi           = {10.1140/epjc/s10052-014-3103-0},
    eprint        = {1405.3982},
    journal       = {Eur. Phys. J. C},
    number        = {10},
    pages         = {3103},
    primaryclass  = {hep-ph},
    reportnumber  = {CERN-PH-TH-2014-088, LPSC-14-079, LAPTH-033-14, MCNET-14-11},
    title         = {{Designing and recasting LHC analyses with MadAnalysis 5}},
    volume        = {74},
    year          = {2014},
    bdsk-url-1    = {https://doi.org/10.1140/epjc/s10052-014-3103-0}
}

@article{Conte:2012fm,
    archiveprefix = {arXiv},
    author        = {Conte, Eric and Fuks, Benjamin and Serret, Guillaume},
    doi           = {10.1016/j.cpc.2012.09.009},
    eprint        = {1206.1599},
    journal       = {Comput. Phys. Commun.},
    pages         = {222--256},
    primaryclass  = {hep-ph},
    reportnumber  = {IPHC-PHENO-06},
    title         = {{MadAnalysis 5, A User-Friendly Framework for Collider Phenomenology}},
    volume        = {184},
    year          = {2013},
    bdsk-url-1    = {https://doi.org/10.1016/j.cpc.2012.09.009}
}

GitHub Events

Total
  • Create event: 2
  • Release event: 1
  • Issues event: 17
  • Watch event: 1
  • Delete event: 1
  • Issue comment event: 70
  • Push event: 32
  • Pull request review event: 2
  • Pull request event: 5
Last Year
  • Create event: 2
  • Release event: 1
  • Issues event: 17
  • Watch event: 1
  • Delete event: 1
  • Issue comment event: 70
  • Push event: 32
  • Pull request review event: 2
  • Pull request event: 5

Issues and Pull Requests

Last synced: 9 months ago

All Time
  • Total issues: 29
  • Total pull requests: 14
  • Average time to close issues: about 2 months
  • Average time to close pull requests: about 1 month
  • Total issue authors: 26
  • Total pull request authors: 9
  • Average comments per issue: 1.76
  • Average comments per pull request: 0.29
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 18
  • Pull requests: 7
  • Average time to close issues: 2 days
  • Average time to close pull requests: 5 months
  • Issue authors: 16
  • Pull request authors: 6
  • Average comments per issue: 0.5
  • Average comments per pull request: 0.43
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • sarahwarad (2)
  • astro-avi (2)
  • CC-czz (2)
  • ajueid (1)
  • meena91 (1)
  • arejm7 (1)
  • matthewfeickert (1)
  • manuelkunkel (1)
  • RBadawi99 (1)
  • nyckxxstark (1)
  • MuhammadTayyab-javaid (1)
  • YancyW (1)
  • jackaraz (1)
  • haolinli1991 (1)
  • Elidorri (1)
Pull Request Authors
  • jackaraz (4)
  • BFuks (3)
  • jasper7427 (1)
  • matthewfeickert (1)
  • mhabedan (1)
  • prbbing (1)
  • bastienvoirin (1)
  • ArturU043 (1)
  • meena91 (1)
Top Labels
Issue Labels
:question:question (18) :bug:bug (6) :gear:enhancement (3) SFS (1) :mechanical_arm:ExpertMode (1) FastJet (1) NormalMode (1) duplicate (1)
Pull Request Labels
:question:question (2) :gear:enhancement (1) NormalMode (1)

Dependencies

.github/workflows/changelog_reminder.yml actions
  • actions/checkout master composite
  • peterjgrainger/action-changelog-reminder v1.3.0 composite
.github/workflows/quick_validation.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
requirements.txt pypi
  • lxml >=4.6.2
  • matplotlib >=3.4.2
  • numpy >=1.19.5
  • pyhf ==0.7.0
  • scipy >=1.7.1
validation/requirements.txt pypi
  • matplotlib >=3.4.2
  • numpy >=1.19.5
  • pyhf >=0.6.3
  • scipy >=1.7.1