= ADCM = ADCM is the compact and universal Digital Pulse Processing system for nuclear physics experiments. <> == User Guide == [[https://docs.google.com/document/pub?id=1Pejf51o5w-BPgwXzuCoZyL-Aur23p4AfGktr8Vv9njU&pli=1|ADCM User manual]] == Install == For software installation please proceed to [[http://afi-project.jinr.ru/projects/adcm/wiki|ADCM Wiki]] == Applications == * Fast Scintillators Spectroscopy * Silicon Photomultiplier Front-End * Applied Particle Imaging with Tagged Neutron Beam == Features == * 14 bit, 1.5 LSB RMS amplitude resolution * 18 picoseconds RMS time resolution * 16 channels on PCI card, extendable up to 4 cards * Baseline recovery and pile-up rejection * 100 MS/s waveform sampling rate * Parallel pipelined FPGA pulse processing * User configurable trigger matching logic == Supported Hardware == {{{ #!Frame align=float:right,thick=0px {{attachment:adcm16-ltc-pcie-thm.png}} }}} * [[ADCM-16]] * [[ADCM16-LTC]] * [[ADCM16-3]] * [[8CADC]] == Theory of Operation == ADCM has the universal ''Digital Pulse Processing'' architecture. The hardware data acquisition board [[ADCM16-LTC]] utilizes high speed ADC for sampling of input signals. First level trigger logic performs zero suppression by threshold crossing method with hysteresis. Second level trigger logic (when enabled) measures the arrival time of input signals in coarse scale and the coincidence logic produce match output signal for data taking start. The acquired ADC samples of input pulses are analyzed by the software. Baseline is subtracted and the charge, the sum of samples is measured. For time measurements, the digitized pulse is fed through digital FIR filter that performs ''tail cancellation'' and shapes the pulse to gaussian like form. The search for peaks is run and the pile-up rejector determines the areas of multiple unresolvable pulses to be suppressed. The approximate arrival time of pulses is measured by ''weighting'' of samples near pulse peak. This method relatively fast and runs on-line at speed of million pulses per second. However, the accuracy and DNL of this time measurement by weighting is far from optimal and depends largely on the shape of filtered signal. This pulse coarse time is used for third level trigger with software coincidence matching of pulse arrival time. == Precision Time Measurement == Unlike most commercial digital pulse processors, ADCM uses general purpose CPU to improve time measurement resolution and does it in real-time. The use of FGPA for this task is not optimal today due to iterative nature of the algorithm and high resource usage. Thoroughly optimized software pulse processor is designed for extra precision measurements. The software is capable of 100,000 pulses per second when running on 3 GHz CPU. ADCM pulse processor utilize real-time least square minimization method for gaussian-like pulse parameter evaluation. This method is widely used in curve fitting. The time resolution achieved by software pulse reconstruction algorithm is very close to theoretical limit and does not change with light variations of signal shape. Other methods, including parabolic approximation, do not give enough resolution and have bad DNL (differential nonlinearity) in comparison to iterative minimization method. Only curve fitting method gives sound result when the signal to noise ratio drops under 5%. This is also the case when working with non-monotonic, structured signals of BGO of NaI crystal gamma detectors - weighting and parabolic approximation methods do not work. == ADCM Software == {{{ #!Frame align=float:right,thick=0px [[ADCMScreenshots|{{attachment:adcm-mix-thm.png|ADCM Software Screenshots}}]] }}} We have developed the software for complex signal analysis including charge spectrometry and Time-Of-Flight measurements. One of the key features is precision sub-sample timing of signals using a variant of digital constant fraction discriminator. The signal parameters are presented in live histograms and stored in data file. Histograms are shown for main measured parameters: amplitude (integral), time difference. The software package has two parts: the lowlevel kernel driver and GUI control panel. We have a bootable LiveCD and LiveUSB flashdrive for no-harddisk installations. Requirements: CPU 2.0GHz, 1024MB RAM, CD/DVD drive (for LiveCD) or USB port (for LiveUSB), PCI Express slot. == Data File Format == * [[AdcmDataFormat| ADCM Data File Format]] * [[AdcmRawDataFormat| ADCM Raw Data File Format]] == Publications == * ''DViN—Stationary Setup for Identification of Explosives: Physics of Particles and Nuclei Letters, 2008, Vol. 5, No. 5'' ---- [[CategoryAdcm|ADCM]]