xcoll 0.6.5__tar.gz → 0.6.7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of xcoll might be problematic. Click here for more details.

Files changed (68) hide show
  1. {xcoll-0.6.5 → xcoll-0.6.7}/PKG-INFO +7 -4
  2. {xcoll-0.6.5 → xcoll-0.6.7}/pyproject.toml +4 -4
  3. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/colldb.py +4 -3
  4. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/general.py +1 -1
  5. xcoll-0.6.5/xcoll/beam_elements/elements_src/rf_sweep.h +0 -23
  6. xcoll-0.6.5/xcoll/beam_elements/sweep.py +0 -0
  7. xcoll-0.6.5/xcoll/general.py.orig +0 -21
  8. xcoll-0.6.5/xcoll/geometry.md +0 -42
  9. {xcoll-0.6.5 → xcoll-0.6.7}/LICENSE +0 -0
  10. {xcoll-0.6.5 → xcoll-0.6.7}/NOTICE +0 -0
  11. {xcoll-0.6.5 → xcoll-0.6.7}/README.md +0 -0
  12. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/__init__.py +0 -0
  13. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/beam_elements/__init__.py +0 -0
  14. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/beam_elements/absorber.py +0 -0
  15. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/beam_elements/base.py +0 -0
  16. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/beam_elements/blowup.py +0 -0
  17. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/beam_elements/elements_src/black_absorber.h +0 -0
  18. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/beam_elements/elements_src/black_crystal.h +0 -0
  19. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/beam_elements/elements_src/blowup.h +0 -0
  20. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/beam_elements/elements_src/emittance_monitor.h +0 -0
  21. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/beam_elements/elements_src/everest_block.h +0 -0
  22. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/beam_elements/elements_src/everest_collimator.h +0 -0
  23. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/beam_elements/elements_src/everest_crystal.h +0 -0
  24. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/beam_elements/elements_src/transparent_collimator.h +0 -0
  25. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/beam_elements/elements_src/transparent_crystal.h +0 -0
  26. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/beam_elements/everest.py +0 -0
  27. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/beam_elements/monitor.py +0 -0
  28. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/beam_elements/transparent.py +0 -0
  29. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/headers/checks.h +0 -0
  30. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/headers/particle_states.py +0 -0
  31. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/initial_distribution.py +0 -0
  32. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/interaction_record/__init__.py +0 -0
  33. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/interaction_record/interaction_record.py +0 -0
  34. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/interaction_record/interaction_record_src/interaction_record.h +0 -0
  35. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/interaction_record/interaction_types.py +0 -0
  36. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/line_tools.py +0 -0
  37. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/lossmap.py +0 -0
  38. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/plot.py +0 -0
  39. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/prebuilt_kernel_definitions/__init__.py +0 -0
  40. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/prebuilt_kernel_definitions/element_inits.py +0 -0
  41. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/prebuilt_kernel_definitions/element_types.py +0 -0
  42. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/rf_sweep.py +0 -0
  43. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/scattering_routines/engine.py +0 -0
  44. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/scattering_routines/environment.py +0 -0
  45. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/scattering_routines/everest/__init__.py +0 -0
  46. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/scattering_routines/everest/amorphous.h +0 -0
  47. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/scattering_routines/everest/channelling.h +0 -0
  48. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/scattering_routines/everest/constants.h +0 -0
  49. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/scattering_routines/everest/crystal_parameters.h +0 -0
  50. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/scattering_routines/everest/everest.h +0 -0
  51. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/scattering_routines/everest/everest.py +0 -0
  52. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/scattering_routines/everest/ionisation_loss.h +0 -0
  53. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/scattering_routines/everest/jaw.h +0 -0
  54. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/scattering_routines/everest/materials.py +0 -0
  55. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/scattering_routines/everest/multiple_coulomb_scattering.h +0 -0
  56. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/scattering_routines/everest/nuclear_interaction.h +0 -0
  57. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/scattering_routines/everest/properties.h +0 -0
  58. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/scattering_routines/geometry/__init__.py +0 -0
  59. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/scattering_routines/geometry/collimator_geometry.h +0 -0
  60. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/scattering_routines/geometry/crystal_geometry.h +0 -0
  61. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/scattering_routines/geometry/geometry.py +0 -0
  62. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/scattering_routines/geometry/get_s.h +0 -0
  63. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/scattering_routines/geometry/methods.h +0 -0
  64. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/scattering_routines/geometry/objects.h +0 -0
  65. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/scattering_routines/geometry/rotation.h +0 -0
  66. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/scattering_routines/geometry/segments.h +0 -0
  67. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/scattering_routines/geometry/sort.h +0 -0
  68. {xcoll-0.6.5 → xcoll-0.6.7}/xcoll/xaux.py +0 -0
