Logo ROOT   6.10/09
Reference Guide
TBranchProxy.h
Go to the documentation of this file.
1 // @(#)root/treeplayer:$Id$
2 // Author: Philippe Canal 01/06/2004
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2004, 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_TBranchProxy
13 #define ROOT_TBranchProxy
14 
15 #include "TBranchProxyDirector.h"
16 #include "TTree.h"
17 #include "TBranch.h"
18 #include "TClonesArray.h"
19 #include "TString.h"
20 #include "Riostream.h"
21 #include "TError.h"
23 
24 #include <list>
25 #include <algorithm>
26 
27 class TBranch;
28 class TStreamerElement;
29 
30 // Note we could protect the arrays more by introducing a class TArrayWrapper<class T> which somehow knows
31 // its internal dimensions and check for them ...
32 // template <class T> TArrayWrapper {
33 // public:
34 // TArrayWrapper(void *where, int dim1);
35 // const T operator[](int i) {
36 // if (i>=dim1) return 0;
37 // return where[i];
38 // };
39 // };
40 // 2D array would actually be a wrapper of a wrapper i.e. has a method TArrayWrapper<T> operator[](int i);
41 
42 namespace ROOT {
43 namespace Internal {
44  //_______________________________________________
45  // String builder to be used in the constructors.
47  public:
49  TBranchProxyHelper(const char *left,const char *right = 0) :
50  fName() {
51  if (left) {
52  fName = left;
53  if (left[0]&&right && fName[fName.Length()-1]!='.') fName += ".";
54  }
55  if (right) {
56  fName += right;
57  }
58  }
59  operator const char*() { return fName.Data(); };
60  };
61 } // namespace Internal
62 
63 
64 namespace Detail {
65  class TBranchProxy {
66  protected:
67  Internal::TBranchProxyDirector *fDirector; // contain pointer to TTree and entry to be read
68 
70 
71  const TString fBranchName; // name of the branch to read
72  TBranchProxy *fParent; // Proxy to a parent object
73 
74  const TString fDataMember; // name of the (eventual) data member being proxied
75 
76  const Bool_t fIsMember; // true if we proxy an unsplit data member
77  Bool_t fIsClone; // true if we proxy the inside of a TClonesArray
78  Bool_t fIsaPointer; // true if we proxy a data member of pointer type
79 
80 
81  TString fClassName; // class name of the object pointed to by the branch
82  TClass *fClass; // class name of the object pointed to by the branch
85  Int_t fOffset; // Offset inside the object
86 
87  TBranch *fBranch; // branch to read
88  TBranch *fBranchCount; // eventual auxiliary branch (for example holding the size)
89 
90  TTree *fLastTree; // TTree containing the last entry read
91  Long64_t fRead; // Last entry read
92 
93  void *fWhere; // memory location of the data
94  TVirtualCollectionProxy *fCollection; // Handle to the collection containing the data chunk.
95 
97 
98  public:
99  virtual void Print();
100 
101  TBranchProxy();
102  TBranchProxy(Internal::TBranchProxyDirector* boss, const char* top, const char* name = 0);
103  TBranchProxy(Internal::TBranchProxyDirector* boss, const char *top, const char *name, const char *membername);
104  TBranchProxy(Internal::TBranchProxyDirector* boss, TBranchProxy *parent, const char* membername, const char* top = 0, const char* name = 0);
105  TBranchProxy(Internal::TBranchProxyDirector* boss, TBranch* branch, const char* membername);
106  virtual ~TBranchProxy();
107 
108  TBranchProxy* GetProxy() { return this; }
109  const char* GetBranchName() const { return fBranchName; }
110 
111  void Reset();
112 
113  Bool_t Setup();
114 
116  return fLastTree && fCurrentTreeNumber == fDirector->GetTree()->GetTreeNumber() && fLastTree == fDirector->GetTree();
117  }
118 
119  Bool_t IsaPointer() const {
120  return fIsaPointer;
121  }
122 
124  if (fDirector==0) return false;
125 
126  if (fDirector->GetReadEntry()!=fRead) {
127  if (!IsInitialized()) {
128  if (!Setup()) {
129  ::Error("TBranchProxy::Read","%s",Form("Unable to initialize %s\n",fBranchName.Data()));
130  return kFALSE;
131  }
132  }
133  Bool_t result = kTRUE;
134  if (fParent) {
135  result = fParent->Read();
136  } else {
137  if (fBranchCount) {
138  result &= (-1 != fBranchCount->GetEntry(fDirector->GetReadEntry()));
139  }
140  result &= (-1 != fBranch->GetEntry(fDirector->GetReadEntry()));
141  }
142  fRead = fDirector->GetReadEntry();
143  if (R__unlikely(fCollection)) {
144  fCollection->PopProxy(); // works even if no proxy env object was set.
145  if (IsaPointer()) {
146  fCollection->PushProxy( *(void**)fWhere );
147  } else {
148  fCollection->PushProxy( fWhere );
149  }
150  }
151  return result;
152  } else {
153  return IsInitialized();
154  }
155  }
156 
158  if (fDirector==0) return false;
159 
160  if (fDirector->GetReadEntry()!=fRead) {
161  if (!IsInitialized()) {
162  if (!Setup()) {
163  ::Error("TBranchProxy::ReadEntries","%s",Form("Unable to initialize %s\n",fBranchName.Data()));
164  return false;
165  }
166  }
167  if (fParent) fParent->ReadEntries();
168  else {
169  if (fBranchCount) {
170  fBranchCount->TBranch::GetEntry(fDirector->GetReadEntry());
171  }
172  fBranch->TBranch::GetEntry(fDirector->GetReadEntry());
173  }
174  // NO - we only read the entries, not the contained objects!
175  // fRead = fDirector->GetReadEntry();
176  }
177  return IsInitialized();
178  }
179 
181  if (fDirector==0) return 0;
182  if (fDirector->GetReadEntry()!=fRead) {
183  if (!IsInitialized()) {
184  if (!Setup()) {
185  return 0;
186  }
187  }
188  }
189  return fClass;
190  }
191 
192  void* GetWhere() const { return fWhere; } // intentionally non-virtual
193 
194  TVirtualCollectionProxy *GetCollection() { return fCollection; }
195 
196  // protected:
197  virtual void *GetStart(UInt_t /*i*/=0) {
198  // return the address of the start of the object being proxied. Assumes
199  // that Setup() has been called.
200 
201  if (fParent) {
202  fWhere = ((unsigned char*)fParent->GetStart()) + fMemberOffset;
203  }
204  if (IsaPointer()) {
205  if (fWhere) return *(void**)fWhere;
206  else return 0;
207  } else {
208  return fWhere;
209  }
210  }
211 
212  virtual void *GetClaStart(UInt_t i=0) {
213  // return the address of the start of the object being proxied. Assumes
214  // that Setup() has been called. Assumes the object containing this data
215  // member is held in TClonesArray.
216 
217  char *location;
218 
219  if (fIsClone) {
220 
221  TClonesArray *tca;
222  tca = (TClonesArray*)GetStart();
223 
224  if (!tca || tca->GetLast()<(Int_t)i) return 0;
225 
226  location = (char*)tca->At(i);
227 
228  return location;
229 
230  } else if (fParent) {
231 
232  //tcaloc = ((unsigned char*)fParent->GetStart());
233  location = (char*)fParent->GetClaStart(i);
234 
235  } else {
236 
237  void *tcaloc;
238  tcaloc = fWhere;
239  TClonesArray *tca;
240  tca = (TClonesArray*)tcaloc;
241 
242  if (tca->GetLast()<(Int_t)i) return 0;
243 
244  location = (char*)tca->At(i);
245  }
246 
247  if (location) location += fOffset;
248  else return 0;
249 
250  if (IsaPointer()) {
251  return *(void**)(location);
252  } else {
253  return location;
254  }
255 
256  }
257 
258  virtual void *GetStlStart(UInt_t i=0) {
259  // return the address of the start of the object being proxied. Assumes
260  // that Setup() has been called. Assumes the object containing this data
261  // member is held in STL Collection.
262 
263  char *location=0;
264 
265  if (fCollection) {
266 
267  if (fCollection->Size()<i) return 0;
268 
269  location = (char*)fCollection->At(i);
270 
271  // return location;
272 
273  } else if (fParent) {
274 
275  //tcaloc = ((unsigned char*)fParent->GetStart());
276  location = (char*)fParent->GetStlStart(i);
277 
278  } else {
279 
280  R__ASSERT(0);
281  //void *tcaloc;
282  //tcaloc = fWhere;
283  //TClonesArray *tca;
284  //tca = (TClonesArray*)tcaloc;
285 
286  //if (tca->GetLast()<i) return 0;
287 
288  //location = (char*)tca->At(i);
289  }
290 
291  if (location) location += fOffset;
292  else return 0;
293 
294  if (IsaPointer()) {
295  return *(void**)(location);
296  } else {
297  return location;
298  }
299 
300  }
301 
302  Int_t GetOffset() { return fOffset; }
303  };
304 } // namespace Detail
305 
306 namespace Internal {
307 
308  //____________________________________________________________________________________________
309  // Concrete Implementation of the branch proxy around the data members which are array of char
311  public:
312  void Print() {
314  std::cout << "fWhere " << fWhere << std::endl;
315  if (fWhere) std::cout << "value? " << *(unsigned char*)GetStart() << std::endl;
316  }
317 
319  TArrayCharProxy(TBranchProxyDirector *director, const char *name) : TBranchProxy(director,name) {};
320  TArrayCharProxy(TBranchProxyDirector *director, const char *top, const char *name) :
321  TBranchProxy(director,top,name) {};
322  TArrayCharProxy(TBranchProxyDirector *director, const char *top, const char *name, const char *data) :
323  TBranchProxy(director,top,name,data) {};
324  TArrayCharProxy(TBranchProxyDirector *director, TBranchProxy *parent, const char *name, const char* top = 0, const char* mid = 0) :
325  TBranchProxy(director,parent, name, top, mid) {};
327 
328  unsigned char At(UInt_t i) {
329  static unsigned char default_val;
330  if (!Read()) return default_val;
331  // should add out-of bound test
332  unsigned char* str = (unsigned char*)GetStart();
333  return str[i];
334  }
335 
336  unsigned char operator [](Int_t i) {
337  return At(i);
338  }
339 
340  unsigned char operator [](UInt_t i) {
341  return At(i);
342  }
343 
344  operator const char*() {
345  if (!Read()) return "";
346  return (const char*)GetStart();
347  }
348 
349  const char* Data() {
350  if (!Read()) return "";
351  return (const char*)GetStart();
352  }
353 
354  const char* c_str() {
355  if (!Read()) return "";
356  return (const char*)GetStart();
357  }
358 
359  operator std::string() {
360  if (!Read()) return "";
361  return std::string((const char*)GetStart());
362  }
363 
364  };
365 
366  //_______________________________________________________
367  // Base class for the proxy around object in TClonesArray.
369  public:
370  void Print() {
372  std::cout << "fWhere " << fWhere << std::endl;
373  if (fWhere) {
374  if (IsaPointer()) {
375  std::cout << "location " << *(TClonesArray**)fWhere << std::endl;
376  } else {
377  std::cout << "location " << fWhere << std::endl;
378  }
379  }
380  }
381 
383  TClaProxy(TBranchProxyDirector *director, const char *name) : TBranchProxy(director,name) {};
384  TClaProxy(TBranchProxyDirector *director, const char *top, const char *name) :
385  TBranchProxy(director,top,name) {};
386  TClaProxy(TBranchProxyDirector *director, const char *top, const char *name, const char *data) :
387  TBranchProxy(director,top,name,data) {};
388  TClaProxy(TBranchProxyDirector *director, TBranchProxy *parent, const char *name, const char* top = 0, const char* mid = 0) :
389  TBranchProxy(director,parent, name, top, mid) {};
391 
392  const TClonesArray* GetPtr() {
393  if (!Read()) return 0;
394  return (TClonesArray*)GetStart();
395  }
396 
398  if (!ReadEntries()) return 0;
399  TClonesArray *arr = (TClonesArray*)GetStart();
400  if (arr) return arr->GetEntries();
401  return 0;
402  }
403 
404  const TClonesArray* operator->() { return GetPtr(); }
405 
406  };
407 
408  //_______________________________________________
409  // Base class for the proxy around STL containers.
411  public:
412  void Print() {
414  std::cout << "fWhere " << fWhere << std::endl;
415  if (fWhere) {
416  if (IsaPointer()) {
417  std::cout << "location " << *(TClonesArray**)fWhere << std::endl;
418  } else {
419  std::cout << "location " << fWhere << std::endl;
420  }
421  }
422  }
423 
425  TStlProxy(TBranchProxyDirector *director, const char *name) : TBranchProxy(director,name) {};
426  TStlProxy(TBranchProxyDirector *director, const char *top, const char *name) :
427  TBranchProxy(director,top,name) {};
428  TStlProxy(TBranchProxyDirector *director, const char *top, const char *name, const char *data) :
429  TBranchProxy(director,top,name,data) {};
430  TStlProxy(TBranchProxyDirector *director, TBranchProxy *parent, const char *name, const char* top = 0, const char* mid = 0) :
431  TBranchProxy(director,parent, name, top, mid) {};
433 
435  if (!Read()) return 0;
436  return GetCollection();
437  }
438 
440  if (!ReadEntries()) return 0;
441  return GetPtr()->Size();
442  }
443 
444  const TVirtualCollectionProxy* operator->() { return GetPtr(); }
445 
446  };
447 
448  //______________________________________
449  // Template of the proxy around objects.
450  template <class T>
452  public:
453  void Print() {
455  std::cout << "fWhere " << fWhere << std::endl;
456  if (fWhere) std::cout << "value? " << *(T*)GetStart() << std::endl;
457  }
458 
460  TImpProxy(TBranchProxyDirector *director, const char *name) : TBranchProxy(director,name) {};
461  TImpProxy(TBranchProxyDirector *director, const char *top, const char *name) :
462  TBranchProxy(director,top,name) {};
463  TImpProxy(TBranchProxyDirector *director, const char *top, const char *name, const char *data) :
464  TBranchProxy(director,top,name,data) {};
465  TImpProxy(TBranchProxyDirector *director, TBranchProxy *parent, const char *name, const char* top = 0, const char* mid = 0) :
466  TBranchProxy(director,parent, name, top, mid) {};
468 
469  operator T() {
470  if (!Read()) return 0;
471  return *(T*)GetStart();
472  }
473 
474  // Make sure that the copy methods are really private
475 #ifdef private
476 #undef private
477 #define private_was_replaced
478 #endif
479  // For now explicitly disable copying into the value (i.e. the proxy is read-only).
480  private:
481  TImpProxy(T);
483 #ifdef private_was_replaced
484 #define private public
485 #endif
486 
487  };
488 
489  //____________________________________________
490  // Helper template to be able to determine and
491  // use array dimentsions.
492  template <class T, int d = 0> struct TArrayType {
493  typedef T type_t;
494  typedef T array_t[d];
495  };
496  //____________________________________________
497  // Helper class for proxy around multi dimension array
498  template <class T> struct TArrayType<T,0> {
499  typedef T type_t;
500  typedef T array_t;
501  };
502  //____________________________________________
503  // Helper class for proxy around multi dimension array
504  template <class T, int d> struct TMultiArrayType {
505  typedef typename T::type_t type_t;
506  typedef typename T::array_t array_t[d];
507  };
508 
509  //____________________________________________
510  // Template for concrete implementation of proxy around array of T
511  template <class T>
513  public:
515  TArrayProxy(TBranchProxyDirector *director, const char *name) : TBranchProxy(director,name) {};
516  TArrayProxy(TBranchProxyDirector *director, const char *top, const char *name) :
517  TBranchProxy(director,top,name) {};
518  TArrayProxy(TBranchProxyDirector *director, const char *top, const char *name, const char *data) :
519  TBranchProxy(director,top,name,data) {};
520  TArrayProxy(TBranchProxyDirector *director, TBranchProxy *parent, const char *name, const char* top = 0, const char* mid = 0) :
521  TBranchProxy(director,parent, name, top, mid) {};
523 
524  typedef typename T::array_t array_t;
525  typedef typename T::type_t type_t;
526 
527  void Print() {
529  std::cout << "fWhere " << GetWhere() << std::endl;
530  if (GetWhere()) std::cout << "value? " << *(type_t*)GetWhere() << std::endl;
531  }
532 
533  const array_t &At(UInt_t i) {
534  static array_t default_val;
535  if (!Read()) return default_val;
536  // should add out-of bound test
537  array_t *arr = 0;
538  arr = (array_t*)((type_t*)(GetStart()));
539  if (arr) return arr[i];
540  else return default_val;
541  }
542 
543  const array_t &operator [](Int_t i) { return At(i); }
544  const array_t &operator [](UInt_t i) { return At(i); }
545  };
546 
547  //_____________________________________________________________________________________
548  // Template of the Concrete Implementation of the branch proxy around TClonesArray of T
549  template <class T>
551  public:
552 
553  void Print() {
555  std::cout << "fWhere " << fWhere << std::endl;
556  if (fWhere) std::cout << "value? " << *(T*)GetStart() << std::endl;
557  }
558 
560  TClaImpProxy(TBranchProxyDirector *director, const char *name) : TBranchProxy(director,name) {};
561  TClaImpProxy(TBranchProxyDirector *director, const char *top, const char *name) :
562  TBranchProxy(director,top,name) {};
563  TClaImpProxy(TBranchProxyDirector *director, const char *top, const char *name, const char *data) :
564  TBranchProxy(director,top,name,data) {};
565  TClaImpProxy(TBranchProxyDirector *director, TBranchProxy *parent, const char *name, const char* top = 0, const char* mid = 0) :
566  TBranchProxy(director,parent, name, top, mid) {};
568 
569  const T& At(UInt_t i) {
570  static T default_val;
571  if (!Read()) return default_val;
572  if (fWhere==0) return default_val;
573 
574  T *temp = (T*)GetClaStart(i);
575 
576  if (temp) return *temp;
577  else return default_val;
578 
579  }
580 
581  const T& operator [](Int_t i) { return At(i); }
582  const T& operator [](UInt_t i) { return At(i); }
583 
584  // Make sure that the copy methods are really private
585 #ifdef private
586 #undef private
587 #define private_was_replaced
588 #endif
589  // For now explicitly disable copying into the value (i.e. the proxy is read-only).
590  private:
591  TClaImpProxy(T);
593 #ifdef private_was_replaced
594 #define private public
595 #endif
596 
597  };
598 
599  //_________________________________________________________________________________________
600  // Template of the Concrete Implementation of the branch proxy around an stl container of T
601  template <class T>
603  public:
604 
605  void Print() {
607  std::cout << "fWhere " << fWhere << std::endl;
608  if (fWhere) std::cout << "value? " << *(T*)GetStart() << std::endl;
609  }
610 
612  TStlImpProxy(TBranchProxyDirector *director, const char *name) : TBranchProxy(director,name) {};
613  TStlImpProxy(TBranchProxyDirector *director, const char *top, const char *name) :
614  TBranchProxy(director,top,name) {};
615  TStlImpProxy(TBranchProxyDirector *director, const char *top, const char *name, const char *data) :
616  TBranchProxy(director,top,name,data) {};
617  TStlImpProxy(TBranchProxyDirector *director, TBranchProxy *parent, const char *name, const char* top = 0, const char* mid = 0) :
618  TBranchProxy(director,parent, name, top, mid) {};
620 
621  const T& At(UInt_t i) {
622  static T default_val;
623  if (!Read()) return default_val;
624  if (fWhere==0) return default_val;
625 
626  T *temp = (T*)GetStlStart(i);
627 
628  if (temp) return *temp;
629  else return default_val;
630  }
631 
632  const T& operator [](Int_t i) { return At(i); }
633  const T& operator [](UInt_t i) { return At(i); }
634 
635  // Make sure that the copy methods are really private
636 #ifdef private
637 #undef private
638 #define private_was_replaced
639 #endif
640  // For now explicitly disable copying into the value (i.e. the proxy is read-only).
641  private:
642  TStlImpProxy(T);
644 #ifdef private_was_replaced
645 #define private public
646 #endif
647 
648  };
649 
650  //_________________________________________________________________________________________________
651  // Template of the Concrete Implementation of the branch proxy around an TClonesArray of array of T
652  template <class T>
654  public:
655  typedef typename T::array_t array_t;
656  typedef typename T::type_t type_t;
657 
658  void Print() {
660  std::cout << "fWhere " << fWhere << std::endl;
661  if (fWhere) std::cout << "value? " << *(type_t*)GetStart() << std::endl;
662  }
663 
665  TClaArrayProxy(TBranchProxyDirector *director, const char *name) : TBranchProxy(director,name) {};
666  TClaArrayProxy(TBranchProxyDirector *director, const char *top, const char *name) :
667  TBranchProxy(director,top,name) {};
668  TClaArrayProxy(TBranchProxyDirector *director, const char *top, const char *name, const char *data) :
669  TBranchProxy(director,top,name,data) {};
670  TClaArrayProxy(TBranchProxyDirector *director, TBranchProxy *parent, const char *name, const char* top = 0, const char* mid = 0) :
671  TBranchProxy(director,parent, name, top, mid) {};
673 
674  /* const */ array_t *At(UInt_t i) {
675  static array_t default_val;
676  if (!Read()) return &default_val;
677  if (fWhere==0) return &default_val;
678 
679  return (array_t*)GetClaStart(i);
680  }
681 
682  /* const */ array_t *operator [](Int_t i) { return At(i); }
683  /* const */ array_t *operator [](UInt_t i) { return At(i); }
684  };
685 
686 
687  //__________________________________________________________________________________________________
688  // Template of the Concrete Implementation of the branch proxy around an stl container of array of T
689  template <class T>
691  public:
692  typedef typename T::array_t array_t;
693  typedef typename T::type_t type_t;
694 
695  void Print() {
697  std::cout << "fWhere " << fWhere << std::endl;
698  if (fWhere) std::cout << "value? " << *(type_t*)GetStart() << std::endl;
699  }
700 
702  TStlArrayProxy(TBranchProxyDirector *director, const char *name) : TBranchProxy(director,name) {};
703  TStlArrayProxy(TBranchProxyDirector *director, const char *top, const char *name) :
704  TBranchProxy(director,top,name) {};
705  TStlArrayProxy(TBranchProxyDirector *director, const char *top, const char *name, const char *data) :
706  TBranchProxy(director,top,name,data) {};
707  TStlArrayProxy(TBranchProxyDirector *director, TBranchProxy *parent, const char *name, const char* top = 0, const char* mid = 0) :
708  TBranchProxy(director,parent, name, top, mid) {};
710 
711  /* const */ array_t *At(UInt_t i) {
712  static array_t default_val;
713  if (!Read()) return &default_val;
714  if (fWhere==0) return &default_val;
715 
716  return (array_t*)GetStlStart(i);
717  }
718 
719  /* const */ array_t *operator [](Int_t i) { return At(i); }
720  /* const */ array_t *operator [](UInt_t i) { return At(i); }
721  };
722 
723  //TImpProxy<TObject> d;
724  typedef TImpProxy<Double_t> TDoubleProxy; // Concrete Implementation of the branch proxy around the data members which are double
725  typedef TImpProxy<Double32_t> TDouble32Proxy; // Concrete Implementation of the branch proxy around the data members which are double32
726  typedef TImpProxy<Float_t> TFloatProxy; // Concrete Implementation of the branch proxy around the data members which are float
727  typedef TImpProxy<Float16_t> TFloat16Proxy; // Concrete Implementation of the branch proxy around the data members which are float16
728  typedef TImpProxy<UInt_t> TUIntProxy; // Concrete Implementation of the branch proxy around the data members which are unsigned int
729  typedef TImpProxy<ULong_t> TULongProxy; // Concrete Implementation of the branch proxy around the data members which are unsigned long
730  typedef TImpProxy<ULong64_t> TULong64Proxy; // Concrete Implementation of the branch proxy around the data members which are unsigned long long
731  typedef TImpProxy<UShort_t> TUShortProxy; // Concrete Implementation of the branch proxy around the data members which are unsigned short
732  typedef TImpProxy<UChar_t> TUCharProxy; // Concrete Implementation of the branch proxy around the data members which are unsigned char
733  typedef TImpProxy<Int_t> TIntProxy; // Concrete Implementation of the branch proxy around the data members which are int
734  typedef TImpProxy<Long_t> TLongProxy; // Concrete Implementation of the branch proxy around the data members which are long
735  typedef TImpProxy<Long64_t> TLong64Proxy; // Concrete Implementation of the branch proxy around the data members which are long long
736  typedef TImpProxy<Short_t> TShortProxy; // Concrete Implementation of the branch proxy around the data members which are short
737  typedef TImpProxy<Char_t> TCharProxy; // Concrete Implementation of the branch proxy around the data members which are char
738  typedef TImpProxy<Bool_t> TBoolProxy; // Concrete Implementation of the branch proxy around the data members which are bool
739 
740  typedef TArrayProxy<TArrayType<Double_t> > TArrayDoubleProxy; // Concrete Implementation of the branch proxy around the data members which are array of double
741  typedef TArrayProxy<TArrayType<Double32_t> > TArrayDouble32Proxy; // Concrete Implementation of the branch proxy around the data members which are array of double32
742  typedef TArrayProxy<TArrayType<Float_t> > TArrayFloatProxy; // Concrete Implementation of the branch proxy around the data members which are array of float
743  typedef TArrayProxy<TArrayType<Float16_t> > TArrayFloat16Proxy; // Concrete Implementation of the branch proxy around the data members which are array of float16
744  typedef TArrayProxy<TArrayType<UInt_t> > TArrayUIntProxy; // Concrete Implementation of the branch proxy around the data members which are array of unsigned int
745  typedef TArrayProxy<TArrayType<ULong_t> > TArrayULongProxy; // Concrete Implementation of the branch proxy around the data members which are array of unsigned long
746  typedef TArrayProxy<TArrayType<ULong64_t> > TArrayULong64Proxy; // Concrete Implementation of the branch proxy around the data members which are array of unsigned long long
747  typedef TArrayProxy<TArrayType<UShort_t> > TArrayUShortProxy; // Concrete Implementation of the branch proxy around the data members which are array of unsigned short
748  typedef TArrayProxy<TArrayType<UChar_t> > TArrayUCharProxy; // Concrete Implementation of the branch proxy around the data members which are array of unsigned char
749  typedef TArrayProxy<TArrayType<Int_t> > TArrayIntProxy; // Concrete Implementation of the branch proxy around the data members which are array of int
750  typedef TArrayProxy<TArrayType<Long_t> > TArrayLongProxy; // Concrete Implementation of the branch proxy around the data members which are array of long
751  typedef TArrayProxy<TArrayType<Long64_t> > TArrayLong64Proxy; // Concrete Implementation of the branch proxy around the data members which are array of long long
752  typedef TArrayProxy<TArrayType<UShort_t> > TArrayShortProxy; // Concrete Implementation of the branch proxy around the data members which are array of short
753  //specialized ! typedef TArrayProxy<TArrayType<Char_t> > TArrayCharProxy; // Concrete Implementation of the branch proxy around the data members which are array of char
754  typedef TArrayProxy<TArrayType<Bool_t> > TArrayBoolProxy; // Concrete Implementation of the branch proxy around the data members which are array of bool
755 
756  typedef TClaImpProxy<Double_t> TClaDoubleProxy; // Concrete Implementation of the branch proxy around the data members of object in TClonesArray which are double
757  typedef TClaImpProxy<Double32_t> TClaDouble32Proxy; // Concrete Implementation of the branch proxy around the data members of object in TClonesArray which are double32
758  typedef TClaImpProxy<Float_t> TClaFloatProxy; // Concrete Implementation of the branch proxy around the data members of object in TClonesArray which are float
759  typedef TClaImpProxy<Float16_t> TClaFloat16Proxy; // Concrete Implementation of the branch proxy around the data members of object in TClonesArray which are float16
760  typedef TClaImpProxy<UInt_t> TClaUIntProxy; // Concrete Implementation of the branch proxy around the data members of object in TClonesArray which are unsigned int
761  typedef TClaImpProxy<ULong_t> TClaULongProxy; // Concrete Implementation of the branch proxy around the data members of object in TClonesArray which are unsigned long
762  typedef TClaImpProxy<ULong64_t> TClaULong64Proxy; // Concrete Implementation of the branch proxy around the data members of object in TClonesArray which are unsigned long long
763  typedef TClaImpProxy<UShort_t> TClaUShortProxy; // Concrete Implementation of the branch proxy around the data members of object in TClonesArray which are unsigned short
764  typedef TClaImpProxy<UChar_t> TClaUCharProxy; // Concrete Implementation of the branch proxy around the data members of object in TClonesArray which are unsigned char
765  typedef TClaImpProxy<Int_t> TClaIntProxy; // Concrete Implementation of the branch proxy around the data members of object in TClonesArray which are int
766  typedef TClaImpProxy<Long_t> TClaLongProxy; // Concrete Implementation of the branch proxy around the data members of object in TClonesArray which are long
767  typedef TClaImpProxy<Long64_t> TClaLong64Proxy; // Concrete Implementation of the branch proxy around the data members of object in TClonesArray which are long long
768  typedef TClaImpProxy<Short_t> TClaShortProxy; // Concrete Implementation of the branch proxy around the data members of object in TClonesArray which are short
769  typedef TClaImpProxy<Char_t> TClaCharProxy; // Concrete Implementation of the branch proxy around the data members of object in TClonesArray which are char
770  typedef TClaImpProxy<Bool_t> TClaBoolProxy; // Concrete Implementation of the branch proxy around the data members of object in TClonesArray which are bool
771 
772  typedef TClaArrayProxy<TArrayType<Double_t> > TClaArrayDoubleProxy; // Concrete Implementation of the branch proxy around the data members of object in TClonesArray which are array of double
773  typedef TClaArrayProxy<TArrayType<Double32_t> > TClaArrayDouble32Proxy; // Concrete Implementation of the branch proxy around the data members of object in TClonesArray which are array of double32
774  typedef TClaArrayProxy<TArrayType<Float_t> > TClaArrayFloatProxy; // Concrete Implementation of the branch proxy around the data members of object in TClonesArray which are array of float
775  typedef TClaArrayProxy<TArrayType<Float16_t> > TClaArrayFloat16Proxy; // Concrete Implementation of the branch proxy around the data members of object in TClonesArray which are array of float16
776  typedef TClaArrayProxy<TArrayType<UInt_t> > TClaArrayUIntProxy; // Concrete Implementation of the branch proxy around the data members of object in TClonesArray which are array of unsigned int
777  typedef TClaArrayProxy<TArrayType<ULong_t> > TClaArrayULongProxy; // Concrete Implementation of the branch proxy around the data members of object in TClonesArray which are array of unsigned long
778  typedef TClaArrayProxy<TArrayType<ULong64_t> > TClaArrayULong64Proxy; // Concrete Implementation of the branch proxy around the data members of object in TClonesArray which are array of unsigned long long
779  typedef TClaArrayProxy<TArrayType<UShort_t> > TClaArrayUShortProxy; // Concrete Implementation of the branch proxy around the data members of object in TClonesArray which are array of unsigned short
780  typedef TClaArrayProxy<TArrayType<UChar_t> > TClaArrayUCharProxy; // Concrete Implementation of the branch proxy around the data members of object in TClonesArray which are array of nsigned char
781  typedef TClaArrayProxy<TArrayType<Int_t> > TClaArrayIntProxy; // Concrete Implementation of the branch proxy around the data members of object in TClonesArray which are array of int
782  typedef TClaArrayProxy<TArrayType<Long_t> > TClaArrayLongProxy; // Concrete Implementation of the branch proxy around the data members of object in TClonesArray which are array of long
783  typedef TClaArrayProxy<TArrayType<Long64_t> > TClaArrayLong64Proxy; // Concrete Implementation of the branch proxy around the data members of object in TClonesArray which are array of long long
784  typedef TClaArrayProxy<TArrayType<UShort_t> > TClaArrayShortProxy; // Concrete Implementation of the branch proxy around the data members of object in TClonesArray which are array of short
785  typedef TClaArrayProxy<TArrayType<Char_t> > TClaArrayCharProxy; // Concrete Implementation of the branch proxy around the data members of object in TClonesArray which are array of char
786  typedef TClaArrayProxy<TArrayType<Bool_t> > TClaArrayBoolProxy; // Concrete Implementation of the branch proxy around the data members of object in TClonesArray which are array of bool
787  //specialized ! typedef TClaArrayProxy<TArrayType<Char_t> > TClaArrayCharProxy;
788 
789  typedef TStlImpProxy<Double_t> TStlDoubleProxy; // Concrete Implementation of the branch proxy around an stl container of double
790  typedef TStlImpProxy<Double32_t> TStlDouble32Proxy; // Concrete Implementation of the branch proxy around an stl container of double32
791  typedef TStlImpProxy<Float_t> TStlFloatProxy; // Concrete Implementation of the branch proxy around an stl container of float
792  typedef TStlImpProxy<Float16_t> TStlFloat16Proxy; // Concrete Implementation of the branch proxy around an stl container of float16_t
793  typedef TStlImpProxy<UInt_t> TStlUIntProxy; // Concrete Implementation of the branch proxy around an stl container of unsigned int
794  typedef TStlImpProxy<ULong_t> TStlULongProxy; // Concrete Implementation of the branch proxy around an stl container of unsigned long
795  typedef TStlImpProxy<ULong64_t> TStlULong64Proxy; // Concrete Implementation of the branch proxy around an stl container of unsigned long long
796  typedef TStlImpProxy<UShort_t> TStlUShortProxy; // Concrete Implementation of the branch proxy around an stl container of unsigned short
797  typedef TStlImpProxy<UChar_t> TStlUCharProxy; // Concrete Implementation of the branch proxy around an stl container of unsigned char
798  typedef TStlImpProxy<Int_t> TStlIntProxy; // Concrete Implementation of the branch proxy around an stl container of int
799  typedef TStlImpProxy<Long_t> TStlLongProxy; // Concrete Implementation of the branch proxy around an stl container of long
800  typedef TStlImpProxy<Long64_t> TStlLong64Proxy; // Concrete Implementation of the branch proxy around an stl container of long long
801  typedef TStlImpProxy<Short_t> TStlShortProxy; // Concrete Implementation of the branch proxy around an stl container of short
802  typedef TStlImpProxy<Char_t> TStlCharProxy; // Concrete Implementation of the branch proxy around an stl container of char
803  typedef TStlImpProxy<Bool_t> TStlBoolProxy; // Concrete Implementation of the branch proxy around an stl container of bool
804 
805  typedef TStlArrayProxy<TArrayType<Double_t> > TStlArrayDoubleProxy; // Concrete Implementation of the branch proxy around an stl container of double
806  typedef TStlArrayProxy<TArrayType<Double32_t> > TStlArrayDouble32Proxy; // Concrete Implementation of the branch proxy around an stl container of double32
807  typedef TStlArrayProxy<TArrayType<Float_t> > TStlArrayFloatProxy; // Concrete Implementation of the branch proxy around an stl container of float
808  typedef TStlArrayProxy<TArrayType<Float16_t> > TStlArrayFloat16Proxy; // Concrete Implementation of the branch proxy around an stl container of float16_t
809  typedef TStlArrayProxy<TArrayType<UInt_t> > TStlArrayUIntProxy; // Concrete Implementation of the branch proxy around an stl container of unsigned int
810  typedef TStlArrayProxy<TArrayType<ULong_t> > TStlArrayULongProxy; // Concrete Implementation of the branch proxy around an stl container of usigned long
811  typedef TStlArrayProxy<TArrayType<ULong64_t> > TStlArrayULong64Proxy; // Concrete Implementation of the branch proxy around an stl contained of unsigned long long
812  typedef TStlArrayProxy<TArrayType<UShort_t> > TStlArrayUShortProxy; // Concrete Implementation of the branch proxy around an stl container of unisgned short
813  typedef TStlArrayProxy<TArrayType<UChar_t> > TStlArrayUCharProxy; // Concrete Implementation of the branch proxy around an stl container of unsingned char
814  typedef TStlArrayProxy<TArrayType<Int_t> > TStlArrayIntProxy; // Concrete Implementation of the branch proxy around an stl container of int
815  typedef TStlArrayProxy<TArrayType<Long_t> > TStlArrayLongProxy; // Concrete Implementation of the branch proxy around an stl container of long
816  typedef TStlArrayProxy<TArrayType<Long64_t> > TStlArrayLong64Proxy; // Concrete Implementation of the branch proxy around an stl container of long long
817  typedef TStlArrayProxy<TArrayType<UShort_t> > TStlArrayShortProxy; // Concrete Implementation of the branch proxy around an stl container of UShort_t
818  typedef TStlArrayProxy<TArrayType<Char_t> > TStlArrayCharProxy; // Concrete Implementation of the branch proxy around an stl container of char
819  typedef TStlArrayProxy<TArrayType<Bool_t> > TStlArrayBoolProxy; // Concrete Implementation of the branch proxy around an stl container of bool
820 
821 } // namespace Internal
822 
823 // Reasonably backward compatible.
825 
826 } // namespace ROOT
827 
828 #endif
829 
TStlArrayProxy< TArrayType< Bool_t > > TStlArrayBoolProxy
Definition: TBranchProxy.h:819
TStlArrayProxy< TArrayType< Int_t > > TStlArrayIntProxy
Definition: TBranchProxy.h:814
TImpProxy< Double32_t > TDouble32Proxy
Definition: TBranchProxy.h:725
TStlArrayProxy< TArrayType< Double_t > > TStlArrayDoubleProxy
Definition: TBranchProxy.h:805
TArrayProxy< TArrayType< Double_t > > TArrayDoubleProxy
Definition: TBranchProxy.h:740
TClaImpProxy< Float_t > TClaFloatProxy
Definition: TBranchProxy.h:758
TStlArrayProxy< TArrayType< UShort_t > > TStlArrayUShortProxy
Definition: TBranchProxy.h:812
TArrayCharProxy(TBranchProxyDirector *director, const char *name)
Definition: TBranchProxy.h:319
long long Long64_t
Definition: RtypesCore.h:69
you should not use this method at all Int_t Int_t Double_t Double_t Double_t Int_t mid
Definition: TRolke.cxx:630
TStlArrayProxy< TArrayType< Long64_t > > TStlArrayLong64Proxy
Definition: TBranchProxy.h:816
Namespace for new ROOT classes and functions.
Definition: StringConv.hxx:21
TStlImpProxy< Float16_t > TStlFloat16Proxy
Definition: TBranchProxy.h:792
TArrayProxy(TBranchProxyDirector *director, const char *top, const char *name)
Definition: TBranchProxy.h:516
TArrayProxy< TArrayType< Long64_t > > TArrayLong64Proxy
Definition: TBranchProxy.h:751
const T & At(UInt_t i)
Definition: TBranchProxy.h:621
TStlImpProxy< ULong64_t > TStlULong64Proxy
Definition: TBranchProxy.h:795
TStlImpProxy(TBranchProxyDirector *director, const char *name)
Definition: TBranchProxy.h:612
TImpProxy< Double_t > TDoubleProxy
Definition: TBranchProxy.h:724
const TVirtualCollectionProxy * operator->()
Definition: TBranchProxy.h:444
TStlArrayProxy< TArrayType< UChar_t > > TStlArrayUCharProxy
Definition: TBranchProxy.h:813
double T(double x)
Definition: ChebyshevPol.h:34
TImpProxy< ULong64_t > TULong64Proxy
Definition: TBranchProxy.h:730
virtual void PushProxy(void *objectstart)=0
TStlArrayProxy< TArrayType< UShort_t > > TStlArrayShortProxy
Definition: TBranchProxy.h:817
TArrayProxy< TArrayType< Long_t > > TArrayLongProxy
Definition: TBranchProxy.h:750
TClaImpProxy< UInt_t > TClaUIntProxy
Definition: TBranchProxy.h:760
TClaArrayProxy< TArrayType< Char_t > > TClaArrayCharProxy
Definition: TBranchProxy.h:785
TImpProxy< Char_t > TCharProxy
Definition: TBranchProxy.h:737
TStlImpProxy< Long64_t > TStlLong64Proxy
Definition: TBranchProxy.h:800
TClaArrayProxy(TBranchProxyDirector *director, const char *top, const char *name, const char *data)
Definition: TBranchProxy.h:668
const TClonesArray * operator->()
Definition: TBranchProxy.h:404
TArrayProxy< TArrayType< UShort_t > > TArrayUShortProxy
Definition: TBranchProxy.h:747
#define R__ASSERT(e)
Definition: TError.h:96
TStreamerElement * fElement
Definition: TBranchProxy.h:83
TArrayProxy< TArrayType< Double32_t > > TArrayDouble32Proxy
Definition: TBranchProxy.h:741
TClaImpProxy< Float16_t > TClaFloat16Proxy
Definition: TBranchProxy.h:759
TStlProxy(TBranchProxyDirector *director, const char *name)
Definition: TBranchProxy.h:425
const T & At(UInt_t i)
Definition: TBranchProxy.h:569
Basic string class.
Definition: TString.h:129
virtual void * GetStart(UInt_t=0)
Definition: TBranchProxy.h:197
const char * Setup
Definition: TXMLSetup.cxx:48
TImpProxy< Float_t > TFloatProxy
Definition: TBranchProxy.h:726
TStlArrayProxy(TBranchProxyDirector *director, const char *top, const char *name, const char *data)
Definition: TBranchProxy.h:705
int Int_t
Definition: RtypesCore.h:41
TClaArrayProxy(TBranchProxyDirector *director, const char *top, const char *name)
Definition: TBranchProxy.h:666
bool Bool_t
Definition: RtypesCore.h:59
TClaImpProxy< Long_t > TClaLongProxy
Definition: TBranchProxy.h:766
TObject * At(Int_t idx) const
Definition: TObjArray.h:165
TImpProxy(TBranchProxyDirector *director, const char *top, const char *name, const char *data)
Definition: TBranchProxy.h:463
TStlProxy(TBranchProxyDirector *director, const char *top, const char *name, const char *data)
Definition: TBranchProxy.h:428
TClaImpProxy< UShort_t > TClaUShortProxy
Definition: TBranchProxy.h:763
TStlProxy(TBranchProxyDirector *director, const char *top, const char *name)
Definition: TBranchProxy.h:426
TArrayProxy< TArrayType< ULong_t > > TArrayULongProxy
Definition: TBranchProxy.h:745
TClaImpProxy(TBranchProxyDirector *director, const char *top, const char *name, const char *data)
Definition: TBranchProxy.h:563
TClaArrayProxy< TArrayType< UInt_t > > TClaArrayUIntProxy
Definition: TBranchProxy.h:776
TStlArrayProxy< TArrayType< ULong_t > > TStlArrayULongProxy
Definition: TBranchProxy.h:810
TStlImpProxy(TBranchProxyDirector *director, const char *top, const char *name, const char *data)
Definition: TBranchProxy.h:615
TImpProxy(TBranchProxyDirector *director, TBranchProxy *parent, const char *name, const char *top=0, const char *mid=0)
Definition: TBranchProxy.h:465
TArrayProxy(TBranchProxyDirector *director, TBranchProxy *parent, const char *name, const char *top=0, const char *mid=0)
Definition: TBranchProxy.h:520
TStlArrayProxy< TArrayType< Float16_t > > TStlArrayFloat16Proxy
Definition: TBranchProxy.h:808
TStlImpProxy< Short_t > TStlShortProxy
Definition: TBranchProxy.h:801
TArrayProxy< TArrayType< UChar_t > > TArrayUCharProxy
Definition: TBranchProxy.h:748
TStlArrayProxy< TArrayType< ULong64_t > > TStlArrayULong64Proxy
Definition: TBranchProxy.h:811
TArrayProxy< TArrayType< Bool_t > > TArrayBoolProxy
Definition: TBranchProxy.h:754
TClaArrayProxy(TBranchProxyDirector *director, TBranchProxy *parent, const char *name, const char *top=0, const char *mid=0)
Definition: TBranchProxy.h:670
TClaProxy(TBranchProxyDirector *director, const char *top, const char *name)
Definition: TBranchProxy.h:384
TClaArrayProxy< TArrayType< UChar_t > > TClaArrayUCharProxy
Definition: TBranchProxy.h:780
TStlImpProxy< Int_t > TStlIntProxy
Definition: TBranchProxy.h:798
TClaImpProxy< UChar_t > TClaUCharProxy
Definition: TBranchProxy.h:764
virtual Int_t GetTreeNumber() const
Definition: TTree.h:434
TImpProxy< Int_t > TIntProxy
Definition: TBranchProxy.h:733
TClaProxy(TBranchProxyDirector *director, TBranchProxy *parent, const char *name, const char *top=0, const char *mid=0)
Definition: TBranchProxy.h:388
Int_t GetLast() const
Return index of last object in array.
Definition: TObjArray.cxx:528
const char * GetBranchName() const
Definition: TBranchProxy.h:109
TClaArrayProxy< TArrayType< UShort_t > > TClaArrayShortProxy
Definition: TBranchProxy.h:784
virtual void * GetClaStart(UInt_t i=0)
Definition: TBranchProxy.h:212
TStlImpProxy(TBranchProxyDirector *director, TBranchProxy *parent, const char *name, const char *top=0, const char *mid=0)
Definition: TBranchProxy.h:617
TClaArrayProxy< TArrayType< Long_t > > TClaArrayLongProxy
Definition: TBranchProxy.h:782
TStlImpProxy< ULong_t > TStlULongProxy
Definition: TBranchProxy.h:794
TStlImpProxy< Char_t > TStlCharProxy
Definition: TBranchProxy.h:802
TArrayProxy< TArrayType< Float16_t > > TArrayFloat16Proxy
Definition: TBranchProxy.h:743
unsigned int UInt_t
Definition: RtypesCore.h:42
TImpProxy< UChar_t > TUCharProxy
Definition: TBranchProxy.h:732
TClaImpProxy< Short_t > TClaShortProxy
Definition: TBranchProxy.h:768
char * Form(const char *fmt,...)
TArrayProxy< TArrayType< Int_t > > TArrayIntProxy
Definition: TBranchProxy.h:749
TArrayCharProxy(TBranchProxyDirector *director, TBranchProxy *parent, const char *name, const char *top=0, const char *mid=0)
Definition: TBranchProxy.h:324
Ssiz_t Length() const
Definition: TString.h:388
TImpProxy(TBranchProxyDirector *director, const char *name)
Definition: TBranchProxy.h:460
TClaArrayProxy< TArrayType< Double_t > > TClaArrayDoubleProxy
Definition: TBranchProxy.h:772
TClaArrayProxy< TArrayType< Float16_t > > TClaArrayFloat16Proxy
Definition: TBranchProxy.h:775
TClaArrayProxy< TArrayType< UShort_t > > TClaArrayUShortProxy
Definition: TBranchProxy.h:779
virtual Int_t GetEntry(Long64_t entry=0, Int_t getall=0)
Read all leaves of entry and return total number of bytes read.
Definition: TBranch.cxx:1291
The ROOT global object gROOT contains a list of all defined classes.
Definition: TClass.h:71
TClaImpProxy< ULong_t > TClaULongProxy
Definition: TBranchProxy.h:761
TClaImpProxy< Double_t > TClaDoubleProxy
Definition: TBranchProxy.h:756
void Reset(Detail::TBranchProxy *x)
TImpProxy< Short_t > TShortProxy
Definition: TBranchProxy.h:736
TImpProxy< Long_t > TLongProxy
Definition: TBranchProxy.h:734
TClaImpProxy< ULong64_t > TClaULong64Proxy
Definition: TBranchProxy.h:762
TClaImpProxy< Long64_t > TClaLong64Proxy
Definition: TBranchProxy.h:767
TStlImpProxy< Double32_t > TStlDouble32Proxy
Definition: TBranchProxy.h:790
const TVirtualCollectionProxy * GetPtr()
Definition: TBranchProxy.h:434
const Bool_t kFALSE
Definition: RtypesCore.h:92
TClaImpProxy< Bool_t > TClaBoolProxy
Definition: TBranchProxy.h:770
TArrayProxy(TBranchProxyDirector *director, const char *top, const char *name, const char *data)
Definition: TBranchProxy.h:518
TArrayProxy< TArrayType< ULong64_t > > TArrayULong64Proxy
Definition: TBranchProxy.h:746
TStlImpProxy< Float_t > TStlFloatProxy
Definition: TBranchProxy.h:791
TArrayCharProxy(TBranchProxyDirector *director, const char *top, const char *name, const char *data)
Definition: TBranchProxy.h:322
TClaArrayProxy< TArrayType< Int_t > > TClaArrayIntProxy
Definition: TBranchProxy.h:781
virtual void PopProxy()=0
TClaImpProxy< Double32_t > TClaDouble32Proxy
Definition: TBranchProxy.h:757
void Print(std::ostream &os, const OptionType &opt)
TVirtualCollectionProxy * GetCollection()
Definition: TBranchProxy.h:194
TImpProxy< ULong_t > TULongProxy
Definition: TBranchProxy.h:729
TStlArrayProxy(TBranchProxyDirector *director, const char *name)
Definition: TBranchProxy.h:702
TStlImpProxy< UInt_t > TStlUIntProxy
Definition: TBranchProxy.h:793
TClaImpProxy(TBranchProxyDirector *director, TBranchProxy *parent, const char *name, const char *top=0, const char *mid=0)
Definition: TBranchProxy.h:565
TClaArrayProxy< TArrayType< Long64_t > > TClaArrayLong64Proxy
Definition: TBranchProxy.h:783
virtual void * At(UInt_t idx)=0
TStlArrayProxy< TArrayType< Char_t > > TStlArrayCharProxy
Definition: TBranchProxy.h:818
TClaArrayProxy< TArrayType< Double32_t > > TClaArrayDouble32Proxy
Definition: TBranchProxy.h:773
TImpProxy< Bool_t > TBoolProxy
Definition: TBranchProxy.h:738
virtual void * GetStlStart(UInt_t i=0)
Definition: TBranchProxy.h:258
TClaImpProxy(TBranchProxyDirector *director, const char *top, const char *name)
Definition: TBranchProxy.h:561
TClaArrayProxy< TArrayType< Bool_t > > TClaArrayBoolProxy
Definition: TBranchProxy.h:786
TImpProxy< UShort_t > TUShortProxy
Definition: TBranchProxy.h:731
Internal::TBranchProxyDirector * fDirector
Definition: TBranchProxy.h:67
TClaArrayProxy(TBranchProxyDirector *director, const char *name)
Definition: TBranchProxy.h:665
TStlImpProxy< Long_t > TStlLongProxy
Definition: TBranchProxy.h:799
TArrayProxy< TArrayType< Float_t > > TArrayFloatProxy
Definition: TBranchProxy.h:742
TStlImpProxy< UChar_t > TStlUCharProxy
Definition: TBranchProxy.h:797
TArrayProxy< TArrayType< UShort_t > > TArrayShortProxy
Definition: TBranchProxy.h:752
Binding & operator=(OUT(*fun)(void))
TArrayProxy(TBranchProxyDirector *director, const char *name)
Definition: TBranchProxy.h:515
TStlProxy(TBranchProxyDirector *director, TBranchProxy *parent, const char *name, const char *top=0, const char *mid=0)
Definition: TBranchProxy.h:430
TClaProxy(TBranchProxyDirector *director, const char *top, const char *name, const char *data)
Definition: TBranchProxy.h:386
TImpProxy< UInt_t > TUIntProxy
Definition: TBranchProxy.h:728
virtual UInt_t Size() const =0
const TClonesArray * GetPtr()
Definition: TBranchProxy.h:392
TArrayProxy< TArrayType< UInt_t > > TArrayUIntProxy
Definition: TBranchProxy.h:744
TStlArrayProxy< TArrayType< Float_t > > TStlArrayFloatProxy
Definition: TBranchProxy.h:807
TClaImpProxy< Int_t > TClaIntProxy
Definition: TBranchProxy.h:765
An array of clone (identical) objects.
Definition: TClonesArray.h:32
TStlImpProxy< Double_t > TStlDoubleProxy
Definition: TBranchProxy.h:789
TImpProxy(TBranchProxyDirector *director, const char *top, const char *name)
Definition: TBranchProxy.h:461
TClaProxy(TBranchProxyDirector *director, const char *name)
Definition: TBranchProxy.h:383
#define R__unlikely(expr)
Definition: RConfig.h:539
TBranchProxyHelper(const char *left, const char *right=0)
Definition: TBranchProxy.h:49
TStlArrayProxy< TArrayType< Long_t > > TStlArrayLongProxy
Definition: TBranchProxy.h:815
TImpProxy< Long64_t > TLong64Proxy
Definition: TBranchProxy.h:735
TArrayCharProxy(TBranchProxyDirector *director, const char *top, const char *name)
Definition: TBranchProxy.h:320
Int_t GetEntries() const
Return the number of objects in array (i.e.
Definition: TObjArray.cxx:494
TStlArrayProxy(TBranchProxyDirector *director, TBranchProxy *parent, const char *name, const char *top=0, const char *mid=0)
Definition: TBranchProxy.h:707
TBranchProxy * GetProxy()
Definition: TBranchProxy.h:108
TClaImpProxy< Char_t > TClaCharProxy
Definition: TBranchProxy.h:769
TStlArrayProxy< TArrayType< UInt_t > > TStlArrayUIntProxy
Definition: TBranchProxy.h:809
TStlArrayProxy< TArrayType< Double32_t > > TStlArrayDouble32Proxy
Definition: TBranchProxy.h:806
TClaImpProxy(TBranchProxyDirector *director, const char *name)
Definition: TBranchProxy.h:560
A TTree object has a header with a name and a title.
Definition: TTree.h:78
const array_t & At(UInt_t i)
Definition: TBranchProxy.h:533
double result[121]
TStlImpProxy< Bool_t > TStlBoolProxy
Definition: TBranchProxy.h:803
TImpProxy< Float16_t > TFloat16Proxy
Definition: TBranchProxy.h:727
TStlArrayProxy(TBranchProxyDirector *director, const char *top, const char *name)
Definition: TBranchProxy.h:703
TClaArrayProxy< TArrayType< Float_t > > TClaArrayFloatProxy
Definition: TBranchProxy.h:774
Base class for all the proxy object.
Definition: TBranchProxy.h:65
A TTree is a list of TBranches.
Definition: TBranch.h:57
TClaArrayProxy< TArrayType< ULong64_t > > TClaArrayULong64Proxy
Definition: TBranchProxy.h:778
const Bool_t kTRUE
Definition: RtypesCore.h:91
TVirtualCollectionProxy * fCollection
Definition: TBranchProxy.h:94
unsigned char At(UInt_t i)
Definition: TBranchProxy.h:328
TClaArrayProxy< TArrayType< ULong_t > > TClaArrayULongProxy
Definition: TBranchProxy.h:777
void Error(ErrorHandler_t func, int code, const char *va_(fmt),...)
Write error message and call a handler, if required.
TStlImpProxy(TBranchProxyDirector *director, const char *top, const char *name)
Definition: TBranchProxy.h:613
const char * Data() const
Definition: TString.h:347
TStlImpProxy< UShort_t > TStlUShortProxy
Definition: TBranchProxy.h:796