Logo ROOT   6.16/01
Reference Guide
TTreeFormulaManager.h
Go to the documentation of this file.
1// @(#)root/treeplayer:$Id$
2// Author: Philippe Canal 20/03/02
3
4/*************************************************************************
5 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers and al. *
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#ifndef ROOT_TTreeFormulaManager
13#define ROOT_TTreeFormulaManager
14
15
16//////////////////////////////////////////////////////////////////////////
17// //
18// TTreeFormulaManager //
19// //
20// A class coordinating several TTreeFormula objects. //
21// //
22//////////////////////////////////////////////////////////////////////////
23
24
25#include "TObjArray.h"
26
27#include "TTreeFormula.h"
28
29class TArrayI;
30
31
33private:
35 Int_t fMultiplicity; // Indicator of the variability of the formula
36 Bool_t fMultiVarDim; // True if one of the variable has 2 variable size dimensions.
37 Int_t fNdata; //! Last value calculated by GetNdata
38
39 //the next line should be: mutable Int_t fCumulUsedSizes[kMAXFORMDIM+1]; See GetNdata()
40 Int_t fCumulUsedSizes[kMAXFORMDIM+1]; //Accumulated size of lower dimensions as seen for this entry
41 TArrayI *fCumulUsedVarDims; //fCumulUsedSizes(1) for multi variable dimensions case
42 //the next line should be: mutable Int_t fUsedSizes[kMAXFORMDIM+1]; See GetNdata()
43 Int_t fUsedSizes[kMAXFORMDIM+1]; //Actual size of the dimensions as seen for this entry.
44 TArrayI *fVarDims[kMAXFORMDIM+1]; //List of variable sizes dimensions.
45 Int_t fVirtUsedSizes[kMAXFORMDIM+1]; //Virtual size of lower dimensions as seen for this formula
46
47 Bool_t fNeedSync; // Indicate whether a new formula has been added since the last synchronization
48
49 friend class TTreeFormula;
50
51private:
52 // Not implemented yet
55
56protected:
57
58 virtual void AddVarDims(Int_t virt_dim);
59 virtual void CancelDimension(Int_t virt_dim);
60 virtual void EnableMultiVarDims();
61 virtual void UpdateUsedSize(Int_t &virt_dim, Int_t vsize);
62
63public:
66
67 virtual void Add(TTreeFormula*);
68 virtual Int_t GetMultiplicity() const {return fMultiplicity;}
69 virtual Int_t GetNdata(Bool_t forceLoadDim = kFALSE);
70 virtual Bool_t Notify() { UpdateFormulaLeaves(); return kTRUE; }
71 virtual void Remove(TTreeFormula*);
72 virtual Bool_t Sync();
73 virtual void UpdateFormulaLeaves();
74
75 ClassDef(TTreeFormulaManager,0) // A class coordinating several TTreeFormula objects.
76};
77
78
79#endif // ROOT_TTreeFormulaManager
80
int Int_t
Definition: RtypesCore.h:41
const Bool_t kFALSE
Definition: RtypesCore.h:88
bool Bool_t
Definition: RtypesCore.h:59
const Bool_t kTRUE
Definition: RtypesCore.h:87
#define ClassDef(name, id)
Definition: Rtypes.h:324
const Int_t kMAXFORMDIM
Definition: TTreeFormula.h:43
Array of integers (32 bits per element).
Definition: TArrayI.h:27
An array of TObjects.
Definition: TObjArray.h:37
Mother of all ROOT objects.
Definition: TObject.h:37
Used to coordinate one or more TTreeFormula objects.
virtual void UpdateUsedSize(Int_t &virt_dim, Int_t vsize)
Reload the array sizes.
Int_t fVirtUsedSizes[kMAXFORMDIM+1]
virtual void UpdateFormulaLeaves()
This function could be called TTreePlayer::UpdateFormulaLeaves, itself called by TChain::LoadTree whe...
TArrayI * fVarDims[kMAXFORMDIM+1]
virtual void EnableMultiVarDims()
Set the manager as handling a formula with multiple variable dimensions.
TTreeFormulaManager & operator=(const TTreeFormulaManager &)
TTreeFormulaManager(const TTreeFormulaManager &)
virtual Int_t GetNdata(Bool_t forceLoadDim=kFALSE)
Return number of available instances in the formulas.
virtual void CancelDimension(Int_t virt_dim)
Cancel a dimension.
~TTreeFormulaManager()
Tree FormulaManager default destructor.
Int_t fCumulUsedSizes[kMAXFORMDIM+1]
Last value calculated by GetNdata.
Int_t fUsedSizes[kMAXFORMDIM+1]
virtual Bool_t Sync()
Synchronize all the formulae.
virtual void Add(TTreeFormula *)
Add a new formula to the list of formulas managed The manager of the formula will be changed and the ...
virtual void AddVarDims(Int_t virt_dim)
Add a variable dimension.
virtual void Remove(TTreeFormula *)
Remove a formula from this manager.
virtual Int_t GetMultiplicity() const
TTreeFormulaManager()
Tree FormulaManger default constructor.
virtual Bool_t Notify()
This method must be overridden to handle object notification.
Used to pass a selection expression to the Tree drawing routine.
Definition: TTreeFormula.h:58