What's Changed
* Two new elements:
* `BlowUp`: to add random kicks to a beam. Two modes of operation are possible; `use_individual_kicks=False` (default), where each particle gets the same kick (though different turn-by-turn), and `use_individual_kicks=True`, where each particle gets a different kick. The latter option is not realistic but provides a smoother blow-up (which is sometimes easier to work with in simulation). The class has an `install` classmethod to instantiate the element and install it in a line in one go (returning the instance). If the element is instantiated and installed manually, the fields `line` and `name` need to be set to have access to the twiss. A method `calibrate_by_emittance` is provided which sets the blow-up such that the beam gets shifted beyond 5 sigma in roughly 1000 turns. Finally, the field `amplitude` allows to scale this calibration.
* `EmittanceMonitor`: a monitor that works on any `Context` by accumulating (using `AtomicAdd`) the 6D covariances of the physical coordinates. It provides the fields `gemitt_x`, `gemitt_y`, `gemitt_zeta`, `nemitt_x`, `nemitt_y`, `nemitt_zeta`, `gemitt_I`, `gemitt_II`, `gemitt_III`, `nemitt_I`, `nemitt_II`, and `nemitt_III`. The class has an `install` classmethod to instantiate the element and install it in a line in one go (returning the instance). If the element is instantiated and installed manually, the field `line` needs to be set to have access to the reference particle.
* Added examples and test for those elements
* Fixed bug by simoneotelie in https://github.com/xsuite/xcoll/pull/84: `active` inside `EverestBlock` was ignored
* Pencil crystal by chiaramaccani in https://github.com/xsuite/xcoll/pull/87
* Installing collimators by family is now possible.
* Particle fields in `InteractionRecord` have been renamed (`x_before`, `x_after`, etc)
* Record flags in `InteractionRecord` have been renamed (`record_impacts`, `record_exits`, `record_scatterings`)
* Fixed crystal geometry for right-sided crystals
* Added views to `BaseCollimator` to get the `s` position of the jaw corners
Develop Updates
* Renamed `collimators_src` folder as `elements_src`
* Bugfix when setting `gap_R`
* Several bugfixes in `InteractionRecord`, and made things like `io_buffer` more robust
* Two bugfixes in lossmap:
* particles lost in an aperture directly after a crystal should stay in that aperture (as the crystal is too small to follow the same logic as the regular collimators in this situation)
* Typo in `line_is_reversed`
* Better tests for `BlackAbsorber`
* Adapted impacts tests, however, exit tests fail (need to investigate)
* Materials database in Everest slightly adapted to be more flexible (SixTrack <-> Xcoll)
* Tracking `Everest` would fail for a material with the `_only_mcs` flag. This is fixed now, but the logic should be rethought
**Full Changelog**: https://github.com/xsuite/xcoll/compare/v0.4.0...v0.5.0