Charge Dispersion Simulation

 

Simulation Results
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:

File Names 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 to 2004 Results

 
© 2006 Carleton University 1125 Colonel By Drive, Ottawa, Ontario, K1S 5B6 Canada (613) 520-7400
| Contacts |
Canada's Capital University