Gnuscope
introduction
The code is for the analysis of gamma-ray spectroscopy. It can date back to July 2002. The last update of the code was June 28, 2017.
The code use GTK2 for a graphical interface.
To download https://fsunuc.physics.fsu.edu/~caussyn/gnuscope_ddc_gtk2.tar.gz
data structure
The data is a binary format. A event should be like this:
<multi><ID><Energy><ID><Energy>.... <multi>
where <multi> is a multiplicity of the event, <ID> is the ID of the detector, and <Energy> is the energy of that detector.
items | data type | length | max |
---|---|---|---|
mulit | unsigned char | 1 byte | 256 |
ID | unsigned char | 1 byte | 256 |
Energy | unsigned short | 2 byte | 65535 |
Simple C++ code
writing
FILE * outFile = fopen("saveFileName.gnc", "w+");
int numEvent = 1000;
int maxMulti = 100;
char * multi = new char[numEvent];
char ** ID = new * char[numEvent];
unsigned short ** energy = new * char[numEvent];
for( int i = 0; i < numEvent; i++){
ID[i] = new char[maxMulti];
energy[i] = new char[maxMulti];
}
// fill data here
// write file
for( int ev = 0; ev < numEvent; ev++){
fwrite(multi[ev], 1, 1, outFile); // write multi[ev] to outFile for 1 byte and 1 time.
for( int i = 0; i < multi; i++){
fwrite(id[ev][i], 1, 1, outFile);
fwrite(energy[ev][i], 2, 1, outFile); // write energy[ev][i] to outFile for 2 byte and 1 time.
}
fwrite(multi[ev], 1, 1, outFile);
}
fclose(outFile);
Reading
Using docker
Compiling the code usually results in failure in Debian 10 or Ubuntu 20.04. To bypass this, we can use docker to run the code in Ubuntu 14.04.
For detail on setup the docker image, please check https://fsunuc.physics.fsu.edu/elog/dataServer/3.
One of the inconveniences is that the program can only run locally, not remotely.