&DRIFT 

&DRIFT


overview

The instructions of the drift section fall in 4 categories:

This is probably the most intensively used section of Garfield. Before loops and procedure calls became available, many requests for instructions that are variations on existing instructions were made. This has lead to a fair amount of duplication among the instructions.

Setting parameters:

Command Short description
AREA Sets the size and view of the drift area
GRID Grid density for tables and contour plots
INTEGRATION-PARAMETERS Accuracy of diffusion, Townsend integration
LINES Number of drift-lines used by x(t) etc.
OPTIONS Debugging options
SELECT Selection of sense wires
TRACK Sets the particle trajectory

Calibration:

Command Short description
ARRIVAL-TIME-DISTRIBUTION x(t) Relations, detailed calculation
MINIMISE Search for the minimum of a function
TABLE Produces a drift time table
TIMING Arrival time distributions for 2D areas
XT-PLOT x(t) Relations, simple variant

Display drift behaviour:

Command Short description
CLUSTERING-HISTOGRAMS Makes histograms of the cluster statistics
DRIFT Plots drift-lines and isochrons
GRAPHICS-INPUT Graphics menu driven drift-line plotting
LORENTZ-ANGLE Prints the Lorentz angle at a given point
PLOT-FIELD Plots drift related quantities
SINGLE Graphs for a single drift-line
SPEED Prints the drift speed at a given point
TIME Timing of drift-line calculation

Service instructions:

Command Short description
GET-TRACK Retrieves a prepared track from a file
PREPARE-TRACK Prepares a track of interpolation
WRITE-ISOCHRONS Writes the set of isochrons to a file
WRITE-TRACK Writes a prepared track to a file

Note: There are procedures that perform drift related tasks: AVALANCHE, DRIFT_ELECTRON, DRIFT_ELECTRON_3, DRIFT_MC_ELECTRON, DRIFT_POSITRON, DRIFT_POSITRON_3, DRIFT_MC_POSITRON, DRIFT_ION, DRIFT_ION_3, DRIFT_MC_ION, DRIFT_MC_NEGATIVE_ION, DRIFT_NEGATIVE_ION, DRIFT_NEGATIVE_ION_3, DRIFT_INFORMATION, GET_CLUSTER, GET_DRIFT_LINE, NEW_TRACK, PLOT_DRIFT_AREA, PLOT_DRIFT_LINE, PLOT_TRACK, PRINT_DRIFT_LINE and RND_MULTIPLICATION.

The FIT_GAUSSIAN procedure can be of use when studying the output of the ARRIVAL-TIME-DISTRIBUTION instruction.


methods

Garfield currently has 4 different integration techniques:

The above plot illustrates the difference between Monte Carlo and Runge Kutta Fehlberg drifting. In this symmetric chamber, 20\ electrons are drifted, from a point, using the Monte Carlo algorithm in the upper half and using Runge Kutta Fehlberg integration in the lower half.

The plot has been made with the following commands:

area -0.11 -0.11 0.11 0.11
int-par mc-dist-int 0.001
Call plot_drift_area
For i From 1 To 20 Do
   Call drift_mc_electron(0.005,0.09,0)
   Call plot_drift_line
Enddo
Call drift_electron(0.005,-0.09)
Call plot_drift_line
Call plot_end

Additional information on:

 

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 the AREA command in the field section.


ARRIVAL-TIME-DISTRIBUTION

Computes the arrival time distribution of the n'th electron that reach electrodes from a series of tracks. A by-product of this calculation is the x(t) relation and an estimate of the arrival time spread. See XT-PLOT for a comparison with related commands.

Before issuing this command, you should take care of the following:

By default, this command operates in the x-y plane, but it can also work in the y-z and z-x planes. The choice is controlled with the STEP and SCAN keywords.

Another important argument is ELECTRON.

Format:

