Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
THbookBranch.cxx
Go to the documentation of this file.
1 // @(#)root/hbook:$Id$
2 // Author: Rene Brun 18/02/2002
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2002, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #include "THbookBranch.h"
13 #include "THbookTree.h"
14 
15 ClassImp(THbookBranch);
16 
17 ////////////////////////////////////////////////////////////////////////////////
18 /** \class THbookBranch
19  \ingroup Hist
20  \brief HBOOK Branch
21 */
22 
23 ////////////////////////////////////////////////////////////////////////////////
24 
25 THbookBranch::THbookBranch(TTree *tree, const char *name, void *address, const char *leaflist, Int_t basketsize, Int_t compress)
26  :TBranch(tree, name,address,leaflist,basketsize,compress)
27 {
28 }
29 
30 ////////////////////////////////////////////////////////////////////////////////
31 
32 THbookBranch::THbookBranch(TBranch *branch, const char *name, void *address, const char *leaflist, Int_t basketsize, Int_t compress)
33  :TBranch(branch,name,address,leaflist,basketsize,compress)
34 {
35 }
36 
37 ////////////////////////////////////////////////////////////////////////////////
38 
39 THbookBranch::~THbookBranch()
40 {
41 }
42 
43 
44 ////////////////////////////////////////////////////////////////////////////////
45 /// Browser interface.
46 
47 void THbookBranch::Browse(TBrowser *b)
48 {
49  THbookTree *tree = (THbookTree*)GetTree();
50  THbookFile *file = tree->GetHbookFile();
51  file->cd();
52 
53  TBranch::Browse(b);
54 }
55 
56 ////////////////////////////////////////////////////////////////////////////////
57 ///get one entry from hbook ntuple
58 
59 Int_t THbookBranch::GetEntry(Long64_t entry, Int_t /*getall*/)
60 {
61  THbookTree *tree = (THbookTree*)GetTree();
62  THbookFile *file = tree->GetHbookFile();
63  if (tree->GetType() == 0) {
64  return file->GetEntry(entry,tree->GetID(),0,tree->GetX());
65  } else {
66  tree->InitBranches(entry);
67  return file->GetEntryBranch(entry,tree->GetID());
68  }
69 }
70 
71 ////////////////////////////////////////////////////////////////////////////////
72 /// Set address of this branch
73 /// See important remark in the header of THbookTree
74 
75 void THbookBranch::SetAddress(void *add)
76 {
77  TBranch::SetAddress(add);
78 
79  if (GetUniqueID() != 0) return; //only for first variable of the block
80  THbookTree *tree = (THbookTree*)GetTree();
81  THbookFile *file = tree->GetHbookFile();
82  if (tree->GetType() != 0) {
83  file->SetBranchAddress(tree->GetID(),GetBlockName(),add);
84  }
85 }