Adapted buffer and io_buffer in manager to work correctly. Made impact table more robust; works correctly for BlackAbsorber.
Spelling mistake in Beryllium
Added ds parameter to table, and fixed interaction_type property.
Absorbed logging now correctly with ds.
Amorphous layer temporarily not supported (adapted tests as well). Prepared small details for recording of crystals.
Removed nam from crystal code.
Moved imapcts table to separate folder with own C code.
Moved material into interact.
Some cleaning in scatter_cry and crystal.
Moved calculation of bend/bending angle, and scatter length, to python.
some further cleaning of crystal function
More cleaning in function crystal.
Refactored LocalParticle inside function interact.
Cleaned up calcionloss_cry.
Removed _scatter_length as it was wrong.
Adapted MoveAM to work with ScatteringParameters.
First implementation of channeling transport function, and some renaming of variables.
Use new channeling transport function implemenation for dechanneling as well.
Forgot to track new file crystal_properties.h
New file structure for impact table.
Cleaned up movech - not yet tested.
Fixed typos (tests pass), and factored constants out into separate file.
Some further cleaning.
Cleaned scatter.
Bunch of cleaning.
Homogenised calcionloss.
First introduction of continous transport funtions Amorphous and Channel.
Changed structs by reference.
First try to make general EverestData struct (no crystals yet) -- does not worj.
Quick fix with EverestData definition -- still does not work.
Quick fix: needed to initialise radl. Crystals still to be done.
Refactored code to use struct EverestData (crystals work as well).
Large refactoring of crystals. Tests do not pass! Needs to be benchmarked.
MCS to VI is wrong; need to implement it more smart. Currently, defaulted to original implementation (drift to VI).
Small bugfixes, still something wrong.
Fixed transition regions, fixed VR. Transition can be activated with a compiler flag (off by default).
Tests pass (manually generated for crystals).
Everest collimator initialises with energy (instead of energy0).
Fixed bug in tracking: collimator initialisation should not happen in a twiss
Cleaning of spaces in colldb
Made test and example lines optimised by default
Revert "Made test and example lines optimised by default". This had some (aperture) markers removed and the collimators can't be installed.
Install crystals before regular collimators to avoid recompilation.
Added critical angle as an xofield such that it can be inspected after tracking. Not very efficient, should be improved.
Adapted examples.
Added colldb for crystal simulations.
Some WIP: moving scatter function in crystal.
Preliminary first step to remove particle initialisation out of manager
Preliminary first step to remove lossmap out of manager
Created LossMap class.
Changed the test so it fits the new LossMap class.
Changed the examples so they work with the LossMap class. Added the class to init.
imported xobjects and matplotlib as these were missing.
Added dump function
Added the dump function in the examples. Removed file parameter from lossmap function.
Angles are in xpart.
Current save state - WIP
debugging -WIP
added test file for initial_distribution.py
removed test file as it is not needed
WIP
Made functions for generating particles on collimator independent of CollimationManager
Removed functions for generating particles on collimator from CollimatorManager class
Small changes to LossMap, updated all examples.
Added check on json file for lossmap test
Some cleaning and adaptation of test_lossmap and examples
Quick bugfix
Finally removed duckcoll
Removed inactive front and back, and renamed active_length as length
Raise error when using deprecated active_length, inactive_front, or inactive_back.
Fix in BlackAbsorber and EverestCrystal
created new test file for initial distribution. WIP
WIP
WIP
Created test for initial_distribution.py
created test for initial_ditribution.py
Updated both test and generation of initial particles. It is still very slow. Removed the parameters for the transverse distribution, as it didn't work as intended and anyway it should be normalised to the beam sigma; otherwise we might create an unmatched beam.
Corrected References
new file for rewriting jaws
addded the changes from RemoveRef
Changed collimator data and made small changes for absorbers
WIP
BlackAbsorber works without reference frame.
Quick fix in gap assignment
Renamed absorbed flag as enter jaw flag
Fixed initial distribution. TODO: matched_dispersion does not work.
Udpated crystal gap in example
Updated examples
Separated collimator geometry from scattering. Works for absorber. Changed base properties of BaseCollimator (base in C is now jaw_LU, jaw_LD, etc).
small update
WIP: does not work for everest
Moved geometry information into a struct, as casting the BeamElement to a BaseCollimator did not work (as the data fields are not necessarily at the same memory addresses)
WIP: need to free memory of struct.
Kinda works for everest collimators (very small discrepancies in zeta for test_lengths), not for crystals
EverestCollimator works correctly
Reset crystals to old working state.
Force passing of io_buffer to tracker when enabling scattering
Refactored BaseCollimator to be compatible with new Xtrack API: optics are attached to collimator element itself, no more need for CollDB
Moved installation and assigning optics/setting openings out of manager
Added emittance as attribute to base collimator.
Install with as default
Fixed bug in twiss in assign_optics and added emittance to manager.
Updated tests
Updated license headrr
Added installation test
Updated examples
Added emittance to BaseCollimator init
Small mistakes in examples
Slight logic change in update gaps
Small fix in example
WIP
Updated and renamed impacts table (InteractionRecord).
wip
Fix in _apply_optics: only when gaps are manually set
Typo fix
Test for gaps and jaws
Geometry C code and test
Geometry for rectangular and polygonal collimators implemented, and applied to BlackAbsorber
EverestCollimator also updated for geometry
Took out nuclear interaction into separate file; cleaned up scattering code for Everest collimator
Drifting remaining part (after leaving jaw) is done in geometry)
Regenerated test references (random normal inside tetat is calculated differently)
Updated EverestBlock code to new everest implementation
Small cleaning and bugfix in everest collimator
Added crystal file in geometry
Did not finish (at all), and it is sort of messy. Not sure its useable.
Still sort of messy.
Fixed momentum scaling in single diffractive, and homogenised exact or expanded drifts and angles inside code
Finally, crystal geometry
Added eta to channeling efficiency and prohibit two-sided crystal (however this currently makes test_elements fail)
Added a few more checks in BaseCollimator and adapted test_elements.
New geometry code in C based on segments and objects: much more modular
Updated test for new geometry (still need tests with vlimit)
Two bugfixes: 1.e12 where it should have been 1.e-12, and a memory issue when expanding an array (in calculate_overlap) -> this was solved by the realisation that the array will always be allocated large enough in our case anyway
Added test for geometry
Introduced BlackCrystal, applied new geometry to BlackAbsorber and BlackCrystal, and made jaw= and gap= sign-dependent when setting a single-sided collimator.
Updated tests for BlackAbsorber
EverestCollimator uses new-style geometry; EverestCrystal in the works.
Quick bugfix of typo in crystals (but geometry update not yet complete for EverestCrystal)
First step to get EverestCrystal working with new geometry - WIP
Quick bugfix: angle should be after transformation.
EverestCrystal tests pass. However, currently the crystal rotates around the front corner -> not done consistently.
Redefinition of crystals: tilt around inner front corner.
Forgot to rename jaw_L into jaw in collimator jsons in test
Moving to inner upstream corner (for rotation) means s=0
Moved eta into EverestColl struct (instead of being hardcoded) and removed some superflous geometry from struct (though some is left for now)
Bugfix of typo (xdim instead of width)
Adapted BlackCrystal to new tilt rotation logic
Made sure elements can be initialised without argument
Updated geometry elements tests
Fix: inside Rc scale with sart(eta)
Reshuffled class dependencies to better separate geometry from scattering
emittance
to BaseCollimator init