Hi Mark
Good to hear from you.
One can, of course, successfully discriminate between some peaks using only the relative recovered amplitude of a peak, even if it be grossly distorted, slow, delayed, very low-pass filtered remnant of the original (few) carriers that made it into the first amplifier. The true knowledge of what was the relative energy in the event, and separating it from other event energies requires we do do better than that. Integrating a single pulse does it! Especially if we can throw out the overlapped, noise intrusion, and other pulse artifacts that sullied it in various ways.
A good, fast check is having a reliable peak, knowing the remainder of the waveform is of a known characteristic type. The area under the pulse, representing an analogue of the photon energy is related to the peak value by a (almost) constant factor, so the percentage error in working from only a reliably discovered peak is quite small. This is only so if the there are waveform shapes other than the ideal. Note that one pretends the waveform was an artificial perfect triangle, the peak value would be enough to know all one needs.
In my scheme, I do admit that I have a hardball approach to discovering the energy. I reasoned that since we need the ADC there anyway, and the software can easily persuade it to do it's thing many times during a pulse, then collecting a number for the peak is just as easy as collecting a whole bunch of them to add up the area. As I looked closer, especially at results of peaks the PyMCA program has to pick through, I got to thinking about how it has to relate little ups and downs on a line riding generally high enough to mask lower peaks. Basically, if there is not enough accurate resolution in figuring the area under that peak, then adjacent buckets are going to have counts that run into each other. Do it well, and you get separated narrow(er) peaks.
Then I looked at the document (attached). The huge mess of energies in all sorts of combinations that actually comes out of materials that have been hit by Am241 gamma was a new realization for me. Your approach would seem to be effective as a way of cutting down the amount of computation.
I have included a fast peak detector option in my circuit. One can leave out the components if going for a pure software approach.
Also, a hardware 2-level trigger, which provides the computer a way of working with the circular buffer (ie. how far back was the start). and a "it's all over" pulse, to aid in rejecting overlaps. If the second pulse has not arrived in a certain time, the pulse is a mess, and gets rejected. As with the peak detector, one can leave it out.
Staying with the "Swiss Army Knife" set of options, the transconductance amplifier can also be built in various flavours, depending on which components are put in, and which links be set. First is using low noise op-amps only. Second and third are the versions with a FET front-end. The interface to whatever computing board there is general purpose. The board is a kind of experimenter's handy thing. Keep in mind, I am trying to have it be OK for my scintillator PMT tube also. One can choose alternative op-amps so long as they have the "standard" pinout. About the only hard set choice was that I plan to use 3 x Lithium 3.3V button cells as the fixed 10V low noise DC bias for the photo-diode.
The PCB will be a step-and-repeat of as many as I can cram onto a 12" square board. I will only be needing a couple, of spares so the remainder can be gratis to any HM folk wanting to play XRF. Maybe a single postage to someone in USA would make sense. One could cut off the bits wanted, and send the rest on like pass the parcel
The computer
The lack of supply of Raspberry Pi's is temporary problem, but everything the Pi can do in this context is also done by the 1GHz Beaglebone Black, including running PyMCA under Debian or Ubuntu. Its £25 in UK (about $30). Probably about $45 with PSU and options.
I think the PyMCA software might have some damn clever false pulse discriminators built in. It is a big load of code, and so far, all I have done with it is install it, and run it, and marvel at it!
-->
https://beagleboard.org/black/
I can only visit my pet project occasionally, but I will get to play more quite soon. My order for IC's and stuff from Mouser on Friday was £70+ though it was not all for XRF, and I rarely order only one of any IC unless it happens to be darn expensive.
_
I could not make any of the available symbols for the ADC simply drop in to my KiCAD in a way that suited me, so I had to "roll my own". Here is a fragment of what it looks like. I will be posting the whole circuit soon.