Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
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
27class TArrayI;
28
29
31private:
33 Int_t fMultiplicity; ///< Indicator of the variability of the formula
34 bool 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 fNeedSync; // Indicate whether a new formula has been added since the last synchronization
46
47 friend class TTreeFormula;
48
49private:
50 // Not implemented yet
53
54protected:
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
61public:
63 ~TTreeFormulaManager() override;
64
65 virtual void Add(TTreeFormula*);
66 virtual Int_t GetMultiplicity() const {return fMultiplicity;}
67 virtual Int_t GetNdata(bool forceLoadDim = false);
68 bool Notify() override { UpdateFormulaLeaves(); return true; }
69 virtual void Remove(TTreeFormula*);
70 virtual bool Sync();
71 virtual void UpdateFormulaLeaves();
72
73 ClassDefOverride(TTreeFormulaManager,0) // A class coordinating several TTreeFormula objects.
74};
75
76
77#endif // ROOT_TTreeFormulaManager
78
int Int_t
Definition RtypesCore.h:45
#define ClassDefOverride(name, id)
Definition Rtypes.h:346
const Int_t kMAXFORMDIM
Array of integers (32 bits per element).
Definition TArrayI.h:27
An array of TObjects.
Definition TObjArray.h:31
Mother of all ROOT objects.
Definition TObject.h:41
Used to coordinate one or more TTreeFormula objects.
bool fMultiVarDim
True if one of the variable has 2 variable size dimensions.
virtual void UpdateUsedSize(Int_t &virt_dim, Int_t vsize)
Reload the array sizes.
Int_t fVirtUsedSizes[kMAXFORMDIM+1]
Virtual size of lower dimensions as seen for this formula.
Int_t fNdata
! Last value calculated by GetNdata
virtual void UpdateFormulaLeaves()
This function could be called TTreePlayer::UpdateFormulaLeaves, itself called by TChain::LoadTree whe...
TArrayI * fCumulUsedVarDims
fCumulUsedSizes(1) for multi variable dimensions case
TArrayI * fVarDims[kMAXFORMDIM+1]
List of variable sizes dimensions.
TTreeFormulaManager(const TTreeFormulaManager &)=delete
virtual void EnableMultiVarDims()
Set the manager as handling a formula with multiple variable dimensions.
TTreeFormulaManager & operator=(const TTreeFormulaManager &)=delete
Int_t fMultiplicity
Indicator of the variability of the formula.
~TTreeFormulaManager() override
Tree FormulaManager default destructor.
bool Notify() override
This method must be overridden to handle object notification (the base implementation is no-op).
virtual void CancelDimension(Int_t virt_dim)
Cancel a dimension.
Int_t fCumulUsedSizes[kMAXFORMDIM+1]
Accumulated size of lower dimensions as seen for this entry.
Int_t fUsedSizes[kMAXFORMDIM+1]
Actual size of the dimensions as seen for this entry.
virtual Int_t GetNdata(bool forceLoadDim=false)
Return number of available instances in the formulas.
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 bool Sync()
Synchronize all the formulae.
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.
Used to pass a selection expression to the Tree drawing routine.