Recent Releases of proposal
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
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 - 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
naninHighland::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.0
Physics improvements
- Add Photoproduction (Gamma + Hadron interaction) as a new interaction type (PR #222)
- Restructure PhotoPairProduction secondary calculation classes, adding
PhotoPairProductionKochMotzForwardPeakedas a new parametrization to describe PhotoPairProduction secondaries (PR #247)
Functionality
- Add variable
end_positionto ContinousLosses (PR #223) - Add
target_hashinformation to StochasticLoss objects to keep information about the medium/component that we interacted with; addGetMediumForHashandGetComponentForHashfunctions 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
HitGeometryto 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
NoScatteringcase 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_parameterinCrossSectionDNDXInterpolant::GetUpperLimitfails (#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.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_CODEis not explicitly set toTRUE - 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.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
fPICflag - achieve windows compatibility. Thanks for the contribution @SpaceIm.
- fix pypi deploy (#140)
- use temporary
json.hppinstead ofjson_fwd.hppwhich 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
Secondariesclass for the output of thePropagatorclass. 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
Propagatorclass 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
Vector3Dby creating two separate subclassesCartesian3DandSpherical3D(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
EnergyCutSettingsoptions have been changed to be more intuitive: Using no absolute EnergyCut now corresponds toINF(formerly-1), using no relative EnergyCut now corresponds to1(formerly-1)
Fixes
- Fix uninitalized values in ManyBodyPhaseSpace::SampleEstimateMaxWeight (PR #132)
- False documentation of
Interpolant::Expmethod 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
cminstead ofmto 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::Scatterreturned direction vectors that are not normalized (see issue #119). This has been fixed by adding a call toVector3D::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
CalculateEnergyTillStochasticandMakeStochasticLossmethods
- 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 - 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