"How to" for analysis code

From HELIOS Digital DAQ
Jump to navigation Jump to search

[last updated July 11, 2019]

Everything should be performed in digios/analysis/working directory,

ATTENTION:
txt file extension is editable for user.
dat file extension is not supposed to be edited, they are generated.
Editable file name will be highlighted with blue color

How to get option for a method or function ?

For most of the bash script, if you have no argument or the argument is "-help" it will display help massage

working>./process_run
working>../Cleopatra/Transfer -help

For most root macro, for example, RDTCutsCreator(), after typed the first bracket, use tab, it will display the arguments.

root>RDTCutsCreator(

then press tab. it will show

root>RDTCutsCreator(TString filename, TString saveFileName = "rdtCuts.root", int eRange = 4000, int eRange = 60000 )

How to take a screenshot in MAC ?

Command + Shift + 4 = screenshot selected area

Command + Shift + 4, then space_bar = screenshot selected window

How to Setup for a new experiment?

CAUTION: Advance user / user familiar with git only
CAUTION: Has to be done in the DAQ first
CAUTION: Has to be done in the MAC after

given that the digios directory is clean, meaning

digios>git status 

show no file is modified.

If you are not in the master branch

digios>./SetUpNewExp master

Then you are ready to setup a new experimental branch by

digios>./SetUpNewExp [new experiment name]

The bash script with do all the work.

After that, do the same in the MAC.

How to clean up the working directory and prepare for a new experiment?

CAUTION: Advance user / user familiar with git only
CAUTION: Need to be done in both MAC and DAQ

After each experiment, the files in digios directory would be changed.

To check the change,

DAQ>cd ~/digios
digios>git status

To snapshot the change

digios>git add -A
digios>git commit -m "comment for this snapshot"

It is better to push the snapshot to the github

digios>git push origin [branch name]
CAUTION: Also need to git the DAQ!
CAUTION: The files in the DAQ and the MAC could be both changed. Mostly, the change in the DAQ is in digios/daq.
CAUTION: That means the DAQ and MAC has to be merged.

How to check the start time and stop time for a run?

in digios/analysis/data, there is RunTimeStamp.dat. this file stored all start and stop time for all runs.

in MAC or DAQ,

anywhere>ShowRunTimeStamp

How to check the raw files for a run?

in MAC or DAQ

anywhere>ShowRunSize [RUNNUM]

How to process run?

CAUTION: If the code is git clone or download recently, please go to ~/digios/analysis/GEBSort, and
GEBSort>make offline
working>./process_run [RUNNUM]

The bash script will download run [RUNNUM], merge, event building, GeneralSort (mapping), and Monitors.C

to see more options, ./process_run without any argument

working>./process_run

How to manually run the Monitors.C for a given run?

make sure gen_runXXX.root is generated in digios/analysis/root_data.

working>root ../root_data/gen_runXXX.root
working>gen_tree->Process("Monitors.C+")

How to process multiple runs ?

edit ChainMonitors.C

you can see it use the TChain class.

to add files, for example, add the run 33 to 40, 42, 45, and 50, and I assume the run 33 to 40, 42, and 45 are already downloaded

chain->Add("../root_data/gen_run03[3-9].root");
chain->Add("../root_data/gen_run04[0,2,5].root");
chain->Add("../root_data/gen_run050.root");

Then, in process_run

working>./process_run 50 1 1 1 2

Notice that it will download, merge, build event, and GeneralSort (mapping) for run 50 ONLY.

How to Donwload all runs into the Mac ?

working>Rsyn_data_from_DAQ.sh

How to output the gen_runXXX.root for multiple runs ?

working>./process_multi_runs [start RUNNUM] [Stop RUNNUM]

How to Calibrate alpha data ?

If statistics for single detector is sufficient, i.e. all peak is clearly identified.

edit the file runsList.txt

working>root AutoCalibrationTrace.C+

select option 1

It will guide you through the process.


If statistics is not so good, we can use the ../Armory/Cali_e_single.C

How to Calibrate (d,p) reaction data ?

( I know It needs more detail )

ONLY for sufficient statistic for individual detector.

edit the file runsList.txt

working>root AutoCalibrationtrace.C+

select option 2

it will guide you through.


In order to speed up the process, it will create a temp.root. a root file only contain e and z.

User can use ../Armory/Check_e_x.root and create a cut to be used in the Monte-Carlo process.

How to output a root file only contain physical data ?

after the calibration is done, we can edit runsList.txt

and run

working>root AutoCalibrationTrace.C+

Select option 3 to generate the A_gen_runXXX.root

How to download the source code ?

make sure you have git in your computer.

in the directory you like to put in the code. for example, I like to put the code in ~/, then >cd ~/

~/>git clone https://github.com/calemhoffman/digios.git

you will see a folder name digios is there.

digios>cd digios 
digios>git status

you will see that you are in the master branch, but you want to switch to the branch for your experiment

To check your experiment

digios>git branch -a

for example your experiment is using the branch h064_15N

digios>git checkout h064_15N
digios>git status

you will see you are in the branch for your experiment.

for analysis, you only need the things inside digios/analysis

Make sure you create folders or symbolic links for data, merged_data, and root_data under digios/analysis.

How to change or add a recoil Cuts ?

see #How to use RDTCutsCreator ?

How to change the array position ?

edit the file detectorGeo.txt

How to change the calculation for Ex and thetaCM ?

edit the file reactionConfig.txt, than recalculate the reaction.dat by running ../Cleopatra/Transfer

working>../Cleopatra/Transfer

How to change the kinematic E-Z line?

see #How to simulate the kinematics?

The E-Z lines are stored in fxList in transfer.root

In Monitors.C, at the end or Monitors::Terminate().

you can see the fxList.

How to simulate the kinematics?

CAUTION: If the code is git clone or download recently, please go to ~/digios/analysis/Cleopatra, and
Cleopatra>make

edit

  • reactionConfig.txt
  • detectorGeo.txt
  • Ex.txt

Then run

 working>../Cleopatra/Transfer

after that, 2 files will be generated, 1) reaction.dat, 2) transfer.root

