HOME ESR EXPERIMENTS LABS etc
E121 E127 E132 E125 E143 laser_cooling_2021 E142 Ê128 E146 E0052 E0018 E0028 E0038
  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  | Hide | Hide all | Show all
#define e121_analysis_cxx

// INPUT FILES
#define INPUT1 "/data.local1/E121/root-files/part1/e121_run_0253.root"
//#define INPUT2 ""
//#define INPUT3 ""
//#define INPUT4 ""
//#define INPUT5 ""
//#define INPUT6 ""
//#define INPUT7 ""
//#define INPUT8 ""
//#define INPUT9 ""
//#define INPUT10 ""

//OUTPUT FILE
#define OUTPUT "run253.ana.root"

#include <TH2.h>
#include <TStyle.h>
#include <TCanvas.h>
#include <cmath>
#include <string>
#include <cstdlib>
#include <cstdio>
#include <ctime>
#include <fstream>
#include <iostream>
#include <stdint.h>
#include "TROOT.h"
#include "TAttText.h"
#include "TAxis.h"
#include "TCanvas.h"
#include "TChain.h"
#include "TCut.h"
#include "TF1.h"
#include "TFile.h"
#include "TGraph.h"
#include "TGraphAsymmErrors.h"
#include "TGraphErrors.h"
#include "TH1.h"
#include "THistPainter.h"
#include "TKey.h"
#include "TLatex.h"
#include "TLegend.h"
#include "TMath.h"
#include "TMatrixD.h"
#include "TMinuit.h"
#include "TMultiGraph.h"
#include "TNtuple.h"
#include "TPave.h"
#include "TPaveText.h"
#include "TPoint.h"
#include "TRandom.h"
#include "TRint.h"
#include "TString.h"
#include "TTree.h"
#include "TH1F.h"
#include "TH2F.h"
#include "TSystem.h"
#include "TProfile.h"
#include "TVirtualFitter.h"
#include "TLegend.h"
#include "TColor.h"
#include "TBranch.h"
#include "TList.h"

using namespace std;

