Modeling of ionization produced by fast charged particles in gases

1. Introduction

A computer modeling of ionization is necessary for the simulation of gaseous detectors of fast charged particles. Despite the wide use of gas-filled detectors their computer modeling still represents a difficult problem. Ionization deposited by incident particle in a gas volume drift to electrodes and produces electric signals on them. To calculate reliably the signals it needs to know the initial amount of ionization and its space location. A photoabsorption ionization (PAI) model, which have been proposed by Allison and Cobb [2] and also by many other authors with various small differences and modifications, allows us to compute the ionization amount, and location of primary clusters along the track. We will call the ionization deposited after the absorption of all delta-electrons "initial ionization", as opposed to "primary ionization", which involves only atoms directly ionizated by the incident particle. The total amount of initial ionization in each cluster can be estimated with the use of the mean work per pair production  w and the Fano factor F. This allows one to estimate the approximate longitudinal distribution of initial ionization along the track provided that the small spreading of ionization around each cluster is negligible. But this assumption is not justified in many circumstances, in particular when one studies the gaseous detectors with extremely good space resolution. The transverse distribution of initial ionization aside from the track can be important, but it cannot be obtained from PAI since PAI does not discriminate the shells absorbing the energy and does not allow to estimate the range of delta-electrons knocked out from the atoms. To solve this problem the cross section of this model was modified, which resulted in shell separation and gave the possibility to model atomic relaxation cascades and the paths of delta-electrons and fluorescent photons. The improved model was called photoabsorption ionization and relaxation (PAIR) model.

2. HEED

A flexible computer program was created in FORTRAN 77 approximately in 1994-97, which was able to model various gas mixtures. It was called "HEED", which was promted by the book "High Energy ElectroDynamics", written by Akhiezer and Shulga [1]. They proposed this title as a generic name of this science domain, namely science studying the electromagnetic interactions of fast charged particles with matter and including the transition and Cherenkov radiations and many other effects which are explained by similar approaches. However this book does not describe ionization in great details and the HEED does not take anything from it (except the title). PAIR was derived from the paper of Allison and Cobb [2], which gives the most consistent description of PAI. The notation PAI is also proposed by these authors.

In order to simulate the initial ionization in a detector realistically, it needs to model geometrical volumes with materials (gases) in them and to trace particles through the volumes with modeling random interactions with matter and possibly with taking into account fields (presumably magnetic field). Put another way, it is a generic Monte Carlo problem of particle penetration through matter with modeling ionization and photoabsorption processes. This is what the program HEED does.


3. Article in NIM

Although the program HEED-F77 based on this model was used during many years in Garfield simulation package, the consistent description was not published up to now (2005). Now the description is published. It is available as preprint of a paper and as the paper in NIM A554 (2005) 474-493. But please note that the paper is based on and focused on the hew version of HEED, which is written in C++. Mechanism of the shell separation is the same, but the delta-electron absorption is slightly different.

Errata:


1. The first statement in section 3.1 (page 481 in the journal paper format)
"The integral over E of eq. (7), multiplied by the electron density, gives the number of energy transfers ... ."
should be read as
"The integral over E of eq. (7), multiplied by the atomic concentration, gives the number of energy transfers ... ."
(But in the program eq. (7) is normalized to one electron of the media and should be multiplied by the electron density anyway.)

2. The first sentence in caption to fig. 2 (the same page 481 in the journal paper format)

"The number of primary clusters for minimum-ionizing
particles for various gases at NTP according to calculations by
HEED (circles) and a number of measurements: ref. [57]
(squares), the average of numbers from ref. [18] and seven
other works quoted in table 5 of ref. [18] (stars), and ref. [58]
(triangles)."

should be read as

"The number of primary clusters for minimum-ionizing
particles for various gases at NTP (Normal Temperature
293 K and Pressure 1 atm) according to calculations by
HEED (circles) and a number of measurements: ref. [57]
(squares), the average of numbers from ref. [18] and seven
other works quoted in table 5 of ref. [18] (triangles),
and ref. [58](crosses)."

3. The remark about NTP is included in the correction above, because it was recently understood that ref. [18] apparently used 273 K (0 C) as the normal temperature. HEED assumed 20 C, as it is almost everywhere else. Therefore, the data from ref. [18] should be corrected by the factor of 273/293 when compared to other data. This is a minor correction which practically does not have any visible effect for this figure (and does not affect the other content of this paper), but here is a corrected plot.

4. The notations of molecular formulas drawn above plot (a) in the journal paper turn out to be shifted slightly if compared with a carefully adjusted original plot (similar to what is given above). This is unexpected, because this plot was supplied to the journal in "eps"-format displayed identically with the "ps"-figure, modification of which is given above (this is made with the same "kumac" file and PAW program, only the data for ref. [18] are corrected according to item 3). The vertical dashed lines in figure (a) are drawn to guide the eye and to recognize the numbers of clusters of particular moleculas. After the shift a couple of the molecular notations appear slightly apart from the corresponing lines. Therefore it perhaps needs to remark that the order of vertical dashed lines which show molecular weights is identical with molecular notations except C02 and C3H6, which are merging because of similar molecular weights. It was not written, but can be easily understood that comparison of this plot with plot (b) allows the reader to understand that the points grouping around 33 clusters per cm. show CO2 and the points around 70 clusters show C3H8.

