Transform from S,X,Y Curvilinear to Global Cartesian
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)
-
reporter -
reporter - changed status to resolved
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.
- Log in to comment
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.