Recent Releases of proposal

proposal - v7.6.2

Functionality

  • Add function to generate individual angles from moliere distribution (PR #372)

- C++
Published by Jean1995 almost 3 years ago

proposal - v7.6.1

Bugfixes

  • Protect Moliere evaluation from negative x (PR #369)

- C++
Published by Jean1995 almost 3 years ago

proposal - v7.6.0

Physics improvements

  • Create MoliereInterpol parametrization for multiple scattering (PR #362)
  • Add better rho sampling for triplet production (e-> e e e) (PR #347)
  • Add new sampling method (Sauter) for photopair (PR #346)
  • Add new parametrizations of photoproduction based on CORSIKA 7 (PR #353)

Bugfixes

  • Fix default ionization cross sections for electrons and positrons (PR #359)
  • Solve "No InteractionType::Decay type added to Secondaries if particle decays at rest mass" (PR #363)

Installation

  • Update repository for conan2 (PR #365)

Documentation

  • Add missing documentation for photonuclear cross sections (PR #360)

Miscellaneous

  • Fix execution of tests in new CI (PR #366)

- C++
Published by Jean1995 almost 3 years ago

proposal - v7.5.1

Physics improvements

  • Fix call to LPM in EpairForElectronPositron (PR #350)
  • Remove extra sampling of asymmetry in photopairproduction secondary energy calculation (PR #345)
  • Fix energy-momentum conservation in Compton secondaries production (PR #348)

Bugfixes

  • Indicate multiple inheritance structure of crosssection::Photoproduction classes in pybindings (PR #352)
  • Pin conan to >=1.33, < 2 (PR #355)

- C++
Published by Jean1995 about 3 years ago

proposal - v7.5.0

Physics improvements

  • Add LPM effect for photopair, fixes for BremsLPM (PR #336, #337)

Functionality

  • Add maximum number of iteration steps in Propagator::AdvanceParticle (PR #338)

Installation

  • Allow installing proposal via conan build (PR #325)
  • Adds legacy find_package() style variables (PR #330)
  • Update pybind11 version in conanfile to support python 3.11 (PR #339)

Documentation

  • Specify compatible compiler versions in README.md (PR #324)
  • Update outdated jupyter notebooks (PR #329)

Miscellaneous

  • Fix clang warning due to missing override keyword (PR #328)
  • Fix ifstream in UnitTests to correctly read in ecut==INF (PR #335)

- C++
Published by Jean1995 over 3 years ago

proposal - v6.1.8

Bugfixes

  • Fix pypi deploy

- C++
Published by Jean1995 over 3 years ago

proposal - v6.1.7

Bugfixes

  • Update version of submodule log4cplus to REL20_8, fixes issue #331

- C++
Published by Jean1995 over 3 years ago

proposal - v7.4.2

Physics improvements

  • Use closed form for AnnihilationHeitler parametrization (#317)

Bugfixes

  • Fix and issue warning if mean free path becomes negative (#318)

Miscellaneous

  • Check if dE2dx tables have been built when creating ContRand builder (#319)

- C++
Published by Jean1995 over 3 years ago

proposal - v7.4.1

Bugfixes

  • Made correction factor non-relativistic electrons numerically stable at very low energies (PR #314)
  • Add missing entry for InteractionType::Photoeffect (PR #312)

Miscellaneous

  • Update ubuntu-18.04 runner to ubuntu-20.04 (PR #315)

- C++
Published by Jean1995 almost 4 years ago

proposal - v7.4.0

Physics improvements

  • Inclusion of the photoeffect as an interaction type for photons (#296)
  • Adapt LowerEnergyLim of Compton (#307)
  • Change KinematicLimits of BremsElectronScreening (#308)

    Bugfixes

  • HitGeometry unreliable with multiple scattering (#289)

Runtime improvements

  • Avoiding unnecessary calculations in CrossSectionDNDXInterpolant::Calculate (#295)
  • Add onedimensional rate interpolant (#298)

Miscellaneous

  • Add secondaries documentation (#293)
  • Update modules and fix CI (#294)
  • Fix CI again (#304)
  • Logging for table creation and change file extension of tables from .txt to .dat (#306)
  • Fix typos in new logging messages (#310)
  • Restructure Bremsstrahlung::GetKinematicLimits(#309)

- C++
Published by Jean1995 almost 4 years ago

proposal - v7.3.1

Functionality

  • Add InterpolationSettings::NODES_UTILITY (PR #281)

Bugfixes

  • Avoid continuous randomization below min_energy (PR #276)
  • Catch negative dNdx values (PR #277)
  • Fix accessed random number in NaivCompton::CalculateSecondaries (PR #279)
  • Catch calculation that can become nan in Highland::CalculateTheta0 (PR #282)
  • Fix Secondaries calculation when Multiple Scattering is enabled (PR #278)
  • Add missing clone function to HighlandIntegral (PR #285)
  • error in bremsstrahlung deflection for low energies (PR #280)

Miscellaneous

  • Avoid invalid uses of EnergyCutSettings for only stochastic parametrizations (PR #271)
  • move Maximilian Sackel to former developers ( PR #275)

- C++
Published by Jean1995 about 4 years ago

proposal - v7.3.0

Physics improvements

  • Add γ->µµ as a new interaction process (PR #265)
  • Add deflection Van Ginneken as new parametrizations for stochastic muon deflections (PR #244)

Bugfixes

  • Fix extrapolation to lower energies for PhotoproductionRhode (PR #260)
  • Rewrite Propagator::AdvanceParticle method (PR #267)

Miscellaneous

  • Fix windows CI (PR #261)
  • Add init kwargs for Box and Cylinder (PR #264)
  • Cylinder: change order of arguments in json documentation (PR #266)
  • Add UnitTests for PhotoMuPairProduction (PR #269)

- C++
Published by Jean1995 about 4 years ago

proposal - v7.2.1

Bugfixes

  • Fix linker error for specific build configurations (PR #258 )

- C++
Published by Jean1995 over 4 years ago

proposal - v7.2.0

Physics improvements

  • Add Photoproduction (Gamma + Hadron interaction) as a new interaction type (PR #222)
  • Restructure PhotoPairProduction secondary calculation classes, adding PhotoPairProductionKochMotzForwardPeaked as a new parametrization to describe PhotoPairProduction secondaries (PR #247)

Functionality

  • Add variable end_position to ContinousLosses (PR #223)
  • Add target_hash information to StochasticLoss objects to keep information about the medium/component that we interacted with; add GetMediumForHash and GetComponentForHash functions to get medium/component for a given hash (PR #224)
  • Improve v node distribution for Ionization interpolation to increase accuracy of stochastic losses (PR #240)
  • Add function HitGeometry to Secondaries (PR #241)
  • Move density_correction parameter for LPM classes from Constructor to method (PR #243)

Bugfixes

  • Register custom ParticleDef objects in TypeParticleMap; momenta of custom particles are calculated correctly now (PR #225)
  • Return empty Loss object in Interaction::SampleLoss if no stochastic interaction is possible, avoiding rare runtime errors during propagation (PR #230)
  • Improve search for the correct python version for installations with pip (PR #234)
  • add missing NoScattering case to makemultiplescattering function (PR #245)
  • New return case if UtilityInterpolant::GetUpperLimit is trivial, avoiding occasional numerical problems (PR #249)
  • Avoid (possible) unnecessary recalculations when crossing sector borders, avoiding occasional numerical problems (PR #251)
  • Fix wrong order in AdvanceDistance, fix to PR #251 (PR #252)
  • Catch negative values of the differential crosssection for PhotoQ2Intgration (PR #256)

Miscellaneous

  • Fix caches in GitHub actions (PR #228)
  • Push GTest version to 1.11.0 (PR #232)
  • Update setup.cfg (PR #235)
  • Improve jupyter notebook example and update README.md (PR #236)
  • Clarify exception thrown when path to configuration file is not readable (PR #237)
  • Add Austin Schneider to author list (PR #239)
  • UnitTest overhaul (PR #242)

- C++
Published by Jean1995 over 4 years ago

proposal - v7.1.1

Bugfixes

  • Add fallback if cubic_splines::find_parameter in CrossSectionDNDXInterpolant::GetUpperLimit fails (#216)
  • Fix wrong sign for energies of continuous losses returned by Secondaries (#214)
  • Avoid unnecessary evaluations and possible floating point exceptions in Moliere scattering (#213) ### Documentation and default behaviour
  • Add missing documentation for LiquidArgon and the KochMotz parametrization to the config_docu.md (#217)
  • Change default photopairproduction crosssection for Gammas to KochMotz (#215)

- C++
Published by Jean1995 over 4 years ago

proposal - v7.1.0

This minor releases includes the addition of several new physical models, in addition to some bug fixes.

Physics improvements

  • Implement Koch&Motz parametrization for PhotoPairProduction (#191)
  • Add liquid argon as a new medium (#151 / #204)
  • Add updated medium properties for Ice and Water; separate medium definitions from different PDG versions into different namespaces (by default, the most recent medium definitions are used) (#151 / #204)
  • Add sampling methods for the creation of bremsstrahlung photons (#189)

Fixes

  • Fix numerical issues when propagating high energy muons with low energy cut settings (#210)
  • Fixes and improvements for the calculation of ionization secondaries (#205)
  • Fix in BremsElectronScreening parametrization: Use empirical correction factor only for energies below 50 MeV (#202)
  • Repair bug where Propagation did not stop when a weak interaction occured (#190)
  • Fix bug in calculation of photonuclear secondaries (#207)

- C++
Published by Jean1995 over 4 years ago

proposal - v7.0.7

  • Fix compiler errors on gcc5 (#194)
  • Improve setup.py: Correct ABI will be used on Linux system when installing PROPOSAL with pip (#195)
  • Keep initial lepton in Secondaries Calculator for photonuclear interactions (#199)

- C++
Published by Jean1995 almost 5 years ago

proposal - v7.0.6

  • Fix boost interpolation error (#185)
  • fix decay if no particle type is given in the particle state (#181)
  • Avoid unknowingly wrong calculations of momenta in ParticleState (#182)
  • Update README.md (#184)
  • fix secondaries calc for photon and add theta calc to public funcions (#179)
  • Pybind secondaries (#178)
  • Fix conversion of Vector3D types via consturctors in pybind11 (#177)
  • add pybindings for the DirectionChangeAngular (#173)

- C++
Published by Jean1995 almost 5 years ago

proposal - v7.0.5

  • Set fPic if not defined (#168). This fixes linker errors when building python bindings using CMake when CMAKE_POSITION_INDEPENDENT_CODE is not explicitly set to TRUE
  • Change condition in Trapezoid3S from < to <= (#170). This avoids ARITHMETIC_EXCEPTION errors in some rare cases.

- C++
Published by Jean1995 about 5 years ago

proposal - v7.0.4

  • Set up CI on Windows (#162)
  • Add missing string header in methods.h (#161)
  • Update README.md (#165, #166)

- C++
Published by Jean1995 about 5 years ago

proposal - v7.0.3

  • Switch CI from travis to GitHub actions (#160)
  • avoid some arithmetic exceptions (#154)
  • Adapt CMakeLists to make all symbols visible by default (#150)
  • Remove fixes and warnings related to former bug with pybind11 in conan (#148)
  • Using json_fwd.h instead of json.h again (commit 502466b) to improve compilation time (#147)
  • Log instead of std::cout for exceptionaxisbuilderdedxoutofrange and typo (#152)
  • Update author list

- C++
Published by Jean1995 about 5 years ago

proposal - v7.0.2

  • remove non-trivial designated initializers
  • now use nlohmannjson as a dependency. It could be installed via conan by using the option `multipleheaders=True`
  • remove explicit set fPIC flag
  • achieve windows compatibility. Thanks for the contribution @SpaceIm.
  • fix pypi deploy (#140)
  • use temporary json.hpp instead of json_fwd.hpp which increase build time significant, but is temporary required to make CCI run.

- C++
Published by MaxSac about 5 years ago

proposal - Fix conan build

Fix: - fix cmake flag to enable shared library build - remove explicit setting of the visibility mode

- C++
Published by sudojan about 5 years ago

proposal - Release version 7.0.0

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)

- C++
Published by Jean1995 about 5 years ago

proposal - Add further Photonuclear Interaction Models

Two more recent photonuclear parametrizations are added: - Abt et al. 2017 - Block et al. 2014

This was requested in Issue #125 and implemented in PR #128

- C++
Published by sudojan about 5 years ago

proposal - Fix scattering for uninitialized spherical coordinates

Fixes

  • For uninitialized spherical coordinates (which is the default when Vector3D object is constructed), Scattering::Scatter returned direction vectors that are not normalized (see issue #119). This has been fixed by adding a call to Vector3D::CalculateSphericalFromCartesian() at the beginning of the scattering method (see PR #120).

- C++
Published by Jean1995 over 5 years ago

proposal - Fix high energy numerical issue

Fixes

  • PropagationUtilityDisplacement didn't reach the numerical accuracy at very high energies (#115)

- C++
Published by sudojan over 5 years ago

proposal - Fix missing headers for gcc 10

Fixes

Missing headers, needed to make it compile with gcc 10 (#103) Missing conversion from meter to centimeter of inner_radius in Sphere.cxx (#107) Correct cuts_infront label in the configuration parser in Propagator.cxx (#107) Missing substitution for rFlag case in EpairIntegral.cxx (#108)

Tests

Using travis' builtin python versions (#111)

- C++
Published by sudojan over 5 years ago

proposal - v6.1.2: Fix propagation at sector border

Fixes

  • take account of the finite particle resolution causing bug at the border between 2 sectors
  • calculation of the distance at the sector border

Minor Improvements

  • pybind the lifetime attribute of a ParticleDef
  • pybind print functions for Utility Definition
  • Exclude vendor dependencies from doxygen

- C++
Published by sudojan about 6 years ago

proposal - minor fixes including pypi deploy

Fixes:

  • pypi deploy
  • position/direction mix-up in python interface of Secondaries
  • example description and links in README

- C++
Published by sudojan about 6 years ago

proposal -

Feature

  • easier python installation (now possible with pip install ...)
  • PROPOSAL is now on pypi. If you only want to use it from python, do pip install [--user] proposal
  • PROPOSAL as an external library so other cmake projects can find_package(PROPOSAL)

Refactor

  • using cmake3 features
  • Vendor gtest, pybind11 and log4cplus to get the external dependencies git clone --recursive ... or by downloading a release tarball that includes these dependencies. See below.
  • rename pyPROPOSAL -> proposal

Tests

  • self-hosted TestFiles instead of git lfs (due to the limited bandwidth)
  • add python test

- C++
Published by sudojan about 6 years ago

proposal - Electron/Positron/Photon Propagation and inhomogeneous media

Feature

  • add inhomogeneous media (add density axis), interpolation files are now independent of the density correction
  • add electron/positron propagation (ionization, bremsstrahlung, annihilation)
  • add photon propagation (photo pair production, Compton scattering)
  • add sampling of individual energies in pair production
  • add particle deflection in stochastic loss
  • add ROOT interface
  • Secondary class replacing Output vector
  • add maximal distance for a step length
  • add propagation to a minimal energy
  • onlylossinside_detector
  • add justusereadonly_path
  • add ability to deactivate a cross section
  • add CascadiaBasin SeaWater

Refactoring

  • remove boost
  • replace bimap
  • create newton-raphson and spline method
  • pybind parametrization factory
  • no implicit movement of particle in Scattering
  • move StochasticLoss calculation from Sector to utility
  • now possible to propagate till the edge of all sector geometries
  • particle is replaced by particleDef and particle condition
  • upper limit calculation using newton raphson for distance energy

Bug Fixes

  • numerical stable boosting in decay at high energies
  • direction of decay products
  • dr=0 in scattering
  • energy conservation in decay products∂

Tests

  • git-lfs
  • add matrix element to Many Body Decay Channel test

- C++
Published by sudojan over 6 years ago

proposal - add Weak Interaction and improved interpolation tables

Feature

  • add weak interaction as optional process: although this is a rare process, this process produces unique signatures in the detector
  • the number of interpolation nodes and the upper energy of the interpolation are modifiable variables of the Interpolation Definition and no hard coded constants anymore

Refactoring

  • store more information in the Interpolationtableshash (like the number of nodes and the upper energy of the interpolation), but reduce also the size by removing the particle charge and the cross section multiplier, where it is possible, to reduce the number of interpolation tables, that are needed
  • separate the Logging and the Output of the Secondaries

Bug Fixes

  • enable PROPOSAL to use as an extern C++ library
  • correct calculation of the entry point and exit point, when the particle starts or stops inside the detector
  • correct calculation of the closest approach point
  • readd time shift after stopping decay, so that the decay products get the shifted production time according to the exponential life time
  • The shadow module was pybinded as a submodule of bremsstrahlung, now corrcted to photonuclear

Tests

  • advance the Sector test to test also the CalculateEnergyTillStochastic and MakeStochasticLoss methods

- C++
Published by sudojan about 7 years ago

proposal -

Features

  • add ability to look in a readonly path for the configuration file or the interpolation tables
  • add muon pair production as additional, optional process; it's also possible to get the single muons with a sampled energy

Bug Fixes

  • Fix the registration of paraffin and register ANTARES water.

- C++
Published by sudojan about 7 years ago

proposal -

Refactoring

  • json reader changed from boost property tree to a single include header json parser from https://github.com/nlohmann/json
  • inverse error function changed from boost to a commonly used implementation like here https://web.archive.org/web/20150130162056/http://home.online.no/~pjacklam/notes/invnorm/
  • using c++11 features like std::round
  • small changes in the structure of config files for mor intuitive usage

Features

  • add assign operator to Sector::Definition

- C++
Published by sudojan over 7 years ago

proposal - Zenodo

- C++
Published by sudojan over 7 years ago

proposal - Correct IceSim build

- C++
Published by sudojan over 7 years ago

proposal - Switch to C++11

Refactoring

  • moved boost::python -> pybind11 (7d1e1513)
  • set matrix element only in constructor. (11c6f56c)
  • boost::hash -> std::hash (9659e6e4)
  • add factorial and string to_lower methods (7836be57)
  • add defaults for ouput when no logger was found (cf51affb)
  • remove logger macros (cfb29e1e)
  • replace boost random by c++11 random (33a462df)
  • boost bind/function -> std bind/function (b0200252)

- C++
Published by sudojan over 7 years ago

proposal - New cross section parametrizations and decay methods

Features

  • add ability to sample uniform phase space (4109287a)
  • ability to use matrix elements in decays (4fa776d7)
  • add a new leptonic decay channel (4e39af5e)
  • add new bremsstrahlung parametrization (f7a1b11f)
  • add new epair parametrization (67fbd900)
  • add SMPs with both charges +1, -1 (2e8aa240)

Bug Fixes

  • empty hardbb table for ParticleDef builder. (1ff46240)

Tests

  • modify test for new/multiple epair parametrization (6d0196b7)

- C++
Published by THEMayo12 almost 8 years ago

proposal - Bug Fix

This is a single bug fix release. The name of the interpolation tables must be unique to represent the state of the propagator. Until now only the particle name was used for the hash. The fix merges attributes like the charge, mass and lifetime into the hash too, which is especially important for exotic particles.

Bug Fixes

  • expand the hash name for interpolation tables (cd6f9595)

- C++
Published by THEMayo12 almost 8 years ago

proposal - Major updates for the integration into the IceSim framework

Bug Fixes

  • modifications to embed into icesim (485ce0d5)
  • errors and warnings in Integral (814d3e0f)
  • photo unittest (bbdc8304)
  • stochastic loss for ionization (1cf2a0a6)
  • dont provide assignment op for sector def (ef1b754b)
  • unset type in Converter (19668f61)
  • correct conversion from PROPOSAL to icesim (0f1d06c5)
  • add continuous loss output in pybindings (05af779b)
  • uninitialized bug in FindLimit of Interpolant (3fe74069)
  • check write permission on given paths (04dabc4b)
  • print correct path in warning (aeb87cdb)
  • icesim build (cb5d6592)

Features

  • add medium pybind properties (e4c4bf4c)
  • medium pybind gets a default argument (ba251c9e)
  • I3: Finalize propagation with stoch Eloss (166f6f19)
  • add distance to the propagator service (30519481)
  • add 2 methods in MuonPropagator (4d1719f7)
  • config file option "pathtotables" (2c0ab383)

Core

  • include googletest to the project (5ecbcda0)

Tests

  • Fix propagation test (ed0f374f)
  • add interpolation to photo script (61fbde5a)
  • make scattering test more efficient (9eb25208)
  • add all testfiles (14bf69e2)
  • add test files for unit tests (81521992)
  • add travis.yml to test the build process (52f36513)

Refactoring

  • add equality operator for utility (ebac2fd7)

- C++
Published by THEMayo12 about 8 years ago

proposal - 4.0.0

This release contains a full code restructuring.

- C++
Published by THEMayo12 about 8 years ago