ARRIVAL-TIME-DISTRIBUTION ...
     [ELECTRON {electron | LAST | ONE-BUT-LAST | ... }] ...
     [THRESHOLD threshold] ...
     [TIME-WINDOW {AUTOMATIC | FULL-RANGE | tmin tmax }] ...
     [STEP {X | Y | Z} ...
           [RANGE umin umax] ...
           [INCREMENT ustep]] ...
     [SCAN {X | Y | Z} ...
           [RANGE vmin vmax] ...
           [ANGLE phi]] ...
     [OFFSET w] ...
     [LINES lines] ...
     [DIFFUSION | NODIFFUSION] ...
     [ATTACHMENT | NOATTACHMENT] ...
     [DATASET file [member]] [REMARK remark] ...
     [BINS bins] ...
     [ITERATIONS iterations] ...
     [POLYNOMIAL-ORDER order] ...
     [NOKEEP-HISTOGRAMS | KEEP-HISTOGRAMS] ...
     [NOKEEP-RESULTS | KEEP-RESULTS] ...
     [NOPLOT-ALL-ELECTRONS | PLOT-ALL-ELECTRONS] ...
     [NOPLOT-SELECTED-ELECTRONS | PLOT-SELECTED-ELECTRONS] ...
     [NOPRINT-ALL-ELECTRONS | PRINT-ALL-ELECTRONS] ...
     [NOPRINT-SELECTED-ELECTRONS | PRINT-SELECTED-ELECTRONS] ...
     [PLOT-OVERVIEW | NOPLOT-OVERVIEW]
     [PRINT-OVERVIEW | NOPRINT-OVERVIEW]

If you don't manage to fit all this on a single line, remember that an instruction can be split over several lines by putting an ellipsis at the end of each line but the last.

Example:

track exponential
arrival electron 5 last dataset "arrival/electron.5" thresh 0.8

The track type is set to EXPONENTIAL-SPACING, i.e. the mean number of clusters per cm and the cluster size distribution from the gas section are used. One could also ask for HEED, to simulate a particle. The arrival time distribution of the 5th and of the last electron are computed. A file is written that contains the the time by which 80\ % of these electrons have reached the electrode.

Additional information on:


CLUSTERING-HISTOGRAMS

Makes a set of histograms that show some aspects of the cluster statistics:

These histograms are of use mainly if Heed is used to generate tracks. Keep the following in mind in this respect:

Format:

CLUSTERING-HISTOGRAMS ...
     [ITERATIONS  iter] ...
     [BINS  bins] ...
     [CLUSTER-SIZE-BINS  bins] ...
          [CLUSTER-SIZE-RANGE  {AUTOMATIC | min max}] ...
     [CLUSTER-COUNT-BINS  bins] ...
          [CLUSTER-COUNT-RANGE  {AUTOMATIC | min max}] ...
     [CLUSTER-ENERGY-BINS  bins] ...
          [CLUSTER-ENERGY-RANGE  {AUTOMATIC | min max}] ...
     [DELTA-RANGE-BINS  bins] ...
          [DELTA-RANGE-RANGE  {AUTOMATIC | min max}] ...
     [TRACK-RANGE-BINS  bins] ...
          [TRACK-RANGE-RANGE  {AUTOMATIC | min max}] ...
     [ENERGY-LOSS-BINS  bins] ...
          [ENERGY-LOSS-RANGE  {AUTOMATIC | min max}] ...
     [NOKEEP-HISTOGRAMS | KEEP-HISTOGRAMS] ...
     [PLOT-HISTOGRAMS | NOPLOT-HISTOGRAMS]

Additional information on:

 

DRIFT

This instruction makes plots of electron and ion drift-lines and can also plot isochrons.

The main choice is between the 5 kinds of starting points:

Each has a set of sub-options that should follow the EDGES, SOLIDS, WIRES, TRACK or ZEROES keyword. The other options should be placed at the end of the line.

Format:

DRIFT {EDGES  [LEFT | NOTLEFT] ...
              [RIGHT | NOTRIGHT] ...
              [UP | NOTUP] ...
              [DOWN | NOTDOWN] ...
              [LINES lines]                                    | ...
       TRACK  [NOTIME-GRAPH | TIME-GRAPH] ...
              [NOVELOCITY-GRAPH | VELOCITY-GRAPH] ...
              [NODIFFUSION-GRAPH | DIFFUSION-GRAPH] ...
              [NOAVALANCHE-GRAPH | AVALANCHE-GRAPH] ...
              [NOFUNCTION-GRAPH | FUNCTION-GRAPH function] ...
              [MARKER | SOLID]                                 | ...
       SOLIDS [LINES lines]                                    | ...
       WIRES  [LINES lines] ...
              [ANGLE-RANGE amin amax]                          | ...
       ZEROES                                                    } ...

