Logo ROOT  
Reference Guide
TBranchObject.h
Go to the documentation of this file.
1// @(#)root/tree:$Id$
2// Author: Rene Brun 11/02/96
3
4/*************************************************************************
5 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
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_TBranchObject
13#define ROOT_TBranchObject
14
15
16//////////////////////////////////////////////////////////////////////////
17// //
18// TBranchObject //
19// //
20// A Branch for the case of an object. //
21//////////////////////////////////////////////////////////////////////////
22
23
24#include "TBranch.h"
25
26class TBranchObject : public TBranch {
27
28protected:
30 kWarn = BIT(14)
31 };
32
33 /// In version of ROOT older then v6.12, kWarn was set to BIT(12)
34 /// which overlaps with TBranch::kBranchObject. Since it stored
35 /// in ROOT files as part of the TBranchObject and that we want
36 /// to reset in TBranchObject::Streamer, we need to keep track
37 /// of the old value.
39 kOldWarn = BIT(12)
40 };
41
42 TString fClassName; ///< Class name of referenced object
43 TObject *fOldObject; ///< !Pointer to old object
44
45 void Init(TTree *tree, TBranch *parent, const char *name, const char *classname, void *addobj, Int_t basketsize, Int_t splitlevel, Int_t compress, Bool_t isptrptr);
46
47public:
49 TBranchObject(TBranch *parent, const char *name, const char *classname, void *addobj, Int_t basketsize=32000, Int_t splitlevel = 0, Int_t compress = ROOT::RCompressionSetting::EAlgorithm::kInherit, Bool_t isptrptr = kTRUE);
50 TBranchObject(TTree *tree, const char *name, const char *classname, void *addobj, Int_t basketsize=32000, Int_t splitlevel = 0, Int_t compress = ROOT::RCompressionSetting::EAlgorithm::kInherit, Bool_t isptrptr = kTRUE);
51 virtual ~TBranchObject();
52
53 void Browse(TBrowser *b) override;
54 const char* GetClassName() const override { return fClassName.Data(); };
55 virtual const char* GetObjClassName() { return fClassName.Data(); };
56 Int_t GetEntry(Long64_t entry=0, Int_t getall = 0) override;
57 Int_t GetExpectedType(TClass *&clptr,EDataType &type) override;
58 Bool_t IsFolder() const override;
59 void Print(Option_t *option="") const override;
60 void Reset(Option_t *option="") override;
61 void ResetAfterMerge(TFileMergeInfo *) override;
62 void SetAddress(void *addobj) override;
63 void SetAutoDelete(Bool_t autodel=kTRUE) override;
64 void SetBasketSize(Int_t buffsize) override;
65 void SetupAddresses() override;
66 void UpdateAddress() override;
67
68private:
70
71 ClassDefOverride(TBranchObject,1); //Branch in case of an object
72};
73
74#endif
bool Bool_t
Definition: RtypesCore.h:63
int Int_t
Definition: RtypesCore.h:45
long long Long64_t
Definition: RtypesCore.h:80
const Bool_t kTRUE
Definition: RtypesCore.h:100
const char Option_t
Definition: RtypesCore.h:66
#define BIT(n)
Definition: Rtypes.h:85
#define ClassDefOverride(name, id)
Definition: Rtypes.h:339
EDataType
Definition: TDataType.h:28
Option_t Option_t option
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t b
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
char name[80]
Definition: TGX11.cxx:110
A helper class for managing IMT work during TTree:Fill operations.
A Branch for the case of an object.
Definition: TBranchObject.h:26
void SetAddress(void *addobj) override
Set address of this branch.
void ResetAfterMerge(TFileMergeInfo *) override
Reset a Branch after a Merge operation (drop data but keep customizations)
const char * GetClassName() const override
Return the name of the user class whose content is stored in this branch, if any.
Definition: TBranchObject.h:54
virtual ~TBranchObject()
Destructor for a BranchObject.
EStatusBitsOldValues
In version of ROOT older then v6.12, kWarn was set to BIT(12) which overlaps with TBranch::kBranchObj...
Definition: TBranchObject.h:38
TObject * fOldObject
!Pointer to old object
Definition: TBranchObject.h:43
void SetAutoDelete(Bool_t autodel=kTRUE) override
Set the AutoDelete bit.
void SetupAddresses() override
– If the branch address is not set, we set all addresses starting with the top level parent branch.
Int_t GetExpectedType(TClass *&clptr, EDataType &type) override
Fill expectedClass and expectedType with information on the data type of the object/values contained ...
void UpdateAddress() override
Update branch addresses if a new object was created.
virtual const char * GetObjClassName()
Definition: TBranchObject.h:55
Int_t GetEntry(Long64_t entry=0, Int_t getall=0) override
Read all branches of a BranchObject and return total number of bytes.
TString fClassName
Class name of referenced object.
Definition: TBranchObject.h:42
Bool_t IsFolder() const override
Return TRUE if more than one leaf or if fBrowsables, FALSE otherwise.
TBranchObject()
Default constructor for BranchObject.
void Print(Option_t *option="") const override
Print TBranch parameters.
void Init(TTree *tree, TBranch *parent, const char *name, const char *classname, void *addobj, Int_t basketsize, Int_t splitlevel, Int_t compress, Bool_t isptrptr)
Initialization routine (run from the constructor so do not make this function virtual)
Int_t FillImpl(ROOT::Internal::TBranchIMTHelper *) override
Loop on all leaves of this branch to fill Basket buffer.
void SetBasketSize(Int_t buffsize) override
Reset basket size for all subbranches of this branch.
void Reset(Option_t *option="") override
Reset a branch.
void Browse(TBrowser *b) override
Browse the branch content.
A TTree is a list of TBranches.
Definition: TBranch.h:89
Using a TBrowser one can browse all ROOT objects.
Definition: TBrowser.h:37
TClass instances represent classes, structs and namespaces in the ROOT type system.
Definition: TClass.h:81
Mother of all ROOT objects.
Definition: TObject.h:41
EStatusBits
Definition: TObject.h:61
Basic string class.
Definition: TString.h:136
const char * Data() const
Definition: TString.h:369
A TTree represents a columnar dataset.
Definition: TTree.h:79
Definition: tree.py:1
@ kInherit
Some objects use this value to denote that the compression algorithm should be inherited from the par...
Definition: Compression.h:86