|
PRF Simulation results (with
theta angle) compared with experimental results:
Simulation Instructions
The charge disperison simulation source code can be
found in ~gmd/monte. Currently there are three main files
that are used. These files create a 'track' (line of
clusters of electrons), and move the track along the
x-axis in small increments and recording the signal on
the middle pad (18).
From the pad signals on pad 18, the maximum value is taken, and plotted into
a "Pad Response Function". There are two methods for doing this, the 'regular(reg)'
way or the averaging way. The first method takes simply the maximum signal value
and plots it versus position. The second method takes an average, using some
of the points around the maximum. This averaging method can be seen in prave.F.
The third main file (after prreg.F and prave.F) is prangle.F.
This file takes the track and changes the longitudinal
dispersion of the clusters along the track. This creates
the effect of a track on an angle in the 'z' axis. Since
some charges have further to go, they will have a larger
dispersion.
Apart from these differences, the files are mainly the same. The chamber parameters
are found in the tpc.txt files (tpc9010.txt for ArCO2 90-10, and tpc8020.txt
for 80-20). The input files 9010.txt and 8020.txt are used to supply the given
drift parameters, gas type, and drift distances for the gas.
A typical run would be prave.run < 9010.txt. This would
run the averaging function, given the 9010 parameters. It would automatically
use tpc9010.txt. The output file would be prave9010.rzhist, and can be analyzed
using paw (paw++ from the terminal in the /monte/ or any other folder).
For a quick run and easier understanding look at basic_sim.F. It can be run by
typing basic_sim.run and then entering a gas percentage (like 9010) when prompted.
Creates a basic_sim.rzhist for use in paw++. Easier to understand and less features.
There are also methods for automatically generating tracks, drifing them, amplifying
them and so forth, however these are not currently used. See Magboltz for how
to calculate the diffusion parameters (see ~gmd/group/magboltz). To see examples
of these functions in use, go to monte/old/ and look at the padresp files or
the test.F file.
NOTE: Since the drift, amplify, etc. functions are not used, we are in effect
'cheating' by giving the clusters their final positions and final diffusions
(sxy and sz).
Old Information: The important files are:
Filenames
|
Comments
|
TPC.f |
Functions that describe GEM amplification,
electron ionization, drifting and diffusion |
readout.f |
Contains Pad Layout information and
charge dispersion functions |
simdata.f |
Contains Global Variables |
lciomc.F |
Routine that creates data that is
readable by Kirsten's Routine (LCIO) |
test.F |
Simple code that shows how to create
a simulation routine using the charge dispersion
code |
Many of the variables used in the routines can be modified
by editing a text file. Please see tpc.txt for the proper,
format of your text file. Please see test.F for an example
of how the text file is loaded into the routine.
The code has been created such that you can access and change most
variables by using the provided functions in your routine. Therefore
the code is quite flexible in what you can make it do. padresp.F is an
example of a quickly made program that I made to create a straight track
and measure the padresponse function of a 2mmx6mm pad.
In general your code can be easily compiled by typing:
> compile mycode.F
For code written using the LCIO format to store the data, however,
you must use
> compileLC mylciocode.F
Last updated October 8, 2004 - Dan Burke
Back |
|