12 #ifndef ROOT_TBranchProxy 13 #define ROOT_TBranchProxy 54 if (left[0]&&right && fName[fName.
Length()-1]!=
'.') fName +=
".";
60 operator const char*() {
return fName.
Data(); };
104 virtual void Print();
129 if (fDirector==0)
return false;
132 if (!IsInitialized()) {
134 ::Error(
"TBranchProxy::Read",
"%s",
Form(
"Unable to initialize %s\n",fBranchName.
Data()));
140 result = fParent->
Read();
143 result &= (-1 != fBranchCount->GetEntry(fDirector->
GetReadEntry()));
151 fCollection->
PushProxy( *(
void**)fWhere );
158 return IsInitialized();
163 if (fDirector==0)
return false;
166 if (!IsInitialized()) {
168 ::Error(
"TBranchProxy::ReadEntries",
"%s",
Form(
"Unable to initialize %s\n",fBranchName.
Data()));
175 fBranchCount->TBranch::GetEntry(fDirector->
GetReadEntry());
182 return IsInitialized();
186 if (!ReadEntries())
return 0;
187 if (!fHasLeafCount) {
188 return *(
Int_t*)fLeafCount->GetValuePointer();
199 if (fDirector==0)
return 0;
201 if (!IsInitialized()) {
226 fWhere = ((
unsigned char*)fParent->
GetStart()) + fMemberOffset;
229 if (fWhere)
return *(
void**)fWhere;
250 location = (
char*)tca->
At(i);
254 }
else if (fParent) {
268 location = (
char*)tca->
At(i);
271 if (location) location += fOffset;
275 return *(
void**)(location);
291 if (fCollection->
Size()<i)
return 0;
293 location = (
char*)fCollection->
At(i);
297 }
else if (fParent) {
315 if (location) location += fOffset;
319 return *(
void**)(location);
338 std::cout <<
"fWhere " << fWhere << std::endl;
339 if (fWhere) std::cout <<
"value? " << *(
unsigned char*)GetStart() << std::endl;
347 if (!Read())
return nullptr;
348 unsigned char* str = (
unsigned char*)GetStart();
353 static unsigned char default_val = {};
354 if (
unsigned char* elAddr = (
unsigned char*)GetAddressOfElement(i)) {
361 unsigned char operator [](
Int_t i) {
369 operator const char*() {
370 if (!Read())
return "";
371 return (
const char*)GetStart();
375 if (!Read())
return "";
376 return (
const char*)GetStart();
380 if (!Read())
return "";
381 return (
const char*)GetStart();
384 operator std::string() {
385 if (!Read())
return "";
386 return std::string((
const char*)GetStart());
397 std::cout <<
"fWhere " << fWhere << std::endl;
400 std::cout <<
"location " << *(
TClonesArray**)fWhere << std::endl;
402 std::cout <<
"location " << fWhere << std::endl;
412 if (!Read())
return 0;
417 if (!ReadEntries())
return 0;
424 if (!Read())
return nullptr;
425 if (fWhere==0)
return nullptr;
426 return GetClaStart(i);
439 std::cout <<
"fWhere " << fWhere << std::endl;
442 std::cout <<
"location " << *(
TClonesArray**)fWhere << std::endl;
444 std::cout <<
"location " << fWhere << std::endl;
454 if (!Read())
return 0;
455 return GetCollection();
459 if (!ReadEntries())
return 0;
460 return GetPtr()->Size();
464 if (!Read())
return nullptr;
465 if (fWhere==0)
return nullptr;
466 return GetStlStart(i);
480 std::cout <<
"fWhere " << fWhere << std::endl;
481 if (fWhere) std::cout <<
"value? " << *(
T*)GetStart() << std::endl;
489 if (!Read())
return 0;
490 return *(
T*)GetStart();
504 typedef T array_t[d];
518 typedef typename T::array_t array_t[d];
536 std::cout <<
"fWhere " << GetWhere() << std::endl;
537 if (GetWhere()) std::cout <<
"value? " << *(type_t*)GetWhere() << std::endl;
545 if (!Read())
return nullptr;
546 if (array_t *arr = (array_t*)((type_t*)(GetStart())))
552 static array_t default_val;
554 if (array_t *arr = (array_t*)GetAddressOfElement(i))
559 const array_t &operator [](
Int_t i) {
return At(i); }
560 const array_t &operator [](
UInt_t i) {
return At(i); }
578 static T default_val;
579 if (
void* addr = GetAddressOfElement(i))
584 const T& operator [](
Int_t i) {
return At(i); }
585 const T& operator [](
UInt_t i) {
return At(i); }
608 static T default_val;
609 if (
void* addr = GetAddressOfElement(i))
614 const T& operator [](
Int_t i) {
return At(i); }
615 const T& operator [](
UInt_t i) {
return At(i); }
640 static array_t default_val;
641 if (array_t* ptr = (array_t*)GetAddressOfElement(i))
647 array_t *operator [](
Int_t i) {
return At(i); }
648 array_t *operator [](
UInt_t i) {
return At(i); }
669 static array_t default_val;
670 if (array_t* ptr = (array_t*)GetAddressOfElement(i))
675 array_t *operator [](
Int_t i) {
return At(i); }
676 array_t *operator [](
UInt_t i) {
return At(i); }
TStlArrayProxy< TArrayType< Bool_t > > TStlArrayBoolProxy
TStlArrayProxy< TArrayType< Int_t > > TStlArrayIntProxy
TImpProxy< Double32_t > TDouble32Proxy
TStlArrayProxy< TArrayType< Double_t > > TStlArrayDoubleProxy
A TLeaf describes individual elements of a TBranch See TBranch structure in TTree.
Int_t GetEntries() override
TArrayProxy< TArrayType< Double_t > > TArrayDoubleProxy
TClaImpProxy< Float_t > TClaFloatProxy
TStlArrayProxy< TArrayType< UShort_t > > TStlArrayUShortProxy
void * GetClaStart(UInt_t i=0)
void * GetAddressOfElement(UInt_t i) final
Return the address of the element number i.
const TString fDataMember
TStlArrayProxy< TArrayType< Long64_t > > TStlArrayLong64Proxy
Namespace for new ROOT classes and functions.
TStlImpProxy< Float16_t > TStlFloat16Proxy
TArrayProxy< TArrayType< Long64_t > > TArrayLong64Proxy
TStlImpProxy< ULong64_t > TStlULong64Proxy
TImpProxy< Double_t > TDoubleProxy
const TVirtualCollectionProxy * operator->()
TStlArrayProxy< TArrayType< UChar_t > > TStlArrayUCharProxy
void * GetAddressOfElement(UInt_t i) final
Return the address of the element number i.
TImpProxy< ULong64_t > TULong64Proxy
virtual void PushProxy(void *objectstart)=0
TStlArrayProxy< TArrayType< UShort_t > > TStlArrayShortProxy
R__EXTERN PyObject * gSize
TArrayProxy< TArrayType< Long_t > > TArrayLongProxy
TClaImpProxy< UInt_t > TClaUIntProxy
TClaArrayProxy< TArrayType< Char_t > > TClaArrayCharProxy
TImpProxy< Char_t > TCharProxy
TStlImpProxy< Long64_t > TStlLong64Proxy
void * GetAddressOfElement(UInt_t i) final
Return the address of the element number i.
const TClonesArray * operator->()
TArrayProxy< TArrayType< UShort_t > > TArrayUShortProxy
TStreamerElement * fElement
TArrayProxy< TArrayType< Double32_t > > TArrayDouble32Proxy
TClaImpProxy< Float16_t > TClaFloat16Proxy
virtual void * GetStart(UInt_t=0)
TImpProxy< Float_t > TFloatProxy
TClaImpProxy< Long_t > TClaLongProxy
TObject * At(Int_t idx) const
TClaImpProxy< UShort_t > TClaUShortProxy
TArrayProxy< TArrayType< ULong_t > > TArrayULongProxy
TClaArrayProxy< TArrayType< UInt_t > > TClaArrayUIntProxy
TStlArrayProxy< TArrayType< ULong_t > > TStlArrayULongProxy
Int_t GetEntries() override
TStlArrayProxy< TArrayType< Float16_t > > TStlArrayFloat16Proxy
TStlImpProxy< Short_t > TStlShortProxy
const TString fBranchName
TArrayProxy< TArrayType< UChar_t > > TArrayUCharProxy
TStlArrayProxy< TArrayType< ULong64_t > > TStlArrayULong64Proxy
TArrayProxy< TArrayType< Bool_t > > TArrayBoolProxy
TClaArrayProxy< TArrayType< UChar_t > > TClaArrayUCharProxy
TStlImpProxy< Int_t > TStlIntProxy
TClaImpProxy< UChar_t > TClaUCharProxy
virtual Int_t GetTreeNumber() const
TImpProxy< Int_t > TIntProxy
Int_t GetLast() const
Return index of last object in array.
const char * GetBranchName() const
TClaArrayProxy< TArrayType< UShort_t > > TClaArrayShortProxy
TClaArrayProxy< TArrayType< Long_t > > TClaArrayLongProxy
TStlImpProxy< ULong_t > TStlULongProxy
TStlImpProxy< Char_t > TStlCharProxy
TArrayProxy< TArrayType< Float16_t > > TArrayFloat16Proxy
virtual Int_t GetArrayLength()
TImpProxy< UChar_t > TUCharProxy
TClaImpProxy< Short_t > TClaShortProxy
char * Form(const char *fmt,...)
TArrayProxy< TArrayType< Int_t > > TArrayIntProxy
TClaArrayProxy< TArrayType< Double_t > > TClaArrayDoubleProxy
TClaArrayProxy< TArrayType< Float16_t > > TClaArrayFloat16Proxy
TClaArrayProxy< TArrayType< UShort_t > > TClaArrayUShortProxy
virtual Int_t GetEntry(Long64_t entry=0, Int_t getall=0)
Read all leaves of entry and return total number of bytes read.
The ROOT global object gROOT contains a list of all defined classes.
TClaImpProxy< ULong_t > TClaULongProxy
void * GetStlStart(UInt_t i=0)
TClaImpProxy< Double_t > TClaDoubleProxy
void Reset(Detail::TBranchProxy *x)
TImpProxy< Short_t > TShortProxy
TImpProxy< Long_t > TLongProxy
TClaImpProxy< ULong64_t > TClaULong64Proxy
TClaImpProxy< Long64_t > TClaLong64Proxy
TStlImpProxy< Double32_t > TStlDouble32Proxy
Int_t GetEntries() override
const TVirtualCollectionProxy * GetPtr()
TClaImpProxy< Bool_t > TClaBoolProxy
TArrayProxy< TArrayType< ULong64_t > > TArrayULong64Proxy
TStlImpProxy< Float_t > TStlFloatProxy
virtual Int_t GetEntries()
TClaArrayProxy< TArrayType< Int_t > > TClaArrayIntProxy
virtual void PopProxy()=0
TClaImpProxy< Double32_t > TClaDouble32Proxy
void Print(std::ostream &os, const OptionType &opt)
Long64_t GetReadEntry() const
TVirtualCollectionProxy * GetCollection()
TImpProxy< ULong_t > TULongProxy
TStlImpProxy< UInt_t > TStlUIntProxy
TClaArrayProxy< TArrayType< Long64_t > > TClaArrayLong64Proxy
virtual void * At(UInt_t idx)=0
TStlArrayProxy< TArrayType< Char_t > > TStlArrayCharProxy
TClaArrayProxy< TArrayType< Double32_t > > TClaArrayDouble32Proxy
TImpProxy< Bool_t > TBoolProxy
TClaArrayProxy< TArrayType< Bool_t > > TClaArrayBoolProxy
TImpProxy< UShort_t > TUShortProxy
Internal::TBranchProxyDirector * fDirector
TStlImpProxy< Long_t > TStlLongProxy
TArrayProxy< TArrayType< Float_t > > TArrayFloatProxy
TStlImpProxy< UChar_t > TStlUCharProxy
TArrayProxy< TArrayType< UShort_t > > TArrayShortProxy
Binding & operator=(OUT(*fun)(void))
TImpProxy< UInt_t > TUIntProxy
virtual UInt_t Size() const =0
const TClonesArray * GetPtr()
TArrayProxy< TArrayType< UInt_t > > TArrayUIntProxy
virtual void * GetAddressOfElement(UInt_t)
Return the address of the element number i.
TStlArrayProxy< TArrayType< Float_t > > TStlArrayFloatProxy
TClaImpProxy< Int_t > TClaIntProxy
An array of clone (identical) objects.
TStlImpProxy< Double_t > TStlDoubleProxy
#define R__unlikely(expr)
TBranchProxyHelper(const char *left, const char *right=0)
TStlArrayProxy< TArrayType< Long_t > > TStlArrayLongProxy
TImpProxy< Long64_t > TLong64Proxy
Int_t GetEntries() const
Return the number of objects in array (i.e.
TBranchProxy * GetProxy()
TClaImpProxy< Char_t > TClaCharProxy
TStlArrayProxy< TArrayType< UInt_t > > TStlArrayUIntProxy
TStlArrayProxy< TArrayType< Double32_t > > TStlArrayDouble32Proxy
A TTree object has a header with a name and a title.
const array_t & At(UInt_t i)
TStlImpProxy< Bool_t > TStlBoolProxy
TImpProxy< Float16_t > TFloat16Proxy
TClaArrayProxy< TArrayType< Float_t > > TClaArrayFloatProxy
Base class for all the proxy object.
Bool_t IsaPointer() const
A TTree is a list of TBranches.
void * GetAddressOfElement(UInt_t i) final
Return the address of the element number i.
TClaArrayProxy< TArrayType< ULong64_t > > TClaArrayULong64Proxy
TVirtualCollectionProxy * fCollection
unsigned char At(UInt_t i)
TClaArrayProxy< TArrayType< ULong_t > > TClaArrayULongProxy
void Error(ErrorHandler_t func, int code, const char *va_(fmt),...)
Write error message and call a handler, if required.
const char * Data() const
TStlImpProxy< UShort_t > TStlUShortProxy