[RUNGE-KUTTA-DRIFT | MONTE-CARLO-DRIFT] ... [NOISOCHRONS | ISOCHRONS delta_t] ... [REVERSE-ISOCHRONS | NOREVERSE-ISOCHRONS] ... [LINE-PLOT | NOLINE-PLOT] ... [NOLINE-PRINT | LINE-PRINT] ... [ELECTRON | ION] ... [NEGATIVE | POSITIVE]

If you don't manage to fit all this on one line, remember you are allowed to abbreviate. A line that ends on an ellipsis continues on the next line.

Examples:

drift wires lines=25 isochrons 0.1 nol-pl
drift track function-graph time+5*diffusion nol-pl l-pr
drift zero

(The first example will plot only a set of isochrons computed using 25 drift-lines from each of the selected wires. The second example prints a table of drift times etc. and plots the drift time plus five times the diffusion. The last example shows the acceptance boundaries.)

Additional information on:


GET-TRACK

Retrieves a prepared track from a dataset written by WRITE-TRACK. This saves time since one doesn't have to run PREPARE-TRACK again.

Format:

GET-TRACK file [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:


GRAPHICS-INPUT

Enters a graphics menu driven mini drift section. The edges of the AREA and the TRACK can very easily be changed by simply pointing to them. Typical calculations include a single drift-line from a point indicated on the screen, drift-lines from the TRACK and drift-lines from a wire (and its periodic repetitions) selected on the screen.

You have some control over the graphics input mode with the options listed below.

Format:

GRAPHICS-INPUT [CHOICE-PET chpet] [LOCATOR-PET locpet1 locpet2] ...
               [PICK-PET pickpet] [VALUATOR-PET valpet] ...
               [CHOICE-DEVICE chdev] [LOCATOR-DEVICE locdev] ...
               [PICK-DEVICE pickdev] [VALUATOR-DEVICE valdev] ...
               [WORK-STATION wkid]

Example:

gra loc-pet 1 4

Chooses rubber band for the second point.

Additional information on:

 

GRID

Chooses the x (or r) and y (or \φ) density of the grid inside the AREA from which instructions like TABLE will calculate drift-lines.

The grid is common to all sections.

Format:

GRID  number_of_steps_in_x  [number_of_steps_in_y]

Example:

grid 10 20

Additional information on:

 

INTEGRATION-PARAMETERS

Enables one to change the following:

These parameters are used both in this section and in the signal section.

Format:

INTEGRATION-PARAMETERS ...
     [INTEGRATION-ACCURACY accuracy ] ...
     [ MAXIMUM-STEP-LENGTH maximum_step | ...
       NOMAXIMUM-STEP-LENGTH ] ...
     [ MONTE-CARLO-MAXIMUM-TIME maximum_time | ...
       NOMONTE-CARLO-MAXIMUM-TIME ] ...
     [ MONTE-CARLO-TIME-INTERVAL step_size ...
       MONTE-CARLO-DISTANCE-INTERVAL step_size ...
       MONTE-CARLO-COLLISIONS step_size ] ...
     [ DIFFUSION-SCALING-RANGE scale_min scale_max ] ...
     [ CHECK-ATTRACTING-WIRES | ...
       CHECK-ALL-WIRES ] ...
     [ REJECT-KINKS | ...
       NOREJECT-KINKS ] ...
     [TRAP-RADIUS ntrap] ...
     [INTERPOLATION-ORDER order] ...
     [ COMPUTE-IF-INTERPOLATION-FAILS | ...
       ABANDON-IF-INTERPOLATION-FAILS ] ...
     [CLOUD-PROJECTION-DISTANCE ncloud] ...
     [CLOUD-PROJECTION-METHOD ...
         { CENTRAL-VELOCITY-INTEGRATION | ...
           INTEGRATION | ...
           LONGITUDINAL-DIMENSION | ...
           LARGEST-DIMENSION | ...
           NO-PROJECTION } ...
     [DIFFUSION-ACCURACY \ε_diff] ...
     [TOWNSEND-ACCURACY \ε_Town] ...
     [ATTACHMENT-ACCURACY \ε_att] ...
     [DIFFUSION-STACK-DEPTH stack_diff] ...
     [TOWNSEND-STACK-DEPTH stack_Town] ...
     [ATTACHMENT-STACK-DEPTH stack_att] ...
     [PROJECTED-PATH-INTEGRATION | ...
       TRUE-PATH-INTEGRATION ] ...
     [ DRAW-ISOCHRONS | ...
       MARK-ISOCHRONS ] ...
     [ SORT-ISOCHRONS | ...
       NOSORT-ISOCHRONS ] ...
     [ ISOCHRON-CONNECTION-THRESHOLD iso_thr | ...
       NOISOCHRON-CONNECTION-THRESHOLD ] ...
     [ISOCHRON-ASPECT-RATIO-SWITCH iso_aspect] ...
     [ISOCHRON-LOOP-THRESHOLD iso_loop] ...
     [ CHECK-ISOCHRON-CROSSINGS | ...
       NOCHECK-ISOCHRON-CROSSINGS ]

Example:

int diff-st 5, diff-acc 1.0e-3

Will limit the number of subdivisions to 32 per drift-line step (the default is usually 2\<SUP\>20\</SUP\>) and asks for a relative precision per step of one per mille.

Additional information on:

 

LINES

Sets the default number of drift-lines for a couple of commands such as track preparation. The parameter also governs in part the accuracy of the x(t) calculation in sets the number of drift-lines used for the initial crude search for the optimal point in y for each x.

Please note that LINES has no effect anymore on the DRIFT command. For DRIFT TRACK, use the TRACK command to set a clustering model. For DRIFT EDGES, DRIFT SOLIDS and DRIFT WIRES, use the respective LINES option on the DRIFT command line.

Format:

LINES lines

Example:

lines 50

LORENTZ-ANGLE

Prints the Lorentz-angle, i.e. the angle between the drift vector and the electric field, at the point (x,y,z).

This command is now superseded by the LORENTZ_ANGLE procedure.

Format:

LORENTZ-ANGLE x y z

Example:

lorentz 0.5 0.5 1

MINIMISE

Searches for the minimum of e.g. the drift time over a curve.

Format:

MINIMISE f_min ...
         [SELECTION-FUNCTION f_select] ...
         ON f_curve ...
         RANGE t_min t_max ...
         [N n] ...
         [ELECTRON | ION] ...
         [NEGATIVE | POSITIVE] ...
         [FUNCTION-PRECISION \&epsilon;_f] ...
         [POSITIONAL-RESOLUTION \&epsilon;_pos] ...
         [ITERATE-LIMIT itermax] ...
         [PRINT | NOPRINT] ...
         [DATASET dataset [member] [REMARK remark]]

Example:

minimise time on '5*cos(t), 5*sin(t)' range {pi/4,3*pi/4}

This instruction asks for a minimisation of the drift time over an arc with radius 5 and in the angular range pi/4 to 3 pi/4. Note that quotes are used to specify the curve: a comma has to be placed between the two coordinates, but since the comma is one of the separators and since ON expects only one element, quotes are used. RANGE on the other hand expects two elements and quotes should therefore not be used !

Additional information on:


OPTIONS

Determines whether the drift-lines produced by other commands than the DRIFT instruction are plotted or printed. Commands affected by these options include ARRIVAL-TIME-DISTRIBUTION and PREPARE-TRACK. The option is also honoured in the debugging mode of several other commands.

You may also change global options in the same statement, see the top level OPTIONS command for further information.

Format:

OPTIONS [DRIFT-PRINT | NODRIFT-PRINT] ...
        [DRIFT-PLOT | NO-DRIFT-PLOT] ...
        [KEY | NOKEY] ...
        [CONTOUR-ALL-MEDIA | CONTOUR-DRIFT-MEDIUM] ...
        [NOWIRE-MARKERS | WIRE-MARKERS] ...
        [NOCHECK-MAP-INDICES | CHECK-MAP-INDICES]

Example:

opt dr-pl nodr-pr

Additional information on:

 

PLOT-FIELD

This instruction plots the quantities related to drifting of electrons and ions in a variety of ways, such as contours, a surface plot, a graph, an histogram.

Similar instructions exist in the field and signal sections.

CPU time can be saved if several plots are combined in a single command.

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 [f7]]] ...
           [RUNGE-KUTTA-DRIFT | MONTE-CARLO-DRIFT] ...
           [ELECTRON | ION] ...
           [POSITIVE | NEGATIVE]

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 hist diffusion vector vdx, vdy surf cont
plot contour time range 0.1 0.3