@@ -1,8 +1,10 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: xcoll
3
- Version: 0.6.5
3
+ Version: 0.6.7
4
4
  Summary: Xsuite collimation package
5
5
  License: Apache-2.0
6
+ License-File: LICENSE
7
+ License-File: NOTICE
6
8
  Author: Frederik F. Van der Veken
7
9
  Author-email: frederik@cern.ch
8
10
  Requires-Python: >=3.10
@@ -12,6 +14,7 @@ Classifier: Programming Language :: Python :: 3.10
12
14
  Classifier: Programming Language :: Python :: 3.11
13
15
  Classifier: Programming Language :: Python :: 3.12
14
16
  Classifier: Programming Language :: Python :: 3.13
17
+ Classifier: Programming Language :: Python :: 3.14
15
18
  Provides-Extra: tests
16
19
  Requires-Dist: numpy (>=1.0)
17
20
  Requires-Dist: pandas (>=1.4)
@@ -20,9 +23,9 @@ Requires-Dist: pytest-html ; extra == "tests"
20
23
  Requires-Dist: pytest-xdist ; extra == "tests"
21
24
  Requires-Dist: ruamel-yaml (>=0.17.31,<0.18.15)
22
25
  Requires-Dist: xdeps (>=0.10.6)
23
- Requires-Dist: xobjects (>=0.5.2)
26
+ Requires-Dist: xobjects (>=0.5.3)
24
27
  Requires-Dist: xpart (>=0.23.1)
25
- Requires-Dist: xtrack (>=0.90.1)
28
+ Requires-Dist: xtrack (>=0.93.0)
26
29
  Project-URL: Bug Tracker, https://github.com/xsuite/xsuite/issues
27
30
  Project-URL: Documentation, https://xsuite.readthedocs.io/
28
31
  Project-URL: Homepage, https://github.com/xsuite/xcoll
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "xcoll"
3
- version = "0.6.5"
3
+ version = "0.6.7"
4
4
  description = "Xsuite collimation package"
