28 if (TClass*
cl = (TClass*)gROOT->GetListOfClasses()->FindObject(cname.c_str())) {
29 if (
cl->IsLoaded() &&
cl->HasDictionary())
return cl;
43 TClass*
cl = TClass::GetClass (cname.c_str());
44 if (
cl->HasDictionary())
64 const std::string&
name,
65 const std::string& elementTypeName,
66 const std::string& branchTypeName,
73 if (auxid != SG::null_auxid)
return auxid;
79 std::string tn = elementTypeName;
80 if (tn.starts_with(
"std::vector<"))
82 std::string fac_class_name =
"SG::AuxTypeVectorFactory<" +
83 tn +
",allocator<" + tn;
84 if (fac_class_name[fac_class_name.size()-1] ==
'>')
85 fac_class_name +=
' ';
86 fac_class_name +=
"> >";
92 int offs = fac_class->GetBaseClassOffset (base_class);
94 void* fac_vp = fac_class->New();
97 const std::type_info* tiAlloc = fac->
tiAlloc();
98 r.addFactory (ti, *tiAlloc, std::unique_ptr<SG::IAuxTypeVectorFactory> (fac));
105 if (auxid == SG::null_auxid) {
106 std::string vec_name = branchTypeName;
108 vec_name =
"std::vector<" + branchTypeName;
109 if (vec_name[vec_name.size()-1] ==
'>')
113 TClass* vec_class = TClass::GetClass (vec_name.c_str());
116 auto facp = std::make_unique<SG::RootAuxVectorFactory> (vec_class);
117 std::string tiAllocName = facp->tiAllocName();
118 (void)
r.addFactory (ti, tiAllocName, std::move (facp));
119 auxid =
r.getAuxID(tiAllocName, ti,
name);