&SIGNAL


overview

  The instructions of the signal section fall in 5 categories:

  - setting various parameters
  - computing a signal
  - processing the signal
  - service instructions
  - debugging instructions

  ------------------------------------------------------------------------
  Setting parameters:
  ------------------------------------------------------------------------
  AREA                       Sets the size of the plotting area
  AVALANCHE                  Sets the avalanche model
  FOURIER                    Number of Fourier terms (periodic cells)
  GRID                       Grid density for PLOT-FIELD
  INTEGRATION-PARAMETERS     Drift line integration parameters
  OPTIONS                    Various printing and plotting options
  RESOLUTION                 Sets the time window of the signals
  SELECT                     Establishes the list of sense wires
  TRACK                      Sets the track for which a signal is generated

  ------------------------------------------------------------------------
  Computing a signal:
  ------------------------------------------------------------------------
  SIGNAL                     Simulates a signal

  ------------------------------------------------------------------------
  Processing a signal:
  ------------------------------------------------------------------------
  ADD-NOISE                  Adds noise to the signals
  CONVOLUTE-SIGNALS          Convolutes signals with a transfer function
  PLOT-SIGNALS               Plots the signals
  WRITE-SIGNALS              Stores a signal in a dataset
  Call threshold_crossing    Returns the threshold crossing times

  ------------------------------------------------------------------------
  Service instructions:
  ------------------------------------------------------------------------
  PREPARE-TRACK              Prepare a track for interpolation
  GET-TRACK                  Retrieve a a prepared track from a dataset
  WRITE-TRACK                Save a prepared track in a dataset

  ------------------------------------------------------------------------
  Debugging instructions:
  ------------------------------------------------------------------------
  CHECK                      Verify proper functioning
  PLOT-FIELD                 Plots the signal induction field

  Note: There are procedures that perform signal related tasks:
        GET_SIGNAL, GET_RAW_SIGNAL, STORE_SIGNAL, THRESHOLD_CROSSING,
        WEIGHTING_FIELD, WEIGHTING_FIELD_3.

ADD-NOISE

  This statement is meant to add noise to the signals, but it
  can be used to add other things to the signal too.

  The noise function is evaluated separately for each wire,
  but the same noise is added to the direct and cross-induced
  parts of the signals.

  Format:

  ADD-NOISE NOISE-FUNCTION function

  Example:

  ADD-NOISE NOISE-FUNCTION -0.01*RND_POISSON(30)

  In this example, each of the sampling points of the signal has
  a Poisson distributed number with mean 30, multiplied by -0.01,
  added to it.

