Sorry it took so long! I had confused myself by changing things in the code (and introducing a bug in the process) while looking into your question.
There is one slight issue with your code, which is that the proton energy you’ve been using is too low for the model used by Heed to be applicable. Which is why you’ve probably seen warnings like
EnTransfCS::EnTransfCS(...): WARNING: negative adda
which are admittedly highly cryptic. I should replace them by a more meaningful message.
But that’s just as a side note, it doesn’t really matter for what you were asking.
To understand the shape of the signal, it’s easier to start with a single electron avalanche. I’ve attached a small program (a slightly simplified version of yours) where you can toggle between two different methods for calculating the electron (and subsequently the ion) signal:
- The first one uses
DriftLineRKF
which uses the average drift velocity and Townsend coefficient (these transport parameters are taken from a gas fileisobutane_50_Torr.gas
which you’ll also find attached). With the optionEnableIonTail
switched on, it then also simulates the ion signal (again using the RKF integration method) by distributing the starting points of the ions along the electron drift line according to the avalanche growth profile. This method is quite instructive because it gives you the average signal without any fluctuations. From the attached plots (single_electron_rkf.pdf
andion_tail_rkf.pdf
) you see that the signal has indeed a short electron pulse with a steep rising edge, followed by a long ion tail. - The second method simulates the electron avalanche using microscopic tracking and subsequently every ion produced in the avalanche using the RKF technique, like you did in your program. The signal then looks more “noisy” because of the fluctuations in the avalanche, but I think it’s more or less consistent with the one obtained using the first method.
Now if you have a charged-particle track, the signal will become a bit more complicated because the individual electrons produced along the track will arrive at different times at the wire, so you’ll get a superposition of the above “single-electron type” signals with different time offsets.
In your particular example you had a lot of primary electrons along the track which is maybe what caused the confusion.
Let me know if you have any questions/doubts…
single_electron.cpp (2.9 KB)
isobutane_50_Torr.gas.txt (25.3 KB)
single_electron_microscopic.pdf (11.0 KB)
single_electron_rkf.pdf (10.4 KB)
ion_tail_microscopic.pdf (23.9 KB)
ion_tail_rkf.pdf (23.2 KB)