library: libTreePlayer
#include "TTreeFormulaManager.h"

TTreeFormulaManager


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

class TTreeFormulaManager : public TObject

Inheritance Chart:
TObject
<-
TTreeFormulaManager
    private:
TTreeFormulaManager(const TTreeFormulaManager&) ~TTreeFormulaManager() TTreeFormulaManager& operator=(const TTreeFormulaManager&) protected:
virtual void AddVarDims(Int_t virt_dim) virtual void CancelDimension(Int_t virt_dim) virtual void EnableMultiVarDims() virtual void UpdateUsedSize(Int_t& virt_dim, Int_t vsize) public:
TTreeFormulaManager() virtual void Add(TTreeFormula*) static TClass* Class() virtual Int_t GetMultiplicity() const virtual Int_t GetNdata(Bool_t forceLoadDim = kFALSE) virtual TClass* IsA() const virtual Bool_t Notify() virtual void Remove(TTreeFormula*) virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b) virtual Bool_t Sync() virtual void UpdateFormulaLeaves()

Data Members

    private:
TObjArray fFormulas Int_t fMultiplicity Indicator of the variability of the formula Bool_t fMultiVarDim True if one of the variable has 2 variable size dimensions. Int_t fNdata ! Last value calculated by GetNdata Int_t fCumulUsedSizes[6] Accumulated size of lower dimensions as seen for this entry TArrayI* fCumulUsedVarDims fCumulUsedSizes(1) for multi variable dimensions case Int_t fUsedSizes[6] Actual size of the dimensions as seen for this entry. TArrayI* fVarDims[6] List of variable sizes dimensions. Int_t fVirtUsedSizes[6] Virtual size of lower dimensions as seen for this formula Bool_t fNeedSync Indicate whether a new formula has been added since the last synchronization

Class Description

     A TreeFormulaManager is used to coordinate one or more TTreeFormula objecs

  In particular it makes sure that the dimensions and size of all the formulas
  is properly coordinated.


TTreeFormulaManager() : TObject()
*-*-*-*-*-*-*-*-*-*-*Tree FormulaManger default constructor*-*-*-*-*-*-*-*-*-*
*-*                  ======================================

~TTreeFormulaManager()
*-*-*-*-*-*-*-*-*-*-*Tree FormulaManager default destructor*-*-*-*-*-*-*-*-*-*
*-*                  ======================================

void Remove(TTreeFormula* adding)
 Remove a formula from this manager

void Add(TTreeFormula* adding)
 Add a new formula to the list of formulas managed
 The manager of the formula will be changed and the old one will be deleted
 if it is empty.

void AddVarDims(Int_t virt_dim)
 Add a variable dimension

void CancelDimension(Int_t virt_dim)
 Cancel a dimension.  This is usually called when an out-of-bounds index
 is used.

void EnableMultiVarDims()

Int_t GetNdata(Bool_t forceLoadDim)
*-*-*-*-*-*-*-*Return number of available instances in the formulas*-*-*-*-*-*
*-*            ====================================================


Bool_t Sync()

void UpdateFormulaLeaves()
 this function could be called TTreePlayer::UpdateFormulaLeaves, itself
 called by TChain::LoadTree when a new Tree is loaded.
 Because Trees in a TChain may have a different list of leaves, one
 must update the leaves numbers in the TTreeFormula used by the TreePlayer.

void UpdateUsedSize(Int_t &virt_dim, Int_t vsize)



Inline Functions


        TTreeFormulaManager& operator=(const TTreeFormulaManager&)
         TTreeFormulaManager TTreeFormulaManager()
                       Int_t GetMultiplicity() const
                      Bool_t Notify()
                     TClass* Class()
                     TClass* IsA() const
                        void ShowMembers(TMemberInspector& insp, char* parent)
                        void Streamer(TBuffer& b)
                        void StreamerNVirtual(TBuffer& b)


Author: Philippe Canal 20/03/02
Last update: root/treeplayer:$Name: $:$Id: TTreeFormulaManager.cxx,v 1.6 2004/08/12 04:33:45 brun Exp $
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers and al. *


ROOT page - Class index - Class Hierarchy - Top of the page

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.