HOME ESR EXPERIMENTS LABS etc
E121 E127 E132 E125 E143 laser_cooling_2021 E142 Ê128 E146 E0052 E0018
  Bound beta decay experiment on Tl-205  Not logged in ELOG logo
Message ID: 177     Entry time: Thu Nov 5 15:13:43 2020
Author: Jan 
Category: Analysis 
Subject: root script example 
Attached is an example root script/macro that shows how to use scripts for analysis.

Usage:
1. change INPUT and OUTPUT preprocessor variables in e121_analysis.c pointing to your desired input and output root-files.
2. open root and type:
  root [1] .L e121_analysis.C++
  root [2] run()
3. check plots popping up and output files

Hints:
in e121_analysis.C use
#include "e121_raw.h"
for the original channel names/mapping (e.g. ADC1_1,...)
and use
#include "e121_mapped.h"
for named channels (e.g. e_csi[0] or e_dssd_top)
Attachment 1: e121_analysis.C  10 kB  | Show | Hide all | Show all
Attachment 2: e121_mapped.h  8 kB  | Hide | Hide all | Show all
//////////////////////////////////////////////////////////
// This class has been automatically generated on
// Wed Nov  4 09:54:00 2020 by ROOT version 6.18/04
// from TTree h101/CWNtuple
// found on file: /data.local1/E121/root-files/part1/e121_run_0252.root
//////////////////////////////////////////////////////////

// Declaration of leaf types

// DAQ 
UInt_t          TRIGGER; //
UInt_t          EVENTNO; //
UInt_t          TB_SI_IN;
UInt_t          TB_SI_RED;
UInt_t          TB_MWPC_IN;
UInt_t          TB_MWPC_RED;

// ADCs
UInt_t          e_pad_1[7];
UInt_t          e_pad_2[7];
UInt_t          e_pad_3[7];
UInt_t          e_pad_4[7];
UInt_t          e_pad_5[7];
UInt_t          e_pad_6[7];
UInt_t          e_pad_n[7];
UInt_t          e_dssd_top, e_dssd_bottom, e_dssd_left, e_dssd_right;
UInt_t          e_csi[2];

//TDCs
UInt_t          t_mwpc_x1, t_mwpc_x2, t_mwpc_y1, t_mwpc_y2, t_mwpc_anode, t_mwpc_raw;
UInt_t          t_master_trig, t_trig_1, t_trig_2;

//Scalers
UInt_t          sc_master_trig;
UInt_t          sc_silicon_or;
UInt_t          sc_mwpc_raw;
UInt_t          sc_u_cool;
UInt_t          sc_i_cool;
UInt_t          sc_trafo;
UInt_t          sc_inhibit;
UInt_t          sc_mwpc_anode;
UInt_t          sc_mwpc_x1;
UInt_t          sc_mwpc_x2;
UInt_t          sc_mwpc_y1;
UInt_t          sc_mwpc_y2;
UInt_t          sc_clock;
UInt_t          sc_target;
UInt_t          sc_trig_1;
UInt_t          sc_trig_2;


// Set branch addresses
   fChain->SetBranchAddress("TRIGGER", &TRIGGER);
   fChain->SetBranchAddress("EVENTNO", &EVENTNO);
   fChain->SetBranchAddress("ADC1_1",  &e_pad_1[0]);
   fChain->SetBranchAddress("ADC1_2",  &e_pad_1[1]);
   fChain->SetBranchAddress("ADC1_3",  &e_pad_1[2]);
   fChain->SetBranchAddress("ADC1_4",  &e_pad_1[3]);
   fChain->SetBranchAddress("ADC1_5",  &e_pad_1[4]);
   fChain->SetBranchAddress("ADC1_6",  &e_pad_1[5]);
   fChain->SetBranchAddress("ADC1_7",  &e_pad_1[6]);
//fChain->SetBranchAddress("ADC1_8",  &);
   fChain->SetBranchAddress("ADC1_9",  &e_pad_2[0]);
   fChain->SetBranchAddress("ADC1_10", &e_pad_2[1]);
   fChain->SetBranchAddress("ADC1_11", &e_pad_2[2]);
   fChain->SetBranchAddress("ADC1_12", &e_pad_2[3]);
   fChain->SetBranchAddress("ADC1_13", &e_pad_2[4]);
   fChain->SetBranchAddress("ADC1_14", &e_pad_2[5]);
   fChain->SetBranchAddress("ADC1_15", &e_pad_2[6]);