void loop(TChain *fChain)
{
  if (fChain == 0) return;
  
  //#include "e121_raw.h" // use this for raw mapping of channels
#include "e121_mapped.h"  // use this for mapped channel names 

  ///////////////////////////
  // histogram definitions //
  ///////////////////////////
  // energy
  TList *e_histo= new TList();
    
  TH1D *h_e_pad_1[7];
  TH1D *h_e_pad_2[7];
  TH1D *h_e_pad_3[7];
  TH1D *h_e_pad_4[7];
  TH1D *h_e_pad_5[7];
  TH1D *h_e_pad_6[7];
  TH1D *h_e_pad_n[7];
  TH1D *h_e_pad_n_lo[7];
  TH1D *h_e_pad_n_hi[7];

  
  char chnumber[300];
  for (int i=0;i<7;i++)
    {
      sprintf(chnumber,"e_pad_1_strip_%d",i);
      h_e_pad_1[i]=new TH1D(chnumber,chnumber,4096,0.5,4096.5);
      e_histo->Add(h_e_pad_1[i]);

      sprintf(chnumber,"e_pad_2_strip_%d",i);
      h_e_pad_2[i]=new TH1D(chnumber,chnumber,4096,0.5,4096.5);
      e_histo->Add(h_e_pad_2[i]);
      
      sprintf(chnumber,"e_pad_3_strip_%d",i);
      h_e_pad_3[i]=new TH1D(chnumber,chnumber,4096,0.5,4096.5);
      e_histo->Add(h_e_pad_3[i]);
      
      sprintf(chnumber,"e_pad_4_strip_%d",i);
      h_e_pad_4[i]=new TH1D(chnumber,chnumber,4096,0.5,4096.5);
      e_histo->Add(h_e_pad_4[i]);
      
      sprintf(chnumber,"e_pad_5_strip_%d",i);
      h_e_pad_5[i]=new TH1D(chnumber,chnumber,4096,0.5,4096.5);
      e_histo->Add(h_e_pad_5[i]);
      
      sprintf(chnumber,"e_pad_6_strip_%d",i);
      h_e_pad_6[i]=new TH1D(chnumber,chnumber,4096,0.5,4096.5);
      e_histo->Add(h_e_pad_6[i]);
      
      sprintf(chnumber,"e_pad_%d_n-side",i);
      h_e_pad_n[i]=new TH1D(chnumber,chnumber,4096,0.5,4096.5);
      e_histo->Add(h_e_pad_n[i]);

      sprintf(chnumber,"e_pad_%d_n-side_lo",i);
      h_e_pad_n_lo[i]=new TH1D(chnumber,chnumber,4096,0.5,4096.5);
      e_histo->Add(h_e_pad_n_lo[i]);

      sprintf(chnumber,"e_pad_%d_n-side_hi",i);
      h_e_pad_n_hi[i]=new TH1D(chnumber,chnumber,4096,0.5,4096.5);
      e_histo->Add(h_e_pad_n_hi[i]);
    }

  TH1D *h_e_dssd_left=new TH1D("e_dssd_left","e_dssd_left",4096,0.5,4096.5);
  e_histo->Add(h_e_dssd_left);
  TH1D *h_e_dssd_right=new TH1D("e_dssd_right","e_dssd_right",4096,0.5,4096.5);
  e_histo->Add(h_e_dssd_right);
  TH1D *h_e_dssd_top=new TH1D("e_dssd_top","e_dssd_top",4096,0.5,4096.5);
  e_histo->Add(h_e_dssd_top);
  TH1D *h_e_dssd_bottom=new TH1D("e_dssd_bottom","e_dssd_bottom",4096,0.5,4096.5);
  e_histo->Add(h_e_dssd_bottom);

  TH1D *h_e_csi[2];
  h_e_csi[0]=new TH1D("e_csi_0","e_csi_0",4096,0.5,4096.5);
  e_histo->Add(h_e_csi[0]);
  h_e_csi[1]=new TH1D("e_csi_1","e_csi_1",4096,0.5,4096.5);
  e_histo->Add(h_e_csi[1]);
  
  // position
   
  
  // time
    
  
  // scaler
  TList *sc_histo= new TList();
    
  Int_t sc_bins = 500;
  TGraph *g_sc_si=new TGraph();
  g_sc_si->SetNameTitle("g_sc_si", "rate Si OR");
  sc_histo->Add(g_sc_si);
  TGraph *g_sc_mwpc=new TGraph();
  g_sc_mwpc->SetNameTitle("g_sc_mwpc", "rate MWPC anode");
  sc_histo->Add(g_sc_mwpc);
  TGraph *g_sc_target=new TGraph();
  g_sc_target->SetNameTitle("g_sc_target", "target density");
  sc_histo->Add(g_sc_target);
  TGraph *g_sc_trafo=new TGraph();
  g_sc_trafo->SetNameTitle("g_sc_trafo", "ESR ion current");
  sc_histo->Add(g_sc_trafo);
  TGraph *g_sc_inhibit=new TGraph();
  g_sc_inhibit->SetNameTitle("g_sc_inhibit", "target inhibit");
  sc_histo->Add(g_sc_inhibit);
  TGraph *g_sc_clock=new TGraph();
  g_sc_clock->SetNameTitle("g_sc_clock", "1.5 MHz clock");
  sc_histo->Add(g_sc_clock);
  
  
  ULong64_t sc_si_sum = 0;
  ULong64_t sc_mwpc_sum = 0;
  ULong64_t sc_clock_sum = 0;
  ULong64_t sc_target_sum = 0;
  ULong64_t sc_trafo_sum = 0;
  ULong64_t sc_inhibit_sum = 0;
  
  Int_t sc_interval = 1; //interval time [sec] for scaler plotting
  Double_t clock_ref = 1.5e6; // clock reference rate = 1.5 MHz
  Double_t t_diff = 0;
  Double_t t_elapsed = 0;
  
  // get number of events to process
  Long64_t nentries = fChain->GetEntries();
  Long64_t nbytes = 0, nb = 0;

  //////////////////////
  // EVENT LOOP START //
  //////////////////////
  for (Long64_t i=0; i<nentries;i++)
  //  for (Long64_t i=0; i<10000;i++)
    {
      nb = fChain->GetEntry(i);   nbytes += nb;

      // event countdown
      if ((float(i)/100000.)==int(i/100000)){cout << "event: " << i << " \tof " << nentries << endl;}

      //////////////////////
      //scaler processing //
      //////////////////////
      sc_si_sum += sc_silicon_or;
      sc_mwpc_sum += sc_mwpc_anode;
      sc_clock_sum += sc_clock;
      sc_target_sum += sc_target;
      sc_trafo_sum += sc_trafo;
      sc_inhibit_sum += sc_inhibit;
      t_elapsed += (double)(sc_clock/clock_ref);
      t_diff = (double)(sc_clock_sum/clock_ref); 

      // fill the scaler sums to histo for very interval 
      if( !((int)t_diff % sc_interval) && (int)t_diff > 0 )
      //if( true )
	{

	  if ( (int)t_diff <= 2*sc_interval ) //exclude large time intervals >> crap data
	    {

//	      cout << "time: " << t_elapsed << " trafo:" << sc_trafo_sum;
//	      cout << " diff: " << t_diff << " modulo: " << ((int)t_diff % sc_interval) << endl;
	      
	      g_sc_si->SetPoint(g_sc_si->GetN()          ,t_elapsed, sc_si_sum);
	      g_sc_mwpc->SetPoint(g_sc_mwpc->GetN()      ,t_elapsed, sc_mwpc_sum);
	      g_sc_target->SetPoint(g_sc_target->GetN()  ,t_elapsed, sc_target_sum);
	      g_sc_trafo->SetPoint(g_sc_trafo->GetN()    ,t_elapsed, sc_trafo_sum);
	      g_sc_inhibit->SetPoint(g_sc_inhibit->GetN(),t_elapsed, sc_inhibit_sum);
	      g_sc_clock->SetPoint(g_sc_clock->GetN()    ,t_elapsed, sc_clock_sum);
	    }
	  
	  sc_si_sum = 0;
	  sc_mwpc_sum = 0;
	  sc_clock_sum = 0;
	  sc_target_sum = 0;
	  sc_trafo_sum = 0;
	  sc_inhibit_sum = 0;
	}
	
      ////////////////////
      // energy spectra //
      ////////////////////
      if(TRIGGER==1) 
	{
	  for (int i=0;i<7;i++)
	    {
	      h_e_pad_1[i]->Fill(e_pad_1[i]);
	      h_e_pad_2[i]->Fill(e_pad_2[i]);
	      h_e_pad_3[i]->Fill(e_pad_3[i]);
	      h_e_pad_4[i]->Fill(e_pad_4[i]);
	      h_e_pad_5[i]->Fill(e_pad_5[i]);
	      h_e_pad_6[i]->Fill(e_pad_6[i]);
	      if ( i > 0 )
		{
		  h_e_pad_n[i]->Fill(e_pad_n[i]);
		  if ( t_elapsed >= 30  && t_elapsed <= 100 ) h_e_pad_n_hi[i]->Fill(e_pad_n[i]);
		  if ( t_elapsed >= 250 && t_elapsed <= 350 ) h_e_pad_n_lo[i]->Fill(e_pad_n[i]);
		}
	    }
	}


      
    }
  ////////////////////
  // EVENT LOOP END //
  ////////////////////

  // write output file
  
  TFile *outfile = TFile::Open(OUTPUT, "RECREATE");

  e_histo->Write("energy", TObject::kSingleKey);
  sc_histo->Write("scaler", TObject::kSingleKey);
  
  outfile->Close();
  
  cout << "\033[0;32m" << OUTPUT << " is created!\033[0m" << endl;
   
  // direct plotting (optional)

    TCanvas *c_test = new TCanvas("test","test", 1000, 1200);
    c_test->Divide(1,5); 
    c_test->cd(1);
    g_sc_si->SetFillColor(15);
    g_sc_si->Draw("AB");
    c_test->cd(2);
    g_sc_mwpc->SetFillColor(15);
    g_sc_mwpc->Draw("AB");
    c_test->cd(3);
    g_sc_target->SetFillColor(15);
    g_sc_target->Draw("AB");
    c_test->cd(4);
    g_sc_trafo->SetFillColor(15);
    g_sc_trafo->Draw("AB");
    c_test->cd(5);
... 108 more lines ...
Attachment 2: e121_mapped.h  8 kB  | Show | Hide all | Show all
Attachment 3: e121_raw.h  11 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
UInt_t          TRIGGER; //
UInt_t          EVENTNO; //
   UInt_t          ADC1_1;
   UInt_t          ADC1_2;
   UInt_t          ADC1_3;
   UInt_t          ADC1_4;
   UInt_t          ADC1_5;
   UInt_t          ADC1_6;
   UInt_t          ADC1_7;
   UInt_t          ADC1_8;
   UInt_t          ADC1_9;
   UInt_t          ADC1_10;
   UInt_t          ADC1_11;
   UInt_t          ADC1_12;
   UInt_t          ADC1_13;
   UInt_t          ADC1_14;
   UInt_t          ADC1_15;
   UInt_t          ADC1_16;
   UInt_t          ADC1_17;
   UInt_t          ADC1_18;
   UInt_t          ADC1_19;
   UInt_t          ADC1_20;
   UInt_t          ADC1_21;
   UInt_t          ADC1_22;
   UInt_t          ADC1_23;
   UInt_t          ADC1_24;
   UInt_t          ADC1_25;
   UInt_t          ADC1_26;
   UInt_t          ADC1_27;
   UInt_t          ADC1_28;
   UInt_t          ADC1_29;
   UInt_t          ADC1_30;
   UInt_t          ADC1_31;
   UInt_t          ADC1_32;
   UInt_t          ADC2_1;
   UInt_t          ADC2_2;
   UInt_t          ADC2_3;
   UInt_t          ADC2_4;
   UInt_t          ADC2_5;
   UInt_t          ADC2_6;
   UInt_t          ADC2_7;
   UInt_t          ADC2_8;
   UInt_t          ADC2_9;
   UInt_t          ADC2_10;
   UInt_t          ADC2_11;
   UInt_t          ADC2_12;
   UInt_t          ADC2_13;
   UInt_t          ADC2_14;
   UInt_t          ADC2_15;
   UInt_t          ADC2_16;
   UInt_t          ADC2_17;
   UInt_t          ADC2_18;
   UInt_t          ADC2_19;
   UInt_t          ADC2_20;
   UInt_t          ADC2_21;
   UInt_t          ADC2_22;
   UInt_t          ADC2_23;
   UInt_t          ADC2_24;
   UInt_t          ADC2_25;
   UInt_t          ADC2_26;
   UInt_t          ADC2_27;
   UInt_t          ADC2_28;
   UInt_t          ADC2_29;
   UInt_t          ADC2_30;
   UInt_t          ADC2_31;
   UInt_t          ADC2_32;
   UInt_t          ADC3_1;
   UInt_t          ADC3_2;
   UInt_t          ADC3_3;
   UInt_t          ADC3_4;
   UInt_t          ADC3_5;
   UInt_t          ADC3_6;
   UInt_t          ADC3_7;
   UInt_t          ADC3_8;
   UInt_t          ADC3_9;
   UInt_t          ADC3_10;
   UInt_t          ADC3_11;
   UInt_t          ADC3_12;
   UInt_t          ADC3_13;
   UInt_t          ADC3_14;
   UInt_t          ADC3_15;
   UInt_t          ADC3_16;
   UInt_t          ADC3_17;
   UInt_t          ADC3_18;
   UInt_t          ADC3_19;
   UInt_t          ADC3_20;
   UInt_t          ADC3_21;
   UInt_t          ADC3_22;
   UInt_t          ADC3_23;
   UInt_t          ADC3_24;
   UInt_t          ADC3_25;
   UInt_t          ADC3_26;
   UInt_t          ADC3_27;
   UInt_t          ADC3_28;
   UInt_t          ADC3_29;
   UInt_t          ADC3_30;
   UInt_t          ADC3_31;
   UInt_t          ADC3_32;
   UInt_t          SC1;
   UInt_t          SC2;
   UInt_t          SC3;
   UInt_t          SC4;
   UInt_t          SC5;
   UInt_t          SC6;
   UInt_t          SC7;
   UInt_t          SC8;
   UInt_t          SC9;
   UInt_t          SC10;
   UInt_t          SC11;
   UInt_t          SC12;
   UInt_t          SC13;
   UInt_t          SC14;
   UInt_t          SC15;
   UInt_t          SC16;
   UInt_t          SC17;
   UInt_t          SC18;
   UInt_t          SC19;
   UInt_t          SC20;
   UInt_t          SC21;
   UInt_t          SC22;
   UInt_t          SC23;
   UInt_t          SC24;
   UInt_t          SC25;
   UInt_t          SC26;
   UInt_t          SC27;
   UInt_t          SC28;
   UInt_t          SC29;
   UInt_t          SC30;
   UInt_t          SC31;
   UInt_t          SC32;
   UInt_t          TDC1;
   UInt_t          TDC2;
   UInt_t          TDC3;
   UInt_t          TDC4;
   UInt_t          TDC5;
   UInt_t          TDC6;
   UInt_t          TDC7;
   UInt_t          TDC8;
   UInt_t          TDC9;
   UInt_t          TDC10;
   UInt_t          TB_SI_IN;
   UInt_t          TB_SI_RED;
   UInt_t          TB_MWPC_IN;
   UInt_t          TB_MWPC_RED;

// Set branch addresses
   fChain->SetBranchAddress("TRIGGER", &TRIGGER );
   fChain->SetBranchAddress("EVENTNO", &EVENTNO	);
   fChain->SetBranchAddress("ADC1_1",  &ADC1_1	);
   fChain->SetBranchAddress("ADC1_2",  &ADC1_2	);
   fChain->SetBranchAddress("ADC1_3",  &ADC1_3	);
   fChain->SetBranchAddress("ADC1_4",  &ADC1_4	);
   fChain->SetBranchAddress("ADC1_5",  &ADC1_5	);
   fChain->SetBranchAddress("ADC1_6",  &ADC1_6	);
   fChain->SetBranchAddress("ADC1_7",  &ADC1_7	);
   fChain->SetBranchAddress("ADC1_8",  &ADC1_8	);
   fChain->SetBranchAddress("ADC1_9",  &ADC1_9	);
   fChain->SetBranchAddress("ADC1_10", &ADC1_10	);
   fChain->SetBranchAddress("ADC1_11", &ADC1_11	);
   fChain->SetBranchAddress("ADC1_12", &ADC1_12	);
   fChain->SetBranchAddress("ADC1_13", &ADC1_13	);
   fChain->SetBranchAddress("ADC1_14", &ADC1_14	);
   fChain->SetBranchAddress("ADC1_15", &ADC1_15	);
   fChain->SetBranchAddress("ADC1_16", &ADC1_16	);
   fChain->SetBranchAddress("ADC1_17", &ADC1_17	);
   fChain->SetBranchAddress("ADC1_18", &ADC1_18	);
   fChain->SetBranchAddress("ADC1_19", &ADC1_19	);
   fChain->SetBranchAddress("ADC1_20", &ADC1_20	);
   fChain->SetBranchAddress("ADC1_21", &ADC1_21 );
   fChain->SetBranchAddress("ADC1_22", &ADC1_22	);
   fChain->SetBranchAddress("ADC1_23", &ADC1_23	);
   fChain->SetBranchAddress("ADC1_24", &ADC1_24	);
   fChain->SetBranchAddress("ADC1_25", &ADC1_25	);
   fChain->SetBranchAddress("ADC1_26", &ADC1_26	);
   fChain->SetBranchAddress("ADC1_27", &ADC1_27	);
   fChain->SetBranchAddress("ADC1_28", &ADC1_28	);
   fChain->SetBranchAddress("ADC1_29", &ADC1_29	);
   fChain->SetBranchAddress("ADC1_30", &ADC1_30	);
   fChain->SetBranchAddress("ADC1_31", &ADC1_31	);
   fChain->SetBranchAddress("ADC1_32", &ADC1_32	);
   fChain->SetBranchAddress("ADC2_1",  &ADC2_1	);
   fChain->SetBranchAddress("ADC2_2",  &ADC2_2	);
   fChain->SetBranchAddress("ADC2_3",  &ADC2_3	);
   fChain->SetBranchAddress("ADC2_4",  &ADC2_4	);
   fChain->SetBranchAddress("ADC2_5",  &ADC2_5	);
   fChain->SetBranchAddress("ADC2_6",  &ADC2_6	);
   fChain->SetBranchAddress("ADC2_7",  &ADC2_7	);
   fChain->SetBranchAddress("ADC2_8",  &ADC2_8	);
   fChain->SetBranchAddress("ADC2_9",  &ADC2_9	);
   fChain->SetBranchAddress("ADC2_10", &ADC2_10	);
   fChain->SetBranchAddress("ADC2_11", &ADC2_11 );
   fChain->SetBranchAddress("ADC2_12", &ADC2_12	);
   fChain->SetBranchAddress("ADC2_13", &ADC2_13	);
   fChain->SetBranchAddress("ADC2_14", &ADC2_14	);
   fChain->SetBranchAddress("ADC2_15", &ADC2_15	);
   fChain->SetBranchAddress("ADC2_16", &ADC2_16	);
   fChain->SetBranchAddress("ADC2_17", &ADC2_17	);
   fChain->SetBranchAddress("ADC2_18", &ADC2_18	);
   fChain->SetBranchAddress("ADC2_19", &ADC2_19	);
   fChain->SetBranchAddress("ADC2_20", &ADC2_20	);
   fChain->SetBranchAddress("ADC2_21", &ADC2_21	);
   fChain->SetBranchAddress("ADC2_22", &ADC2_22	);
   fChain->SetBranchAddress("ADC2_23", &ADC2_23	);
   fChain->SetBranchAddress("ADC2_24", &ADC2_24	);
   fChain->SetBranchAddress("ADC2_25", &ADC2_25	);
   fChain->SetBranchAddress("ADC2_26", &ADC2_26	);
   fChain->SetBranchAddress("ADC2_27", &ADC2_27	);
   fChain->SetBranchAddress("ADC2_28", &ADC2_28	);
   fChain->SetBranchAddress("ADC2_29", &ADC2_29	);
   fChain->SetBranchAddress("ADC2_30", &ADC2_30	);
   fChain->SetBranchAddress("ADC2_31", &ADC2_31	);
   fChain->SetBranchAddress("ADC2_32", &ADC2_32	);
   fChain->SetBranchAddress("ADC3_1",  &ADC3_1  );
   fChain->SetBranchAddress("ADC3_2",  &ADC3_2	);
   fChain->SetBranchAddress("ADC3_3",  &ADC3_3	);
   fChain->SetBranchAddress("ADC3_4",  &ADC3_4	);
   fChain->SetBranchAddress("ADC3_5",  &ADC3_5	);
   fChain->SetBranchAddress("ADC3_6",  &ADC3_6	);
   fChain->SetBranchAddress("ADC3_7",  &ADC3_7	);
   fChain->SetBranchAddress("ADC3_8",  &ADC3_8	);
   fChain->SetBranchAddress("ADC3_9",  &ADC3_9	);
   fChain->SetBranchAddress("ADC3_10", &ADC3_10	);
   fChain->SetBranchAddress("ADC3_11", &ADC3_11	);
   fChain->SetBranchAddress("ADC3_12", &ADC3_12	);
   fChain->SetBranchAddress("ADC3_13", &ADC3_13	);
   fChain->SetBranchAddress("ADC3_14", &ADC3_14	);
   fChain->SetBranchAddress("ADC3_15", &ADC3_15	);
   fChain->SetBranchAddress("ADC3_16", &ADC3_16	);
   fChain->SetBranchAddress("ADC3_17", &ADC3_17	);
   fChain->SetBranchAddress("ADC3_18", &ADC3_18	);
   fChain->SetBranchAddress("ADC3_19", &ADC3_19	);
   fChain->SetBranchAddress("ADC3_20", &ADC3_20	);
   fChain->SetBranchAddress("ADC3_21", &ADC3_21	);
   fChain->SetBranchAddress("ADC3_22", &ADC3_22	);
   fChain->SetBranchAddress("ADC3_23", &ADC3_23 );
   fChain->SetBranchAddress("ADC3_24", &ADC3_24	);
   fChain->SetBranchAddress("ADC3_25", &ADC3_25	);
   fChain->SetBranchAddress("ADC3_26", &ADC3_26	);
   fChain->SetBranchAddress("ADC3_27", &ADC3_27	);
   fChain->SetBranchAddress("ADC3_28", &ADC3_28	);
   fChain->SetBranchAddress("ADC3_29", &ADC3_29	);
   fChain->SetBranchAddress("ADC3_30", &ADC3_30	);
   fChain->SetBranchAddress("ADC3_31", &ADC3_31	);
   fChain->SetBranchAddress("ADC3_32", &ADC3_32	);
   fChain->SetBranchAddress("SC1",     &SC1	);
   fChain->SetBranchAddress("SC2",     &SC2	);
   fChain->SetBranchAddress("SC3",     &SC3	);
   fChain->SetBranchAddress("SC4",     &SC4	);
   fChain->SetBranchAddress("SC5",     &SC5	);
   fChain->SetBranchAddress("SC6",     &SC6	);
   fChain->SetBranchAddress("SC7",     &SC7	);
   fChain->SetBranchAddress("SC8",     &SC8	);
   fChain->SetBranchAddress("SC9",     &SC9	);
   fChain->SetBranchAddress("SC10",    &SC10	);
   fChain->SetBranchAddress("SC11",    &SC11	);
   fChain->SetBranchAddress("SC12",    &SC12	);
   fChain->SetBranchAddress("SC13",    &SC13    );
   fChain->SetBranchAddress("SC14",    &SC14	);
   fChain->SetBranchAddress("SC15",    &SC15	);
   fChain->SetBranchAddress("SC16",    &SC16	);
   fChain->SetBranchAddress("SC17",    &SC17	);
   fChain->SetBranchAddress("SC18",    &SC18	);
   fChain->SetBranchAddress("SC19",    &SC19	);
   fChain->SetBranchAddress("SC20",    &SC20    );
   fChain->SetBranchAddress("SC21",    &SC21    );
   fChain->SetBranchAddress("SC22",    &SC22    );
   fChain->SetBranchAddress("SC23",    &SC23    );
   fChain->SetBranchAddress("SC24",    &SC24    );
   fChain->SetBranchAddress("SC25",    &SC25    );
   fChain->SetBranchAddress("SC26",    &SC26    );
   fChain->SetBranchAddress("SC27",    &SC27    );
   fChain->SetBranchAddress("SC28",    &SC28    );
   fChain->SetBranchAddress("SC29",    &SC29    );
   fChain->SetBranchAddress("SC30",    &SC30    );
   fChain->SetBranchAddress("SC31",    &SC31    );
   fChain->SetBranchAddress("SC32",    &SC32    );
   fChain->SetBranchAddress("TDC1",    &TDC1    );
   fChain->SetBranchAddress("TDC2",    &TDC2    );
   fChain->SetBranchAddress("TDC3",    &TDC3    );
   fChain->SetBranchAddress("TDC4",    &TDC4    );
   fChain->SetBranchAddress("TDC5",    &TDC5    );
   fChain->SetBranchAddress("TDC6",    &TDC6    );
   fChain->SetBranchAddress("TDC7",    &TDC7    );
   fChain->SetBranchAddress("TDC8",    &TDC8    );
   fChain->SetBranchAddress("TDC9",    &TDC9    );
   fChain->SetBranchAddress("TDC10",   &TDC10   );
   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);
ELOG V3.1.5-fc6679b