proposal

Monte Carlo Simulation propagating charged Leptons through Media as C++ Library

https://github.com/tudo-astroparticlephysics/proposal

Science Score: 67.0%

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

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 13 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    21 of 32 committers (65.6%) from academic institutions
  • Institutional organization owner
    Organization tudo-astroparticlephysics has institutional domain (app.tu-dortmund.de)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.0%) to scientific vocabulary

Keywords

astroparticle-physics computational-physics monte-carlo-simulation particle-transport
Last synced: 6 months ago · JSON representation

Repository

Monte Carlo Simulation propagating charged Leptons through Media as C++ Library

Basic Info
  • Host: GitHub
  • Owner: tudo-astroparticlephysics
  • License: lgpl-3.0
  • Language: C++
  • Default Branch: master
  • Homepage:
  • Size: 154 MB
Statistics
  • Stars: 36
  • Watchers: 11
  • Forks: 22
  • Open Issues: 78
  • Releases: 42
Topics
astroparticle-physics computational-physics monte-carlo-simulation particle-transport
Created almost 9 years ago · Last pushed 8 months ago
Metadata Files
Readme License Zenodo

README.md

```

_____ _____ ____ _____ ____ _____ _

| __ | __ \ / __ | __ \ / __ \ / ____| /\ | |

| |) | |) | | | | |) | | | | (_ / \ | |

| __/| _ /| | | | _/| | | |__ \ / /\ \ | |

| | | | \ | || | | | || |_) / _ | |____

|| || _\_/|| _/|_// _____|

_ _ ___ ___

| | | | / _ \ ( )

| || | | _/ | |

| .,| ___| _)

| |

|_|

```

PROPOSAL

example event parameter DOI

PROPOSAL (Propagator with optimal precision and optimized speed for all leptons) is presented as a public tool for propagating leptons and gamma rays through media. Up-to-date cross sections for ionization, bremsstrahlung, photonuclear interactions, electron pair production, Landau–Pomeranchuk–Migdal and Ter-Mikaelian effects, muon and tau decay, as well as Molière scattering are implemented for different parametrizations. The full Paper can be found here. Recent improvements are documented here.

PROPOSAL is developed and tested on macOS, Linux and Windows: Continuous integration is set up on GitHub actions testing PROPOSAL on gcc, clang and Visual Studio.

PROPOSAL is now a C++14 library using pybind11 Python bindings!

Requirements

  • CMake 3.9 or higher (to build the tests CMake 3.10 is required)
  • C++14 compatible compiler (for gcc: version 5 and later; for clang: version 3.4 and later)

Furthermore, you either need the package manager

  • conan

which will provide all dependencies that are necessary for PROPOSAL or you need to provide these dependencies by your own. For more information, see here.

Installation

If you are only interested in using PROPOSAL as a python library, the easiest way to install it should be using

pip install proposal

Advanced install and compiling instructions, especially if you want to use PROPOSAL as a C++ library, are found in install.

Usage

Usage in Python

If you want to learn how to use PROPOSAL in Python, we recommend to look at the jupyter notebooks provided in the examples folder. A good starting point is the Propagator jupyter notebook.

For a short demonstration, look at the following snippet: It will create data you can use to show the distribution of muon ranges and the number of interactions in ice.

```python import proposal as pp

mudef = pp.particle.MuMinusDef() prop = pp.Propagator( particledef=mudef, pathtoconfigfile="path/to/config.json" )

initstate = pp.particle.ParticleState() initstate.energy = 1e9 # initial energy in MeV initstate.position = pp.Cartesian3D(0, 0, 0) initstate.direction = pp.Cartesian3D(0, 0, 1)

mu_length = []

for i in range(1000): track = prop.propagate(init_state)

mu_length.append(track.track_propagated_distances()[-1] / 100)

```

Note that you need to provide a path to a valid configuration file. The parameters of the given configuration file are described here.

For a detailed explanation on how this snippet works, look at the Propagator jupyter notebook!

Usage as a C++ library

PROPOSAL is built as a library, which means you can include this project in your own C++ project by including the header files. The following snippet uses the configuration to propagate muons and stores the muon ranges. The parameters of the configuration file are described here.

```c++

include "PROPOSAL/PROPOSAL.h"

using namespace PROPOSAL;

int main(){ auto mudef = MuMinusDef(); Propagator prop(mudef, "path/to/config.json");

Cartesian3D position(0, 0, 0);
Cartesian3D direction(0, 0, 1);
auto energy = 1e8; // MeV
auto init_state = ParticleState(position, direction, energy, 0., 0.);

std::vector<double> ranges;

for (int i = 0; i < 10; i++)
{
    auto track = prop.Propagate(init_state, 50000); // distance to propagate in cm

    ranges.push_back(track.back().propagated_distance);
}

// ... Do stuff with ranges, e.g. plot histogram

} ```

To see an example on how to run this script with PROPOSAL using CMake, see here.

Issues

When you encounter any errors or misunderstandings, you can always create an issue here on GitHub. Furthermore, you may always contact us with your questions via Jean-Marco Alameddine, Jan Soedingrekso, Alexander Sandrock.

License

This software may be modified and distributed under the terms of a modified LGPL License. See the LICENSE for details of the LGPL License.

Modifications of the LGPL License:

  1. The user shall acknowledge the use of PROPOSAL by citing the following reference:

    J.H. Koehne et al. Comput.Phys.Commun. 184 (2013) 2070-2090 DOI: 10.1016/j.cpc.2013.04.001

  2. The user should report any bugs/errors or improvements to the current maintainer of PROPOSAL.