(The first example makes most of the plots using default functions and ranges - useful as a first call. The second example makes a more detailed contour plot.)

Additional information on:


PREPARE-TRACK

Calculates and stores an interpolation table for drift-line related quantities. Prepared tracks are used e.g. when in a Monte Carlo calculation drift times are needed at many randomly located points on one track. The difference in CPU time usage can be dramatic while the loss in accuracy is usually negligible.

Interpolation of tracks is currently done in 3 cases:

The track thus prepared, can be saved in a dataset with WRITE-TRACK from where it can be retrieved in subsequent runs with GET-TRACK.

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:


SELECT

Selects and groups the electrodes which are to be handled specially. The selection is common to all sections, but the interpretation of the selection is left to the individual instructions.

The grouping is of no importance in this section. The selection determines for instance which wires are processed by DRIFT WIRES, ARRIVAL-TIME-DISTRIBUTION and XT-PLOT.

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.)


SINGLE

An instruction that will print and plot details about a single drift-line from (x,y). The information can be presented as a table of the position, the integrated drift time and a user specified function, but also as a graph of one function against another.

Similar plots can be obtained by first computing a drift-line with the DRIFT_ELECTRON, DRIFT_ELECTRON_3, DRIFT_MC_ELECTRON, DRIFT_POSITRON, DRIFT_POSITRON_3, DRIFT_MC_POSITRON, DRIFT_ION, DRIFT_ION_3, DRIFT_MC_ION, DRIFT_MC_NEGATIVE_ION, DRIFT_NEGATIVE_ION or DRIFT_NEGATIVE_ION_3 procedure, then retrieving it with GET_DRIFT_LINE and finally making the graph with PLOT_GRAPH.