a tree is inside transfer.root.

you can see the tree branches by

root> tree->Print()

(I know some variable names are confusing, and I will update them soon)

How to use RDTCutsCreator ?

After ./process_run, the ../Armory/RDTCutsCreator.C will be loaded.

root>RDTCutsCreator( [filename], [save file name], [E range], [dE range] )

The default [save file name] is "rdtCuts.root". If you like to use other [save file name], please correct the TString rdtCutFile in Monitors.C

if something go wrong during the RDTCutsCreator, simply delete the "rdtCuts.root".

There is a way to include multiple files for the RDTCutsCreator

root>RDTCutsCreator("../root_data/gen_run02[3-7].root")

or

root>RDTCutsCreator("../root_data/gen_run02[3,5,7,9].root")

To include more files, we can edit ../Armory/RDTCutsCreator.C

inside the file, manual add the files. To run that script.

working> root
root>.L ../Armory/RDTCutsCreator.C
root>RDTCutCreator("", [save file name], [E range], [dE range] )

How to do DWBA calculation ?

CAUTION: If the code is git clone or download recently, please go to ~/digios/analysis/Cleopatra, and
Cleopatra>make 
CAUTION: ONLY IN LINUX, because Ptolemy only work in Linux.

edit the file example, then

working>./Cleopatra example 1 1 1 1 0 [minAng] [maxAng] [angStep]

This will generate the example.in, feed to Ptolemy, output example.out, extract the differential cross section into

  • example.Xsec.txt
  • example.root

And plot the d.s.c. using example.root

It will also generate example.Ex.txt

For arguments meaning, use Cleopatra without any argument

working>./Cleopatra

How to do kinematics simulation with DWBA differential cross section ?

see #How to do DWBA calculation ? first.

edit

  • reactionConfig.txt
  • detectorGeo.txt
  • example

Make sure the reaction in the reactionConfig.txt is matching with that in example

working>./Cleopatra example 1 1 1 0 1  0 180 1

The excitation levels is using example.Ex.txt.

The bash script will calculate the DWBA d.s.c. using Cleopatra, then using ../Cleopatra/Transfer to do the simulation.

see #How to simulate the kinematics?

How to do trace analysis ?

First, the GEBSort code has to be recompile by changing the file digios/GEBSort/bin_rcnp.C

in that file, comment out the trace (line ?)

Then, recompile

GEBSort>make offline

Now the gen_runXXX.root will contains trace data.

go back to working directory

working>./process_run [RUNNUM] 1 1 2 1

The 4th argument is 2, that means the GeneralSort (or the mapping ) will use ../Amrory/GeneralSortTrace.C instead of ../Amory/GeneralSort.C

The 4th argument can be also be more than 2, say, when it is N, it means it will use Proof, a parallel computing framework built-in in root that use N cores.

To display the trace, we can use ../Armory/readTrace.C ( this macro is kind of shitty.....)

How to count a histogram for a given range ?

After ./process_run, a function Check1D() is loaded.

How to use the fit to excitation spectrum ?

If the reaction.dat is set properly, after ./process_run, the excite() function will give you the excitation spectrum.

root>excite()

You can use the fitAuto() function to auto fit the spectrum by

root>fitAuto(hEx) 

For more option

fitAuto( [hist name], [BG estimation] )

Or you can can fit N-Gauss + 1 linear function. In this case, edit the AutFit_para.txt

root>fitNGaussP1(hEx)