Tracking with large energy spread
Posted: 19 May 2016, 08:48
Hi,
I get a problem due to my unusually high energy spread. In short, the program gives different output for beam sizes, emittances, etc., depending on which central energy I set, even though I rescale the magnet strengths to correspond to the same gradient. Below is more info about my setup and problem, I hope I can get it to make sense.
I am currently designing a beam transport lattice for a laser-wakefield electron accelerator, for which the energy spread can vary a lot depending on injection method. Right now, I am using an input file from a PIC simulation for a certain injection method which gives a lot of charge but also a high energy spread; the spectrum that I have goes from 0-380 MeV, but I only track 70-380 MeV.
The lattice is very simple at the moment, consisting of a permanent quadrupole (PMQ) triplet, an intermediate drift, and then an electromagnet quadrupole (EMQ) triplet to refocus. I have made several different profiles for focusing different energies in the beam by matching the beta functions from the PMQs, which will only focus some nominal energy, with the EMQs. The lattice config I made in the tool OPA, where I "modeled" a higher energy by rescaling the PMQ strengths from, say, k = 400 to k = 200 when going from 100 to 200 MeV and then matching the new beta functions with the EMQs to obtain a focus at the end. For the tracking in elegant, I put in these same magnet parameters in the lattice file and scaled the central energy (p_central), one profile for each energy.
This should mean that when I go between different profiles and energies, the EMQ triplet should have the same effect on the beam (the gradient should be the same) since I use the same input file every time. What I see, though, is that pretty much every single beam parameter changes along the lattice when I change the energy. I haven't looked in the source code, I'm not very good at coding, but to me it looks like there is some expansion around the central energy which is insufficient when it comes to handling energy ranges this wide. I also see this effect when running with an auto-generated bunch with ~0 energy spread but where the central bunch energy is different from p_central.
Is there some setting that I should change or is this a feature in the program? I have tried both regular quads with matrices and kquads with symplectic integration, everything with lots of element divisions and number of kicks (26 and 32 respectively), and I get the same effect.
I hope this was understandable.
Best regards
Jonas
I get a problem due to my unusually high energy spread. In short, the program gives different output for beam sizes, emittances, etc., depending on which central energy I set, even though I rescale the magnet strengths to correspond to the same gradient. Below is more info about my setup and problem, I hope I can get it to make sense.
I am currently designing a beam transport lattice for a laser-wakefield electron accelerator, for which the energy spread can vary a lot depending on injection method. Right now, I am using an input file from a PIC simulation for a certain injection method which gives a lot of charge but also a high energy spread; the spectrum that I have goes from 0-380 MeV, but I only track 70-380 MeV.
The lattice is very simple at the moment, consisting of a permanent quadrupole (PMQ) triplet, an intermediate drift, and then an electromagnet quadrupole (EMQ) triplet to refocus. I have made several different profiles for focusing different energies in the beam by matching the beta functions from the PMQs, which will only focus some nominal energy, with the EMQs. The lattice config I made in the tool OPA, where I "modeled" a higher energy by rescaling the PMQ strengths from, say, k = 400 to k = 200 when going from 100 to 200 MeV and then matching the new beta functions with the EMQs to obtain a focus at the end. For the tracking in elegant, I put in these same magnet parameters in the lattice file and scaled the central energy (p_central), one profile for each energy.
This should mean that when I go between different profiles and energies, the EMQ triplet should have the same effect on the beam (the gradient should be the same) since I use the same input file every time. What I see, though, is that pretty much every single beam parameter changes along the lattice when I change the energy. I haven't looked in the source code, I'm not very good at coding, but to me it looks like there is some expansion around the central energy which is insufficient when it comes to handling energy ranges this wide. I also see this effect when running with an auto-generated bunch with ~0 energy spread but where the central bunch energy is different from p_central.
Is there some setting that I should change or is this a feature in the program? I have tried both regular quads with matrices and kquads with symplectic integration, everything with lots of element divisions and number of kicks (26 and 32 respectively), and I get the same effect.
I hope this was understandable.
Best regards
Jonas