ndmspc v1.2.0-0.1.rc5
Loading...
Searching...
No Matches
NTreeBranch.h
1#ifndef Ndmspc_NTreeBranch_H
2#define Ndmspc_NTreeBranch_H
3#include <TObject.h>
4#include <TBranch.h>
5#include <string>
6
7namespace Ndmspc {
8
18class NTreeBranch : public TObject {
19 public:
27 NTreeBranch(TTree * tree = nullptr, const std::string & name = "", void * address = nullptr,
28 const std::string & objClassName = "TObject");
29
33 virtual ~NTreeBranch();
34
39 virtual void Print(Option_t * option = "") const;
40
45 void SetName(const std::string & name) { fName = name; }
46
51 void SetObjectClassName(const std::string & objClassName) { fObjectClassName = objClassName; }
52
57 void SetBranch(TBranch * branch) { fBranch = branch; }
58
63 void SetObject(TObject * obj) { fObject = obj; }
64
69 TBranch * GetBranch() { return fBranch; }
70
75 int GetBranchStatus() const { return fBranchStatus; }
76
81 TObject * GetObject() const { return fObject; }
82
87 std::string GetObjectClassName() const { return fObjectClassName; }
88
95 TBranch * Branch(TTree * tree, void * address);
96
102 void SetAddress(void * address, bool deleteExisting = false);
103
108 void SetBranchAddress(TTree * tree);
109
114 void SetBranchStatus(int status) { fBranchStatus = status; }
115
122 Long64_t GetEntry(TTree * tree, Long64_t entry);
123
130 void SaveEntry(NTreeBranch * hnstIn, bool useProjection = false, const std::string projOpt = "OE");
131
132 private:
133 std::string fName{""};
135 TBranch * fBranch{nullptr};
136 TObject * fObject{nullptr};
137 std::string fObjectClassName{"TObject"};
138
140 ClassDef(NTreeBranch, 1);
142};
143} // namespace Ndmspc
144#endif
NDMSPC tree branch object for managing ROOT TBranch and associated data.
Definition NTreeBranch.h:18
TBranch * GetBranch()
Get branch pointer.
Definition NTreeBranch.h:69
std::string GetObjectClassName() const
Get object class name.
Definition NTreeBranch.h:87
Long64_t GetEntry(TTree *tree, Long64_t entry)
Get entry from TTree.
NTreeBranch(TTree *tree=nullptr, const std::string &name="", void *address=nullptr, const std::string &objClassName="TObject")
Constructor.
TObject * fObject
! Object pointer
void SetObject(TObject *obj)
Set object pointer.
Definition NTreeBranch.h:63
int fBranchStatus
Branch status.
virtual void Print(Option_t *option="") const
Print branch information.
virtual ~NTreeBranch()
Destructor.
std::string fObjectClassName
Object class name.
TBranch * Branch(TTree *tree, void *address)
Create branch in TTree with given address.
TObject * GetObject() const
Get object pointer.
Definition NTreeBranch.h:81
void SaveEntry(NTreeBranch *hnstIn, bool useProjection=false, const std::string projOpt="OE")
Save entry to another NTreeBranch.
void SetAddress(void *address, bool deleteExisting=false)
Set address for branch data.
void SetName(const std::string &name)
Set branch name.
Definition NTreeBranch.h:45
TBranch * fBranch
! Branch pointer
int GetBranchStatus() const
Get branch status.
Definition NTreeBranch.h:75
void SetBranchAddress(TTree *tree)
Set branch address in TTree.
void SetBranchStatus(int status)
Set branch status.
void SetBranch(TBranch *branch)
Set branch pointer.
Definition NTreeBranch.h:57
std::string fName
Branch name.
void SetObjectClassName(const std::string &objClassName)
Set object class name.
Definition NTreeBranch.h:51
Global callback function for libwebsockets client events.