7.03.2022:
5. It turns out the the value of Z_molecular_total/Z_atomic_mean^power for iC4H10 was either calculated or input in my programs with embarrassing error or typo 28.4 instead of true 23.8. Since this point is at the end, the correction changes the fit. The good thing is that now all numbers of clusters can be fit by a straight line. This leads to the following new corrected plot.

6. Averaging of experimental data for the numbers of primary clusters, was remade, description is to be given later. At the previous plot, as well as in the paper, the fit was done through the calculated by HEED numbers. But the average experimental numbers could also be used. This is presented in the following picture. Here squares represent averaged experiments and circles are calculations by HEED.

4. HEED-F77

These simulations have a long story. The first "public" program calculating ionization by PAIR and prepared in a form in which programs can be used by other people was compiled in FORTRAN 77 in 1995-96. The geometry was constrained by a parallel adjacent layers model. It allows to identify the layer in which the particle is currently located by looking for an interval, in which the particle coordinate occurs. This simplifies the program greatly, but creates trouble when one models straw tubes and other modern detectors which cannot be described precisely by the parallel adjacent layers model. The magnetic field was not included in original program, but it was included by R. Veenhof in a derivative version of HEED, created and connected by him to the Garfield program. These versions of HEED-F77 was reportedly used in many detector R&D works.

The author's version of the old HEED program composed in car-format can be taken from here. This program was assumed to be used with a source code management system CMZ, which was a dominated code managemant system that time (today I do not see an afficial CMZ web-page, so I let the reader to search it himself, if he needs).

Some users have recently reported a problem of extracting source files form heed.car occuring at certain systems. Some of the files are just not extracted by CMZ. It is unknown, why this happened. Such problems did not appear previously. The author is unable to reproduce this problem at his computers. To help in the case when this problem occurs the author has constructed a tar-archive , which is a snapshot of author's directory with the old HEED remained in his computer, please get it here.

5. HEED-C++

5.1 Description of geometrical system
A new C++ version of HEED was written in 2003-2005. It is based on a generic 3-dimensional geometrical library, which allows to describe arbitrary volumes. Thus, geometrical constraints are removed. The descriptions of the main concepts of this library, published in paper form as booklet "PNPI preprint", is available in electronic format right here.
5.1 Manual and source codes of HEED-C++

The whole program HEED-C++ can be used for free for academic non-commercial research and for educational purposes.

The current manual is available by this link.

The latest version is dated 08.11.2007.
The program is built on the base of a library, which includes many general-purpose packages, created and utilized by the author for many other works, not only for HEED. This library is called shortly wcpplib, which stands for "working C++ library".
The components of wcpplib necessary for HEED-C++ can be taken here

The latest version of wcpplib is dated 05.05.2010.
List of changes:
03.06.2006:
1. Removal of inline void PassivePtr::pass(...) since it was confusing and not necessary
(and it also had misprint, thanks to Yukihiro Kato <katoy@hep.kindai.ac.jp>)

2. Correction of wcpplib/safetl/buildhd.b.

26.09.2006:
1. Removal of inclusion of deprecated headers in all the programs.

2. Other small corrections which make possible compilation at Scientific Linux 4.1

3 . Many improvements in wcpplib/safetl/ such as inclusion of pilfer functions in active pointer, arrays and list.
Also improvenents of indexing or template arrays in order to increase the speed.

4. Some of the components of wcpplib can be now compiled at Windows (XP, possibly at others too) by Microsoft Visual Studio C++ (v. 8).
Necessary bat-files for batch compilation are included.

04.10.2006:

1. Inclusion of INS_CRETURN macro in array indexing.

2. Removing the printing by default of raw addresses of counter
objects in PassivePtr. Correction of test program for BlkArr.
Both changes allow to avoid platform-dependent differences in output
of test programs.

3. Adding scripts run_single_test.b and run_single_test_vs.bat
for single test and

19.01.2007:

A lot of accumulated (during the pame passed) changes in wcppplib.
The changes in wcpplib are mostly in matrix package in order to make it more efficient (to avoid unnecessary assignments and copyings of matrices),
and also in safetl to make it more flexible and hopefully safe.

24.01.2007

A small correction.

16.03.2007

Many accumulated improvements, in particular inclusion of indexing through [][]... in multidimensional arrays.

10.04.2007

Next version of smart pointers: inclusion of getters/setters and char or binary fields in PassivePtr


01.08.2007 Many small changes, see comments at safetl page.

17.08.2007 Added two couples of source files, which had become required because of recent developments but were not included in the distributed packages.