Format:

SINGLE  FROM  x y ...
        [PLOT f1 VS f2 | NOPLOT] ...
        [PRINT f3 | NOPRINT] ...
        [NEGATIVE | POSITIVE] ...
        [ELECTRON | ION]

Examples:

single from 0.5 0.3 plot diffusion vs path
single from 0.1 0.2 print vdx

Additional information on:

 

SPEED

A debugging instruction that will evaluate the drift speed at a given point (x,y,z). The POSITIVE or NEGATIVE keyword should, if used, be placed after the ELECTRON or ION keyword, if used.

Similar functionality is provided by the ELECTRON_VELOCITY and ION_VELOCITY procedures.

Format:

SPEED x y z   [ELECTRON | ION]   [NEGATIVE | POSITIVE]

Example:

speed 0.5 1.5 0

TABLE

Prints a table of drift times for electrons or ions starting from a GRID of regularly spaced points inside the AREA.

The POSITIVE or NEGATIVE keyword should, if used, be at the end of the command.

Format:

TABLE [TABLE | NOTABLE] ...
      [NOCONTOUR | CONTOUR] ...
      [ELECTRON | ION] ...
      [NEGATIVE | POSITIVE]

This command must be entered on a single line !

Example:

table

(Only produce the table, no contours.)

Additional information on:


TIME

Times n drift-line calculations [default: 10].

Format:

TIME [n]

Example:

time 5

TIMING

Computes the arrival time distribution of the n'th electron over a given area. Unlike the ARRIVAL-TIME-DISTRIBUTION instruction, TIMING does not produce calibration curves, but merely timing distributions.

This instruction overwrites the geometrical part of the track description, but uses the clustering type entered via the TRACK statement.

Format:

TIMING [ELECTRONS {electron | LAST | ONE-BUT-LAST | ... }] ...
       [TIME-WINDOW tmin tmax ] ...
       [X-RANGE xmin xmax]
       [Y-RANGE ymin ymax] ...
       [ANGLE-RANGE phimin phimax] ...
       [BINS bins] ...
       [ITERATIONS loops] ...
       [RUNGE-KUTTA-DRIFT | MONTE-CARLO-DRIFT] ...
       [NOATTACHMENT | ATTACHMENT] ...
       [WEIGHTING-FUNCTION weight] ...
       [NOKEEP-HISTOGRAMS | KEEP-HISTOGRAMS] ...
       [NOPLOT-OVERALL | PLOT-OVERALL] ...
       [NOPLOT-SELECTED-ELECTRON | PLOT-SELECTED-ELECTRON] ...
       [NOPRINT-OVERALL | PRINT-OVERALL] ...
       [NOPRINT-SELECTED-ELECTRON | PRINT-SELECTED-ELECTRON]

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.

