From 812ae99c3cb274689aa3c6664268c35abd7f7881 Mon Sep 17 00:00:00 2001 From: Vardan Tadevosyan <tadevosn@jlab.org> Date: Mon, 20 Oct 2014 10:18:11 -0400 Subject: [PATCH] Add a script for event-by-event comparison of energies of the best track in Engine and the golden track in hcana. Add directory examples/gtrk_e holding the code. --- examples/gtrk_e/comp_gtrk_e.C | 200 +++++++++ examples/gtrk_e/engine_class.C | 43 ++ examples/gtrk_e/engine_class.h | 255 +++++++++++ examples/gtrk_e/hcana_class.C | 43 ++ examples/gtrk_e/hcana_class.h | 684 +++++++++++++++++++++++++++++ examples/gtrk_e/hms52949_rz.root | 1 + examples/gtrk_e/hodtest_52949.root | 1 + examples/gtrk_e/make_class.C | 17 + 8 files changed, 1244 insertions(+) create mode 100644 examples/gtrk_e/comp_gtrk_e.C create mode 100644 examples/gtrk_e/engine_class.C create mode 100644 examples/gtrk_e/engine_class.h create mode 100644 examples/gtrk_e/hcana_class.C create mode 100644 examples/gtrk_e/hcana_class.h create mode 120000 examples/gtrk_e/hms52949_rz.root create mode 120000 examples/gtrk_e/hodtest_52949.root create mode 100644 examples/gtrk_e/make_class.C diff --git a/examples/gtrk_e/comp_gtrk_e.C b/examples/gtrk_e/comp_gtrk_e.C new file mode 100644 index 0000000..a3e1a06 --- /dev/null +++ b/examples/gtrk_e/comp_gtrk_e.C @@ -0,0 +1,200 @@ +#define hcana_class_cxx +#define engine_class_cxx + +#include <TTree.h> +#include <TFile.h> +#include <TROOT.h> +#include <iostream> +#include <TMath.h> +#include <TLegend.h> +#include "hcana_class.h" +#include "engine_class.h" + +using namespace std; + +void comp_gtrk_e() { + + // Compare Ecalo of the golden track from Engine and hcana. + + // hcana tree + + hcana_class* hcana_tree = new hcana_class(0); + + Long64_t hcana_nentries = hcana_tree->fChain->GetEntriesFast(); + cout << "hcana_nentries = " << hcana_nentries << endl; + + // hcana_tree->fChain->SetBranchStatus("*",0); // disable all branches + // hcana_tree->fChain->SetBranchStatus("*H.gold.e",1); // activate branchname + // hcana_tree->fChain->SetBranchStatus("*H.gold.p",1); + // hcana_tree->fChain->SetBranchStatus("*H.gold.index",1); + // hcana_tree->fChain->SetBranchStatus("*H.tr.n",1); + // hcana_tree->fChain->SetBranchStatus("*g.evtyp",1); + // hcana_tree->fChain->SetBranchStatus("*fEvtHdr.fEvtType",1); + // hcana_tree->fChain->SetBranchStatus("*fEvtHdr.fEvtNum",1); + + // Engine tree + + engine_class* engine_tree = new engine_class(0); + + Long64_t engine_nentries = engine_tree->fChain->GetEntriesFast(); + cout << "engine_nentries = " << engine_nentries << endl; + + // engine_tree->fChain->SetBranchStatus("*",0); + // engine_tree->fChain->SetBranchStatus("*hstrk_et",1); + // engine_tree->fChain->SetBranchStatus("*hsp",1); + // engine_tree->fChain->SetBranchStatus("*ev_type",1); + // engine_tree->fChain->SetBranchStatus("*eventid",1); + // engine_tree->fChain->SetBranchStatus("*hstrk_in",1); + // engine_tree->fChain->SetBranchStatus("*hntracks",1); + + // Histograms. + + TH1F* he_hcana = new TH1F("e_hcana", "Golden track Ecalo", + 100, 0.011, 1.8); + he_hcana->SetLineColor(kRed); + + TH1F* he_engine = (TH1F*) he_hcana->Clone("e_engine"); + he_engine->SetLineColor(kBlue); + + TH1F* ee_diff = new TH1F("ee_diff", + "Event by event hcana - Engine Ecalo difference", 200,-1.,1.); + TH1F* pp_diff = new TH1F("pp_diff","Event by event P difference", + 200,-1.,1.); + TH2F* pvse_diff = new TH2F("pvse_diff","Event by event P vs Ecalo difference", + 200,-1.,1., 200,-100.,100.); + pvse_diff->SetMarkerStyle(3); + TH2F* evse = new TH2F("evse","Event by event hcana vs Engine Ecalo", + 210,-0.1,2., 210,-0.1,2.); + evse->SetMarkerStyle(3); + + // Loop over entries. + + Long64_t nentries = TMath::Min(hcana_nentries, engine_nentries); + cout << "nentries = " << nentries << endl; + + Long64_t jentry_hcana = 0; + Long64_t jentry_engine = 0; + for (Long64_t jentry=0; jentry<nentries; jentry++) { + + hcana_tree->fChain->GetEntry(jentry_hcana++); + engine_tree->fChain->GetEntry(jentry_engine++); + + while (hcana_tree->fEvtHdr_fEvtNum > engine_tree->eventid && + jentry_engine < engine_nentries) { + engine_tree->fChain->GetEntry(jentry_engine++); + //cout<< hcana_tree->fEvtHdr_fEvtNum << " " << engine_tree->eventid << endl; + } + + while (hcana_tree->fEvtHdr_fEvtNum < engine_tree->eventid && + jentry_hcana < hcana_nentries) { + hcana_tree->fChain->GetEntry(jentry_hcana++); + //cout<< hcana_tree->fEvtHdr_fEvtNum << " " << engine_tree->eventid << endl; + } + + if (hcana_tree->fEvtHdr_fEvtType==1 && engine_tree->ev_type==1 + && hcana_tree->H_gold_index>-1 && engine_tree->hstrk_in>0 + && hcana_tree->H_gold_index == engine_tree->hstrk_in - 1) { + + he_hcana->Fill(hcana_tree->H_gold_e, 1.); + //cout << hcana_tree->H_gold_e << " " << hcana_tree->g_evtyp << " " + // << hcana_tree->fEvtHdr_fEvtType << endl; + + he_engine->Fill(engine_tree->hstrk_et, 1.); + // cout << engine_tree->hsshtrk << " " << engine_tree->ev_type << " " + // << engine_tree->eventid << endl; + + ee_diff->Fill(hcana_tree->H_gold_e - engine_tree->hstrk_et, 1.); + pp_diff->Fill(hcana_tree->H_gold_p - engine_tree->hsp, 1.); + pvse_diff->Fill(hcana_tree->H_gold_e - engine_tree->hstrk_et, + hcana_tree->H_gold_p - engine_tree->hsp, 1.); + evse->Fill(engine_tree->hstrk_et, hcana_tree->H_gold_e, 1.); + + //Debug print out. + + // if (hcana_tree->H_gold_e>0.6 && hcana_tree->H_gold_e<0.95 && + // engine_tree->hstrk_et<0.1) { + // if (hcana_tree->H_gold_e>0.6 && hcana_tree->H_gold_e<0.95 && + // TMath::Abs(engine_tree->hstrk_et - hcana_tree->H_gold_e) < 0.0001 ) { + // if (engine_tree->hstrk_et>0.6 && engine_tree->hstrk_et<0.95 && + // hcana_tree->H_gold_e<0.1) { + if (TMath::Abs(engine_tree->hstrk_et - hcana_tree->H_gold_e) < 0.65 && + TMath::Abs(engine_tree->hstrk_et - hcana_tree->H_gold_e) > 0.05 ) { + + cout << "===========================================================\n"; + cout << "Engine event " << engine_tree->eventid + << ": hstrk_et = " << engine_tree->hstrk_et + << ", hstrk_index = " << engine_tree->hstrk_in + << ", hntracks = " << engine_tree->hntracks << endl; + cout << " hsxfp = " << engine_tree->hsxfp + << ", hsyfp = " << engine_tree->hsyfp << endl; + cout << " hsxpfp= " << engine_tree->hsxpfp + << ", hsypfp= " << engine_tree->hsypfp << endl; + cout << " hsp = " << engine_tree->hsp << endl; + cout << " At calorimeter:" + << " x = " << engine_tree->hsxfp+338.69*engine_tree->hsxpfp + << " y = " << engine_tree->hsyfp+338.69*engine_tree->hsypfp + << endl; + cout << "-----------------------------------------------------------\n"; + cout << "hcana event " << hcana_tree->fEvtHdr_fEvtNum + << ": H_gold_e = " << hcana_tree->H_gold_e + << " H_gold_index = " << hcana_tree->H_gold_index + << " H_tr_n = " << hcana_tree->H_tr_n << endl; + cout << " H_gold_fp_x = " << hcana_tree->H_gold_fp_x + << " H_gold_fp_y = " << hcana_tree->H_gold_fp_y << endl; + cout << " H_gold_fp_th= " << hcana_tree->H_gold_fp_th + << " H_gold_fp_ph= " << hcana_tree->H_gold_fp_ph << endl; + cout << " H_gold_p = " << hcana_tree->H_gold_p << endl; + cout << " At calorimeter:" + << " x = " << hcana_tree->H_gold_fp_x+338.69*hcana_tree->H_gold_fp_th + << " y = " << hcana_tree->H_gold_fp_y+338.69*hcana_tree->H_gold_fp_ph + << endl; + + } + + } + + } //over entries + + // Plot. + + TCanvas* c1 = new TCanvas("c1","Golden Track E from hcana",600,750); + + c1->Divide(1,2); + c1->cd(1); + he_hcana->Draw(); + he_engine->Draw("same"); + + TLegend* leg = new TLegend(0.25, 0.70, 0.40, 0.82); + leg->AddEntry(he_hcana,"hcana","l"); + leg->AddEntry(he_engine,"Engine","l"); + leg->Draw(); + + // Difference between the histograms. + + c1->cd(2); + + TH1F* dif = he_hcana->Clone("difference"); + dif->Reset(); + dif->Add(he_hcana,he_engine,1.,-1.); + + dif->SetTitle("hcana -- Engine difference"); + dif->SetFillColor(kRed); + dif->SetLineColor(kRed); + dif->SetLineWidth(1); + dif->SetFillStyle(1111); + dif->Draw(); + + TCanvas* c2 = new TCanvas("c2","Event by event hcana - Engine Ecalo diff.", + 600,750); + + c2->Divide(1,2); + c2->cd(1); + gPad->SetLogy(); + ee_diff->Draw(); + c2->cd(2); + // gPad->SetLogy(); + // pp_diff->Draw(); + // pvse_diff->Draw(); + evse->Draw(); + +} diff --git a/examples/gtrk_e/engine_class.C b/examples/gtrk_e/engine_class.C new file mode 100644 index 0000000..b437035 --- /dev/null +++ b/examples/gtrk_e/engine_class.C @@ -0,0 +1,43 @@ +#define engine_class_cxx +#include "engine_class.h" +#include <TH2.h> +#include <TStyle.h> +#include <TCanvas.h> + +void engine_class::Loop() +{ +// In a ROOT session, you can do: +// Root > .L engine_class.C +// Root > engine_class t +// Root > t.GetEntry(12); // Fill t data members with entry number 12 +// Root > t.Show(); // Show values of entry 12 +// Root > t.Show(16); // Read and show values of entry 16 +// Root > t.Loop(); // Loop on all entries +// + +// This is the loop skeleton where: +// jentry is the global entry number in the chain +// ientry is the entry number in the current Tree +// Note that the argument to GetEntry must be: +// jentry for TChain::GetEntry +// ientry for TTree::GetEntry and TBranch::GetEntry +// +// To read only selected branches, Insert statements like: +// METHOD1: +// fChain->SetBranchStatus("*",0); // disable all branches +// fChain->SetBranchStatus("branchname",1); // activate branchname +// METHOD2: replace line +// fChain->GetEntry(jentry); //read all branches +//by b_branchname->GetEntry(ientry); //read only this branch + if (fChain == 0) return; + + Long64_t nentries = fChain->GetEntriesFast(); + + Long64_t nbytes = 0, nb = 0; + for (Long64_t jentry=0; jentry<nentries;jentry++) { + Long64_t ientry = LoadTree(jentry); + if (ientry < 0) break; + nb = fChain->GetEntry(jentry); nbytes += nb; + // if (Cut(ientry) < 0) continue; + } +} diff --git a/examples/gtrk_e/engine_class.h b/examples/gtrk_e/engine_class.h new file mode 100644 index 0000000..3a6d2e5 --- /dev/null +++ b/examples/gtrk_e/engine_class.h @@ -0,0 +1,255 @@ +////////////////////////////////////////////////////////// +// This class has been automatically generated on +// Mon Sep 29 17:54:32 2014 by ROOT version 5.34/06 +// from TTree h9010/ +// found on file: hms52949_rz.root +////////////////////////////////////////////////////////// + +#ifndef engine_class_h +#define engine_class_h + +#include <TROOT.h> +#include <TChain.h> +#include <TFile.h> + +// Header file for the classes stored in the TTree if any. + +// Fixed size dimensions of array or collections stored in the TTree if any. + +class engine_class { +public : + TTree *fChain; //!pointer to the analyzed TTree or TChain + Int_t fCurrent; //!current Tree number in a TChain + + // Declaration of leaf types + Float_t hcer_npe; + Float_t hsp; + Float_t hse; + Float_t charge; + Float_t hsdelta; + Float_t hstheta; + Float_t hsphi; + Float_t w; + Float_t hszbeam; + Float_t hsdedx1; + Float_t hsbeta; + Float_t hsshtrk; + Float_t hsprtrk; + Float_t hsxfp; + Float_t hsyfp; + Float_t hsxpfp; + Float_t hsypfp; + Float_t hsytar; + Float_t hsxptar; + Float_t hsyptar; + Float_t hstart; + Float_t eventid; + Float_t ev_type; + Float_t gfrx_raw; + Float_t gfry_raw; + Float_t gbeam_x; + Float_t gbeam_y; + Float_t bpma_x; + Float_t bpma_y; + Float_t bpmb_x; + Float_t bpmb_y; + Float_t bpmc_x; + Float_t bpmc_y; + Float_t hseloss; + Float_t hntracks; + Float_t hcal_et; + Float_t hgoodsc; + Float_t hcal_e1; + Float_t hcal_e2; + Float_t hcal_e3; + Float_t hcal_e4; + Float_t hstrk_et; + Float_t hstrk_in; + + // List of branches + TBranch *b_hcer_npe; //! + TBranch *b_hsp; //! + TBranch *b_hse; //! + TBranch *b_charge; //! + TBranch *b_hsdelta; //! + TBranch *b_hstheta; //! + TBranch *b_hsphi; //! + TBranch *b_w; //! + TBranch *b_hszbeam; //! + TBranch *b_hsdedx1; //! + TBranch *b_hsbeta; //! + TBranch *b_hsshtrk; //! + TBranch *b_hsprtrk; //! + TBranch *b_hsxfp; //! + TBranch *b_hsyfp; //! + TBranch *b_hsxpfp; //! + TBranch *b_hsypfp; //! + TBranch *b_hsytar; //! + TBranch *b_hsxptar; //! + TBranch *b_hsyptar; //! + TBranch *b_hstart; //! + TBranch *b_eventid; //! + TBranch *b_ev_type; //! + TBranch *b_gfrx_raw; //! + TBranch *b_gfry_raw; //! + TBranch *b_gbeam_x; //! + TBranch *b_gbeam_y; //! + TBranch *b_bpma_x; //! + TBranch *b_bpma_y; //! + TBranch *b_bpmb_x; //! + TBranch *b_bpmb_y; //! + TBranch *b_bpmc_x; //! + TBranch *b_bpmc_y; //! + TBranch *b_hseloss; //! + TBranch *b_hntracks; //! + TBranch *b_hcal_et; //! + TBranch *b_hgoodsc; //! + TBranch *b_hcal_e1; //! + TBranch *b_hcal_e2; //! + TBranch *b_hcal_e3; //! + TBranch *b_hcal_e4; //! + TBranch *b_hstrk_et; //! + TBranch *b_hstrk_in; //! + + engine_class(TTree *tree=0); + virtual ~engine_class(); + virtual Int_t Cut(Long64_t entry); + virtual Int_t GetEntry(Long64_t entry); + virtual Long64_t LoadTree(Long64_t entry); + virtual void Init(TTree *tree); + virtual void Loop(); + virtual Bool_t Notify(); + virtual void Show(Long64_t entry = -1); +}; + +#endif + +#ifdef engine_class_cxx +engine_class::engine_class(TTree *tree) : fChain(0) +{ +// if parameter tree is not specified (or zero), connect the file +// used to generate this class and read the Tree. + if (tree == 0) { + TFile *f = (TFile*)gROOT->GetListOfFiles()->FindObject("hms52949_rz.root"); + if (!f || !f->IsOpen()) { + f = new TFile("hms52949_rz.root"); + } + f->GetObject("h9010",tree); + + } + Init(tree); +} + +engine_class::~engine_class() +{ + if (!fChain) return; + delete fChain->GetCurrentFile(); +} + +Int_t engine_class::GetEntry(Long64_t entry) +{ +// Read contents of entry. + if (!fChain) return 0; + return fChain->GetEntry(entry); +} +Long64_t engine_class::LoadTree(Long64_t entry) +{ +// Set the environment to read one entry + if (!fChain) return -5; + Long64_t centry = fChain->LoadTree(entry); + if (centry < 0) return centry; + if (fChain->GetTreeNumber() != fCurrent) { + fCurrent = fChain->GetTreeNumber(); + Notify(); + } + return centry; +} + +void engine_class::Init(TTree *tree) +{ + // The Init() function is called when the selector needs to initialize + // a new tree or chain. Typically here the branch addresses and branch + // pointers of the tree will be set. + // It is normally not necessary to make changes to the generated + // code, but the routine can be extended by the user if needed. + // Init() will be called many times when running on PROOF + // (once per file to be processed). + + // Set branch addresses and branch pointers + if (!tree) return; + fChain = tree; + fCurrent = -1; + fChain->SetMakeClass(1); + + fChain->SetBranchAddress("hcer_npe", &hcer_npe, &b_hcer_npe); + fChain->SetBranchAddress("hsp", &hsp, &b_hsp); + fChain->SetBranchAddress("hse", &hse, &b_hse); + fChain->SetBranchAddress("charge", &charge, &b_charge); + fChain->SetBranchAddress("hsdelta", &hsdelta, &b_hsdelta); + fChain->SetBranchAddress("hstheta", &hstheta, &b_hstheta); + fChain->SetBranchAddress("hsphi", &hsphi, &b_hsphi); + fChain->SetBranchAddress("w", &w, &b_w); + fChain->SetBranchAddress("hszbeam", &hszbeam, &b_hszbeam); + fChain->SetBranchAddress("hsdedx1", &hsdedx1, &b_hsdedx1); + fChain->SetBranchAddress("hsbeta", &hsbeta, &b_hsbeta); + fChain->SetBranchAddress("hsshtrk", &hsshtrk, &b_hsshtrk); + fChain->SetBranchAddress("hsprtrk", &hsprtrk, &b_hsprtrk); + fChain->SetBranchAddress("hsxfp", &hsxfp, &b_hsxfp); + fChain->SetBranchAddress("hsyfp", &hsyfp, &b_hsyfp); + fChain->SetBranchAddress("hsxpfp", &hsxpfp, &b_hsxpfp); + fChain->SetBranchAddress("hsypfp", &hsypfp, &b_hsypfp); + fChain->SetBranchAddress("hsytar", &hsytar, &b_hsytar); + fChain->SetBranchAddress("hsxptar", &hsxptar, &b_hsxptar); + fChain->SetBranchAddress("hsyptar", &hsyptar, &b_hsyptar); + fChain->SetBranchAddress("hstart", &hstart, &b_hstart); + fChain->SetBranchAddress("eventid", &eventid, &b_eventid); + fChain->SetBranchAddress("ev_type", &ev_type, &b_ev_type); + fChain->SetBranchAddress("gfrx_raw", &gfrx_raw, &b_gfrx_raw); + fChain->SetBranchAddress("gfry_raw", &gfry_raw, &b_gfry_raw); + fChain->SetBranchAddress("gbeam_x", &gbeam_x, &b_gbeam_x); + fChain->SetBranchAddress("gbeam_y", &gbeam_y, &b_gbeam_y); + fChain->SetBranchAddress("bpma_x", &bpma_x, &b_bpma_x); + fChain->SetBranchAddress("bpma_y", &bpma_y, &b_bpma_y); + fChain->SetBranchAddress("bpmb_x", &bpmb_x, &b_bpmb_x); + fChain->SetBranchAddress("bpmb_y", &bpmb_y, &b_bpmb_y); + fChain->SetBranchAddress("bpmc_x", &bpmc_x, &b_bpmc_x); + fChain->SetBranchAddress("bpmc_y", &bpmc_y, &b_bpmc_y); + fChain->SetBranchAddress("hseloss", &hseloss, &b_hseloss); + fChain->SetBranchAddress("hntracks", &hntracks, &b_hntracks); + fChain->SetBranchAddress("hcal_et", &hcal_et, &b_hcal_et); + fChain->SetBranchAddress("hgoodsc", &hgoodsc, &b_hgoodsc); + fChain->SetBranchAddress("hcal_e1", &hcal_e1, &b_hcal_e1); + fChain->SetBranchAddress("hcal_e2", &hcal_e2, &b_hcal_e2); + fChain->SetBranchAddress("hcal_e3", &hcal_e3, &b_hcal_e3); + fChain->SetBranchAddress("hcal_e4", &hcal_e4, &b_hcal_e4); + fChain->SetBranchAddress("hstrk_et", &hstrk_et, &b_hstrk_et); + fChain->SetBranchAddress("hstrk_in", &hstrk_in, &b_hstrk_in); + Notify(); +} + +Bool_t engine_class::Notify() +{ + // The Notify() function is called when a new file is opened. This + // can be either for a new TTree in a TChain or when when a new TTree + // is started when using PROOF. It is normally not necessary to make changes + // to the generated code, but the routine can be extended by the + // user if needed. The return value is currently not used. + + return kTRUE; +} + +void engine_class::Show(Long64_t entry) +{ +// Print contents of entry. +// If entry is not specified, print current entry + if (!fChain) return; + fChain->Show(entry); +} +Int_t engine_class::Cut(Long64_t entry) +{ +// This function may be called from Loop. +// returns 1 if entry is accepted. +// returns -1 otherwise. + return 1; +} +#endif // #ifdef engine_class_cxx diff --git a/examples/gtrk_e/hcana_class.C b/examples/gtrk_e/hcana_class.C new file mode 100644 index 0000000..61a1bfb --- /dev/null +++ b/examples/gtrk_e/hcana_class.C @@ -0,0 +1,43 @@ +#define hcana_class_cxx +#include "hcana_class.h" +#include <TH2.h> +#include <TStyle.h> +#include <TCanvas.h> + +void hcana_class::Loop() +{ +// In a ROOT session, you can do: +// Root > .L hcana_class.C +// Root > hcana_class t +// Root > t.GetEntry(12); // Fill t data members with entry number 12 +// Root > t.Show(); // Show values of entry 12 +// Root > t.Show(16); // Read and show values of entry 16 +// Root > t.Loop(); // Loop on all entries +// + +// This is the loop skeleton where: +// jentry is the global entry number in the chain +// ientry is the entry number in the current Tree +// Note that the argument to GetEntry must be: +// jentry for TChain::GetEntry +// ientry for TTree::GetEntry and TBranch::GetEntry +// +// To read only selected branches, Insert statements like: +// METHOD1: +// fChain->SetBranchStatus("*",0); // disable all branches +// fChain->SetBranchStatus("branchname",1); // activate branchname +// METHOD2: replace line +// fChain->GetEntry(jentry); //read all branches +//by b_branchname->GetEntry(ientry); //read only this branch + if (fChain == 0) return; + + Long64_t nentries = fChain->GetEntriesFast(); + + Long64_t nbytes = 0, nb = 0; + for (Long64_t jentry=0; jentry<nentries;jentry++) { + Long64_t ientry = LoadTree(jentry); + if (ientry < 0) break; + nb = fChain->GetEntry(jentry); nbytes += nb; + // if (Cut(ientry) < 0) continue; + } +} diff --git a/examples/gtrk_e/hcana_class.h b/examples/gtrk_e/hcana_class.h new file mode 100644 index 0000000..ba63e9c --- /dev/null +++ b/examples/gtrk_e/hcana_class.h @@ -0,0 +1,684 @@ +////////////////////////////////////////////////////////// +// This class has been automatically generated on +// Tue Oct 7 08:29:09 2014 by ROOT version 5.34/06 +// from TTree T/Hall A Analyzer Output DST +// found on file: hodtest_52949.root +////////////////////////////////////////////////////////// + +#ifndef hcana_class_h +#define hcana_class_h + +#include <TROOT.h> +#include <TChain.h> +#include <TFile.h> + +// Header file for the classes stored in the TTree if any. +#include "./podd/src/THaEvent.h" +#include "./podd/src/THaEvent.h" + +// Fixed size dimensions of array or collections stored in the TTree if any. + +class hcana_class { +public : + TTree *fChain; //!pointer to the analyzed TTree or TChain + Int_t fCurrent; //!current Tree number in a TChain + + // Declaration of leaf types + Int_t Ndata_H_cal_1pr_aneg; + Double_t H_cal_1pr_aneg[13]; //[Ndata.H.cal.1pr.aneg] + Int_t Ndata_H_cal_1pr_aneg_p; + Double_t H_cal_1pr_aneg_p[13]; //[Ndata.H.cal.1pr.aneg_p] + Int_t Ndata_H_cal_1pr_apos; + Double_t H_cal_1pr_apos[13]; //[Ndata.H.cal.1pr.apos] + Int_t Ndata_H_cal_1pr_apos_p; + Double_t H_cal_1pr_apos_p[13]; //[Ndata.H.cal.1pr.apos_p] + Int_t Ndata_H_cal_1pr_emean; + Double_t H_cal_1pr_emean[13]; //[Ndata.H.cal.1pr.emean] + Int_t Ndata_H_cal_1pr_eneg; + Double_t H_cal_1pr_eneg[13]; //[Ndata.H.cal.1pr.eneg] + Int_t Ndata_H_cal_1pr_epos; + Double_t H_cal_1pr_epos[13]; //[Ndata.H.cal.1pr.epos] + Int_t Ndata_H_cal_1pr_negadchits; + Double_t H_cal_1pr_negadchits[9]; //[Ndata.H.cal.1pr.negadchits] + Int_t Ndata_H_cal_1pr_posadchits; + Double_t H_cal_1pr_posadchits[8]; //[Ndata.H.cal.1pr.posadchits] + Int_t Ndata_H_cal_2ta_aneg; + Double_t H_cal_2ta_aneg[13]; //[Ndata.H.cal.2ta.aneg] + Int_t Ndata_H_cal_2ta_aneg_p; + Double_t H_cal_2ta_aneg_p[13]; //[Ndata.H.cal.2ta.aneg_p] + Int_t Ndata_H_cal_2ta_apos; + Double_t H_cal_2ta_apos[13]; //[Ndata.H.cal.2ta.apos] + Int_t Ndata_H_cal_2ta_apos_p; + Double_t H_cal_2ta_apos_p[13]; //[Ndata.H.cal.2ta.apos_p] + Int_t Ndata_H_cal_2ta_emean; + Double_t H_cal_2ta_emean[13]; //[Ndata.H.cal.2ta.emean] + Int_t Ndata_H_cal_2ta_eneg; + Double_t H_cal_2ta_eneg[13]; //[Ndata.H.cal.2ta.eneg] + Int_t Ndata_H_cal_2ta_epos; + Double_t H_cal_2ta_epos[13]; //[Ndata.H.cal.2ta.epos] + Int_t Ndata_H_cal_2ta_negadchits; + Double_t H_cal_2ta_negadchits[8]; //[Ndata.H.cal.2ta.negadchits] + Int_t Ndata_H_cal_2ta_posadchits; + Double_t H_cal_2ta_posadchits[7]; //[Ndata.H.cal.2ta.posadchits] + Int_t Ndata_H_cal_3ta_aneg; + Double_t H_cal_3ta_aneg[13]; //[Ndata.H.cal.3ta.aneg] + Int_t Ndata_H_cal_3ta_aneg_p; + Double_t H_cal_3ta_aneg_p[13]; //[Ndata.H.cal.3ta.aneg_p] + Int_t Ndata_H_cal_3ta_apos; + Double_t H_cal_3ta_apos[13]; //[Ndata.H.cal.3ta.apos] + Int_t Ndata_H_cal_3ta_apos_p; + Double_t H_cal_3ta_apos_p[13]; //[Ndata.H.cal.3ta.apos_p] + Int_t Ndata_H_cal_3ta_emean; + Double_t H_cal_3ta_emean[13]; //[Ndata.H.cal.3ta.emean] + Int_t Ndata_H_cal_3ta_eneg; + Double_t H_cal_3ta_eneg[13]; //[Ndata.H.cal.3ta.eneg] + Int_t Ndata_H_cal_3ta_epos; + Double_t H_cal_3ta_epos[13]; //[Ndata.H.cal.3ta.epos] + Int_t Ndata_H_cal_3ta_negadchits; + Double_t H_cal_3ta_negadchits[1]; //[Ndata.H.cal.3ta.negadchits] + Int_t Ndata_H_cal_3ta_posadchits; + Double_t H_cal_3ta_posadchits[6]; //[Ndata.H.cal.3ta.posadchits] + Int_t Ndata_H_cal_4ta_aneg; + Double_t H_cal_4ta_aneg[13]; //[Ndata.H.cal.4ta.aneg] + Int_t Ndata_H_cal_4ta_aneg_p; + Double_t H_cal_4ta_aneg_p[13]; //[Ndata.H.cal.4ta.aneg_p] + Int_t Ndata_H_cal_4ta_apos; + Double_t H_cal_4ta_apos[13]; //[Ndata.H.cal.4ta.apos] + Int_t Ndata_H_cal_4ta_apos_p; + Double_t H_cal_4ta_apos_p[13]; //[Ndata.H.cal.4ta.apos_p] + Int_t Ndata_H_cal_4ta_emean; + Double_t H_cal_4ta_emean[13]; //[Ndata.H.cal.4ta.emean] + Int_t Ndata_H_cal_4ta_eneg; + Double_t H_cal_4ta_eneg[13]; //[Ndata.H.cal.4ta.eneg] + Int_t Ndata_H_cal_4ta_epos; + Double_t H_cal_4ta_epos[13]; //[Ndata.H.cal.4ta.epos] + Int_t Ndata_H_cal_4ta_negadchits; + Double_t H_cal_4ta_negadchits[1]; //[Ndata.H.cal.4ta.negadchits] + Int_t Ndata_H_cal_4ta_posadchits; + Double_t H_cal_4ta_posadchits[5]; //[Ndata.H.cal.4ta.posadchits] + Int_t Ndata_H_tr_beta; + Double_t H_tr_beta[10]; //[Ndata.H.tr.beta] + Int_t Ndata_H_tr_chi2; + Double_t H_tr_chi2[10]; //[Ndata.H.tr.chi2] + Int_t Ndata_H_tr_d_ph; + Double_t H_tr_d_ph[10]; //[Ndata.H.tr.d_ph] + Int_t Ndata_H_tr_d_th; + Double_t H_tr_d_th[10]; //[Ndata.H.tr.d_th] + Int_t Ndata_H_tr_d_x; + Double_t H_tr_d_x[10]; //[Ndata.H.tr.d_x] + Int_t Ndata_H_tr_d_y; + Double_t H_tr_d_y[10]; //[Ndata.H.tr.d_y] + Int_t Ndata_H_tr_dbeta; + Double_t H_tr_dbeta[10]; //[Ndata.H.tr.dbeta] + Int_t Ndata_H_tr_dtime; + Double_t H_tr_dtime[10]; //[Ndata.H.tr.dtime] + Int_t Ndata_H_tr_flag; + Double_t H_tr_flag[10]; //[Ndata.H.tr.flag] + Int_t Ndata_H_tr_ndof; + Double_t H_tr_ndof[10]; //[Ndata.H.tr.ndof] + Int_t Ndata_H_tr_p; + Double_t H_tr_p[10]; //[Ndata.H.tr.p] + Int_t Ndata_H_tr_pathl; + Double_t H_tr_pathl[10]; //[Ndata.H.tr.pathl] + Int_t Ndata_H_tr_ph; + Double_t H_tr_ph[10]; //[Ndata.H.tr.ph] + Int_t Ndata_H_tr_px; + Double_t H_tr_px[10]; //[Ndata.H.tr.px] + Int_t Ndata_H_tr_py; + Double_t H_tr_py[10]; //[Ndata.H.tr.py] + Int_t Ndata_H_tr_pz; + Double_t H_tr_pz[10]; //[Ndata.H.tr.pz] + Int_t Ndata_H_tr_r_ph; + Double_t H_tr_r_ph[10]; //[Ndata.H.tr.r_ph] + Int_t Ndata_H_tr_r_th; + Double_t H_tr_r_th[10]; //[Ndata.H.tr.r_th] + Int_t Ndata_H_tr_r_x; + Double_t H_tr_r_x[10]; //[Ndata.H.tr.r_x] + Int_t Ndata_H_tr_r_y; + Double_t H_tr_r_y[10]; //[Ndata.H.tr.r_y] + Int_t Ndata_H_tr_tg_dp; + Double_t H_tr_tg_dp[10]; //[Ndata.H.tr.tg_dp] + Int_t Ndata_H_tr_tg_ph; + Double_t H_tr_tg_ph[10]; //[Ndata.H.tr.tg_ph] + Int_t Ndata_H_tr_tg_th; + Double_t H_tr_tg_th[10]; //[Ndata.H.tr.tg_th] + Int_t Ndata_H_tr_tg_y; + Double_t H_tr_tg_y[10]; //[Ndata.H.tr.tg_y] + Int_t Ndata_H_tr_th; + Double_t H_tr_th[10]; //[Ndata.H.tr.th] + Int_t Ndata_H_tr_time; + Double_t H_tr_time[10]; //[Ndata.H.tr.time] + Int_t Ndata_H_tr_vx; + Double_t H_tr_vx[10]; //[Ndata.H.tr.vx] + Int_t Ndata_H_tr_vy; + Double_t H_tr_vy[10]; //[Ndata.H.tr.vy] + Int_t Ndata_H_tr_vz; + Double_t H_tr_vz[10]; //[Ndata.H.tr.vz] + Int_t Ndata_H_tr_x; + Double_t H_tr_x[10]; //[Ndata.H.tr.x] + Int_t Ndata_H_tr_y; + Double_t H_tr_y[10]; //[Ndata.H.tr.y] + Double_t H_cal_1pr_eplane; + Double_t H_cal_1pr_eplane_neg; + Double_t H_cal_1pr_eplane_pos; + Double_t H_cal_2ta_eplane; + Double_t H_cal_2ta_eplane_neg; + Double_t H_cal_2ta_eplane_pos; + Double_t H_cal_3ta_eplane; + Double_t H_cal_3ta_eplane_neg; + Double_t H_cal_3ta_eplane_pos; + Double_t H_cal_4ta_eplane; + Double_t H_cal_4ta_eplane_neg; + Double_t H_cal_4ta_eplane_pos; + Double_t H_cal_emax; + Double_t H_cal_eprmax; + Double_t H_cal_mult; + Double_t H_cal_nclust; + Double_t H_cal_nhits; + Double_t H_cal_ntracks; + Double_t H_cal_tre; + Double_t H_cal_trecor; + Double_t H_cal_treplcor; + Double_t H_cal_trepr; + Double_t H_cal_treprcor; + Double_t H_cal_trx; + Double_t H_cal_try; + Double_t H_cal_xmax; + Double_t H_gold_dp; + Double_t H_gold_e; + Double_t H_gold_fp_ph; + Double_t H_gold_fp_th; + Double_t H_gold_fp_x; + Double_t H_gold_fp_y; + Double_t H_gold_index; + Double_t H_gold_ok; + Double_t H_gold_p; + Double_t H_gold_ph; + Double_t H_gold_px; + Double_t H_gold_py; + Double_t H_gold_pz; + Double_t H_gold_th; + Double_t H_gold_x; + Double_t H_gold_y; + Double_t H_tr_n; + Double_t g_evtyp; + //THaEvent *Event_Branch; + ULong64_t fEvtHdr_fEvtTime; + UInt_t fEvtHdr_fEvtNum; + Int_t fEvtHdr_fEvtType; + Int_t fEvtHdr_fEvtLen; + Int_t fEvtHdr_fHelicity; + Int_t fEvtHdr_fTargetPol; + Int_t fEvtHdr_fRun; + + // List of branches + TBranch *b_Ndata_H_cal_1pr_aneg; //! + TBranch *b_H_cal_1pr_aneg; //! + TBranch *b_Ndata_H_cal_1pr_aneg_p; //! + TBranch *b_H_cal_1pr_aneg_p; //! + TBranch *b_Ndata_H_cal_1pr_apos; //! + TBranch *b_H_cal_1pr_apos; //! + TBranch *b_Ndata_H_cal_1pr_apos_p; //! + TBranch *b_H_cal_1pr_apos_p; //! + TBranch *b_Ndata_H_cal_1pr_emean; //! + TBranch *b_H_cal_1pr_emean; //! + TBranch *b_Ndata_H_cal_1pr_eneg; //! + TBranch *b_H_cal_1pr_eneg; //! + TBranch *b_Ndata_H_cal_1pr_epos; //! + TBranch *b_H_cal_1pr_epos; //! + TBranch *b_Ndata_H_cal_1pr_negadchits; //! + TBranch *b_H_cal_1pr_negadchits; //! + TBranch *b_Ndata_H_cal_1pr_posadchits; //! + TBranch *b_H_cal_1pr_posadchits; //! + TBranch *b_Ndata_H_cal_2ta_aneg; //! + TBranch *b_H_cal_2ta_aneg; //! + TBranch *b_Ndata_H_cal_2ta_aneg_p; //! + TBranch *b_H_cal_2ta_aneg_p; //! + TBranch *b_Ndata_H_cal_2ta_apos; //! + TBranch *b_H_cal_2ta_apos; //! + TBranch *b_Ndata_H_cal_2ta_apos_p; //! + TBranch *b_H_cal_2ta_apos_p; //! + TBranch *b_Ndata_H_cal_2ta_emean; //! + TBranch *b_H_cal_2ta_emean; //! + TBranch *b_Ndata_H_cal_2ta_eneg; //! + TBranch *b_H_cal_2ta_eneg; //! + TBranch *b_Ndata_H_cal_2ta_epos; //! + TBranch *b_H_cal_2ta_epos; //! + TBranch *b_Ndata_H_cal_2ta_negadchits; //! + TBranch *b_H_cal_2ta_negadchits; //! + TBranch *b_Ndata_H_cal_2ta_posadchits; //! + TBranch *b_H_cal_2ta_posadchits; //! + TBranch *b_Ndata_H_cal_3ta_aneg; //! + TBranch *b_H_cal_3ta_aneg; //! + TBranch *b_Ndata_H_cal_3ta_aneg_p; //! + TBranch *b_H_cal_3ta_aneg_p; //! + TBranch *b_Ndata_H_cal_3ta_apos; //! + TBranch *b_H_cal_3ta_apos; //! + TBranch *b_Ndata_H_cal_3ta_apos_p; //! + TBranch *b_H_cal_3ta_apos_p; //! + TBranch *b_Ndata_H_cal_3ta_emean; //! + TBranch *b_H_cal_3ta_emean; //! + TBranch *b_Ndata_H_cal_3ta_eneg; //! + TBranch *b_H_cal_3ta_eneg; //! + TBranch *b_Ndata_H_cal_3ta_epos; //! + TBranch *b_H_cal_3ta_epos; //! + TBranch *b_Ndata_H_cal_3ta_negadchits; //! + TBranch *b_H_cal_3ta_negadchits; //! + TBranch *b_Ndata_H_cal_3ta_posadchits; //! + TBranch *b_H_cal_3ta_posadchits; //! + TBranch *b_Ndata_H_cal_4ta_aneg; //! + TBranch *b_H_cal_4ta_aneg; //! + TBranch *b_Ndata_H_cal_4ta_aneg_p; //! + TBranch *b_H_cal_4ta_aneg_p; //! + TBranch *b_Ndata_H_cal_4ta_apos; //! + TBranch *b_H_cal_4ta_apos; //! + TBranch *b_Ndata_H_cal_4ta_apos_p; //! + TBranch *b_H_cal_4ta_apos_p; //! + TBranch *b_Ndata_H_cal_4ta_emean; //! + TBranch *b_H_cal_4ta_emean; //! + TBranch *b_Ndata_H_cal_4ta_eneg; //! + TBranch *b_H_cal_4ta_eneg; //! + TBranch *b_Ndata_H_cal_4ta_epos; //! + TBranch *b_H_cal_4ta_epos; //! + TBranch *b_Ndata_H_cal_4ta_negadchits; //! + TBranch *b_H_cal_4ta_negadchits; //! + TBranch *b_Ndata_H_cal_4ta_posadchits; //! + TBranch *b_H_cal_4ta_posadchits; //! + TBranch *b_Ndata_H_tr_beta; //! + TBranch *b_H_tr_beta; //! + TBranch *b_Ndata_H_tr_chi2; //! + TBranch *b_H_tr_chi2; //! + TBranch *b_Ndata_H_tr_d_ph; //! + TBranch *b_H_tr_d_ph; //! + TBranch *b_Ndata_H_tr_d_th; //! + TBranch *b_H_tr_d_th; //! + TBranch *b_Ndata_H_tr_d_x; //! + TBranch *b_H_tr_d_x; //! + TBranch *b_Ndata_H_tr_d_y; //! + TBranch *b_H_tr_d_y; //! + TBranch *b_Ndata_H_tr_dbeta; //! + TBranch *b_H_tr_dbeta; //! + TBranch *b_Ndata_H_tr_dtime; //! + TBranch *b_H_tr_dtime; //! + TBranch *b_Ndata_H_tr_flag; //! + TBranch *b_H_tr_flag; //! + TBranch *b_Ndata_H_tr_ndof; //! + TBranch *b_H_tr_ndof; //! + TBranch *b_Ndata_H_tr_p; //! + TBranch *b_H_tr_p; //! + TBranch *b_Ndata_H_tr_pathl; //! + TBranch *b_H_tr_pathl; //! + TBranch *b_Ndata_H_tr_ph; //! + TBranch *b_H_tr_ph; //! + TBranch *b_Ndata_H_tr_px; //! + TBranch *b_H_tr_px; //! + TBranch *b_Ndata_H_tr_py; //! + TBranch *b_H_tr_py; //! + TBranch *b_Ndata_H_tr_pz; //! + TBranch *b_H_tr_pz; //! + TBranch *b_Ndata_H_tr_r_ph; //! + TBranch *b_H_tr_r_ph; //! + TBranch *b_Ndata_H_tr_r_th; //! + TBranch *b_H_tr_r_th; //! + TBranch *b_Ndata_H_tr_r_x; //! + TBranch *b_H_tr_r_x; //! + TBranch *b_Ndata_H_tr_r_y; //! + TBranch *b_H_tr_r_y; //! + TBranch *b_Ndata_H_tr_tg_dp; //! + TBranch *b_H_tr_tg_dp; //! + TBranch *b_Ndata_H_tr_tg_ph; //! + TBranch *b_H_tr_tg_ph; //! + TBranch *b_Ndata_H_tr_tg_th; //! + TBranch *b_H_tr_tg_th; //! + TBranch *b_Ndata_H_tr_tg_y; //! + TBranch *b_H_tr_tg_y; //! + TBranch *b_Ndata_H_tr_th; //! + TBranch *b_H_tr_th; //! + TBranch *b_Ndata_H_tr_time; //! + TBranch *b_H_tr_time; //! + TBranch *b_Ndata_H_tr_vx; //! + TBranch *b_H_tr_vx; //! + TBranch *b_Ndata_H_tr_vy; //! + TBranch *b_H_tr_vy; //! + TBranch *b_Ndata_H_tr_vz; //! + TBranch *b_H_tr_vz; //! + TBranch *b_Ndata_H_tr_x; //! + TBranch *b_H_tr_x; //! + TBranch *b_Ndata_H_tr_y; //! + TBranch *b_H_tr_y; //! + TBranch *b_H_cal_1pr_eplane; //! + TBranch *b_H_cal_1pr_eplane_neg; //! + TBranch *b_H_cal_1pr_eplane_pos; //! + TBranch *b_H_cal_2ta_eplane; //! + TBranch *b_H_cal_2ta_eplane_neg; //! + TBranch *b_H_cal_2ta_eplane_pos; //! + TBranch *b_H_cal_3ta_eplane; //! + TBranch *b_H_cal_3ta_eplane_neg; //! + TBranch *b_H_cal_3ta_eplane_pos; //! + TBranch *b_H_cal_4ta_eplane; //! + TBranch *b_H_cal_4ta_eplane_neg; //! + TBranch *b_H_cal_4ta_eplane_pos; //! + TBranch *b_H_cal_emax; //! + TBranch *b_H_cal_eprmax; //! + TBranch *b_H_cal_mult; //! + TBranch *b_H_cal_nclust; //! + TBranch *b_H_cal_nhits; //! + TBranch *b_H_cal_ntracks; //! + TBranch *b_H_cal_tre; //! + TBranch *b_H_cal_trecor; //! + TBranch *b_H_cal_treplcor; //! + TBranch *b_H_cal_trepr; //! + TBranch *b_H_cal_treprcor; //! + TBranch *b_H_cal_trx; //! + TBranch *b_H_cal_try; //! + TBranch *b_H_cal_xmax; //! + TBranch *b_H_gold_dp; //! + TBranch *b_H_gold_e; //! + TBranch *b_H_gold_fp_ph; //! + TBranch *b_H_gold_fp_th; //! + TBranch *b_H_gold_fp_x; //! + TBranch *b_H_gold_fp_y; //! + TBranch *b_H_gold_index; //! + TBranch *b_H_gold_ok; //! + TBranch *b_H_gold_p; //! + TBranch *b_H_gold_ph; //! + TBranch *b_H_gold_px; //! + TBranch *b_H_gold_py; //! + TBranch *b_H_gold_pz; //! + TBranch *b_H_gold_th; //! + TBranch *b_H_gold_x; //! + TBranch *b_H_gold_y; //! + TBranch *b_H_tr_n; //! + TBranch *b_g_evtyp; //! + TBranch *b_Event_Branch_fEvtHdr_fEvtTime; //! + TBranch *b_Event_Branch_fEvtHdr_fEvtNum; //! + TBranch *b_Event_Branch_fEvtHdr_fEvtType; //! + TBranch *b_Event_Branch_fEvtHdr_fEvtLen; //! + TBranch *b_Event_Branch_fEvtHdr_fHelicity; //! + TBranch *b_Event_Branch_fEvtHdr_fTargetPol; //! + TBranch *b_Event_Branch_fEvtHdr_fRun; //! + + hcana_class(TTree *tree=0); + virtual ~hcana_class(); + virtual Int_t Cut(Long64_t entry); + virtual Int_t GetEntry(Long64_t entry); + virtual Long64_t LoadTree(Long64_t entry); + virtual void Init(TTree *tree); + virtual void Loop(); + virtual Bool_t Notify(); + virtual void Show(Long64_t entry = -1); +}; + +#endif + +#ifdef hcana_class_cxx +hcana_class::hcana_class(TTree *tree) : fChain(0) +{ +// if parameter tree is not specified (or zero), connect the file +// used to generate this class and read the Tree. + if (tree == 0) { + TFile *f = (TFile*)gROOT->GetListOfFiles()->FindObject("hodtest_52949.root"); + if (!f || !f->IsOpen()) { + f = new TFile("hodtest_52949.root"); + } + f->GetObject("T",tree); + + } + Init(tree); +} + +hcana_class::~hcana_class() +{ + if (!fChain) return; + delete fChain->GetCurrentFile(); +} + +Int_t hcana_class::GetEntry(Long64_t entry) +{ +// Read contents of entry. + if (!fChain) return 0; + return fChain->GetEntry(entry); +} +Long64_t hcana_class::LoadTree(Long64_t entry) +{ +// Set the environment to read one entry + if (!fChain) return -5; + Long64_t centry = fChain->LoadTree(entry); + if (centry < 0) return centry; + if (fChain->GetTreeNumber() != fCurrent) { + fCurrent = fChain->GetTreeNumber(); + Notify(); + } + return centry; +} + +void hcana_class::Init(TTree *tree) +{ + // The Init() function is called when the selector needs to initialize + // a new tree or chain. Typically here the branch addresses and branch + // pointers of the tree will be set. + // It is normally not necessary to make changes to the generated + // code, but the routine can be extended by the user if needed. + // Init() will be called many times when running on PROOF + // (once per file to be processed). + + // Set branch addresses and branch pointers + if (!tree) return; + fChain = tree; + fCurrent = -1; + fChain->SetMakeClass(1); + + fChain->SetBranchAddress("Ndata.H.cal.1pr.aneg", &Ndata_H_cal_1pr_aneg, &b_Ndata_H_cal_1pr_aneg); + fChain->SetBranchAddress("H.cal.1pr.aneg", H_cal_1pr_aneg, &b_H_cal_1pr_aneg); + fChain->SetBranchAddress("Ndata.H.cal.1pr.aneg_p", &Ndata_H_cal_1pr_aneg_p, &b_Ndata_H_cal_1pr_aneg_p); + fChain->SetBranchAddress("H.cal.1pr.aneg_p", H_cal_1pr_aneg_p, &b_H_cal_1pr_aneg_p); + fChain->SetBranchAddress("Ndata.H.cal.1pr.apos", &Ndata_H_cal_1pr_apos, &b_Ndata_H_cal_1pr_apos); + fChain->SetBranchAddress("H.cal.1pr.apos", H_cal_1pr_apos, &b_H_cal_1pr_apos); + fChain->SetBranchAddress("Ndata.H.cal.1pr.apos_p", &Ndata_H_cal_1pr_apos_p, &b_Ndata_H_cal_1pr_apos_p); + fChain->SetBranchAddress("H.cal.1pr.apos_p", H_cal_1pr_apos_p, &b_H_cal_1pr_apos_p); + fChain->SetBranchAddress("Ndata.H.cal.1pr.emean", &Ndata_H_cal_1pr_emean, &b_Ndata_H_cal_1pr_emean); + fChain->SetBranchAddress("H.cal.1pr.emean", H_cal_1pr_emean, &b_H_cal_1pr_emean); + fChain->SetBranchAddress("Ndata.H.cal.1pr.eneg", &Ndata_H_cal_1pr_eneg, &b_Ndata_H_cal_1pr_eneg); + fChain->SetBranchAddress("H.cal.1pr.eneg", H_cal_1pr_eneg, &b_H_cal_1pr_eneg); + fChain->SetBranchAddress("Ndata.H.cal.1pr.epos", &Ndata_H_cal_1pr_epos, &b_Ndata_H_cal_1pr_epos); + fChain->SetBranchAddress("H.cal.1pr.epos", H_cal_1pr_epos, &b_H_cal_1pr_epos); + fChain->SetBranchAddress("Ndata.H.cal.1pr.negadchits", &Ndata_H_cal_1pr_negadchits, &b_Ndata_H_cal_1pr_negadchits); + fChain->SetBranchAddress("H.cal.1pr.negadchits", H_cal_1pr_negadchits, &b_H_cal_1pr_negadchits); + fChain->SetBranchAddress("Ndata.H.cal.1pr.posadchits", &Ndata_H_cal_1pr_posadchits, &b_Ndata_H_cal_1pr_posadchits); + fChain->SetBranchAddress("H.cal.1pr.posadchits", H_cal_1pr_posadchits, &b_H_cal_1pr_posadchits); + fChain->SetBranchAddress("Ndata.H.cal.2ta.aneg", &Ndata_H_cal_2ta_aneg, &b_Ndata_H_cal_2ta_aneg); + fChain->SetBranchAddress("H.cal.2ta.aneg", H_cal_2ta_aneg, &b_H_cal_2ta_aneg); + fChain->SetBranchAddress("Ndata.H.cal.2ta.aneg_p", &Ndata_H_cal_2ta_aneg_p, &b_Ndata_H_cal_2ta_aneg_p); + fChain->SetBranchAddress("H.cal.2ta.aneg_p", H_cal_2ta_aneg_p, &b_H_cal_2ta_aneg_p); + fChain->SetBranchAddress("Ndata.H.cal.2ta.apos", &Ndata_H_cal_2ta_apos, &b_Ndata_H_cal_2ta_apos); + fChain->SetBranchAddress("H.cal.2ta.apos", H_cal_2ta_apos, &b_H_cal_2ta_apos); + fChain->SetBranchAddress("Ndata.H.cal.2ta.apos_p", &Ndata_H_cal_2ta_apos_p, &b_Ndata_H_cal_2ta_apos_p); + fChain->SetBranchAddress("H.cal.2ta.apos_p", H_cal_2ta_apos_p, &b_H_cal_2ta_apos_p); + fChain->SetBranchAddress("Ndata.H.cal.2ta.emean", &Ndata_H_cal_2ta_emean, &b_Ndata_H_cal_2ta_emean); + fChain->SetBranchAddress("H.cal.2ta.emean", H_cal_2ta_emean, &b_H_cal_2ta_emean); + fChain->SetBranchAddress("Ndata.H.cal.2ta.eneg", &Ndata_H_cal_2ta_eneg, &b_Ndata_H_cal_2ta_eneg); + fChain->SetBranchAddress("H.cal.2ta.eneg", H_cal_2ta_eneg, &b_H_cal_2ta_eneg); + fChain->SetBranchAddress("Ndata.H.cal.2ta.epos", &Ndata_H_cal_2ta_epos, &b_Ndata_H_cal_2ta_epos); + fChain->SetBranchAddress("H.cal.2ta.epos", H_cal_2ta_epos, &b_H_cal_2ta_epos); + fChain->SetBranchAddress("Ndata.H.cal.2ta.negadchits", &Ndata_H_cal_2ta_negadchits, &b_Ndata_H_cal_2ta_negadchits); + fChain->SetBranchAddress("H.cal.2ta.negadchits", H_cal_2ta_negadchits, &b_H_cal_2ta_negadchits); + fChain->SetBranchAddress("Ndata.H.cal.2ta.posadchits", &Ndata_H_cal_2ta_posadchits, &b_Ndata_H_cal_2ta_posadchits); + fChain->SetBranchAddress("H.cal.2ta.posadchits", H_cal_2ta_posadchits, &b_H_cal_2ta_posadchits); + fChain->SetBranchAddress("Ndata.H.cal.3ta.aneg", &Ndata_H_cal_3ta_aneg, &b_Ndata_H_cal_3ta_aneg); + fChain->SetBranchAddress("H.cal.3ta.aneg", H_cal_3ta_aneg, &b_H_cal_3ta_aneg); + fChain->SetBranchAddress("Ndata.H.cal.3ta.aneg_p", &Ndata_H_cal_3ta_aneg_p, &b_Ndata_H_cal_3ta_aneg_p); + fChain->SetBranchAddress("H.cal.3ta.aneg_p", H_cal_3ta_aneg_p, &b_H_cal_3ta_aneg_p); + fChain->SetBranchAddress("Ndata.H.cal.3ta.apos", &Ndata_H_cal_3ta_apos, &b_Ndata_H_cal_3ta_apos); + fChain->SetBranchAddress("H.cal.3ta.apos", H_cal_3ta_apos, &b_H_cal_3ta_apos); + fChain->SetBranchAddress("Ndata.H.cal.3ta.apos_p", &Ndata_H_cal_3ta_apos_p, &b_Ndata_H_cal_3ta_apos_p); + fChain->SetBranchAddress("H.cal.3ta.apos_p", H_cal_3ta_apos_p, &b_H_cal_3ta_apos_p); + fChain->SetBranchAddress("Ndata.H.cal.3ta.emean", &Ndata_H_cal_3ta_emean, &b_Ndata_H_cal_3ta_emean); + fChain->SetBranchAddress("H.cal.3ta.emean", H_cal_3ta_emean, &b_H_cal_3ta_emean); + fChain->SetBranchAddress("Ndata.H.cal.3ta.eneg", &Ndata_H_cal_3ta_eneg, &b_Ndata_H_cal_3ta_eneg); + fChain->SetBranchAddress("H.cal.3ta.eneg", H_cal_3ta_eneg, &b_H_cal_3ta_eneg); + fChain->SetBranchAddress("Ndata.H.cal.3ta.epos", &Ndata_H_cal_3ta_epos, &b_Ndata_H_cal_3ta_epos); + fChain->SetBranchAddress("H.cal.3ta.epos", H_cal_3ta_epos, &b_H_cal_3ta_epos); + fChain->SetBranchAddress("Ndata.H.cal.3ta.negadchits", &Ndata_H_cal_3ta_negadchits, &b_Ndata_H_cal_3ta_negadchits); + fChain->SetBranchAddress("H.cal.3ta.negadchits", &H_cal_3ta_negadchits, &b_H_cal_3ta_negadchits); + fChain->SetBranchAddress("Ndata.H.cal.3ta.posadchits", &Ndata_H_cal_3ta_posadchits, &b_Ndata_H_cal_3ta_posadchits); + fChain->SetBranchAddress("H.cal.3ta.posadchits", H_cal_3ta_posadchits, &b_H_cal_3ta_posadchits); + fChain->SetBranchAddress("Ndata.H.cal.4ta.aneg", &Ndata_H_cal_4ta_aneg, &b_Ndata_H_cal_4ta_aneg); + fChain->SetBranchAddress("H.cal.4ta.aneg", H_cal_4ta_aneg, &b_H_cal_4ta_aneg); + fChain->SetBranchAddress("Ndata.H.cal.4ta.aneg_p", &Ndata_H_cal_4ta_aneg_p, &b_Ndata_H_cal_4ta_aneg_p); + fChain->SetBranchAddress("H.cal.4ta.aneg_p", H_cal_4ta_aneg_p, &b_H_cal_4ta_aneg_p); + fChain->SetBranchAddress("Ndata.H.cal.4ta.apos", &Ndata_H_cal_4ta_apos, &b_Ndata_H_cal_4ta_apos); + fChain->SetBranchAddress("H.cal.4ta.apos", H_cal_4ta_apos, &b_H_cal_4ta_apos); + fChain->SetBranchAddress("Ndata.H.cal.4ta.apos_p", &Ndata_H_cal_4ta_apos_p, &b_Ndata_H_cal_4ta_apos_p); + fChain->SetBranchAddress("H.cal.4ta.apos_p", H_cal_4ta_apos_p, &b_H_cal_4ta_apos_p); + fChain->SetBranchAddress("Ndata.H.cal.4ta.emean", &Ndata_H_cal_4ta_emean, &b_Ndata_H_cal_4ta_emean); + fChain->SetBranchAddress("H.cal.4ta.emean", H_cal_4ta_emean, &b_H_cal_4ta_emean); + fChain->SetBranchAddress("Ndata.H.cal.4ta.eneg", &Ndata_H_cal_4ta_eneg, &b_Ndata_H_cal_4ta_eneg); + fChain->SetBranchAddress("H.cal.4ta.eneg", H_cal_4ta_eneg, &b_H_cal_4ta_eneg); + fChain->SetBranchAddress("Ndata.H.cal.4ta.epos", &Ndata_H_cal_4ta_epos, &b_Ndata_H_cal_4ta_epos); + fChain->SetBranchAddress("H.cal.4ta.epos", H_cal_4ta_epos, &b_H_cal_4ta_epos); + fChain->SetBranchAddress("Ndata.H.cal.4ta.negadchits", &Ndata_H_cal_4ta_negadchits, &b_Ndata_H_cal_4ta_negadchits); + fChain->SetBranchAddress("H.cal.4ta.negadchits", &H_cal_4ta_negadchits, &b_H_cal_4ta_negadchits); + fChain->SetBranchAddress("Ndata.H.cal.4ta.posadchits", &Ndata_H_cal_4ta_posadchits, &b_Ndata_H_cal_4ta_posadchits); + fChain->SetBranchAddress("H.cal.4ta.posadchits", H_cal_4ta_posadchits, &b_H_cal_4ta_posadchits); + fChain->SetBranchAddress("Ndata.H.tr.beta", &Ndata_H_tr_beta, &b_Ndata_H_tr_beta); + fChain->SetBranchAddress("H.tr.beta", H_tr_beta, &b_H_tr_beta); + fChain->SetBranchAddress("Ndata.H.tr.chi2", &Ndata_H_tr_chi2, &b_Ndata_H_tr_chi2); + fChain->SetBranchAddress("H.tr.chi2", H_tr_chi2, &b_H_tr_chi2); + fChain->SetBranchAddress("Ndata.H.tr.d_ph", &Ndata_H_tr_d_ph, &b_Ndata_H_tr_d_ph); + fChain->SetBranchAddress("H.tr.d_ph", H_tr_d_ph, &b_H_tr_d_ph); + fChain->SetBranchAddress("Ndata.H.tr.d_th", &Ndata_H_tr_d_th, &b_Ndata_H_tr_d_th); + fChain->SetBranchAddress("H.tr.d_th", H_tr_d_th, &b_H_tr_d_th); + fChain->SetBranchAddress("Ndata.H.tr.d_x", &Ndata_H_tr_d_x, &b_Ndata_H_tr_d_x); + fChain->SetBranchAddress("H.tr.d_x", H_tr_d_x, &b_H_tr_d_x); + fChain->SetBranchAddress("Ndata.H.tr.d_y", &Ndata_H_tr_d_y, &b_Ndata_H_tr_d_y); + fChain->SetBranchAddress("H.tr.d_y", H_tr_d_y, &b_H_tr_d_y); + fChain->SetBranchAddress("Ndata.H.tr.dbeta", &Ndata_H_tr_dbeta, &b_Ndata_H_tr_dbeta); + fChain->SetBranchAddress("H.tr.dbeta", H_tr_dbeta, &b_H_tr_dbeta); + fChain->SetBranchAddress("Ndata.H.tr.dtime", &Ndata_H_tr_dtime, &b_Ndata_H_tr_dtime); + fChain->SetBranchAddress("H.tr.dtime", H_tr_dtime, &b_H_tr_dtime); + fChain->SetBranchAddress("Ndata.H.tr.flag", &Ndata_H_tr_flag, &b_Ndata_H_tr_flag); + fChain->SetBranchAddress("H.tr.flag", H_tr_flag, &b_H_tr_flag); + fChain->SetBranchAddress("Ndata.H.tr.ndof", &Ndata_H_tr_ndof, &b_Ndata_H_tr_ndof); + fChain->SetBranchAddress("H.tr.ndof", H_tr_ndof, &b_H_tr_ndof); + fChain->SetBranchAddress("Ndata.H.tr.p", &Ndata_H_tr_p, &b_Ndata_H_tr_p); + fChain->SetBranchAddress("H.tr.p", H_tr_p, &b_H_tr_p); + fChain->SetBranchAddress("Ndata.H.tr.pathl", &Ndata_H_tr_pathl, &b_Ndata_H_tr_pathl); + fChain->SetBranchAddress("H.tr.pathl", H_tr_pathl, &b_H_tr_pathl); + fChain->SetBranchAddress("Ndata.H.tr.ph", &Ndata_H_tr_ph, &b_Ndata_H_tr_ph); + fChain->SetBranchAddress("H.tr.ph", H_tr_ph, &b_H_tr_ph); + fChain->SetBranchAddress("Ndata.H.tr.px", &Ndata_H_tr_px, &b_Ndata_H_tr_px); + fChain->SetBranchAddress("H.tr.px", H_tr_px, &b_H_tr_px); + fChain->SetBranchAddress("Ndata.H.tr.py", &Ndata_H_tr_py, &b_Ndata_H_tr_py); + fChain->SetBranchAddress("H.tr.py", H_tr_py, &b_H_tr_py); + fChain->SetBranchAddress("Ndata.H.tr.pz", &Ndata_H_tr_pz, &b_Ndata_H_tr_pz); + fChain->SetBranchAddress("H.tr.pz", H_tr_pz, &b_H_tr_pz); + fChain->SetBranchAddress("Ndata.H.tr.r_ph", &Ndata_H_tr_r_ph, &b_Ndata_H_tr_r_ph); + fChain->SetBranchAddress("H.tr.r_ph", H_tr_r_ph, &b_H_tr_r_ph); + fChain->SetBranchAddress("Ndata.H.tr.r_th", &Ndata_H_tr_r_th, &b_Ndata_H_tr_r_th); + fChain->SetBranchAddress("H.tr.r_th", H_tr_r_th, &b_H_tr_r_th); + fChain->SetBranchAddress("Ndata.H.tr.r_x", &Ndata_H_tr_r_x, &b_Ndata_H_tr_r_x); + fChain->SetBranchAddress("H.tr.r_x", H_tr_r_x, &b_H_tr_r_x); + fChain->SetBranchAddress("Ndata.H.tr.r_y", &Ndata_H_tr_r_y, &b_Ndata_H_tr_r_y); + fChain->SetBranchAddress("H.tr.r_y", H_tr_r_y, &b_H_tr_r_y); + fChain->SetBranchAddress("Ndata.H.tr.tg_dp", &Ndata_H_tr_tg_dp, &b_Ndata_H_tr_tg_dp); + fChain->SetBranchAddress("H.tr.tg_dp", H_tr_tg_dp, &b_H_tr_tg_dp); + fChain->SetBranchAddress("Ndata.H.tr.tg_ph", &Ndata_H_tr_tg_ph, &b_Ndata_H_tr_tg_ph); + fChain->SetBranchAddress("H.tr.tg_ph", H_tr_tg_ph, &b_H_tr_tg_ph); + fChain->SetBranchAddress("Ndata.H.tr.tg_th", &Ndata_H_tr_tg_th, &b_Ndata_H_tr_tg_th); + fChain->SetBranchAddress("H.tr.tg_th", H_tr_tg_th, &b_H_tr_tg_th); + fChain->SetBranchAddress("Ndata.H.tr.tg_y", &Ndata_H_tr_tg_y, &b_Ndata_H_tr_tg_y); + fChain->SetBranchAddress("H.tr.tg_y", H_tr_tg_y, &b_H_tr_tg_y); + fChain->SetBranchAddress("Ndata.H.tr.th", &Ndata_H_tr_th, &b_Ndata_H_tr_th); + fChain->SetBranchAddress("H.tr.th", H_tr_th, &b_H_tr_th); + fChain->SetBranchAddress("Ndata.H.tr.time", &Ndata_H_tr_time, &b_Ndata_H_tr_time); + fChain->SetBranchAddress("H.tr.time", H_tr_time, &b_H_tr_time); + fChain->SetBranchAddress("Ndata.H.tr.vx", &Ndata_H_tr_vx, &b_Ndata_H_tr_vx); + fChain->SetBranchAddress("H.tr.vx", H_tr_vx, &b_H_tr_vx); + fChain->SetBranchAddress("Ndata.H.tr.vy", &Ndata_H_tr_vy, &b_Ndata_H_tr_vy); + fChain->SetBranchAddress("H.tr.vy", H_tr_vy, &b_H_tr_vy); + fChain->SetBranchAddress("Ndata.H.tr.vz", &Ndata_H_tr_vz, &b_Ndata_H_tr_vz); + fChain->SetBranchAddress("H.tr.vz", H_tr_vz, &b_H_tr_vz); + fChain->SetBranchAddress("Ndata.H.tr.x", &Ndata_H_tr_x, &b_Ndata_H_tr_x); + fChain->SetBranchAddress("H.tr.x", H_tr_x, &b_H_tr_x); + fChain->SetBranchAddress("Ndata.H.tr.y", &Ndata_H_tr_y, &b_Ndata_H_tr_y); + fChain->SetBranchAddress("H.tr.y", H_tr_y, &b_H_tr_y); + fChain->SetBranchAddress("H.cal.1pr.eplane", &H_cal_1pr_eplane, &b_H_cal_1pr_eplane); + fChain->SetBranchAddress("H.cal.1pr.eplane_neg", &H_cal_1pr_eplane_neg, &b_H_cal_1pr_eplane_neg); + fChain->SetBranchAddress("H.cal.1pr.eplane_pos", &H_cal_1pr_eplane_pos, &b_H_cal_1pr_eplane_pos); + fChain->SetBranchAddress("H.cal.2ta.eplane", &H_cal_2ta_eplane, &b_H_cal_2ta_eplane); + fChain->SetBranchAddress("H.cal.2ta.eplane_neg", &H_cal_2ta_eplane_neg, &b_H_cal_2ta_eplane_neg); + fChain->SetBranchAddress("H.cal.2ta.eplane_pos", &H_cal_2ta_eplane_pos, &b_H_cal_2ta_eplane_pos); + fChain->SetBranchAddress("H.cal.3ta.eplane", &H_cal_3ta_eplane, &b_H_cal_3ta_eplane); + fChain->SetBranchAddress("H.cal.3ta.eplane_neg", &H_cal_3ta_eplane_neg, &b_H_cal_3ta_eplane_neg); + fChain->SetBranchAddress("H.cal.3ta.eplane_pos", &H_cal_3ta_eplane_pos, &b_H_cal_3ta_eplane_pos); + fChain->SetBranchAddress("H.cal.4ta.eplane", &H_cal_4ta_eplane, &b_H_cal_4ta_eplane); + fChain->SetBranchAddress("H.cal.4ta.eplane_neg", &H_cal_4ta_eplane_neg, &b_H_cal_4ta_eplane_neg); + fChain->SetBranchAddress("H.cal.4ta.eplane_pos", &H_cal_4ta_eplane_pos, &b_H_cal_4ta_eplane_pos); + fChain->SetBranchAddress("H.cal.emax", &H_cal_emax, &b_H_cal_emax); + fChain->SetBranchAddress("H.cal.eprmax", &H_cal_eprmax, &b_H_cal_eprmax); + fChain->SetBranchAddress("H.cal.mult", &H_cal_mult, &b_H_cal_mult); + fChain->SetBranchAddress("H.cal.nclust", &H_cal_nclust, &b_H_cal_nclust); + fChain->SetBranchAddress("H.cal.nhits", &H_cal_nhits, &b_H_cal_nhits); + fChain->SetBranchAddress("H.cal.ntracks", &H_cal_ntracks, &b_H_cal_ntracks); + fChain->SetBranchAddress("H.cal.tre", &H_cal_tre, &b_H_cal_tre); + fChain->SetBranchAddress("H.cal.trecor", &H_cal_trecor, &b_H_cal_trecor); + fChain->SetBranchAddress("H.cal.treplcor", &H_cal_treplcor, &b_H_cal_treplcor); + fChain->SetBranchAddress("H.cal.trepr", &H_cal_trepr, &b_H_cal_trepr); + fChain->SetBranchAddress("H.cal.treprcor", &H_cal_treprcor, &b_H_cal_treprcor); + fChain->SetBranchAddress("H.cal.trx", &H_cal_trx, &b_H_cal_trx); + fChain->SetBranchAddress("H.cal.try", &H_cal_try, &b_H_cal_try); + fChain->SetBranchAddress("H.cal.xmax", &H_cal_xmax, &b_H_cal_xmax); + fChain->SetBranchAddress("H.gold.dp", &H_gold_dp, &b_H_gold_dp); + fChain->SetBranchAddress("H.gold.e", &H_gold_e, &b_H_gold_e); + fChain->SetBranchAddress("H.gold.fp_ph", &H_gold_fp_ph, &b_H_gold_fp_ph); + fChain->SetBranchAddress("H.gold.fp_th", &H_gold_fp_th, &b_H_gold_fp_th); + fChain->SetBranchAddress("H.gold.fp_x", &H_gold_fp_x, &b_H_gold_fp_x); + fChain->SetBranchAddress("H.gold.fp_y", &H_gold_fp_y, &b_H_gold_fp_y); + fChain->SetBranchAddress("H.gold.index", &H_gold_index, &b_H_gold_index); + fChain->SetBranchAddress("H.gold.ok", &H_gold_ok, &b_H_gold_ok); + fChain->SetBranchAddress("H.gold.p", &H_gold_p, &b_H_gold_p); + fChain->SetBranchAddress("H.gold.ph", &H_gold_ph, &b_H_gold_ph); + fChain->SetBranchAddress("H.gold.px", &H_gold_px, &b_H_gold_px); + fChain->SetBranchAddress("H.gold.py", &H_gold_py, &b_H_gold_py); + fChain->SetBranchAddress("H.gold.pz", &H_gold_pz, &b_H_gold_pz); + fChain->SetBranchAddress("H.gold.th", &H_gold_th, &b_H_gold_th); + fChain->SetBranchAddress("H.gold.x", &H_gold_x, &b_H_gold_x); + fChain->SetBranchAddress("H.gold.y", &H_gold_y, &b_H_gold_y); + fChain->SetBranchAddress("H.tr.n", &H_tr_n, &b_H_tr_n); + fChain->SetBranchAddress("g.evtyp", &g_evtyp, &b_g_evtyp); + fChain->SetBranchAddress("fEvtHdr.fEvtTime", &fEvtHdr_fEvtTime, &b_Event_Branch_fEvtHdr_fEvtTime); + fChain->SetBranchAddress("fEvtHdr.fEvtNum", &fEvtHdr_fEvtNum, &b_Event_Branch_fEvtHdr_fEvtNum); + fChain->SetBranchAddress("fEvtHdr.fEvtType", &fEvtHdr_fEvtType, &b_Event_Branch_fEvtHdr_fEvtType); + fChain->SetBranchAddress("fEvtHdr.fEvtLen", &fEvtHdr_fEvtLen, &b_Event_Branch_fEvtHdr_fEvtLen); + fChain->SetBranchAddress("fEvtHdr.fHelicity", &fEvtHdr_fHelicity, &b_Event_Branch_fEvtHdr_fHelicity); + fChain->SetBranchAddress("fEvtHdr.fTargetPol", &fEvtHdr_fTargetPol, &b_Event_Branch_fEvtHdr_fTargetPol); + fChain->SetBranchAddress("fEvtHdr.fRun", &fEvtHdr_fRun, &b_Event_Branch_fEvtHdr_fRun); + Notify(); +} + +Bool_t hcana_class::Notify() +{ + // The Notify() function is called when a new file is opened. This + // can be either for a new TTree in a TChain or when when a new TTree + // is started when using PROOF. It is normally not necessary to make changes + // to the generated code, but the routine can be extended by the + // user if needed. The return value is currently not used. + + return kTRUE; +} + +void hcana_class::Show(Long64_t entry) +{ +// Print contents of entry. +// If entry is not specified, print current entry + if (!fChain) return; + fChain->Show(entry); +} +Int_t hcana_class::Cut(Long64_t entry) +{ +// This function may be called from Loop. +// returns 1 if entry is accepted. +// returns -1 otherwise. + return 1; +} +#endif // #ifdef hcana_class_cxx diff --git a/examples/gtrk_e/hms52949_rz.root b/examples/gtrk_e/hms52949_rz.root new file mode 120000 index 0000000..eee1c1e --- /dev/null +++ b/examples/gtrk_e/hms52949_rz.root @@ -0,0 +1 @@ +../hms52949_rz.root \ No newline at end of file diff --git a/examples/gtrk_e/hodtest_52949.root b/examples/gtrk_e/hodtest_52949.root new file mode 120000 index 0000000..0417a12 --- /dev/null +++ b/examples/gtrk_e/hodtest_52949.root @@ -0,0 +1 @@ +../hodtest_52949.root \ No newline at end of file diff --git a/examples/gtrk_e/make_class.C b/examples/gtrk_e/make_class.C new file mode 100644 index 0000000..a22c5e9 --- /dev/null +++ b/examples/gtrk_e/make_class.C @@ -0,0 +1,17 @@ +#include <TTree.h> +#include <TFile.h> +#include <TROOT.h> +#include <iostream> + +using namespace std; + +void make_class(string root_file="hodtest_52949.root", + string tree_name="T;1", + string class_name="hcana_class") { + + TFile* r_file = new TFile(root_file.c_str()); + // TTree *T = (TTree*)gROOT->FindObject("T;1"); + TTree *T = (TTree*)gROOT->FindObject(tree_name.c_str()); + T->MakeClass(class_name.c_str()); + +} -- GitLab