Logo ROOT  
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 #include "TObjArray.h"
25 #include "TTreeFormula.h"
26 
27 class TArrayI;
28 
29 
30 class TTreeFormulaManager : public TObject {
31 private:
33  Int_t fMultiplicity; // Indicator of the variability of the formula
34  Bool_t fMultiVarDim; // True if one of the variable has 2 variable size dimensions.
35  Int_t fNdata; //! Last value calculated by GetNdata
36 
37  //the next line should be: mutable Int_t fCumulUsedSizes[kMAXFORMDIM+1]; See GetNdata()
38  Int_t fCumulUsedSizes[kMAXFORMDIM+1]; //Accumulated size of lower dimensions as seen for this entry
39  TArrayI *fCumulUsedVarDims; //fCumulUsedSizes(1) for multi variable dimensions case
40  //the next line should be: mutable Int_t fUsedSizes[kMAXFORMDIM+1]; See GetNdata()
41  Int_t fUsedSizes[kMAXFORMDIM+1]; //Actual size of the dimensions as seen for this entry.
42  TArrayI *fVarDims[kMAXFORMDIM+1]; //List of variable sizes dimensions.
43  Int_t fVirtUsedSizes[kMAXFORMDIM+1]; //Virtual size of lower dimensions as seen for this formula
44 
45  Bool_t fNeedSync; // Indicate whether a new formula has been added since the last synchronization
46 
47  friend class TTreeFormula;
48 
49 private:
50  // Not implemented yet
53 
54 protected:
55 
56  virtual void AddVarDims(Int_t virt_dim);
57  virtual void CancelDimension(Int_t virt_dim);
58  virtual void EnableMultiVarDims();
59  virtual void UpdateUsedSize(Int_t &virt_dim, Int_t vsize);
60 
61 public:
64 
65  virtual void Add(TTreeFormula*);
66  virtual Int_t GetMultiplicity() const {return fMultiplicity;}
67  virtual Int_t GetNdata(Bool_t forceLoadDim = kFALSE);
68  virtual Bool_t Notify() { UpdateFormulaLeaves(); return kTRUE; }
69  virtual void Remove(TTreeFormula*);
70  virtual Bool_t Sync();
71  virtual void UpdateFormulaLeaves();
72 
73  ClassDef(TTreeFormulaManager,0) // A class coordinating several TTreeFormula objects.
74 };
75 
76 
77 #endif // ROOT_TTreeFormulaManager
78 
TTreeFormulaManager::UpdateUsedSize
virtual void UpdateUsedSize(Int_t &virt_dim, Int_t vsize)
Reload the array sizes.
Definition: TTreeFormulaManager.cxx:308
TTreeFormulaManager::fNdata
Int_t fNdata
Definition: TTreeFormulaManager.h:35
TTreeFormulaManager::operator=
TTreeFormulaManager & operator=(const TTreeFormulaManager &)=delete
TTreeFormulaManager::Sync
virtual Bool_t Sync()
Synchronize all the formulae.
Definition: TTreeFormulaManager.cxx:219
kTRUE
const Bool_t kTRUE
Definition: RtypesCore.h:91
TObjArray
An array of TObjects.
Definition: TObjArray.h:37
TTreeFormulaManager::TTreeFormulaManager
TTreeFormulaManager()
Tree FormulaManger default constructor.
Definition: TTreeFormulaManager.cxx:30
TTreeFormulaManager::fVirtUsedSizes
Int_t fVirtUsedSizes[kMAXFORMDIM+1]
Definition: TTreeFormulaManager.h:43
TTreeFormulaManager::fMultiVarDim
Bool_t fMultiVarDim
Definition: TTreeFormulaManager.h:34
TTreeFormulaManager::Add
virtual void Add(TTreeFormula *)
Add a new formula to the list of formulas managed The manager of the formula will be changed and the ...
Definition: TTreeFormulaManager.cxx:71
TTreeFormula.h
Int_t
int Int_t
Definition: RtypesCore.h:45
TTreeFormulaManager::fVarDims
TArrayI * fVarDims[kMAXFORMDIM+1]
Definition: TTreeFormulaManager.h:42
TTreeFormulaManager::TTreeFormulaManager
TTreeFormulaManager(const TTreeFormulaManager &)=delete
TTreeFormulaManager::~TTreeFormulaManager
~TTreeFormulaManager()
Tree FormulaManager default destructor.
Definition: TTreeFormulaManager.cxx:49
Bool_t
bool Bool_t
Definition: RtypesCore.h:63
TTreeFormulaManager::AddVarDims
virtual void AddVarDims(Int_t virt_dim)
Add a variable dimension.
Definition: TTreeFormulaManager.cxx:96
bool
TTreeFormulaManager::fMultiplicity
Int_t fMultiplicity
Definition: TTreeFormulaManager.h:33
TTreeFormulaManager
Used to coordinate one or more TTreeFormula objects.
Definition: TTreeFormulaManager.h:30
TTreeFormulaManager::fCumulUsedVarDims
TArrayI * fCumulUsedVarDims
Definition: TTreeFormulaManager.h:39
TTreeFormulaManager::fCumulUsedSizes
Int_t fCumulUsedSizes[kMAXFORMDIM+1]
Last value calculated by GetNdata.
Definition: TTreeFormulaManager.h:38
TTreeFormulaManager::fNeedSync
Bool_t fNeedSync
Definition: TTreeFormulaManager.h:45
kFALSE
const Bool_t kFALSE
Definition: RtypesCore.h:92
TTreeFormulaManager::UpdateFormulaLeaves
virtual void UpdateFormulaLeaves()
This function could be called TTreePlayer::UpdateFormulaLeaves, itself called by TChain::LoadTree whe...
Definition: TTreeFormulaManager.cxx:291
TTreeFormulaManager::fFormulas
TObjArray fFormulas
Definition: TTreeFormulaManager.h:32
TTreeFormula
Used to pass a selection expression to the Tree drawing routine.
Definition: TTreeFormula.h:58
TTreeFormulaManager::GetNdata
virtual Int_t GetNdata(Bool_t forceLoadDim=kFALSE)
Return number of available instances in the formulas.
Definition: TTreeFormulaManager.cxx:122
TTreeFormulaManager::fUsedSizes
Int_t fUsedSizes[kMAXFORMDIM+1]
Definition: TTreeFormulaManager.h:41
TTreeFormulaManager::GetMultiplicity
virtual Int_t GetMultiplicity() const
Definition: TTreeFormulaManager.h:66
TTreeFormulaManager::CancelDimension
virtual void CancelDimension(Int_t virt_dim)
Cancel a dimension.
Definition: TTreeFormulaManager.cxx:105
TObjArray.h
TObject
Mother of all ROOT objects.
Definition: TObject.h:37
ClassDef
#define ClassDef(name, id)
Definition: Rtypes.h:325
TTreeFormulaManager::EnableMultiVarDims
virtual void EnableMultiVarDims()
Set the manager as handling a formula with multiple variable dimensions.
Definition: TTreeFormulaManager.cxx:113
TTreeFormulaManager::Remove
virtual void Remove(TTreeFormula *)
Remove a formula from this manager.
Definition: TTreeFormulaManager.cxx:61
TTreeFormulaManager::Notify
virtual Bool_t Notify()
This method must be overridden to handle object notification.
Definition: TTreeFormulaManager.h:68
TArrayI
Array of integers (32 bits per element).
Definition: TArrayI.h:27
int
kMAXFORMDIM
const Int_t kMAXFORMDIM
Definition: TTreeFormula.h:43