No current signal by ion

The current in a parallel plate chamber was calculated, the result is:

but the classic current signal from a parallel plate chamber is:

so why no current signal by ion?


Adding in the loop @hschindl.


How did you produce this plot? Did you include ion transport in the simulation?

@hschindl , the current plot is similar with “Examples/DriftTube” but not ConvoluteSignals;
the ions were drifted, the codes are:

    while (track.GetCluster(xc, yc, zc, tc, nc, ec, extra)) {    
      for (int ijk = 0; ijk< nc; ++ijk) { 
        drift.DriftElectron(xc, yc, zc, tc);
        drift.DriftIon(xc, yc, zc, tc);            

it’s difficult to diagnose without having more information on how you set up the geometry, defined the active medium (if you use a gas mixture, did you load an ion mobility file?) etc. and what output you got when running your program.

Maybe have a look at this example?

It simulates the induced current signal from a charged-particle track in a parallel-plate geometry (with silicon as the active medium).

@hschindl , the ComponentComsol class object is used, and the medium is used like this:

  MediumMagboltz gas;
  ComponentComsol fm;
  const unsigned int nMaterials = fm.GetNumberOfMaterials();
  for (unsigned int i = 0; i < nMaterials; ++i) {
    const double eps = fm.GetPermittivity(i);
    if (eps == 1) fm.SetMedium(i, &gas);

the ion mobility file is loaded like this:

  const std::string path = std::getenv("GARFIELD_INSTALL");
  gas.LoadIonMobility(path + "/share/Garfield/Data/IonMobility_Ar+_Ar.txt");

the output comment on the terminal is:

    Reading file Ar90_CH4_10_1bar.gas.
    Version 12.
    Gas composition set to Ar/CH4 (90/10).
    Read 36 values from file /usr/local/Garfield/share/Garfield/Data/IonMobility_Ar+_Ar.txt
ComponentComsol::Initialise: 209692 nodes.
ComponentComsol::Initialise: 155589 elements.
ComponentComsol::Initialise: Reading potentials.
    Caching the bounding boxes of all elements... done.
    Initialized tetrahedral tree.

ComponentComsol::Initialise: Done.
    Reading field map for electrode Anode.
weighting field==     2.854e-05     -5.86979e-06     -0.504098
weighting potential==0.494956
        Dimensions of the elementary block
                       -2.1 < x < 2.1             cm,
                       -2.1 < y < 2.1             cm,
                          0 < z < 3               cm,
                          0 < V < 500             V.
            x: none
            y: none
            z: none
    Currently 2 materials are defined.
      Index Permittivity  Resistivity Notes
          0            1           -1 Ar/CH4, drift medium, ionisable (drift medium)
          1        1e+10           -1 Conductor
E = (     0.01427002,     -0.00293489,   -252.04903112), V =    247.47781616, status = 0
Info in <TCanvas::Print>: SVG file ElectricField.svg has been created
Info in <TCanvas::Print>: SVG file ElectricPotential.svg has been created
Info in <TCanvas::Print>: SVG file XZ_Plane_ElectricField.svg has been created
Info in <TCanvas::Print>: SVG file XZ_Plane_ElectricPotential.svg has been created
Info in <TCanvas::Print>: SVG file ElectricField_3D.svg has been created
Ew = (     0.00002854,     -0.00000587     -0.50409806)
Vw =      0.49495563
Info in <TCanvas::Print>: SVG file WeightingField.svg has been created
Info in <TCanvas::Print>: SVG file WeightPotential.svg has been created
    Added readout electrode "Anode".
    All signals are reset.
DriftLineRKF::SetGainFluctuationsPolya: Mean avalanche size set to 20000.
Sensor::SetTimeWindow: Resetting all signals.
Sensor::ExportSignal: File 'Current.csv' exported.
Info in <TCanvas::Print>: SVG file DriftLine.svg has been created
Info in <TCanvas::Print>: SVG file signal.svg has been created

it seems the application worked well.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.