Transform from S,X,Y Curvilinear to Global Cartesian

Issue #63 resolved
Laurie Nevay created an issue

Already underway implementation by Regina. Just starting this as a holding ground for any notes that pertain to it.

Uses: - sixtrack input - inject losses anywhere - any bunch distribution can be started from S instead of Z - placement of BLMs - placement of arbitrary piece of geometry w.r.t. beam line

Comments (2)

  1. Laurie Nevay reporter

    Note: ASCII output records S in primary coordinates as 0. There is no way to pass this information to it. The output base classes will need to be changed to record S properly. Also in BDSEventAction where WritePrimaryVertex() is used.

  2. Laurie Nevay reporter

    This has been implemented. Even though BDSIM makes small straight sections in arcs, the positions must be interpolated along true curvilinear coordinates to achieve correct positioning / pointing. Tests including placing particles on axis and off axis were introduced.

    Despite careful mathematical validation, this appears to be only accurate at the micrometre level, however, this should be sufficient for placement of particles for hit generation.

    I would not recommend using this for highly precise comparisons where the S0 of the beam is some way through the accelerator. For the most precise comparisons, the lattice should be constructed from that point.

    The transformations were added to the BDSBeamline class so all beam distributions can use S0 as a parameter and in future it will be very easy to place things with respect to curvilinear coordinates.

  3. Log in to comment