Skip to content

Release version 7.0.0

Compare
Choose a tag to compare
@Jean1995 Jean1995 released this 07 Apr 11:41
· 514 commits to master since this release
e14e590

This major release focuses on an extensive code refactoring of PROPOSAL, next to the release of several new features and bug fixes.
Due to these restructurings of large parts of the code, most scripts using PROPOSAL need to be adapted.

The following points have been implemented in the commits listed in PR #137.
Note that PROPOSAL now requires a C++14 compatible compiler.

Major Features

  • Calculation of stochastic deflections, i.e. the deflection of the initial particle direction during stochastic interactions (PR #121)
  • Improved Secondaries class for the output of the Propagator class. It provides possibilities such as Queries for arbitrary geometries and/or interaction types as well as the possibility to "repropagate" particles to a certain, arbitrary particle state (PR #114, related issue #71).
  • Installation of PROPOSAL with package manager conan (PR #130)
  • Using spdlog instead of log4cplus as a logger (related issue #44, commit 6e83249)
  • New dependency on the CubicInterpolation library for better stability and maintainability using boost and Eigen (related issue #48) to outsource the interpolation tasks. Therefore boost and Eigen are indirectly new dependencies.

Minor features

  • Provide (recommended) default CrossSections for different particles
  • Add function to set logging level in python (related issue #106, related commit b4ba0c0)
  • Add "hierarchy condition" as a new termination condition for Propagator::Propagate (see commit 3051774)
  • Provide the possibility to apply multipliers to multiple scattering and stochastic deflection
  • Vectorization of many functions in Python, which allows calling these functions directly with an array

Code refactoring

  • Modularization of physical calculations in PROPOSAL into separate modules. This makes the individual modules usable for users which are not interested in the whole Propagator class but only individual calculation steps (see this proceeding for more information about this process). Furthermore, this gives PROPOSAL a more clear code structure (related issue #40)
  • Implement a more intuitive structure of the geometry class Vector3D by creating two separate subclasses Cartesian3D and Spherical3D (PR #122). This will take away the responsibility from to user to pay attention to whether certain transformations between coordinate systems have actually been calculated (related issues: #119, #45).
  • More intuitive implementation of classes describing particles and particles losses by creating and/or refactoring the classes ParticleState, StochasticLoss, ContinuousLoss(PR #114, related issue #104)
  • Calculations in PROPOSAL are now done using grammage instead of distances (transformation is done inside Propagator class)
  • Consistent use of smart pointers to avoid memory leaks (related issue #109)
  • New structure of json configuration file (see here for a documentation of the new structure)
  • Special EnergyCutSettings options have been changed to be more intuitive: Using no absolute EnergyCut now corresponds to INF (formerly -1), using no relative EnergyCut now corresponds to 1 (formerly -1)

Fixes

  • Fix uninitalized values in ManyBodyPhaseSpace::SampleEstimateMaxWeight (PR #132)
  • False documentation of Interpolant::Exp method and unclear variable name (related issue #39, commit 1e5b851)
  • Fix underestimation of dE2dx (and therefore ContinousRandomization) for ionization (see commit a916cc6)
  • Geometries in PROPOSAL are now intialized in cm instead of m to have consistent usage of units throughout PROPOSAL (see commit db516bd)