Greetings,
I’m having some issues with the simulation of a muon track signal in a drift chamber cell (similar to the one in my previous topic):
- The cell structure is defined using the native geometry (in particular using
SolidWire
for wires) and the electric field is then computed withComponentNeBem3d
. - I use the
DriftLineRKF
class to simulate electron and ion drift and avalanches on the signal wire.
The “regular” electron avalanche size that I find is of 3*10^5
electrons and ions, which is consistent with the gain computation and corresponds to a signal plot of this type:
What I noticed is that in some runs, a small number of electrons (~3 out of all) have oversized avalanches with up to 10^10
particles produced, so the signal plots look like this:
When this happens I get these warning messages:
DriftLineRKF::Avalanche:
Cannot retrieve alpha at drift line point x, segment y
//or
DriftLineRKF::Avalanche:
Warning: Integrating the Townsend coefficients would lead to exponential overflow.
Avalanche truncated.
As I suspected I could be having issues in the avalanche simulation, I decided to output the avalanche parameters at each step of the computation in DriftLineRKF::Avalanche()
:
- I’m printing the
logp
,alpsum
,etasum
andd
parameters, from which the electron number is calculated (with exponentexp
) and, for each step point, the distancer
from the origin in thex-y
plane and the electric field magnitude. - Once the drift and avalanche simulation ends, I’m printing the final
r
and arrival timete
, the gain estimated withDriftLineRKF::GetGain()
, the avalanche size (n_el, n_ion) and the electric field magnitude at the endpoint.
The output below is for a regular avalanche behaviour:
which seems sensible to me.
For the oversized avalanches the behaviour is different:
As my signal wire has a radius of 0.002 cm
, the avalanche step seems to be getting inside the wire before moving back, at which point alpsum
jumps by a factor of 10. This then leads to the oversized avalanches.
Is this the expected behaviour for the avalanche simulation? What could be a workaround apart from neglecting the oversized signals in that case?
Any feedback that you may have would be greatly appreciated.
I’m attaching the code and gas file below.
camera_signal_simu.cpp (8.3 KB)
ar_85_co2_15_1atm.txt.zip (7.3 KB)