//   fChain->SetBranchAddress("ADC1_16", &);
   fChain->SetBranchAddress("ADC1_17", &e_pad_3[0]);
   fChain->SetBranchAddress("ADC1_18", &e_pad_3[1]);
   fChain->SetBranchAddress("ADC1_19", &e_pad_3[2]);
   fChain->SetBranchAddress("ADC1_20", &e_pad_3[3]);
   fChain->SetBranchAddress("ADC1_21", &e_pad_3[4]);
   fChain->SetBranchAddress("ADC1_22", &e_pad_3[5]);
   fChain->SetBranchAddress("ADC1_23", &e_pad_3[6]);
//   fChain->SetBranchAddress("ADC1_24", &);
   fChain->SetBranchAddress("ADC1_25", &e_pad_4[0]);
   fChain->SetBranchAddress("ADC1_26", &e_pad_4[1]);
   fChain->SetBranchAddress("ADC1_27", &e_pad_4[2]);
   fChain->SetBranchAddress("ADC1_28", &e_pad_4[3]);
   fChain->SetBranchAddress("ADC1_29", &e_pad_4[4]);
   fChain->SetBranchAddress("ADC1_30", &e_pad_4[5]);
   fChain->SetBranchAddress("ADC1_31", &e_pad_4[6]);
//   fChain->SetBranchAddress("ADC1_32", &);
   fChain->SetBranchAddress("ADC2_1",  &e_pad_5[0]);
   fChain->SetBranchAddress("ADC2_2",  &e_pad_5[1]);
   fChain->SetBranchAddress("ADC2_3",  &e_pad_5[2]);
   fChain->SetBranchAddress("ADC2_4",  &e_pad_5[3]);
   fChain->SetBranchAddress("ADC2_5",  &e_pad_5[4]);
   fChain->SetBranchAddress("ADC2_6",  &e_pad_5[5]);
   fChain->SetBranchAddress("ADC2_7",  &e_pad_5[6]);
//   fChain->SetBranchAddress("ADC2_8",  &);
//   fChain->SetBranchAddress("ADC2_9",  &);
//   fChain->SetBranchAddress("ADC2_10", &);
//   fChain->SetBranchAddress("ADC2_11", &);
//   fChain->SetBranchAddress("ADC2_12", &);
//   fChain->SetBranchAddress("ADC2_13", &);
//   fChain->SetBranchAddress("ADC2_14", &);
//   fChain->SetBranchAddress("ADC2_15", &);
//   fChain->SetBranchAddress("ADC2_16", &);
   fChain->SetBranchAddress("ADC2_17", &e_pad_6[0]);
   fChain->SetBranchAddress("ADC2_18", &e_pad_6[1]);
   fChain->SetBranchAddress("ADC2_19", &e_pad_6[2]);
   fChain->SetBranchAddress("ADC2_20", &e_pad_6[3]);
   fChain->SetBranchAddress("ADC2_21", &e_pad_6[4]);
   fChain->SetBranchAddress("ADC2_22", &e_pad_6[5]);
   fChain->SetBranchAddress("ADC2_23", &e_pad_6[6]);
//   fChain->SetBranchAddress("ADC2_24", &);
//   fChain->SetBranchAddress("ADC2_25", &);
//   fChain->SetBranchAddress("ADC2_26", &);
//   fChain->SetBranchAddress("ADC2_27", &);
//   fChain->SetBranchAddress("ADC2_28", &);
//   fChain->SetBranchAddress("ADC2_29", &);
//   fChain->SetBranchAddress("ADC2_30", &);
//   fChain->SetBranchAddress("ADC2_31", &);
//   fChain->SetBranchAddress("ADC2_32", &);
   fChain->SetBranchAddress("ADC3_1",  &e_dssd_left);
   fChain->SetBranchAddress("ADC3_2",  &e_dssd_right);
   fChain->SetBranchAddress("ADC3_3",  &e_dssd_top);
   fChain->SetBranchAddress("ADC3_4",  &e_dssd_bottom);
//   fChain->SetBranchAddress("ADC3_5",  &);
//   fChain->SetBranchAddress("ADC3_6",  &);
   fChain->SetBranchAddress("ADC3_7",  &e_csi[0]);
   fChain->SetBranchAddress("ADC3_8",  &e_csi[1]);
//   fChain->SetBranchAddress("ADC3_9",  &);
//   fChain->SetBranchAddress("ADC3_10", &);
   fChain->SetBranchAddress("ADC3_11", &e_pad_n[1]);
   fChain->SetBranchAddress("ADC3_12", &e_pad_n[2]);
   fChain->SetBranchAddress("ADC3_13", &e_pad_n[3]);
   fChain->SetBranchAddress("ADC3_14", &e_pad_n[4]);
   fChain->SetBranchAddress("ADC3_15", &e_pad_n[5]);
   fChain->SetBranchAddress("ADC3_16", &e_pad_n[6]);
