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