FSU_calib Program Introduction

The FSU_calib program is an utility that helps you to do the energy and efficiency calibration for Germanium detectors from the 152Eu source via ev2 file. Generally speaking if you can convert 152Eu data into ev2 file format, then you can do the calibration by this program. (I will explain ev2 file format later.) I have been tested the program for all the Ge detectors in our lab and three clovers from Oak Ridge Lab. (note: CL1, CL2, CL3, FSU4, FSU7, ORNL1, ORNL3, ORNL4, ORNL5, and PITT5, date: 2016 Apr.)

The program have installed in the polar server. The path is '/home2/tai/3_programs/FSU_calibre/', the execute file is 'FSU_calibre.py'. You can copy the FSU_calibre.py script to anywhere you want. (You are welcome to contact me to get the source codes.)

However, if in the future, you need to add new Germanium detectors, for example, FSU99, you have to modify the writing_out.py file at /home2/tai/3_programs/FSU_calibre/ folder. But even you do not modify it, the program may still work, when you attach the FSU99 to a previously-defined detector. For example, you assign FSU99 to ADC1 which is originally Clover 1 Red detector.


Run the code

First use a text editor to open the FSU_calibre.py to set up the detectors you want to do the calibration. For example, when you just want to do a quick test, you can set working_ADC= ( 1, 2, 3). The working_ADC start from 1, not zero. So in the PIXIE's (module 0, Slot 0) = ADC1.



When you are ready, just key in FSU_calibre.py xxx.ev2, where the xxx.ev2 is the 152Eu run. For more details, use: ./FSU_calibre --detail.



A Brief Note to convert .evt to .ev2

.evt is the event file format produced from the readout program. It concludes all the experimental information from the data acquisition system. It is necessary to convert evt to ev2 for several reasons. (1) An evt file does not set up the event time windows. ie. it just records the time stamps to the file. But if we want the coincidence relationship, we need to set a time windows, the signals coming in a time windows is considered to be in coincidence. (2) An evt file does include too much information for the analysis and the file size is huge!

How to convert?
The conversion programs are written by Dr. Tabor, and I only know how to use the programs. Therefore if you have questions about the details related to these programs, you shall contact Dr. Tabor. I have a copy of the executive files in my folder in nucgam server, while I do not have the source codes. The path is '/home/tai/3_programs/evt_to_ev2/', the executive xia2ev2_nopart_nocfd_mod is for no particle detector and no CFD (timing stuffs). This one is the exact program we need to convert the 152Eu source data from evt to ev2 format.

./xia2ev2_nopart_nocfd_mod run-xxx-xx.evt runxxx.ev2




A Brief Note to .ev2 file format

.ev2 file is in a binary format.

char ADC_fired_amount (starting heading)

{char ADC_num, short ADC_channel},
{char ADC_num, short ADC_channel},
{char ADC_num, short ADC_channel},
...totally ADC_fired_amount pairs.


char ADC_fired_amount (ending)

for example: [3] (1,1000) (9,2000) (3, 3000) [3]
the [] and () notations just make human easier to read.
There are 3 events in this time windows:
ADC = 1, channel = 1000
ADC = 9, channel = 2000
ADC = 3, channel = 3000
Note: I have a nice ev2 file reading program.


A Brief Note to writing_out.py

to define new detector or modify the existed one, you should follow the format like the following figure.
Use '#' to comment out the setting.




Result Explanation

The FSU_calib will show you the chi-square of the fitting. If unfortunately it is large, you may check the spectrum and manually calibrate it. I know sometimes the residual nuclei underwent beta decay and then the 152Eu source spectrum will mix the lines with these γ rays from beta decays.




The FSU_calib will show you the counts of the peaks, you can use this information to do the efficiency calibration by the ECAL program.




The last thing, the FSU_calib will show .sf file for gnuscope, the angle and detector name information is written in writing_out.py.