The PROGRESS-PRINT global option enables you to follow the progress of the computations.

Example:

track muon energy 20 GeV
timing electron 3 last y-range -0.3 +0.3

Computes the arrival time distribution of the 3rd and the last electron for random vertical Heed-generated tracks of 20\&nbsp;GeV muons in the y range [-0.3,+0.3]. The x-range is default, i.e. the x-portion of the AREA.

Additional information on:

 

TRACK

In Garfield, the track is a line in space and a model for generating clusters over this line. The track is widely used, for instance by the PLOT-FIELD command in the field section, the SET command in the optimisation section, the ARRIVAL-TIME-DISTRIBUTION, DRIFT, PLOT-FIELD and TIMING commands in the drift section as well as by the PLOT-FIELD and SIGNAL commands in the signal section. All sections use the same track.

The track definition command has an elaborate format that stems from its broad use. For field plotting and potential optimisation, it is sufficient to enter the track location - for most other applications you should specify a clustering model too:

Tracks are 3-dimensional objects. You may omit the z-component of the track, to indicate that the track is located in the (x,y) plane. However, multiple scattering may cause the track to leave this plane and \&delta;-electrons, Auger electrons and photons are generated irrespective of whether you specify a track located in the (x,y) plane or not.

The model to be used is determined by the last keyword that is found on the line. You may, in a single TRACK statement, set parameters for several models. To avoid ambiguity it is then advisable to type one of the model names (FIXED-NUMBER, EQUAL-SPACING etc) at the end of the line.

Format:

TRACK  [ x0 y0 | x0 y0 x1 y1 | ...
         x0 y0 z0 | x0 y0 z0 x1 y1 z1 | ...
         FROM x0 y0 [z0] | ...
         { TO x1 y1 [z1] | DIRECTION dx dy [dz] RANGE range } ] ...
       [ FIXED-NUMBER ]  ...
            [ LINES nline ]                    | ...
       [ EQUAL-SPACING ]                       | ...
       [ EXPONENTIAL-SPACING ]                 | ...
       [ SINGLE-CLUSTER ]                      | ...
       [ WEIGHTED-DISTRIBUTION ] ...
            [ WEIGHTING-FUNCTION { f | weight vs coordinate } ] ...
            [ SAMPLES nsample ]                | ...
       [ HEED ] ...
            [ DELTA-ELECTRONS | NODELTA-ELECTRONS ] ...
            [ TRACE-DELTA-ELECTRONS | NOTRACE-DELTA-ELECTRONS ] ...
            [ NOMULTIPLE-SCATTERING | MULTIPLE-SCATTERING ] ...
            [ NOENERGY-CUT | ENERGY-CUT ] ...
            [ SWITCH-ELECTRON-TO-CHARGED eswitch ] ...
            [ particle | MASS mass CHARGE charge ] ...
            [ ENERGY energy ]                  | ...
       [ SRIM ] ...
            ENERGY energy ...
            [ particle | MASS mass CHARGE charge ] ...
            [ FLUCTUATION-MODEL model ] ...
            [ LATERAL-STRAGGLING | NOLATERAL-STRAGGLING] ...
            [ LONGITUDINAL-STRAGGLING | NOLONGITUDINAL-STRAGGLING] ...
            [ FAST-VAVILOV | PRECISE-VAVILOV] ...
            [ GROUPING [AUTOMATIC | NONE | n_e ]]     | ...
       [ TRIM ] ...
       [ EQUAL-FLUX-INTERVALS ] ...
            [ FLUX-LINES n]                    | ...
       [ CONSTANT-FLUX-INTERVALS ] ...
            [ FLUX-INTERVAL dv]

Examples:

track * * * 5

Keep all old values except the y coordinate of the end point.

track 1 1 1 2 2 2

Defines a track from (1,1,1) to (2,2,2).

track from 1 1 1 direction 0 0 1 range 5
track mu+ energy 10 GeV lines 10 multiple-scattering nodelta
track fixed
drift track
track heed
drift track

