Locked History Actions

ANAROOT/Manual/anafile

Abstract of AnaFile

AnaFile is a txt file to control analysis and histograms simply. This means ANAROOT can be used almost like ANAPAW (standard analysis software in RIKEN).

If you want to use AnaFile, you have to book TAlEncExample. For detail of TAlEncExample see here.

Grammar

Basically, process one line by one.

<command>: write in head of line to tell what definition comes next. No <command> will be assumed as definition of 1D or 2D histogram.
100,: write comma "only" but "always" after number. If number of comma is not correct, program abort.
"title": if a word be sandwiched by ", this will be title of object

Example

// analys: analysis in order of written analyser id
// <analys> analyser_id, analyser_id, ...
<analys> 0,14,15,
<analys> 16,12,

// include another anafile
// <include> "filename"
<include> "cut/example.cut"
<include> "ana/example.ana"

// {index}: analyser,id_start,id_end,wnum,
//  analyser: represent Detector like BigRIPS, DALI, NEBULA, and so on.
//  id_start: start id
//  id_end: end id (if you want to fill only one ch, this number be same as id_start)
//  wnum: represent physical value like TOF, Energy Deposit, and so on.

// gate
// <gate> gate_id, {index}, low,up, "title"
<gate> 101, 1,1,1,30, 1400,1500, "turaw 101 gate"

// stop: if gate is true, do not process below.
// <stop> gate_id, gate_id, ...
<stop> 101,

// circle cut
// <cc> gate_id, {index x}, {index y}, center x, center y, radius x, radius y,
<cc>   201, 1,1,1,30,  1,1,1,10, 1450,300,100,100, "turaw 101 vs auraw 101"

// and, or
// <and> new_gate_id, gate_id1, gate_id2, ... , "title"
<and>  104, 101,102, "turaw 101 and auraw 101"
<or>   105, 101,102, "turaw 101  or auraw 101"
<and>  106, 101,102,103, "101 and 102 and 103"

// 1D hist
// gate_id, analyser,id_start,id_end,wnum, bin#,low,up, "title"
0, 1,3,3,2, 100,0,4100, "turaw ch3"

// 2D hist
// gate_id, analyser,id_start,id_end,wnum, bin#,low,up, analyser,...,up, "title"
0, 1,1,150,1, 150,0.5,150.5, 1,1,150,2, 4100,0,4100, "id vs turaw ch1-150"

// for <for>(variable; start; end; step) ...
<for>(i;1;20;1) 0, 1,$i,$i,2, 100,0,4100, "turaw ch$i"

// graphical cut. use hcut command to create points.
<cutg> 1001, 15,3,36, 18,1,1,3, "B17"
<point> 1001,     60.431,    123.676,
<point> 1001,    57.6293,    116.393,
<point> 1001,     60.431,    123.676,

// create branch and fill value.
// <branch> gate_id, {index}, "branch name", "tree name"
// if id_start == id_end, branch will be Double_t, while if id_start < id_end, branch will be std::vector<Double_t>
<branch> 0, 1,1, 1,2, "turaw_ch1" "tree"
<branch> 0, 1,2, 2,2, "turaw_ch2" "tree"
<branch> 0, 1,1,10,2, "turaw"     "tree"

// fill tree. this command need to call TTree::Fill.
<filltree> "tree"

// print value correspond to {index}. this command is useful for debug.
<print>  0, 1,1, 1,2,
<print>  0, 1,1,10,2,

// do not decode below this line
<end>

Preprocess

If anafile's extension is ".ana.c", preprocess will be done in book() function by following command,

gcc -I. -E -P -C filename.ana.c -o filename.ana.p

This functionality will help to define like gate or analyzer number by "WORD". For example,

#define B17 1000050170 // B17 gate number
#define PLASTIC 17 // define word "PLASTIC" for plastic's analyzer number
#define NEBULA 21 // define word "NEBULA" for nebula's analyzer number

<gate> B17, PLASTIC,3,3,10, "plastic gate"
B17, NEBULA,1,144,10, "NEBULA ADC with B17 gate"

Of course you can use other preprocessor directives like #include or #if.

Analyser ID and WNum ID

Analyser number and WNum number can viewed on root by

root[i] lv();

If you want to know correct ID, please see source/AnaLoop/include/EWNum.hh or each TAlEnc Class.