Generating Field Response Data File.
(top) (pkg)
Table of Contents
1. Garfield 2D input
Get the output of Garfield 2D which should be a collection of files like:
<impact>_<letter>.dat
Where
<impact>- gives the impact position in mm (eg
0.9) <letter>- indicates the plane (eg,
U,VorY)
Contents of the file should be like:
*----.----1----.----2----.----3----.----4----.----5----.----6----.----7----.----8----.----9----.---10----.---11----.---12----.---13--
% Created 31/07/16 At 19.52.20 < none > SIGNAL "Direct signal, group 1 "
Group 1 consists of:
Wire 243 with label X at (x,y)=(-3,0.6) and at -110 V
Number of signal records: 1000
Units used: time in micro second, current in micro Ampere.
.STIMULUS signal PWL
+ TIME_SCALE_FACTOR = 0.100E-05
+ VALUE_SCALE_FACTOR = 0.100E-05
+ ( 0.00000000E+00 0.00000000E+00
+ 0.10000000E+00 0.00000000E+00
+ 0.20000000E+00 0.00000000E+00
...
+ 0.99599998E+02 0.00000000E+00
+ 0.99700005E+02 0.00000000E+00
+ 0.99800003E+02 0.00000000E+00
+ 0.99900002E+02 0.00000000E+00 )
% Created 31/07/16 At 19.52.20 < none > SIGNAL "Cross-talk, group 1 "
Group 1 consists of:
Wire 243 with label X at (x,y)=(-3,0.6) and at -110 V
Number of signal records: 1000
Units used: time in micro second, current in micro Ampere.
.STIMULUS signal PWL
+ TIME_SCALE_FACTOR = 0.100E-05
+ VALUE_SCALE_FACTOR = 0.100E-05
+ ( 0.00000000E+00 -0.15888787E-10
+ 0.10000000E+00 -0.31810016E-10
+ 0.20000000E+00 -0.31853374E-10
+ 0.99800003E+02 -0.58125088E-16
+ 0.99900002E+02 -0.58125088E-16 )
...
Group 21 consists of:
Wire 263 with label X at (x,y)=(3,0.6) and at -110 V
Number of signal records: 1000
Units used: time in micro second, current in micro Ampere.
.STIMULUS signal PWL
+ TIME_SCALE_FACTOR = 0.100E-05
+ VALUE_SCALE_FACTOR = 0.100E-05
+ ( 0.00000000E+00 -0.15898597E-10
+ 0.10000000E+00 -0.31829737E-10
+ 0.20000000E+00 -0.31873192E-10
...
+ 0.99700005E+02 -0.58160981E-16
+ 0.99800003E+02 -0.58160981E-16
+ 0.99900002E+02 -0.58160981E-16 )
2. WCT JSON
Wire Cell Toolkit works with JSON data. Python code in wire-cell-python package is provided to convert Garfield 2D files into properly structure JSON.
$ cd wire-cell-python/
$ virtualenv --system-site-packages venv
$ source venv/bin/activate
$ python setup.py develop
$ wirecell-sigproc convert-garfield --help
Usage: wirecell-sigproc convert-garfield [OPTIONS] GARFIELD_FILESET
WIRECELL_FIELD_RESPONSE_FILE
Convert an archive of a Garfield fileset (zip, tar, tgz) into a Wire Cell
field response file (.json with optional .gz or .bz2 compression).
Options:
-o, --origin TEXT Set drift origin (give units, eg '10*cm').
-s, --speed TEXT Set nominal drift speed (give untis, eg
'1.114*mm/us').
-n, --normalization FLOAT Set normalization: 0:none, <0:electrons,
>0:multiplicative scale. def=0
--help Show this message and exit.
$ wirecell-sigproc convert-garfield ub_10.tar.gz ub-10.json.bz2
$ wirecell-sigproc plot-garfield-track-response ub_10.tar.gz tr.pdf
Notes:
- Using
--system-site-packagesmay be useful as Numpy is required and if it’s installed as a system package it will save you some time. O.w., it can be installed into the virtualenv. - Once you generate the
.json.bz2file, you no longer require this code so deactivate and clean up - The plotting command is optional. It remakes a plot for the MB noise paper and is reproduced below
- Warning the plot below is not final nor official.