Nuclear Instruments and Methods in Physics Research North-Holland
A309 (1991) 331-338
NUCLEAR INSTRUMENTS & METHODS IN PHYSICS RESEARCH Section A
A versatile programmable CAMAC random pulse generator R.E. Abdel-Aal Energy Research Laboratory, Research Institute, King Fahd Unwersity of Petroleum and Minerals, Dhahran 31261, Saudi Arabia
Received 21 March
1991
and in revised form 27 June
1991
A new technique for generating linear pulses which can be random in both amplitude and time is described. With this technique, desired values for both pulse amplitude and spacing are set for the individual pulses by the software on a pulse-by-pulse basis. The versatility offered by this software programming allows a wide range of distributions to be obtained ; with the user having close control on the distribution parameters . A number of such distributions may also be combined into a single output pulse stream . An implementation m a CAMAC module is presented. Both hardware and software aspects are described and typical performance results for amplitude and time distributions of the uniform and Gaussian type are given. Implications of using the pulser in a typical data acquisition environment on both the data acquisition and the pulser performance are considered . Typical applications are discussed together with some of the limitations.
1. Introduction Programmable pulsers are useful instruments in modern data acquisition and analysis environments . They can be used in performing a wide range of automated checks and performance measurements on data acquisition modules and systems with improved speed and accuracy and more efficient handling of the test results as compared to manual methods [1-4]. Early attempts with computer-controlled pulsers include a modification of the mercury-relay manual pulser in which the computer determines the uniform pulse amplitude by switching resistors in a 17-bit relay-operated voltage divider [4]. CAMAC pulsers producing uniform logic pulses of a programmable width and repetition period have been described [1,5]. However, pulses with random amplitude and spacing are often required to realistically simulate signals encountered in nuclear physics experiments and help diagnose faults in associated instrumentation. For example, "hang up" problems with certain types of analog-to-digital converters (ADCs) may occur only with randomly arriving pulses [6]. The variable amplitude of a linear pulse is needed, for example, to test an ADC over its full dynamic range. This can be conveniently performed using linear pulses with random amplitudes uniformly distributed over the required range. Pseudorandom sequence generators have been used for the production of both Gaussian and uniformly distributed pulse amplitudes and time intervals [7], but these require complex and dedicated digital hardware for their implementation . In ref. [8], an analog ap0168-9002/91 /$03 .50 © 1991 -
proach is proposed for transforming pulses with Poisson and Gaussian amplitude distributions into pulses with uniform frequency distribution . Ref. [3] describes a simple method for obtaining logic pulses with an approximately Gaussian distribution for the pulse spacing; with the average pulse rate programmable over a wide range. However, statistical properties of the resulting distribution are fixed by the physical process of a noise source, and programming allows only the average pulse rate to be controlled by varying a threshold level. For example, the user has no control over the standard deviation of the resulting distribution which is fixed at around 0.45 of the mean value [3]. Moreover, the technique does not provide for a variable pulse amplitude. This article describes a new approach in which both the amplitude and time spacing of the individual pulses are set by the software on a pulse-by-pulse basis; thus allowing full control of the resulting distributions . Greater flexibility in selecting the desired statistical properties of the output pulses is provided . In principle, the user can select any statistical distribution that may be programmed . This allows simple, low cost, and general purpose hardware to be used for a variety of applications as determined by the software ; which effectively leads to having multiple instruments in one. The versatility and cost-effectiveness provided by software programming are the main advantages of the modern concept of virtual instrumentation [9]. An implementation of this technique in a VAX/ CAMAC environment is described . The VAX sends an integer corresponding to the amplitude of the next
Elsevier Science Publishers B V. All rights reserved
33 2
R.E. Abdel-Aal / A CAMAC random pulse generator
CAMAC Write Lines W1-W12 (High True)
Data Latches
1
1~
2 X 74174 Load
Data Input DO-D11
Analog Output
® J L
Linear Pulse Output
CS
Clear
S1 Timing Signal
AD 767 DAC
Fit 6) N Ali) S2 Timing Signal
DAC Calibration
-
17
x
Trigger
O
Monostable
Al (02 psec) Q
Monostable
Logic
Pulse Output
Monostable
A2 (30psec)
A3 ( 0 2 psec )
Fig . 1 . Block diagram for the programmable random pulser CAMAC module.
pulse to be generated to a CAMAC digital-to-analog converter (DAC) module which is configured to produce a linear pulse of a fixed width at the desired amplitude . A delay corresponding to the required pulse spacing is inserted by the VAX between the CAMAC write operations . Details of the hardware and software aspects are given . Performance results are presented for a number of distributions for the pulse amplitude and spacing; including uniform pulses and random pulses with flat and Gaussian distributions . With the latter, the user sets both the mean and the standard deviation. The effects of the pulser operating simultaneously with other VAX data acquisition processes on both the pulser and the data acquisition performance is considered . Examples of the versatility offered by the technique are given as well as some of the limitations that are specific to the VAX/CAMAC implementation .
ables the DAC IC to convert, and therefore the DAC output rises to the desired pulse amplitude. The trailing edge of S2 triggers a short pulse from monostable Al which clears the data latches; thus setting all the data input lines to the DAC to zero . The total propaCAMAC Write Lines, W1-W12
W1-W12
Pulse Amplitude
Gated S1 (Load Data Latches)
Data Input (DO-D11) to DAC
DO-D11
Zero
Gated S2 (Trigger Monostables A1 and A2)
Clear Data Latches (from Q of Monostable A1)
2. Hardware description
The pulse generator module uses a 12-bit DAC IC which produces an output voltage corresponding to the desired pulse amplitude. To generate a pulse output, rather than a do value, the data to the DAC is cleared to zero after a preset short duration equal to the pulse width. Fig. I is a simplified block diagram of the pulser CAMAC module and fig . 2 shows the main timing waveforms relevant to pulser operation. A 12-bit integer representing the desired pulse amplitude is written into the CAMAC module using function F(16). The CAMAC timing signal Sl loads the data into a set of data latches and the subsequent timing signal S2 en-
O of Monostable A2 Pulse Width delay, and Logic Pulse Output
O of Monostable A3
CS Input to DAC
Linear Pulse Output
Fig. 2 . Timing waveforms for the operation of the CAMAC pulser module .
R .E. Ahdel-Aal / A CAMAC random pulse generator
333
gation delay through this monostable and the data Values for both pulse amplitude and spacing can be latches should be large enough to meet the hold time derived independently from number distributions which requirement on the DAC data inputs with respect to satisfy the desired statistical properties for the generthe positive going edge of the CS pulse. The DAC does ated pulses . Use is made of the Fortran RAND funcnot convert this zero data until it receives another tion which returns values between 0.0 and 1 .0 that are enable conversion pulse at the CS input. This pulse is uniformly distributed over this range. According to the derived from monostable A3 following a delay interval central limit theorem [12], numbers with an approxiequal to the desired pulse width which is generated by mately Gaussian distribution can be derived by averagmonostable A2 . At the end of this delay interval, the ing a number of such values . The following generic DAC output reverts to zero until the next CAMAC algorithm can be used for generating pulses with fixed, write operation for the next pulse. Therefore, this uniformly distributed, and Gaussian distributed pulse output is a linear pulse of the desired amplitude with a amplitudes . A similar arrangement is used to generate width equal to the width of the pulse generated by values for the pulse delay; but these are quantized to monostable A2 . For this application this width is fixed the nearest multiple of 10 ms before being used to set at approximately 30 ~Ls which is about 10 times the VAX timers : maximum full-scale settling time for the DAC device . Saint, = 0.0 In addition to the linear output pulse from the Amin = 409.5 * Vrmn DAC, the output of monostable A2 is used as a coinciA range = 409.5 * Vrange dent logic pulse. This is useful as an oscilloscope C trigger for small pulses, and can be used for counting DO 100 i = 1, Na the number of true events in applications where the Aamp =Amm +A range * RAND(Iseed) pulser is used for dead time measurements . The design 100 Samp = S amp + A nmp allows for calibration steps for the DAC; e.g . zero and C gain adjustments, to be accurately carried out using do (1) lamp = NINT(Samp /Na) voltage measurements . Shorting the terminal labeled "DAC Calibration" to ground disables monostable Al Vmm and Vrdnge are the minimum value and the range and therefore the data inputs to the DAC are not required for the pulse amplitude in volts. The value cleared to zero . This allows normal do operation of the 409.5 is the multiplication factor for use with a 12-bit DAC device for accurate calibration adjustments to be DAC configured to produce a unipolar output of 0 to made . 10 V. Na is the number of uniformly distributed values averaged to generate one value belonging to the Gaussian distribution . For both constant and uniformly dis3. Software description tributed random amplitudes, Na is set to 1 . To generate pulses with a fixed amplitude, Vrdnge is set to zero The software in the VAX for operating the random and Vnn to the required pulse amplitude. For random pulser has been implemented mainly in Fortran within amplitudes with uniform distribution, Vmm and Vrange the XSYS data acquisition and analysis environment are simply the minimum and range values desired for [10] . To write the pulse amplitude data into the CAthe pulse amplitude. lamp is the integer value loaded MAC module, the SYS$QIO (Queue Input/ Output) into the CAMAC pulser module . system service is used to transfer the data over the For a Gaussian amplitude distribution, the user VAX UNIBUS via one of 8 DMA channels provided specifies both the mean (average) value Vmean and the by an MBD-11 branch driver [5]. Timing measurements standard deviation V, d for the desired amplitude distriusing an oscilloscope indicate that it takes about 0.95 bution in volts. The minimum and range values for use ms to execute a VAX CAMAC write. Delay is introin algorithm (1) above are given by duced between successive write operations, and therefore between successive pulses generated, using the Vmin - Vmean - ar * Vd, SYS$SETIMR (set timer) and SYS$WAITFR (wait for Vrdnge = 2 * ar * Vdevent flag) system services . On the VAX-11/785, timer delays can be set only in multiples of 10 ms, which puts The value of a r determines the range of the Ne an upper limit of 100 Hz on the pulse repetition uniformly distributed random numbers which are averfrequency and also limits the resolution of defining the aged to produce a single number of the Gaussian pulse spacing. Other computer configurations may aldistribution . For a given value of a r , as the value of Na low lower values to be specified for timer delays . For increases a better Gaussian is approached, but the example, with the Kmax data acquisition software for distribution becomes more confined around the mean . the Macintosh delays down to 1 ms can be obtained To obtain a standard normal distribution in which [11] . 68 .27% of the population lies within one standard
33 4
R. E. Abdel-Aal / A CAMAC random pulse generator
deviation on both sides about the mean, there is an optimum value of a, for each value of N.. In some applications, excessively large values of Nd may be undesirable due to increased CPU time consumption and interference with the timing for the pulse spacing as discussed in section 4. Adequate results were obtained with N, = 12 . The corresponding value for a, required to obtain a standard normal distribution was determined empirically as 6.0 . Increasing Nd to 100, the portion of the population within one specified standard deviation on both sides about the mean increased to 99 .56% . To revert to a standard distribution with this value of N., the value of a, had to be increased to about 17 . All subsequent results reported here were obtained with N, = 12 and ar = 6.0 . The software allows for window limits to be set on both the amplitude and delay values in the case of the Gaussian distribution . If the computed random value for either parameter does not satisfy a logical comparison condition involving the corresponding window limits, no delay or CAMAC write operations are performed and computations are repeated to generate new values . If the window is narrow, the number of retries increases which may lead to some additional spread in the pulse timing due to the increased amount of computations involved. The flexibility offered by formulating the comparisons with the set limits in software allows any desired portions of the spectrum to be produced without the need for additional hardware to perform the required gating, such as single channel analysers (SCAB), and without the time overhead wasted in generating pulses outside the required range.
This and other features of the versatility of software control are demonstrated by the results in section 5. The CAMAC random pulse generator can be operated as a utility producing a continuous train of pulses, with the parameters for both the amplitude and spacing distributions initially set by the user. Alternatively, closer control over the pulser output to satisfy a particular test application may be achieved by accessing the CAMAC module from within the application software . In the first approach, the pulser can be operated under the control of a separate VAX subprocess running simultaneously with other data acquisition processes which may utilize the pulser output to perform the desired measurement or control tasks. When created, the pulser subprocess accesses a data file in which the user supplies the required pulse parameters for both the amplitude and spacing distributions . These include the distribution type (e .g fixed value, uniform distribution, or Gaussian distribution), the mean and standard deviation values for the Gaussian distribution, and the window limits . The hardware may be arranged to allow the pulser to run unaffected by the CAMAC crate inhibit, which is raised and lowered by experimenters halting and re-starting data acquisition runs . The pulser is turned on and off by DCL commands which create and stop the pulser subprocess. 4. Performance This section presents results on the performance of the CAMAC pulser in a typical data acquisition envi-
3500
3000L-
2500L-
F Z O U
2000L
15001
10001
5001
CHANNEL NUMBER
Fig. 3 . Measured spectra for the pulse amplitude. (a) Gaussian distribution with V.,_ = 4.0 V and Vd =1 .0 V; (b) uniform distribution with Vm, = 2.0 V and Vrange = 4.0 V. 1 channel = 8 mV, total counts for each spectrum = 1 000 000.
335
R .E. Abdel-Aal / A CAMAC random pulse generator
ronment of the type used in nuclear physics research facilities . Data on both time and amplitude performance was obtained by acquiring a large number of pulse events and sorting the parameters of interest into spectra using the VAX-11/785 XSYS data acquisition facility at the Energy Research Laboratory (ERL) [13] . For amplitude spectra, the linear pulses are converted by a LeCroy 3511 CAMAC ADC set to a gain of 1000 and their amplitudes sorted into a singles spectrum . To obtain time spectra for the pulse spacing, a time interval equal to the spacing is obtained by dividing the waveform from the pulser's logic output by 2. The resulting waveform is used to gate a high frequency clock. The gated clock is fed to a LeCroy 2551 CAMAC sealer which counts the number of clock pulses until it is read and then cleared when a LAM is generated at the end of each gate interval [3]. This allows one measurement of the pulse spacing for every two pulses generated. Values measured for the pulse spacing are sorted into a time spectrum . The clock frequency is chosen to give adequate accuracy for the time measurement while maintaining a reasonable size for the resulting spectrum . Fig. 3 shows typical amplitude spectra for linear pulses with a uniform and a Gaussian distribution . A total of 1 million pulses at the uniform rate of 100 Hz were collected. The Gaussian distribution had the values for the mean amplitude Vmedn and the standard deviation Vd set by the software at 4 .0 and 1 .0 V respectively and the window limits at 0.1 and 7.9 V. The corresponding hardware discriminator limits on the 3511 ADC were 0.05 and 8.00 V, respectively .
Based on an ADC gain of 1000, the measured spectrum has a centroid corresponding to 3.995 V. The percentage portions of the spectrum population within +V,, and ± 2 Vd about the mean are 68 .38% and 95 .68%, compared to the theoretical values of 68 .27% and 95 .45% respectively for the standard normal distribution [14] . Fig. 4 shows a time spectrum for 100000 measurements of the pulse spacing with a Gaussian distribution where the mean value Tine,, and the standard deviation Td are set at 1000 .0 and 250.0 ms respectively . A clock frequency of 1 kHz was used for measuring the pulse spacing; giving a time calibration factor of I ms/channel . The measured spectrum centroid is 1001 .9 ms and the percentage portions of the spectrum population within +T,, and ± 2T d about the mean are 68 .16% and 95 .50%, respectively . The spectrum shows the discrete nature of the pulse spacing due to the limited resolution of 10 ms on setting the VAX timer delays . As indicated by the spectrum, this does not prevent obtaining approximate Gaussian distributions at low pulse rates. More continuous distributions can be achieved with improved setting accuracy for the timer delay. It is interesting to note that the choice for the pulse amplitude distribution may have some effect on the pulse spacing distribution . For a Gaussian amplitude distribution with narrow window limits there will be more averaged random values rejected before a suitable value within the window is reached and a pulse generated. This introduces a random delay component due to the extra computation time involved which, in
1000
BOO
600
z
0 U 400
200
0
500
L~m~~arvwounar n nnn!mvwun, .~ 1000 1500 CHANNEL NUMBER
2000
Fig. 4. Measured spectrum for a Gaussian distribution of the pulse spacing. T.,,n = 1000 ms and Td = 250 ms . 1 channel = 1 ms Total counts = 100 000.
33 6
R.E. Abdel -Aal / A CAMAC random pulse generator
Table l Effect of the simultaneous acquisition of uniform pulses on one channel of the same MBD on pulse spacing stability of uniformly spaced pulses with fixed amplitude from the CAMAC pulser. Nominal pulse spacing = 10 ms, time measurement accuracy = 10 Ws, spectrum population for each measurement =100 000. VAX buffer size for the data acquisition subprocess = 1000 Pulse rate for data acquisition [kHz] No data acquisition 10 30 50 70 90
Percentage of pulses from the CAMAC pulser within +_ 1% of nominal spacing
within +_ 5% of nominal spacing
93 .52 90 .68 62 .60 60 .90 60 .40 60 .10
95 .88 93 .45 90 .98 87 .54 80 .46 79 .63
turn, causes more spread in the pulse spacing spectrum . The spectrum for 100 Hz uniform pulses has 95 .88% of its population within ±5% of the nominal mean value with all the pulses having a fixed amplitude . For a Gaussian amplitude distribution with the window limits at ± 2 Vd this portion of the population is 95 .49% . This value drops to 81 .16% with the more stringent window limits of ± Vd. This effect would be more significant with higher values of N, . The above results were obtained with no interference due to other data acquisition traffic on the VAX. In practice, the pulser would run simultaneously with other active data acquisition subprocesses which may be sharing such resources as the MBD and the VAX UNIBUS with the pulser module . This would have no effect on the resulting amplitude distributions . However, increased contention on the MBD and the UNIBUS may cause additional random delay in the time it takes for the pulse-generating CAMAC write operations to execute, therefore introducing more spread in the pulse spacing spectrum . Table 1 shows the effect of increasing the data acquisition traffic volume on the spread of such a spectrum for pulses having a constant amplitude and a fixed rate of 100 Hz . 100000 event spectra were collected. A clock frequency of 100 kHz was used to determine the pulse spacing to an accuracy of 10 ws . The traffic volume was increased by increasing the frequency of another repetitious pulser whose output is acquired on another channel of the same MBD and sorted by an XSYS data acquisition subprocess with a VAX buffer size of 1000 [10] . As the data acquisition rate increases, the competition for the MBD during buffer filling by the subprocess increases as well as the buffer filling rate which increases the 010 UNIBUS traffic. Both factors con-
tribute to a random delay component in the pulse timing which increases the spread in the pulse spacing spectrum . The table indicates that the pulser performance is adequate under such conditions, provided moderate stability for the pulse spacing can be tolerated . This would be the case in many applications which utilize the pulse amplitude. The 90 kHz rate included in the table represents the maximum throughput of the ERL system above which data acquisition cannot be sustained [2]. In practical situations more than one data acquisition subprocess may be active at the same time . With uniform or Gaussian random distributions for the pulse spacing, such spreading may be of an advantage since it leads to more continuous spectral distributions . Table 2 lists results on the accompanying effect; i .e . that of pulser operation on the performance of data acquisition processes running simultaneously on the VAX and using the same MBD. The data acquisition subprocess had the same buffer size as mentioned above. Ten million events were acquired by the subprocess and the dead time correction (DTC) factor was calculated both with the pulser turned off and the pulser producing uniform pulses of a constant amplitude at the maximum repetition frequency of 100 Hz . The DTC factor was determined by dividing the total number of true events at the ADC input, as measured by a separate CAMAC staler, by the total number of acquired events as determined by the VAX. The table indicates that with the repetition rates available from the CAMAC pulser, the degradation in the dead time performance is minor and can be tolerated; particularly at lower data rates. Where higher pulser frequencies can be achieved, pulser operation would lead to greater increase in dead time and this may set a limit on pulser rates that may be used while real data is being acquired . Table 2 Effect of operation of the CAMAC pulser on the dead time performance of a VAX data acquisition process acquiring uniform pulses on one channel of the same MBD. Pulser output: uniform pulses at 100 Hz with a fixed amplitude. VAX buffer size for the data acquisition subprocess = 1000 . Number of processed events for each dead time measurement = 10 000 000. Pulse rate DTC factor DTC factor for data with pulser with pulser On acquisition Off [kHz] 10 30 50 70 90
1.016466 1.050094 1.081053 1.113 515 1.153483
1 .019197 1 .057970 1 .100 899 1 .145 509 1 .197288
Percentage increase in the DTC factor due to pulser operation [%] 0.27 0.75 1.84 2.87 379
337
R.E . Abdel-Aal / A CAMAC random pulse generator
5. Applications
distributions, e.g . uniform and Gaussian, can be combined. Numbers belonging to the required distributions are alternately computed and used to generate the output pulse. The software may treat the distributions evenly or it may be arranged to favour some at the expense of others . Implementation of a simple version of such an arrangement using conventional hardware would require the use of multiple pulsers; possibly of different types. The implementation reported here allows the pulser to be integrated into the XSYS CAMAC data acquisition environment . This has the advantage that the software operating the pulser can be part of an experimental or a test application, which allows closer pulser control to satisfy the application at hand . This also introduces a number of limitations on the timing performance of the pulser ; such as the limits on the maximum pulse rate and on the accuracy of setting the pulse spacing . Where smaller values can be specified for the computer timer delay, the time for executing the CAMAC write operation would still limit the maximum pulse rate . Other restrictions may arise due to other factors such as increased percentage CPU time usage by the pulser or the increase in dead time experienced by simultaneous data acquisition traffic . Such limitations may be avoided if the programmable pulser is configured as a stand-alone microprocessorbased unit which the user can program via a separate user interface or by initially sending the set of parameters for the pulses to be generated via a network or a communication link . With the microprocessor dedi-
Software programming of both the amplitude and the spacing for the individual pulses allows the generation of pulses with a diverse variety of characteristics using a minimum of hardware . For example, limiting the range of pulse amplitudes applied to the unit under test to a certain range may be a useful requirement in some applications . With ordinary hardware pulsers, this is achieved using an additional SCA, but with this arrangement the time taken to generate all the pulses having amplitudes outside the required range is wasted . Software programming not only renders the additional hardware unnecessary, but also allows the test to be executed faster, since pulses outside the specified range will not be generated in the first place . Moreover, the software approach is more flexible and offers wider possibilities which may be cumbersome and complex when implemented in hardware . Fig . 5 shows an example where the software comparison with the window limits allows generation of pulses with amplitudes outside the specified range rather than within the range. To perform this gating using conventional hardware would require two SCAB together with some means of combining their outputs . Fig. 6 demonstrates another application where the pulser is used to generate a train of pulses belonging to different statistical distributions for the pulse amplitude . In the case illustrated, there are two Gaussian distributions with different values for the mean and the standard deviation, but two or more different types of 7000--6000
5000
rn
4000
z
0 U
3000 2000
1000 0[
I
1
400 600 CHANNEL NUMBER
800
1000
Fig. 5. An amplitude spectrum demonstrating the use of window limits to prevent the generation of pulses withm a set range. The Gaussian distribution has the specified parameters V__ = 4.0 V and Vd = 1 .0 V. The window limits are set at 3.0 V and 5.0 V . 1 channel = 8 mV . Total counts = 1 000 000
R.E. Abdel-Aal / A CAMAC random pulse generator
338
Z Z O U
Fig. 6. An amplitude spectrum demonstrating the use of software programming to combine properties from different random distributions into a single pulse stream . The two Gaussian distributions are specified as : V.,, = 3 5 V, V, d = 1 0 V and V._, = 6.0 V, V,,i = 0.5 V. 1 channel = 8 mV . Total counts = 1 000 000.
cated to pulse generation and the DAC device inter-
faced directly to the microprocessor bus, pulse rates would be limited only by the speed of the computa-
tions. However, the user would no longer have the advantage of directly controlling the pulser from a data acquisition application running on the VAX.
Limitations on the pulser timing for the implemen-
tation described do not affect its use in a wide range of applications requiring a variable pulse amplitude, such the testing of ADCs and the checking of data acquisition setups . The majority of such applications need only be performed using uniformly spaced pulses . as
Commercially available test pulsers mostly operate at a fixed low pulse rate at or around the line frequency. When pulses arriving randomly in time are required,
the pulser may be used to give a good approximation of a continuous random distribution at the low end of average pulse rates as shown in fig. 4. In applications
where a data acquisition facility is to be tested over the full range of data rates, e .g . for dead time performance or
CPU time consumption, the pulse amplitude is usually of no interest and such tests can be performed with logic pulses from programmable pulsers which are capable of operating at much higher frequencies [1,3].
Acknowledgements This work is part of KFUPM/RI Energy Research Laboratory project supported by the Research Institute
of King Fahd University of Petroleum and Minerals, Dhahran, Saudi Arabia .
References [1] R.E . Abdel-Aal, Meas . Sci Technol. 1 (1990) 216. [2] R.E . Abdel-Aal and H.A . AI-Juwair, IEEE Trans. Nucl Sci. NS-36 (1989) 687. [3] R.E Abdel-Aal, Nucl . Instr. and Meth . A276 (1989) 573 . [4] W.W . Black, Nucl . Instr. and Meth . 53 (1967) 249. [5] BIRA Systems Inc., Albuquerque, NM 87107, USA. [6] N.R. Roberson and S.E. Edwards, IEEE Trans. Nucl . Sci. NS-28 (1981) 3834 . [7] N. Abbattista, D. Marino and V.L . Plantamura, Nucl . Instr. and Meth . 60 (1968) 317 [8] J. Deschamps, A. Hrisoho and B. Soucek, Nucl . Instr and Meth . 84 (1970) 253 [9] M. Santori, IEEE Spectrum (August 1990) p. 36 . [10] XSYS Reference Manual, Triangle Universities Nuclear Laboratory, Duke University, Durham, NC 27706, USA. [11] Sparrow, P.O . Box 6102, Mississippi State, MS 39762,
USA. [12] T.G . Newman and P.L . Odell, The Generation of Random Variates (Griffin, London, 1971). [13] H.A . Al-Juwair and R.E . Abdel-Aal, IEEE Trans. Nucl . Sci. NS-36 (1989) 611. [14] P.R . Bevington, Data Reduction and Error Analysis for the Physical Sciences (McGraw-Hill, New York, 1969).