22.08.2007 Two additional graphic "drivers" are inculded. Previousy the program could fill histograms only through HBOOK amd they could be visualized only through PAW. Today the program could also fill histograms through AIDA/OpenScientist and they could be visualized by opaw, or they could be filled though special new package GHist and visualized by ROOT. Thus the version 2.04 is issued. New version of HEED++ manual is issued as well.

19.09.2007 Added some option in PassivePtr, which allowes to handle control variables through bit operations. It was assumed to provide the best performence and memory needs, but it have not provided it. So this option is remained for future research, but the default way of working remaned the same: character-type control variables and function parameters.

07.11.2007 Many changes related to switching of random numbers and improving of compilation scripts, see the remarks for HEED below.

13.11.2007 A small problem in a compilation script corrected.

15.11.2007 Compilation scripts improved: main script now better discriminates output from compilation of separated directories. Script from graphics subdirectory now checks that user has set only one of envorinment variables corresponing to dirrerent "drivers".

20.11.2007 A missed file TemplMoments.h is added in distributed package.

21.11.2007 An error is corrected in wcpplib/stream/buildhd.b.

22.11.2007 Another missed file related to interface with ROOT added in wcpplib/graphics.

30.11.2007 Added convenient functions last_el() to DynLinArr and BlkArr and removing frightening but wrong comment from file AbsPtr.h right before the beginning of definition of ActivePtr:
/* But there are occasions, when one controlling pointer points to a base class, and another controlling pointer points to a derived class, and the latter pointer should has the type of derived class. In these cases the system cannot be compiled unless the "derived" pointer refers to different copy function. This is provided by suppling different class name to the second argument of the following template. */
One can supply different class name refering to different copy function, that's all OK with this. But the todays the only reson for this is when dealing with classes supplied by other parties in which another names of copy functions being inbuilt. Today there is no problems with dealing with arbitrary complicated tree of derived classes with the same copy function in each. This wrong comment seems to be written in the former millenium (the name controlling indicates this) and was kept in the file due to an oversight.

03.06.2008
The FunNameStack mechanism have now possibility to coexist with multi-threading. But other classes may not be able to work in multi-threads.

11.12.2008 Still alive. Many small improvements.

17.12.2008 Correction of some technical details in AbsList, which appear to be not compiled at some more fresh GNU compiler.

26.02.2009 A slight modification of testing file.

28.02.2010 Some small modifications.

07.03.2010 Correction of error made in previous release and leading to some small mess in listings of histogram names.

18.03.2010 Some small modification namely deletion of referenced but unused files.

05.04.2010 Addition of a couple of files which where missed at archiving of package.

Please to not hesitate to inform me if you found some files missing in these archives. It was reported already many times by different people, and there are reasons to assume that in previous version some was also missed (due to some disorder in my scripts by which I compile then).






The source codes of HEED-C++ are available here.

The latest version of HEED is dated 28.02.2010.
List of changes:
03.06.2006: Correcions in fortran interface in heed++/forinterf directory (thanks to Yukihiro Kato <katoy@hep.kindai.ac.jp>).

26.09.2006:
1. Removal of inclusion of deprecated headers in all the programs.

2. Other small corrections which make possible compilation at Scientific Linux 4.1

19.01.2007:
Some small changes in heed++ in order to make it compatible with new wcpplib.


10.04.2007

Slight corrections in accordance with wcpplib

22.08.2007 See notices for wcpplib above.


07-08.11.2007
Added possibility to switch random number generators either to RANLUX from CERNLIB (as it was before) or to random engines from CLHEP. Thus, if one chooses this new possibility and also chooses GHIST histogram and graphics driver, one can run the program without Fortran and without Fortran libraries at all! But due to large complexity involved in numerous compilation scripts and also due to large number of options (4 variants for histograms and 2 or 3 for random numbers, many other options) I could not verify that all this variety really works in any correct combination. So you could encounter on errors at compilation, even if you set up envirnment variables correctly. Due to their large number this is also complicated issue. If you have used the program before, note that some environment variables are changed, and the manual is upgraded as well.
In the manual now there is a large new chapter devoted to installation. Hope that it helps to succed in installation.
Now there are a examples of environment setup files, which you could use as template for editing.
Note that the build program concom is changed (slightly), so you are advised to reinstall it if you have done that previously.

03.11.2007
Just refreshing archive

11.12.2008 New classes for simulation of energy loss with random incident particle velocity. But there is no examples of their use (which is analogous to ordinary classes). Some other small improvements.

26.02.2009 New package after correction of archving procedures, in which something was missed.

02.11.2009 New package after correction of archving procedures, in which something was missed.

28.02.2010 New package after correction of Spectr_ts, in which something was missed. Possibility to use local corrected copy of CLHEP randoms is included too.




6. References

[1] A.I. Akhiezer, N.F. Shulga, High Energy Electrodynamics in Matter. "Nauka", Moscow, 1993, (in Russian).

[2] W.W.M. Allison, J.H. Cobb, Ann. Rev. Nucl. Part. Sci. 30 (1980) 253.

Go to main page

Igor.Smirnov@cern.ch

the page is created 11.2005
last modified 22.11.2018