Experiments
Specific Instructions for Experiments
ISS Experiments
- ELOG [1]
iss000-development, mg28 [Sharp, 09/2018], hg206 [Kay, 10/2018]
DAQ Information
- Information on rebooting the DAQ can be found here :System use and a video specific for the iss experiments is here [2]
- Video showing how to start a run and what the DAQ looks like when running can be found here [3]
Array High Voltage Control
- Video to show starting up the Si Array HV can be found here [4]
Computer Information
- DAQ Computer - linux box mounted in the daq crate for daq control. Sits under the NAT BOX (helios @anldaqrouter std pswrd).
- MAC Computer - for analysis and remote login control of the DAQ Computer (heliosdigios @anlanamac NOT std pswrd - lowercase name of device at ANL).
Software Information
- lumped all software [daq control, sorting, monitoring, etc.] to a single git repo [5]
- Cloned versions of git repo on MAC at ~/experiments/iss000 and on DAQ at ~/experiments/iss000
To start the daq Commander on the DAQ Computer:
gotodaq (or cd ~/experiments/iss000/daq) ./helioscommander
To sort data on the DAQ (local) Computer (anldaqrouter): First go to the working analysis directory, then start sorting process on run of interest (ok to do this on run that is currently taking data). This will do a number of different things: 1) it will first run the GEBMerge program (GEBSort director) to combine and timesort all raw data and outputs to the merged file. Then it will run GEBSort (GEBSort directory) which is the event builder and outputs to a .root file. Finally, it runs the TSelector GeneralSort.C (sort_codes directory) which passes the raw data into the human-readable names, e.g., xf, xn, e, etc...A copy of this file is placed in the ../root_data/ director (gen_run#.root). The most recent gen.root file is also in the working directory.
gotoana (cd experiments/iss000/analysis) cd working ./process_run_local.sh <RUNNUMBER>
The above process will continue to run until it is killed (Ctr-C). A good time to do this is when it says, XXX seconds until next sort...You can look at the gen_run#.root file manually at this point. Otherwise, you can run the following to generate a few pre-made histograms and canvases.
root -l ../root_data/gen_run#.root gen_tree->Process("../sort_codes/Monitors.C++")
Then you have the filled histograms. You may also do the following for example after the Monitors.C has finished.
.L ../sort_codes/Utils.C listDraws()
Will show some of the pre-made canvases and draw functions.
To sort data on the MAC Computer:
Sorting data on the MAC Computer (anlanamac) is very similar to the local daq sorting with a couple of small differences. Namely, you have to pull the data locally first before sorting (which requires typing of the password each time), and also, the sort does not continually run. So each time you want to look at the data collected you have to run the (./process_run.sh ##).
After logging into the MAC Computer (heliosdigios@anlanamac)
gotoexp cd working ./process_run.sh <RUNNUMBER> <ENTER anldaqrouter PSSWRD>
Now you will have the GEBMerge, GEBSort, and GeneralSort's completed and a local gen_run#.root file available. You can make the histograms same as before with this.
root -l ../../root_data/gen_run#.root gen_tree->Process("../sort_codes/Monitors.C++") .L ../sort_codes/Utils.C listDraws() xfxn()
Data Locations On the LCRC at /lcrc/project/HELIOS/iss000
Trace analysis code User Guide [Ryan, 10/2018]
Git repository
git repository of the code is here [6].
Overview
I wish to make a one-click calibration and data-analysis codes for helios. In Monitors.C and Utils.C, I already modified so that the energy spectrum can be obtained and fit. However, the energy spectrum is incorrect if the calibration on e, xf, and xn are bad. So, I develop many codes for the calibrations.
The basic idea is that
- using alpha source for a 1st-step calibration
- by compare the E-Z plot with kinematics calculation, further improve the energy calibration.
- after the calibration is done, out a new root file for the physics.
To do that, and also simplify the user experience, I grouped everything into
AutoCali/AutoCalibration.C
This macro will guide you through the calibration and finally, will output a new root file that contain all essential qualities for analysis, for the physics.
Of course, this codes is far from perfect, e.g. no graphical user interface, possible bugs, etc.
Code Overview
The essential folders are "AutoCali" and "Simulation"
AutoCali = contains all codes for analysis
extension with *.h are TSelector class
extension with *.C are simple root macro
The calibrations are using
- Cali_xf_xn.C -- using alpha.source to calibrate xf = - xn, possibly energy.
- Cali_xf_xn_to_e.C -- calibrate xf + xn = e
- Cali_compareF.C --- calibrate e with the help of simulation
- Cali_e_single.C . -- calibrate e for single detector
- GetCoinTimeCorrectionCutG.C -- using TCutG for getting coincident time correction parameters.
TSelectors
- Cali_littleTree_trace.h -- make a smaller tree with only e, x, z for fast energy calibration in Cali_compareF.C
- Cali_e_trace.C -- make a new root file with all essential data (e, z, Ex, thetaCM, etc.) for analysis.
Checking
- Monitors.h-- yes, similar to the Monitors.h you know of, with an additional twists
- Inspector.h -- similar to Monitors.C
- Check_e_x.C -- check after C_littleTree_trace.h
- Check_e_z.C -- check after C_e_trace.h
- Check_alignment.C -- check the energy and position alignment between each detectors
TCutGCreator
- RDTCutCreator.C -- a macro to create TCutG on the recoil detectors and save the cuts into rdtCuts.root.
Trace
- GeneralSortTrace.h -- GeneralSort.h with trace
- GeneralSortTraceProof.h -- Proof version of GeneralSortTrace.h
- Proof_onGeneralSortTrace.C -- a macro to run GeneralSortTraceProof.h
Simulation = contains codes for simulate transfer reaction, heliomatics, etc.
Class Library
- HELIOS_LIB.h -- contains all classes, e.g. transferReaction, HELIOS, etc.
- constant.h -- some physical constants.
- Isotope.h -- a class for getting mass of different isotopes
Reaction example code:
- transfer.C -- for transfer reaction in HELIOS
- knockout.C -- for knockout reaction in HELIOS
Essential files for the example codes:
- detectorGeo.txt -- the definition of detectors geometry
- excitation_energies.txt -- the energy level of the recoil particle for transfer reaction
- separation_energies.txt -- the energy level for knockout reaction.
- mass16.txt -- the mass table
Operational
create a folder for the experiments, for example ISS_28Mg.
mkdir ISS_28Mg cd ISS_28Mg
I assume you already run the process_run.sh and obtained the gen_run*.root.
I assume you already did the calibration. (well, if not, the program still run, just no calibration)
create a symbolic link to the root_data
ln -s path_to_root_data data
Open AutoCali/AutoCalibration.C in any editor, say emacs
emacs ../AutoCali/AutoCalibration.C &
add the root file into the TChain. line ~ 55
then run
root -l ../AutoCali/AutoCalibration.C
then you will have many choices, like this:
========= Auto Calibration w/ Trace ============== ================================================== --------- GeneralSortTrace.C --> sorted.root------ ================================================== 0 = alpha source calibration for xf - xn. 1 = xf+xn to e calibration. 2 = Generate smaller root file with e, x, z, detID, coinTimeUC (aware of Gate) 3 = coinTimeUC calibration. (MANUAL) --------- transfer.root require below ------------ 4 = e calibration by compare with simulation. 5 = Generate new root with calibrated data. ================================================== Choose action :
Please choose #5.
After that, you will get a A_*root file. with a calibration.
data calibration
Idea
- use alpha source to calibrate energy, xf and xn
- use the data to calibrate xf+xn=e
if the energy calibration using alpha source is not good enough (for example, the alpha source only has 1 energy is useful)
- make a littleTree
- calibrate by compare with simulation
open AutoCalibration.C in any editor
add the root files in the TChain.
cd ISS_28Mg root -l ../AutoCali/AutoCalibration.C+
then
========= Auto Calibration w/ Trace ============== ================================================== --------- GeneralSortTrace.C --> sorted.root------ ================================================== 0 = alpha source calibration for xf - xn. 1 = xf+xn to e calibration. 2 = Generate smaller root file with e, x, z, detID, coinTimeUC (aware of Gate) 3 = coinTimeUC calibration. (MANUAL) --------- transfer.root require below ------------ 4 = e calibration by compare with simulation. 5 = Generate new root with calibrated data. ================================================== Choose action :
choose #0.
The alpha source calibration will be done and the calibration parameters will be save in
correction_xf_xn.dat correction_e_alpha.dat
After that, you can choose #1 to have xf+xn = e calibrated, the parameters will be save in
correction_xfxn_e.dat
h061_mg26 [McNeel, 3/2018]
Analysis directory on the iMAC [gotoexp]
~/experiments/h061_mg26
To process a run on the iMAC
gotoexp ; cd working ./process_run.sh #
Where # is the run number of interest. This command will first pull the data from the DigiOS computer:
get_digios_data #
Then merge all data in a time-sorted fashion:
gebmerge.sh #
Then events are created based on the input file GEBSort.chat
gebsortmerged.sh #
The output file is run#.root. Finally, a general sort is carried out to map the data into the proper HELIOS parameters:
root -l ../root_data/run#.root tree->Process("../codes/GeneralSort.C++")
or
root -l proccess_run.C(#,0)
The output file is gen.root which is copied to ../root_data/gen_run#.root
To generate the monitor spectra, you can run:
root -l ../root_data/gen_run#.root gen_tree->Process("../codes/Monitors.C++")
Note, that the GeneralSort.C and Monitors.C are located on the svn at
https://svn.anl.gov/repos/helios/DigiOS/SiDet/trunk
A new branch for all of the DigiOS DAQ control software is here:
https://svn.anl.gov/repos/helios/DigiOS/edm/branches/h061
Data is stored locally on the DigiOS DAQ Computer at
/media/DIGIOSDATA3/data/h061_mg26
and a copy will eventually be available on the iMAC at
~/experiments/h061_mg26/data
H060_Pb208 [Kay, 3/2018]
There is an ELOG.
New branch for all of the DigiOS stuff has been made.
https://svn.anl.gov/repos/helios/DigiOS/edm/branches/h060/
Local working directory on MAC
~/experiments/h060_pb208
Data is saved on DigiOS
/media/DIGIOSDATA2/data/h060_pb208
H057_He6 [Chen, 8/2017]
To Do List
- Needs for beam testing
- Control of the digitizer channels for setting threshold, trigger, etc
- A way to quickly process and view the data for beam tuning [online, offline, etc]
- Needs for experiment
- Mapping of the signals [new more simple map?]
- Look into data readout
- Better online monitors
- Fix for GEBSort_nogeb on MAC
Locations
daq control - /global/devel/systems/helios/h057 data - /media/Digios Data/data/h057_he6
Take Data
In the directory that you would like the data to be saved on the digios daq computer, execute:
start_digios_run <run #>
stop_digios
Move Data In the directory you want to put the data on the MAC computer
get_digios_data <run #>
Sorting Data
sorting the root file uses codes located in svn.anl.gov/repos/DigiOS/SiDet/trunk
H054_F21 [Chen, Hoffman, 4/2017]
Locations
Sorting the data
- cp data from digios1 daq computer location /media/Digios Data/data/h054_f21 to malaguena data location /music/helios2/H054_F21/digios/data
- cd /music/helios2/H054_F21/digios/data
- rsync --progress --protect-args --size-only -avzPe ssh "dgs@digios1:/media/Digios Data/data/h054_f21/h054*" . [NOTE: not sure this gives you the fastest transfer speeds CRH 8/17]
- merge data files from malaguena working directory /music/helios2/H054_F21/digios/working
- ./gebmerge.sh RUNNUMBER
- sort the data files from malaguena working directory
- ./gebsortmerged.sh RUNNUMBER
- generate general root file from malaguena working directory
- root -l ../root_data/h054_runRUNNUMBER.root
- tree->Process("../codes_trunk/GeneralSort.C+")
- creates gen.root file in working directory
- generate Monitor histograms from malaguena working directory
- root -l gen.root
- gen_tree->Process("../codes_trunk/Monitors.C+")