library: libHbook #include "THbookTree.h"

# THbookTree

class description - source file - inheritance tree (.pdf)

## class THbookTree : public TTree

| Inheritance Chart:
`TObject`
| <- | `TNamed`
`TAttLine`
`TAttFill`
`TAttMarker`
| <- | `TTree`
| <- | `THbookTree` |

        public:

                           THbookTree()
                           THbookTree(const char* name, Int_t id)
                   virtual ~THbookTree()
            static TClass* Class()
             virtual Int_t GetEntry(Long64_t entry = 0, Int_t getall = 0)
               THbookFile* GetHbookFile()
             virtual Int_t GetID()
             virtual Int_t GetType()
                  Float_t* GetX()
              virtual void InitBranches(Long64_t entry)
           virtual TClass* IsA() const
                     char* MakeX(Int_t nvars)
              virtual void Print(Option_t* option = "") const
          virtual Long64_t SetEntries(Long64_t n = -1)
              virtual void SetHbookFile(THbookFile* file)
              virtual void SetType(Int_t atype)
              virtual void ShowMembers(TMemberInspector& insp, char* parent)
              virtual void Streamer(TBuffer& b)
                      void StreamerNVirtual(TBuffer& b)

### Data Members

        protected:

                Int_t fID    Hbook identifier
                Int_t fType  RWN (0) or CWN (1)
                char* fX     storage area for RWN
               Bool_t fInit  flag to know if branches computed
          THbookFile* fFile  pointer to Hbook file

## Class Description

     THbookTree

     A wrapper class supporting Hbook ntuples (CWN and RWN).
     The normal TTree calls can be used, including TTree::Draw().
     Data read directly from the Hbook file via THbookFile.

     IMPORTANT NOTE
     When setting the branch address (via THbookTree::SetBranchAddress)
     for a branch in an Hbook block containing several names, eg
        Hbook block SELEVN with the following variables:
     ******************************************************************
      *      1   * R*4  *         *              * SELEVN   * WGGS
      *      2   * R*4  *         *              * SELEVN   * AM12
      *      3   * R*4  *         *              * SELEVN   * AM34
      *      4   * R*4  *         *              * SELEVN   * AM14
      *      5   * R*4  *         *              * SELEVN   * AM32
      *      6   * R*4  *         *              * SELEVN   * PtPI(4)
      *      7   * R*4  *         *              * SELEVN   * PHIPI(4)
      *      8   * R*4  *         *              * SELEVN   * THTPI(4)
     one must define a C struct like:
       struct {
          Float_t Wggs;
          Float_t Am12;
          Float_t Am34;
          Float_t Am14;
          Float_t Am32;
          Float_t Ptpi[4];
          Float_t Phipi[4];
          Float_t Thtpi[4];
       } event;

     and set ONLY the first variable address with:
        h96->SetBranchAddress("Wggs",&event.Wggs);

THbookTree(): TTree()

THbookTree(const char *name,Int_t id) :TTree(name,name)

~THbookTree()

Int_t GetEntry(Long64_t entry, Int_t /*getall*/)

void InitBranches(Long64_t entry)

void Print(Option_t *option) const

Long64_t SetEntries(Long64_t n)

### Inline Functions

            THbookFile* GetHbookFile()
                  Int_t GetID()
                  Int_t GetType()
               Float_t* GetX()
                  char* MakeX(Int_t nvars)
                   void SetHbookFile(THbookFile* file)
                   void SetType(Int_t atype)
                TClass* Class()
                TClass* IsA() const
                   void ShowMembers(TMemberInspector& insp, char* parent)
                   void Streamer(TBuffer& b)
                   void StreamerNVirtual(TBuffer& b)

Author: Rene Brun 18/02/2002
Last update: root/hbook:$Name: $:$Id: THbookTree.cxx,v 1.10 2005/01/12 10:51:00 brun Exp $
Copyright (C) 1995-2002, Rene Brun and Fons Rademakers. *