206 if (!fDirector->GetTree()) {
209 if (!fNotify.IsLinked()) {
210 fNotify.PrependLink(*fDirector->GetTree());
214 if (!fParent->Setup()) {
224 Int_t i = fDirector->GetReadEntry();
225 if (i<0) fDirector->SetReadEntry(0);
226 if (fParent->Read()) {
227 if (i<0) fDirector->SetReadEntry(i);
234 }
else if (
pcl->GetCollectionProxy()) {
237 if (fCollection)
delete fCollection;
238 fCollection =
pcl->GetCollectionProxy()->Generate();
239 pcl = fCollection->GetValueClass();
240 if (
pcl ==
nullptr) {
242 Error(
"Setup",
"Not finding TClass for collection for the data member %s seems no longer be in class %s",fDataMember.Data(),fParent->GetClass()->GetName());
247 fElement = (
TStreamerElement*)
pcl->GetStreamerInfo()->GetStreamerElement(fDataMember, fOffset);
249 fIsaPointer = fElement->IsaPointer();
250 fClass = fElement->GetClassPointer();
251 fMemberOffset = fElement->GetOffset();
252 fArrayLength = fElement->GetArrayLength();
254 Error(
"Setup",
"Data member %s seems no longer be in class %s",fDataMember.Data(),
pcl->GetName());
260 fWhere = fParent->fWhere;
262 if (fParent->IsaPointer()) {
276 fBranch = fDirector->GetTree()->GetBranch(fBranchName.Data());
288 fWhere = (
double*)fBranch->GetAddress();
295 be->GetMother()->SetAddress(
nullptr);
296 fWhere = (
double*)fBranch->GetAddress();
301 if (fDataMember.Length()) {
302 leaf2 = fBranch->GetLeaf(fDataMember);
303 }
else if (!fWhere) {
304 leaf2 = (
TLeaf*)fBranch->GetListOfLeaves()->At(0);
305 fWhere =
leaf2->GetValuePointer();
308 fWhere =
leaf2->GetValuePointer();
309 fArrayLength =
leaf2->GetLen();
310 if (
leaf2->GetLeafCount()) {
311 fLeafCount =
leaf2->GetLeafCount();
312 fHasLeafCount =
true;
327 fWhere = (
double*)fBranch->GetAddress();
337 if (
be->GetType() == 3) {
338 fClassName =
"TClonesArray";
341 fOffset =
info->GetElementOffset(
id);
343 fIsaPointer = fElement->IsaPointer();
344 fClass = fElement->GetClassPointer();
346 if ((fIsMember || (
be->GetType()!=3 &&
be->GetType() !=4))
347 && (
be->GetType()!=31 &&
be->GetType()!=41)) {
350 Int_t i =
be->GetTree()->GetReadEntry();
355 if ( fIsMember &&
be->GetType()==3 ) {
357 }
else if (fIsaPointer) {
362 if (!fIsMember) fIsClone =
true;
366 fCollection =
fClass->GetCollectionProxy()->Generate();
367 fClass = fCollection->GetValueClass();
373 fClassName =
be->GetClassName();
377 if (
be->GetType()==3) {
380 if (!fIsMember) fIsClone =
true;
382 fWhere =
be->GetObject();
384 }
else if (
be->GetType()==4) {
387 fCollection =
be->GetCollectionProxy()->Generate();
389 fWhere =
be->GetObject();
395 fWhere =
be->GetObject();
397 }
else if (
be->GetType()==41) {
399 fCollection =
be->GetCollectionProxy()->Generate();
400 fWhere =
be->GetObject();
401 fOffset +=
be->GetOffset();
403 }
else if (
be->GetType()==31) {
405 fWhere =
be->GetObject();
406 fOffset +=
be->GetOffset();
408 }
else if (
be->GetType()==2) {
411 fWhere =
be->GetObject();
416 fWhere = ((
unsigned char*)
be->GetObject()) + fOffset;
421 fClassName = fBranch->GetClassName();
424 fClassName = fBranch->GetClassName();
470 if (fMemberOffset<0) {
471 Error(
"Setup",
"%s",
Form(
"Negative offset %d for %s in %s",
472 fMemberOffset,fBranch->
GetName(),
479 fClass->GetStreamerInfo()->GetElements()->FindObject(fDataMember);
481 fMemberOffset = fElement->GetOffset();
496 Error(
"Setup",
"%s",
Form(
"Missing TClass object for %s\n",fClassName.Data()));
502 fOffset = fMemberOffset;
506 fWhere = ((
unsigned char*)fWhere) + fMemberOffset;
511 if (fWhere!=
nullptr) {