Setting parameters:
Command | Short description |
---|---|
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 |
RESET
| Resets one or more aspects of the signals |
SELECT
| Establishes the list of sense wires |
TRACK
| Sets the track for which a signal is generated |
WINDOW
| Sets the time window of the signals |
Computing and processing a signal:
Command | Short description |
---|---|
ADD-NOISE
| Adds noise to the signals |
CONVOLUTE-SIGNALS
| Convolutes signals with a transfer function |
PLOT-SIGNALS
| Plots the signals |
SIGNAL
| Simulates a signal |
WRITE-SIGNALS
| Stores a signal in a dataset |
Service instructions:
Command | Short description |
---|---|
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:
Command | Short description |
---|---|
CHECK
| Verify proper functioning |
PLOT-FIELD
| Plots the signal induction field |
Note: There are procedures that perform signal related tasks: ADD_SIGNALS, GET_RAW_SIGNAL, GET_SIGNAL, INDUCED_CHARGE, LIST_RAW_SIGNALS, STORE_SIGNAL, THRESHOLD_CROSSING, WEIGHTING_FIELD and WEIGHTING_FIELD_3.
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.
It is permissible to use the ADD-NOISE command before any signal has been computed, but the time WINDOW must have been set beforehand.
Format:
ADD-NOISE NOISE-FUNCTION function
Example:
ADD-NOISE NOISE-FUNCTION -0.01*RND_POISSON(30)
In this example, the RND_POISSON generator is used to add to each of the sampling points a Poisson distributed number with mean 30, multiplied by -0.01.
Additional information on:
Formats:
See the AREA command of the field section.
No default type of avalanche is set - you must therefore issue an AVALANCHE command prior to any signal calculation.
Only avalanches generated by electrons that hit an electrode (a wire, a plane, the tube, a solid) are affected by this statement. In particular, avalanches in a field map for which no solids have been defined, are not affected by this statement.
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:
Format:
CHECK [AVALANCHE] ... [DIFFUSION] ... [CLUSTER] ... [RANGE min max] ... [FROM x y] ... [N n] ... [BINS nbin]
Example:
CH AVALANCHE FROM 5 6 BINS 50
Signal processing in Garfield is limited to convoluting the induced currents with transfer functions and to addition of certain types of noise with ADD-NOISE.
The CONVOLUTE-SIGNALS command convolutes all signals that are available at the moment the command is issued, with the transfer function that is specified. You may issue several of these commands in succession.
The transfer function is only evaluated once for all signals. The transfer function should therefore not depend on random number generators.
It is permissible to use the CONVOLUTE-SIGNALS command before any signal has been computed, e.g. in order to process noise, but the time WINDOW must have been set beforehand.
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:
Format:
FOURIER terms
Example:
FOURIER 16
(Note that this setting may require a fantastic amount of disk I/O !)
Format:
See the GET-TRACK command in the drift section.
The grid is common to all sections.
Format:
GRID number_of_steps_in_x [number_of_steps_in_y]
Example:
GRID 25 15
Additional information on:
Format:
OPTIONS [ CLUSTER-PRINT | NOCLUSTER-PRINT ] ... [ CLUSTER-PLOT | NOCLUSTER-PLOT ] ... [ CONTOUR-ALL-MEDIA | CONTOUR-DRIFT-MEDIUM ] ... [ NOWIRE-MARKERS | WIRE-MARKERS ] ... [ NOCHECK-MAP-INDICES | CHECK-MAP-INDICES ]
Example:
OPT NOCLUSTER-PRINT
Additional information on:
The main quantities of interest in this context are the so-called weighting_field and the charges induced in an electrode by electrons and ions drifting from a given point.
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]] ... [GROUP {ALL | sense }] ... [TIME-WINDOW tmin tmax] ... [RUNGE-KUTTA-DRIFT-LINES | MONTE-CARLO-DRIFT-LINES]
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:
Format:
PLOT-SIGNALS [TIME-WINDOW {AUTOMATIC | tmin tmax}] ... [RANGE {AUTOMATIC | smin smax}] ... [WIRES {ALL | ACTIVE | numbers, labels}] ... [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:
Format:
See PREPARE-TRACK in the drift section.
+---------------------+ | 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
If the statement is issued without arguments, then all elements are reset.
Format:
RESET [AVALANCHE-MODEL] ... [MATRICES] ... [SIGNALS] ... [WINDOW]
Additional information on:
In this section, the grouping is relevant: the signals for electrodes in a single group are summed.
The ADD option of the SIGNAL command can not be used on the first signal that is computed after a SELECT command.
Format:
See SELECT
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.)
Before issuing a SIGNAL instruction, one has to
Further, it is advisable to use the CLUSTER-PLOT option for the first few signals to verify that the AREA is sufficiently large, and that the INTEGRATION-PARAMETERS are properly set.
Signals can be further processed externally with electronics simulation programs (WRITE-SIGNALS). Inside Garfield, one can do basic signal manipulations such as convolution with transfer functions (CONVOLUTE-SIGNALS), adding noise (ADD-NOISE) and determining threshold crossings (THRESHOLD_CROSSING).
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.
Use ADD_SIGNALS to compute the currents and use INDUCED_CHARGE to compute the charge induced by a single charged particle.
Format:
SIGNAL [ANGULAR-INTEGRATION-POINTS n_angle] ... [ANGULAR-SPREAD {f_angle | FLAT} | 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 | NOSAMPLING}] ... [ION-TAIL | DETAILED-ION-TAIL | ... NONSAMPLED-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:
The track is shared between commands from nearly all sections.
Please verify both the location and the clustering model before starting a signal calculation. Some clustering models used elsewhere, e.g. a fixed number of single-electron deposits on each track, are not meaningful in the signal section.
Format:
See TRACK
Examples:
track 0 1 2 0 2 4 exp track 0 1 2 0 2 4 muon energy 10 GeV
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. Enters the size and granularity of time window in which you want to study the signals.
The WINDOW command resets the signals to zero. The ADD option of the SIGNAL command can not be used on the first signal that is computed after a WINDOW command.
Format:
WINDOW t_start t_step [n_step]
Example:
WINDOW 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.)
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-SIGNALS [DATASET file [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:
See the WRITE-TRACK command in the drift section.
Formatted on 15/01/01 at 23:07.