5
5
  authors = [
6
6
  {name="Frederik F. Van der Veken", email="frederik@cern.ch"},
@@ -22,10 +22,10 @@ dependencies = [
22
22
  "ruamel-yaml (>=0.17.31,<0.18.15)",
23
23
  "numpy>=1.0",
24
24
  "pandas>=1.4",
25
- "xobjects>=0.5.2",
25
+ "xobjects>=0.5.3",
26
26
  "xdeps>=0.10.6",
27
27
  "xpart>=0.23.1",
28
- "xtrack>=0.90.1",
28
+ "xtrack>=0.93.0",
29
29
  ]
30
30
 
31
31
  [project.optional-dependencies]
@@ -46,7 +46,7 @@ exclude = ["xcoll/lib", "xcoll/config"]
46
46
 
47
47
  [poetry.group.dev.dependencies]
48
48
  pytest = ">=7.3"
49
- xaux = ">=0.3.6"
49
+ xaux = ">=0.3.7"
50
50
 
51
51
  [build-system]
52
52
  # Needed for pip install -e (BTW: need pip version 22)
@@ -36,7 +36,7 @@ def _dict_keys_to_lower(dct):
36
36
  else:
37
37
  return dct
38
38
 
39
-
39
+ # TODO: need better handling of beam argument (not hardcoded 'b1' and 'b2' strings)
40
40
  def _get_coll_dct_by_beam(coll, beam):
41
41
  # The dictionary can be a CollimatorDatabase for a single beam (beam=None)
42
42
  # or for both beams (beam='b1' or beam='b2)
@@ -51,7 +51,7 @@ def _get_coll_dct_by_beam(coll, beam):
51
51
  raise ValueError("Need to specify a beam, because the given dict is for both beams!")
52
52
  return coll[beam]
53
53
 
54
- elif len(beam_in_db) == 1:
54
+ elif len(beam_in_db) == 1 and beam_in_db[0].lower() in ['b1','b2']:
55
55
  if beam is None:
56
56
  beam = beam_in_db[0].lower()
57
57
  elif beam != beam_in_db[0].lower():
@@ -551,7 +551,8 @@ class CollimatorDatabase:
551
551
  prop_dict.update(kwargs)
552
552
  el = cls(**prop_dict)
553
553
  el.emittance = [self.nemitt_x, self.nemitt_y]
554
- if 'family' in self[name] and self[name]['family'].lower() != 'unknown':
554
+ if 'family' in self[name] and self[name]['family'] \
555
+ and self[name]['family'].lower() != 'unknown':
555
556
  if self[name]['family'] == name:
556
557
  raise ValueError(f"Collimator {name} has the same name as its family!")
557
558
  el.family = self[name]['family']
@@ -12,5 +12,5 @@ citation = "F.F. Van der Veken, et al.: Recent Developments with the New Tools f
12
12
  # ======================
13
13
  # Do not change
14
14
  # ======================
15
- __version__ = '0.6.5'
15
+ __version__ = '0.6.7'
16
16
  # ======================
@@ -1,23 +0,0 @@
1
- // copyright ############################### #
2
- // This file is part of the Xcoll package. #
3
- // Copyright (c) CERN, 2025. #
4
- // ######################################### #
5
-
6
- #ifndef XCOLL_RF_SWEEP_H
7
- #define XCOLL_RF_SWEEP_H
8
-
9
- /*gpufun*/
10
- void RFSweep_track_local_particle(RFSweepData el, LocalParticle* part0){
11
- double const step = RFSweepData_get__rf_sweep_df_step(el); // L*df/(f0 + df)
12
- int64_t const start_turn = RFSweepData_get_start_turn(el);
13
- int64_t const stop_turn = RFSweepData_get_stop_turn(el);
14
-
15
- //start_per_particle_block (part0->part)
16
- int64_t at_turn = LocalParticle_get_at_turn(part);
17
- if (at_turn >= start_turn && at_turn <= stop_turn){
18
- LocalParticle_add_to_zeta(part, -(at_turn - start_turn + 1)*step);
19
- }
20
- //end_per_particle_block
21
- }
22
-
23
- #endif /* XCOLL_RF_SWEEP_H */
File without changes
@@ -1,21 +0,0 @@
1
- # copyright ############################### #
2
- # This file is part of the Xcoll package. #
3
- # Copyright (c) CERN, 2025. #
4
- # ######################################### #
5
-
6
- from pathlib import Path
7
-
8
- _pkg_root = Path(__file__).parent.absolute()
9
-
10
- citation = "F.F. Van der Veken, et al.: Recent Developments with the New Tools for Collimation "
11
- citation += "Simulations in Xsuite, Proceedings of HB2023, Geneva, Switzerland."
12
-
13
- # ======================
14
- # Do not change
15
- # ======================
16
- <<<<<<< HEAD
17
- __version__ = '0.7.0rc0'
18
- =======
19
- __version__ = '0.6.4'
20
- >>>>>>> main
21
- # ======================
@@ -1,42 +0,0 @@
1
- PSEUDOCODE for material interactions tracking in collimator
2
- ===========================================================
3
-
4
- - create DriftTrajectory from particle
5
- - loop:
6
- - find first crossing with collimator shape (segments)
7
- - if distance larger than end of BeamElement -> move particle to exendit and break loop
8
- - move particle to collimator impact point
9
- - create MCSTrajectory from new particle
10
- - loop:
11
- - find first crossing with collimator shape (segments)
12
- - do not move, but calculate path length
13
- - compare to distance to nuclear interaction
14
- - shortest wins (nuclear or exit)
15
- - move to next point
16
- - when at exit, create DriftTrajectory from particle
17
-
18
-
19
-
20
- PSEUDOCODE for material interactions tracking in crystal
21
- ========================================================
22
-
23
- - create DriftTrajectory from particle
24
- - loop:
25
- - find first crossing with crystal shape (segments)
26
- - if distance larger than end of BeamElement -> move particle to end and break loop
27
- - move particle to crystal impact point
28
- - create MCSTrajectory (if amorphous) or CircularTrajectory (if channelling) from new particle
29
- - loop:
30
- - find first crossing with crystal shape (segments)
31
- - do not move, but calculate path length
32
- - compare to distance to nuclear interaction and dechannelling
33
- - shortest wins (nuclear, dechannelling, or exit)
34
- - move to next point
35
- - when at exit, create DriftTrajectory from particle
36
-
37
-
38
- PSEUDOCODE for crossing finder
39
- ==============================
40
-
41
- - if DriftTrajectory and any segment
42
- => use analytical
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes