ndmspc  v1.2.0-0.1.rc3
NTreeBranch.h
1 #ifndef Ndmspc_NTreeBranch_H
2 #define Ndmspc_NTreeBranch_H
3 #include <TObject.h>
4 #include <TBranch.h>
5 #include <string>
6 
7 namespace Ndmspc {
8 
18 class 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{""};
134  int fBranchStatus{1};
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
std::string GetObjectClassName() const
Get object class name.
Definition: NTreeBranch.h:87
TBranch * GetBranch()
Get branch pointer.
Definition: NTreeBranch.h:69
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.
Definition: NTreeBranch.cxx:21
TObject * fObject
! Object pointer
Definition: NTreeBranch.h:136
void SetObject(TObject *obj)
Set object pointer.
Definition: NTreeBranch.h:63
int fBranchStatus
Branch status.
Definition: NTreeBranch.h:134
virtual void Print(Option_t *option="") const
Print branch information.
virtual ~NTreeBranch()
Destructor.
Definition: NTreeBranch.cxx:32
std::string fObjectClassName
Object class name.
Definition: NTreeBranch.h:137
TBranch * Branch(TTree *tree, void *address)
Create branch in TTree with given address.
Definition: NTreeBranch.cxx:40
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.
Definition: NTreeBranch.cxx:59
void SetName(const std::string &name)
Set branch name.
Definition: NTreeBranch.h:45
TObject * GetObject() const
Get object pointer.
Definition: NTreeBranch.h:81
TBranch * fBranch
! Branch pointer
Definition: NTreeBranch.h:135
int GetBranchStatus() const
Get branch status.
Definition: NTreeBranch.h:75
void SetBranchAddress(TTree *tree)
Set branch address in TTree.
Definition: NTreeBranch.cxx:77
void SetBranchStatus(int status)
Set branch status.
Definition: NTreeBranch.h:114
void SetBranch(TBranch *branch)
Set branch pointer.
Definition: NTreeBranch.h:57
std::string fName
Branch name.
Definition: NTreeBranch.h:133
void SetObjectClassName(const std::string &objClassName)
Set object class name.
Definition: NTreeBranch.h:51