In a first TRACK statement, the location of the track is described. The length of the track projected onto the DIRECTION is limited to 5\&nbsp;cm. The second TRACK statement provides HEED with a description of the particle, indicates that multiple scattering should be taken into account, but not \&delta;-electrons. The same line changes the default number of deposits for the FIXED-NUMBER model to 10. The third TRACK statement selects the model to be used, a plot is made with this model, the model is then changed to HEED and another plot is produced.

Additional information on:

 

XT-PLOT

Produces an x(t) plot: the relation between the position of a track and the drift time. This is a calibration curve used by the track reconstruction program.

The XT-PLOT algorithm works as follows:

  1. From around the SELECTed wires, a number of drift lines are computed (see LINES) drifting them backwards from the wire.
  2. The crossing points of these drift-lines are determined with a series of lines at an angle to the y-axis and crossing the x-axis at regular intervals between xmin and xmax spaced by xstep. The lines will be referred to as 'minimisation lines'. For each of the crossing points, the drift time is interpolated on the drift-line.
  3. On a subset (see jump) of the minimisation lines the 3 smallest drift times are kept, drift-lines from the corresponding crossing points are computed to enhance the accuracy of the time estimate, and these 3 points are then used as start for a parabolic minimisation procedure with a limited number of iterations (see the itermax) and which is declared to converge if the minimum drift time doesn't change much (see \&epsilon;).
  4. The results are printed (see PRINT-XT-RELATION), plotted (see PLOT-XT-RELATION and SCALE) and output to a dataset (see DATASET).

Note that there is another instruction in Garfield, ARRIVAL-TIME-DISTRIBUTION, that serves approximately the same purpose. The differences between XT-PLOT and ARRIVAL are summarised in the table below. As can be seen from the table, ARRIVAL provides more detail than XT-PLOT, which in return is faster.

For accurate calibration, the use of signals is recommended. This permits, in addition to all the features ARRIVAL, processing of the signals by electronics and the setting of a true threshold.

-----------------------------------------------------------------------
Aspect    ARRIVAL                        XT-PLOT
-----------------------------------------------------------------------
input     complete gas tables,           drift velocity and optionally
          clustering properties          diffusion and Lorentz angle
          (spacing, cluster size)        tables
method    Monte Carlo generation of      parabolic minimisation of the
          tracks with clusters           drift time over lines
included  drift velocity, Lorentz        drift velocity, Lorentz angle,
          angle, diffusion, attachment,  optionally also diffusion
          cluster spacing and size       over the fastest drift-line
output    mean, median and RMS of        minimum drift time, diffusion
          selected electrons             over the fastest drift-line
-----------------------------------------------------------------------

Format:

XT-PLOT [DATASET file [member] [REMARK remark] ...
        [ANGLE angle] ...
        [X-RANGE xmin xmax] ...
        [X-STEP xstep] ...
        [JUMP jump] ...
        [ITERATIONS {YES|NO|itermax}] ...
        [PRECISION \&epsilon;] ...
        [LEFT-ANGLE-RANGE lmin lmax] ...
        [RIGHT-ANGLE-RANGE rmin rmax] ...
        [PRINT-XT-RELATION | NOPRINT-XT-RELATION] ...
        [PLOT-XT-RELATION | NOPLOT-XT-RELATION] ...
        [KEEP-RESULTS | NOKEEP-RESULTS] ...
        [SCALE min max]

Examples:

xt-plot
xt dataset lib.dat xt1 precision 1e-2

(The second example will produce fairly quickly a crude x(t).)

Additional information on:

 

WRITE-ISOCHRONS

Use this command to write out the coordinates of the points used for the isochrons as a result of the last DRIFT command.

This statement should be issued after the DRIFT command.

Format:

WRITE-ISOCHRONS DATASET file [member] [REMARK remark]

Example:

wr-iso 'test data b'

(Writes the isochrons to the VM/CMS dataset TEST DATA on the users B disk.)

Additional information on:

 

WRITE-TRACK

Once a track has been prepared with PREPARE-TRACK, it can be written to a dataset for later retrieval with GET-TRACK.

Format:

WRITE-TRACK DATASET file [member] [REMARK remark]

Example:

wr-tr 'disk$scratch:[pubzh.work.garfield]track.dat'

Additional information on:

 

Go to the top level, to &DRIFT, to the topic index, to the table of contents, or to the full text.

Formatted on 21/01/18 at 16:55.