RootBranch.h
Go to the documentation of this file.
1 /* -*- c++ -*- */
2 
14 #ifndef RootBranch_H
15 #define RootBranch_H
16 
17 #include "RootDataType.h"
18 
19 #include "pattern/libhippo.h"
20 
21 #include "TLeaf.h"
22 #include "TObjArray.h"
23 
24 #include <string>
25 #include <vector>
26 #include <boost/tokenizer.hpp>
27 #include <boost/lexical_cast.hpp>
28 
29 class TBranch;
30 
31 namespace hippodraw {
32 
41 {
42 
43 private:
44 
47  mutable TBranch * m_branch;
48 
52 
57 
61 
66 
71  mutable Double_t m_double_data;
72 
77  mutable Float_t m_float_data;
78 
83  mutable Int_t m_int_data;
84 
89  mutable UInt_t m_uint_data;
94  mutable Short_t m_short_data;
95 
100  mutable UShort_t m_ushort_data;
101 
106  mutable Long64_t m_long64_data;
107 
112  mutable ULong64_t m_ulong64_data;
113 
121  mutable Double_t * m_vector_double_data;
122 
128  mutable Float_t * m_vector_float_data;
129 
135  mutable Int_t * m_vector_int_data;
136 
142  mutable UInt_t * m_vector_uint_data;
143 
144 
150  mutable Short_t * m_vector_short_data;
151 
157  mutable UShort_t * m_vector_ushort_data;
158 
164  mutable Long64_t * m_vector_long64_data;
165 
171  mutable ULong64_t * m_vector_ulong64_data;
172 
176  std::vector < int > m_shape;
177 
183 
186  mutable bool m_branch_set;
187 
194  bool m_useable;
195 
196  public:
197 
200  RootBranch ( TBranch * );
201 
202 private:
203 
206  RootBranch ( const RootBranch & );
207 
210  RootBranch ();
211 
212 public:
213 
216  ~RootBranch();
217 
218 
220  bool isMultiDimensional() const;
221 
225  int numberOfElements() const;
226 
229  unsigned int size () const;
230 
233  bool empty () const;
234 
237  double valueAt ( unsigned int row ) const;
238 
241  hippodraw::RootData::Type getType () const;
242 
250  double * doubleArrayAt ( unsigned int row );
251 
254  float * floatArrayAt ( unsigned int row );
255 
258  int * intArrayAt ( unsigned int row );
259 
262  unsigned int * uintArrayAt ( unsigned int row );
263 
264  bool isFilled ( ) const;
265 
272  unsigned int getRank () const;
273 
277  void setReleventIndex( const std::vector< unsigned int >& index );
278 
282  const std::vector < int > & getShape ();
283 
285  TBranch * getTBranch();
286 
289  bool isUseable () const;
290 
291 private:
292 
295  void setBranchAddress () const;
296 
301  void initShape ( const char* title );
302 
303 };
304 
305 } // namespace hippodraw
306 
307 #endif // RootBranch_H

Generated for HippoDraw Class Library by doxygen