How to cite PROPOSAL?

If you use PROPOSAL, please cite the PROPOSAL paper

bibtex @article{koehne2013proposal, title ={PROPOSAL: A tool for propagation of charged leptons}, author = {Koehne, Jan-Hendrik and Frantzen, Katharina and Schmitz, Martin and Fuchs, Tomasz and Rhode, Wolfgang and Chirkin, Dmitry and Tjus, J Becker}, journal = {Computer Physics Communications}, volume = {184}, number = {9}, pages = {2070--2090}, year = {2013}, doi = {10.1016/j.cpc.2013.04.001} } and our zenodo entry of the version you use bibtex @misc{dunsch_2020_1484180, author = {Alameddine, Jean-Marco and Dunsch, Mario and Bollmann, Lars and Fuchs, Tomasz and Gutjahr, Pascal and Koehne, Jan-Hendrik and Kopper, Claudio and Krings, Kai and Kuo, Chung-Yun and Menne, Thorben and Noethe, Maximilian and Olivas, Alex and Rhode, Wolfgang and Sackel, Maximilian and Sandrock, Alexander and Schneider, Austin and Soedingrekso, Jan and van Santen, Jacob}, title = {tudo-astroparticlephysics/PROPOSAL: Zenodo}, month = mar, year = 2020, doi = {10.5281/zenodo.1484180}, url = {https://doi.org/10.5281/zenodo.1484180} } and if you want to cite the latest improvements bibtex @article{dunsch_2018_proposal_improvements, title = {Recent Improvements for the Lepton Propagator PROPOSAL}, author = {Dunsch, Mario and Soedingrekso, Jan and Sandrock, Alexander and Meier, Max and Menne, Thorben and Rhode, Wolfgang}, journal = {Computer Physics Communications}, volume = {242}, pages = {132--144}, year = {2019}, eprint = {1809.07740}, eprinttype = {arXiv}, eprintclass = {hep-ph}, doi = {10.1016/j.cpc.2019.03.021} }

Developers and Maintainers

Jan Soedingrekso, Alexander Sandrock, Jean-Marco Alameddine

Former Developers and Maintainers

Jan-Hendrik Koehne, Tomasz Fuchs, Mario Dunsch, Maximilian Sackel

Acknowledgment

SFB876 This work was created as part of the project C3 of the SFB876.

Owner

  • Name: Astroparticle Physics TU Dortmund
  • Login: tudo-astroparticlephysics
  • Kind: organization
  • Location: Dortmund

GitHub Events

Total
  • Create event: 4
  • Commit comment event: 1
  • Issues event: 6
  • Watch event: 2
  • Issue comment event: 14
  • Push event: 6
  • Pull request event: 4
  • Fork event: 1
Last Year
  • Create event: 4
  • Commit comment event: 1
  • Issues event: 6
  • Watch event: 2
  • Issue comment event: 14
  • Push event: 6
  • Pull request event: 4
  • Fork event: 1

Committers

Last synced: almost 3 years ago

All Time
  • Total Commits: 4,666
  • Total Committers: 32
  • Avg Commits per committer: 145.813
  • Development Distribution Score (DDS): 0.594
Top Committers
Name Email Commits
mario m****h@t****e 1,893
sudojan j****o@t****e 822
Jean-Marco Alameddine j****e@t****e 383
Maximilian Sackel m****l@t****e 312
Jean-Marco Alameddine j****e@u****u 246
Jan-Hendrik Köhne j****e@t****e 239
Tomasz Fuchs t****s@t****e 205
Jan Soedingrekso j****o@M****l 142
Maximilian Sackel m****l@g****e 111
sudojan j****o@g****e 69
Maximilian Nöthe m****e@t****e 67
Maximilian Sackel m****l@u****u 54
Alexander Sandrock a****k@t****e 28
Jan Soedingrekso j****o@e****e 24
pascalgutjahr p****r@t****e 13
Mario Dunsch m****h@v****e 12
Jacob van Santen j****n@i****u 11
Claudio Kopper c****r@i****u 9
Alex Olivas o****s@i****u 4
Maximilian Linhoff m****f@t****e 3
Chung-Yun, Kuo k****0@g****m 3
Kai Krings k****8@g****t 2
Austin Schneider h****n@g****m 2
Kai Krings k****s@p****e 2
Thorben Menne m****r@a****m 2
Maximilian Sackel m****l@v****e 2
nega n****0@u****m 1
Jean-Marco Alameddine j****e@v****e 1
Jan Soedingrekso j****o@v****e 1
Jan Soedingrekso s****n@J****l 1
and 2 more...

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 190 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 7
  • Total versions: 29
  • Total maintainers: 3
pypi.org: proposal

Monte Carlo simulation library to propagate leptons and gamma rays

  • Versions: 29
  • Dependent Packages: 0
  • Dependent Repositories: 7
  • Downloads: 190 Last month
Rankings
Dependent repos count: 5.5%
Forks count: 8.5%
Average: 9.4%
Dependent packages count: 10.1%
Stargazers count: 11.1%
Downloads: 11.5%
Maintainers (3)
Last synced: 7 months ago

Dependencies

.github/workflows/cpp.yml actions
  • actions/cache v2 composite
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • egor-tensin/setup-gcc v1 composite
.github/workflows/pypi_deploy.yml actions
  • actions/checkout master composite
  • actions/setup-python v1 composite
  • pypa/gh-action-pypi-publish master composite
.github/workflows/python.yml actions
  • actions/cache v2 composite
  • actions/checkout v2 composite
pyproject.toml pypi
setup.py pypi