The algorithm is described in Appendix C of my thesis.
John
***********************************************************************
Author: John Hong (hong@budoe.bu.edu) Fri Jun 17 18:43:43 1994
(0) On a Unix system, to get the files,
% ftp cithe501.cithep.caltech.edu
Username: ftp
Password: (your id)
ftp> cd pub/hong/train
ftp> get README
ftp> binary
ftp> get pulsetrain.tar.Z
ftp> quit
(1) To uncompress and untar the files:
% zcat pulsetrain.tar.Z | tar xvf -
(2) Listing of files in this tar file:
README: this file
Makefile: makefile
pulsetrain.inc: fortran include file
mcdata.f: block data to initialize variables
pulse2.f: subroutines for simulating monopole pulse trains
tohmliu.f: subroutines for simulating TOHM, LI (or LIU), TOT
stretcher.f: an example application
plot.gp: gnuplot file to plot waveforms written out by stretcher.f
(3) To make the library, type
% make or % make libpulse.a
(4) To make an application, type
% make application_name
e.g., % make stretcher
(5) A sample of session of running stretcher:
% stretcher
enter pulse train type (1 or 2): (1=square pulse train, 2=with 1us risetime)
1
enter duration of pulse train:
2000 (this is 2us)
enter npe_goal: (targeted npe in the train)
100
% plot.gp > wf.ps
Or you can use gnuplot interactively.
(Don't ask me what exactly each trace is. I have to look at the program
to find it out, and you can do the same thing too. The program were
written years ago.)
Note that the algorithm for the simulations is described in detail in
Appendix C of my thesis.
DISCLAIMER: use it as is. No warranty, no maintenance.