Additional Information on:

  • function

  • AREA

      Changes the area in which electrons and ions are allowed to
      drift. This is also the part of the chamber that is plotted.
    
      Formats:
    
      See &FIELD -> AREA
    

    AVALANCHE

      Chooses the type of avalanche to be used in the simulation.
    
      No default type of avalanche is set - you must therefore
      issue an AVALANCHE command prior to any signal calculation.
    
      Format:
    
      AVALANCHE {EXPONENTIAL mean | ...
                 FIXED factor | ...
                 FIXED-TOWNSEND | ...
                 GAUSSIAN mean relative_sigma | ...
                 POLYA-FIXED [mean [theta]] | ...
                 POLYA-TOWNSEND [theta] | ...
                 TOWNSEND}
    
      Examples:
    
      aval exp 1e4
      aval townsend
    

    Additional Information on:

  • EXPONENTIAL
  • FIXED
  • FIXED-TOWNSEND
  • GAUSSIAN
  • POLYA-FIXED
  • POLYA-TOWNSEND
  • TOWNSEND

  • CHECK

      A debugging instruction, checking signal related routines.
    
      Format:
    
      CHECK [AVALANCHE] ...
            [DIFFUSION] ...
            [CLUSTER] ...
            [RANGE min max] ...
            [FROM x y] ...
            [N n] ...
            [BINS nbin]
    
      Example:
    
      CH AVALANCHE FROM 5 6 BINS 50
    

    CONVOLUTE-SIGNALS

      This statement enables the user to enter an electronics transfer
      function with which all computed signals are convoluted.
    
      One may convolute the signals by as many transfer functions as
      desired.
    
      The transfer function is only evaluated once for all signals.
      The transfer function should therefore not depend on random
      number generators.
    
      Format:
    
      CONVOLUTE-SIGNALS ...
           TRANSFER-FUNCTION { function  |  transfer VS time } ...
           [ADD-ON-FUNCTION add] ...
           RANGE tmin tmax
    
      Example:
    
      convolute-signals ...
           transfer-function 250*(6*t/0.025)**6*exp(-6*t/0.025) ...
           range 0 2000
    
      (This example, taken from an Atlas muon tube study, simulates the
      response of a pre-amplifier.)
    

    Additional Information on:

  • TRANSFER-FUNCTION
  • ADD-ON-FUNCTION
  • RANGE

  • FOURIER

      In periodic cells, the accuracy of the signal calculation depends
      amongst others on the number of periods taken into account. A high
      number of periods only leads to improved precision though if there
      are equipotential planes in the cell. The number of terms must be
      an integral power of 2 [default: 1 term].
    
      Format:
    
      FOURIER terms
    
      Example:
    
      FOURIER 16
    
      (Note that this setting may require a fantastic amount of disk I/O !)
    

    GET-TRACK

      Retrieves a prepared track from a dataset written by WRITE-TRACK,
      see PREPARE-TRACK for details about prepared tracks.
    
      Format:
    
      GET-TRACK dsname [member]
    
      Example:
    
      GET-TR lib
    
      (This call will retrieve the first prepared track in the dataset
      LIB.DAT, which may contain members of different type as well.)
    

    Additional Information on:

  • dsname
  • member

  • GRID

      Sets the density of sampling points on the grid. This number is
      usually of the order of 25 for vector plots like those made in
      response to the PLOT-FIELD instruction.
    
      The second arguments may be omitted in which case the first value
      will be used for both the x (or r) and the y (or phi) spacing.
    
      Format:
    
      GRID  number_of_steps_in_x  [number_of_steps_in_y]
    
      Example:
    
      GRID 25 15
    

    INTEGRATION-PARAMETERS

      See the same command in the &DRIFT section.
    

    OPTIONS

      The local options of the drift section are available here as well. In
      addition there are the following:
    
      Format:
    
      OPTIONS [CLUSTER-PRINT|NOCLUSTER-PRINT] ...
              [CLUSTER-PLOT|NOCLUSTER-PLOT] ...
    
      Example:
    
      OPT NOCLUSTER-PRINT
    

    Additional Information on:

  • CLUSTER-PLOT
  • CLUSTER-PRINT

  • PLOT-FIELD

      Plots quantities related to signal computations.
    
      The main quantities of interest in this context are the
      so-called weighting field (see functions -> weighting_field)
      and the current induced in an electrode by a charge released
      at some point (see functions -> charges).
    
      The weighting field and the induced charge are plotted
      seperately for each electrode that is read out. You can
      however limit the set of plots to a subset of electrodes.
    
      There are related instructions in the field and drift sections.
    
      Format:
    
      PLOT-FIELD [CONTOUR [f1]   [RANGE {cmin cmax | AUTOMATIC}] ...
                                 [N n] ...
                                 [LABELS | NOLABELS]] ...
                 [GRAPH [f2]     [ON f_curve] ...
                                 [N n]] ...
                                 [SCALE min max] ...
                                 [NOPRINT | PRINT] ...
                 [HISTOGRAM [f3] [RANGE {hmin hmax | AUTOMATIC}] ...
                                 [BINS nbin]] ...
                 [SURFACE [f4]   [ANGLES phi theta]] ...
                 [VECTOR [f5 f6]] ...
                 [SENSE-WIRE  {ALL | sense }] ...
                 [WIRE wire ]
    
      If you don't manage to fit all this on a single line, remember
      that lines that end on an ellipsis are continued on the next.
    
      Examples:
    
      plot-field hist status_e vector surf cont
      plot-field contour time_ion range 1000 3000
    
      (The first example makes most of the plots using default functions
      and ranges - useful as a first call. The result will be an histogram
      that shows where electrons end up, a vector plot of the weighting
      field and a contour plot of the currents induced by single electrons
      released from the various locations. The second example makes a
      contour plot of the ion drift time.)
    

    Additional Information on:

  • functions
  • contour
  • graph
  • histogram
  • surface
  • vector
  • sense
  • wire
  • copy

  • PLOT-SIGNALS

      Plots the signals. The graphs contain either one or two
      curves, depending on whether cross induced currents have
      been computed or not.
    
      Format:
    
      PLOT-SIGNALS [TIME-WINDOW {AUTOMATIC | tmin tmax}] ...
                   [RANGE {AUTOMATIC | smin smax}] ...
                   [WIRES {ALL | ACTIVE | numbers, codes}] ...
                   [CROSS-INDUCED-SIGNALS | NOCROSS-INDUCED-SIGNALS] ...
                   [DIRECT-SIGNALS | NODIRECT-SIGNALS]
    
      Example:
    
      pl-sig time 2.7 3.1 wire 1
    
      Plots the signal on wire 1 in the time window [2.7,3.1] microsec.
    

    Additional Information on:

  • TIME-WINDOW
  • RANGE
  • WIRES
  • CROSS-INDUCED
  • DIRECT-SIGNALS
  • representations

  • PREPARE-TRACK

      Calculates and stores the relevant drift line information for regularly
      spaced points on the track. This data can optionally be used in the
      actual signal simulation so as to save CPU time. The difference in speed
      can be dramatic if the simulation is repeated many times. The loss in
      accuracy is usually negligible. The track thus prepared, can be saved
      in a dataset from where it can be retrieved in subsequent runs.
    
      Format:
    
      PREPARE-TRACK ...
           [ATTACHMENT-COEFFICIENT | NOATTACHMENT-COEFFICIENT] ...
           [DIFFUSION-COEFFICIENT | NODIFFUSION-COEFFICIENT] ...
           [TOWNSEND-COEFFICIENT | NOTOWNSEND-COEFFICIENT] ...
           [LINES n]
    
      Example:
    
      PREP-TR
    
      (Accept all defaults, usually adequate.)
    

    Additional Information on:

  • ATTACHMENT-COEFFICIENT
  • DIFFUSION-COEFFICIENT
  • TOWNSEND-COEFFICIENT
  • LINES

  • REPEAT

      +---------------------+
      | STATEMENT WITHDRAWN |
      +---------------------+
    
      The REPEAT statement used to tell the SIGNAL command that you wish to
      repeat the calculation several times.
    
      Old format:        New format:
    
      REPEAT 100         For i From 1 To 100 Do
      SIGNAL             SIGNAL
                         Enddo
    

    RESOLUTION

      Enters the size and granularity of time window in which you want to
      study the signals.
    
      By default, signals start at t=0 and are sampled every 0.01 microsec.
      The number of samples is by default MXLIST, usually 200 or 1000
      depending on the compilation flags that were selected.
    
      Format:
    
      RESOLUTION t_start t_step  [n_step]
    
      Example:
    
      RES 0.5 0.01 200
    
      (This is a proper setting if your signals never start before 0.5
      microsec and decay almost fully before 0.5+200*0.01=2.5 microsec.)
    

    SELECT

      Selects the wires for which signals will be calculated. The signals
      for wires in a single group are summed. The argument consists of
      wire-codes and or wire-numbers. Put a pair of brackets around the
      codes and numbers of the wires that should go in one group.
    
      Format:
    
      SELECT wire_selection
    
      Example:
    
      SEL (1 S) 2 F
    
      (Put wire 1 together with all S wires in one group, make wire 2
      a group of its own and do the same for each of the F wires.)
    

    SIGNAL

      This instruction computes the signals on the electrodes in
      the chamber that result from the passage of a charged particle.
    
      These signals can then be further processed externally with
      electronics simulation programs. Inside Garfield, one can do
      basic signal manipulations such as convolution with transfer
      functions, adding noise, compute threshold crossings etc.
      See the CONVOLUTE, ADD-NOISE and WRITE-SIGNAL statements and
      the GET_SIGNAL and THRESHOLD_CROSSING procedure calls.
    
      Garfield distinguishes two kinds of signals: the "direct" and
      the "cross induced" signals. Direct signals arise from an
      avalanche on a read-out electrode. These signals are always
      computed. Cross induced (or indirect) signals are all other
      currents induced by moving charges anywhere in the chamber.
      These signals are only computed on request. For the moment,
      all signals in chambers where the field is interpolated in a
      field map are classified as cross induced.
    
      Before issuing a SIGNAL instruction, one has to take care of
      the following:
    
      1. Set both the geometrical parameters and the clustering
         model of the track (see TRACK)
      2. Set the avalanche model (see AVALANCHE)
      3. Set the time window and time resolution (see RESOLUTION)
    
      Format:
    
      SIGNAL [ANGULAR-INTEGRATION-POINTS n_angle] ...
             [ANGULAR-SPREAD f_angle | NOANGULAR-SPREAD] ...
             [ATTACHMENT | NOATTACHMENT] ...
             [AVALANCHE | NOAVALANCHE] ...
             [AVERAGE-SIGNAL n_average | SAMPLE-SIGNAL] ...
             [DIFFUSION | NODIFFUSION] ...
             [ELECTRON-PULSE | NOELECTRON|PULSE] ...
             [INTERPOLATION-ORDER n_order] ...
             [ION-ANGLES n_ion] ...
             [ION-TAIL | DETAILED-ION-TAIL | NOION-TAIL] ...
             [ION-THRESHOLD thr] ...
             [RUNGE-KUTTA-DRIFT-LINES | MONTE-CARLO-DRIFT-LINES] ...
             [NEW | ADD] ...
             [NOCROSS-INDUCED | CROSS-INDUCED] ...
             [NOINTERPOLATE-TRACK | INTERPOLATE|TRACK]
    
      Example:
    
      SIGNAL CROSS-INDUCED
    

    Additional Information on:

  • ADD
  • ANGULAR-INTEGRATION-POINTS
  • ANGULAR-SPREAD
  • ATTACHMENT
  • AVALANCHE
  • AVERAGE-SIGNAL
  • CROSS-INDUCED
  • DETAILED-ION-TAIL
  • DIFFUSION
  • ELECTRON-PULSE
  • INTERPOLATE-TRACK
  • INTERPOLATION-ORDER
  • ION-ANGLES
  • ION-TAIL
  • ION-THRESHOLD
  • MONTE-CARLO-DRIFT
  • NEW
  • SAMPLE-SIGNAL

  • THRESHOLD

      This instruction is withdrawn for debugging, use the
      ARRIVAL instruction from the drift section instead.
    

    TRACK

      See the same command in the &DRIFT section.
    
      Please note that the default clustering model, a fixed number
      of single-electron deposits on each track, is not meaningful
      in the signal section.
    
      Examples:
    
      TRACK 0 1 2 0 2 4 EXP
      TRACK 0 1 2 0 2 4 HEED
    
      The track in both examples runs from (0,1,2) to (0,2,4). In
      the first example, the cluster spacing will be exponential
      and the cluster size will be derived from the data entered
      in the gas section. In the second example, Heed takes care
      of generating the clusters.
    

    WRITE-SIGNAL

      Writes the current set of signals to a dataset. Writing is done
      when the command is executed, not while the SIGNAL command runs
      as in versions of Garfield prior to 5.20.
    
      Format:
    
      WRITE-SIGNAL [DATASET dsname [member]] [REMARK remark] ...
                   [FORMAT {SPICE|SCEPTRE}] ...
                   [WRITE-IF condition] ...
                   [UNITS units]
    
      If you don't manage to fit all this on a single line, remember
      that lines that end on an ellipsis are continued on the next.
    
      Example:
    
      WR-SIG 'disk$scratch:[pubzh.work.garfield]signal.dat'
    

    Additional Information on:

  • FORMAT
  • condition
  • dsname
  • member
  • remark
  • units

  • WRITE-TRACK

      Writes the prepared track, see PREPARE-TRACK, right away to a dataset.
      It can later on be retrieved by GET-TRACK.
    
      This statememt should be issued after the PREPARE-TRACK command.
    
      Format:
    
      WRITE-TRACK DATASET dsname [member] [REMARK remark]
    
      Example:
    
      WR-TR "../tracks/track.lib" 8mm
    

    Additional Information on:

  • dsname
  • member
  • remark

  • Keyword index. Formatted on 10/11/98.