//   fChain->SetBranchAddress("ADC3_17", &);
//   fChain->SetBranchAddress("ADC3_18", &);
//   fChain->SetBranchAddress("ADC3_19", &);
//   fChain->SetBranchAddress("ADC3_20", &);
//   fChain->SetBranchAddress("ADC3_21", &);
//   fChain->SetBranchAddress("ADC3_22", &);
//   fChain->SetBranchAddress("ADC3_23", &);
//   fChain->SetBranchAddress("ADC3_24", &);
//   fChain->SetBranchAddress("ADC3_25", &);
//   fChain->SetBranchAddress("ADC3_26", &);
//   fChain->SetBranchAddress("ADC3_27", &);
//   fChain->SetBranchAddress("ADC3_28", &);
//   fChain->SetBranchAddress("ADC3_29", &);
//   fChain->SetBranchAddress("ADC3_30", &);
//   fChain->SetBranchAddress("ADC3_31", &);
//   fChain->SetBranchAddress("ADC3_32", &);
   fChain->SetBranchAddress("SC1",     &sc_master_trig);
   fChain->SetBranchAddress("SC2",     &sc_silicon_or);
   fChain->SetBranchAddress("SC3",     &sc_mwpc_raw);
   fChain->SetBranchAddress("SC4",     &sc_u_cool);
   fChain->SetBranchAddress("SC5",     &sc_i_cool);
   fChain->SetBranchAddress("SC6",     &sc_trafo);
   fChain->SetBranchAddress("SC7",     &sc_inhibit);
   fChain->SetBranchAddress("SC8",     &sc_mwpc_anode);
   fChain->SetBranchAddress("SC9",     &sc_mwpc_x1);
   fChain->SetBranchAddress("SC10",    &sc_mwpc_x2);
   fChain->SetBranchAddress("SC11",    &sc_mwpc_y1);
   fChain->SetBranchAddress("SC12",    &sc_mwpc_y2);
   fChain->SetBranchAddress("SC13",    &sc_clock);
   fChain->SetBranchAddress("SC14",    &sc_target);
   fChain->SetBranchAddress("SC15",    &sc_trig_1);
   fChain->SetBranchAddress("SC16",    &sc_trig_2);
//   fChain->SetBranchAddress("SC17",    &);
//   fChain->SetBranchAddress("SC18",    &);
//   fChain->SetBranchAddress("SC19",    &);
//   fChain->SetBranchAddress("SC20",    &);
//   fChain->SetBranchAddress("SC21",    &);
//   fChain->SetBranchAddress("SC22",    &);
//   fChain->SetBranchAddress("SC23",    &);
//   fChain->SetBranchAddress("SC24",    &);
//   fChain->SetBranchAddress("SC25",    &);
//   fChain->SetBranchAddress("SC26",    &);
//   fChain->SetBranchAddress("SC27",    &);
//   fChain->SetBranchAddress("SC28",    &);
//   fChain->SetBranchAddress("SC29",    &);
//   fChain->SetBranchAddress("SC30",    &);
//   fChain->SetBranchAddress("SC31",    &);
//   fChain->SetBranchAddress("SC32",    &);
   fChain->SetBranchAddress("TDC1",    &t_mwpc_anode);
   fChain->SetBranchAddress("TDC2",    &t_mwpc_x1);
   fChain->SetBranchAddress("TDC3",    &t_mwpc_x2);
   fChain->SetBranchAddress("TDC4",    &t_mwpc_y1);
   fChain->SetBranchAddress("TDC5",    &t_mwpc_y2);
   fChain->SetBranchAddress("TDC6",    &t_mwpc_raw);
//   fChain->SetBranchAddress("TDC7",    &t_);
   fChain->SetBranchAddress("TDC8",    &t_master_trig);
   fChain->SetBranchAddress("TDC9",    &t_trig_1);
   fChain->SetBranchAddress("TDC10",   &t_trig_2);
   fChain->SetBranchAddress("TB_SI_IN",    &TB_SI_IN);
   fChain->SetBranchAddress("TB_SI_RED",   &TB_SI_RED);
   fChain->SetBranchAddress("TB_MWPC_IN",  &TB_MWPC_IN);
   fChain->SetBranchAddress("TB_MWPC_RED", &TB_MWPC_RED);
Attachment 3: e121_raw.h  11 kB  | Show | Hide all | Show all
ELOG V3.1.5-fc6679b