探测器数据分析函数(基于C++)"/>
ZDC探测器数据分析函数(基于C++)
- 设置各通道触发阈值
- 读取原始.dat二进制数据文件
- 解析并提取相应数据(峰值/波形)
- 绘图(峰值/原始波形)
关注的物理量:宇宙射线能谱,单位时间的强度,时间抖动
ADC采样频率:50M
ADC精度:14bit
通道数:16
二进制文件数据帧格式
峰值数据帧格式:
当前事件触发时间(17bit) | 帧头 (0x7fff,15bit) | 32bit |
通道1触发时间(17bit) | 通道1峰值数据 (15bit) | 32bit |
……………………… | ……………………………… | |
通道16触发时间(17bit) | 通道16峰值数据 (15bit) | 32bit |
0x1ffff(17bit) | 帧尾 (0x4000, 15bit) | 32bit |
波形数据帧格式:
0000(17bit) | 波形数据 (15bit,有符号) | 32bit |
……………………… | ……………………………… |
函数以及功能:
1. serverConncet(char *ip , int port) //和FPGA建立TCP/IP连接
2. void selDataMode(int datamode, QString ch)
//选择接收数据模式 mod 0: paek mode 1: wave
3. void setThreshold(QString ch,int th)
// 设置各通道阈值 ch: 通道号(字符) th: 阈值(十进制)
- QString getData(QString filepath, int mode, qint64 totalBytes, int receivedTime)
// 接收数据
// Mode 0 : 以时间长度接收
// Mode 1 : 以文件大小接收
- void ceeZdcReadFile(QString datfilename,int dataMode)
// 读取接收的文件 并存放在全局动态数组中
//dataMode 0 : 读peakdata 存入 myVector_peak
//dataMode 1 : 读wavedata 存入 myVector_wave
- void multiChannelSync( int *validChannel, int *threshold, int thresholdLen, int window)
// 根据阈值和时间窗口筛选多通道数据 并同步寻找多个通道同时触发时的事件
// validChannel :有效的通道号
// threshold :输入各通道筛选阈值
// thresholdLen : 需要筛选的通道数
// window : 筛选时间窗口 (各个通道和首个触发通道的触发时间差窗口)
- void getPlot1(const char *outputFile,double &peak,double &FWHM,double &hit, double &timeJitter)
// 画能谱图和时间抖动图
- int baselineCalibration(double &baselineRMS)
//基线RMS检测以及触发阈值设置
- SoftReset() //软复位 远程复位FPGA
更多推荐
ZDC探测器数据分析函数(基于C++)
发布评论