Q Garfield++ Example/RPC: Issues with Small Avalanche Size and Single Gas Gap Avalanche

Dear Garfield++ Community,

I am working on the Garfield++ Example/RPC and encountered an issue while running the simulation. Initially, I got the following error:

TrackHeed::NewTrack:
    No ionisable medium at initial position.

This seemed to occur because the particle source was defined at the RPC edge (track.NewTrack(0, totalThickness, 0, 0, 0, -1, 0);), where no ionizable medium exists, resulting in no avalanche particles. I modified the starting position to:

double ystart = dMylar + dWindow + 0.9 * dGas;
track.NewTrack(0, ystart, 0, 0, 0, -1, 0);

This resolved the error, and avalanches appeared. However, I still observe two issues:

  1. The avalanche size and total induced charge are very small, e.g., Final avalanche size = 31, Total induced charge = -4.32227e-05 [fC].
  2. The avalanche is confined to a single gas gap (where the particle is generated, y-axis: 0.155–0.18 cm).

A typical output is as follows:

MediumMagboltz::ComputePhotonCollisionTable:
    Photoabsorption cross-section for iC4H10 not available.
    Using n-butane cross-section instead.
Sensor::AddElectrode:
    Added readout electrode "ReadoutPlane".
    All signals are reset.
Sensor::SetTimeWindow: Resetting all signals.
AvalancheGrid::GetParameters:
    Electric field = (0, 58.5182, 0) [kV/cm].
    Townsend = 470.429 [1/cm], Attachment = 74.9058 [1/cm], Velocity = -0.0143166 [cm/ns].
Switching to grid based method.
AvalancheGrid::StartGridAvalanche: Starting grid based simulation with 1 initial electrons.
AvalancheGrid::StartGridAvalanche: Final avalanche size = 31 ended at t = 0.554228 ns.
Script: Electrons have drifted. It took 0.106421s to run.
Sensor::ExportSignal: File 'Signal.csv' exported.
Sensor::ExportSignal: File 'Charge.csv' exported.
Script: Total induced charge = -4.32227e-05 [fC].

Could anyone provide insights into why the avalanche size is small and why it’s limited to a single gas gap? Thanks a lot for the suggestions.

Thank you for your help!

Best regards,
Kai Sun

hi let me add in the loop @hschindl

Hi,
by default, TrackHeed will stop simulating a track as soon as it encounters an inactive medium. Can you add a line

track.CrossInactiveMedia(true);

to your program (to the part where you set up HEED)? With this option enabled, the track should continue through the resistive layers and produce ionization in all gas gaps.