30 void removeDefaultTemplateParameters( std::string&
name,
31 const std::string& vectorName ) {
34 while( ( vecPos =
name.find( vectorName +
"<", vecPos ) ) !=
38 vecPos += ( vectorName.size() + 1 );
43 size_t commaPos = std::string::npos;
60 if( commaPos != std::string::npos ) {
66 if( commaPos == std::string::npos ) {
72 size_t closingPos = std::string::npos;
88 if( closingPos != std::string::npos ) {
94 if( closingPos == std::string::npos ) {
95 ::Error(
"removeDefaultTemplateParameters",
102 name.erase( commaPos, closingPos - commaPos );
127 static constexpr
SG::sgkey_t MASK = (~static_cast<SG::sgkey_t>(0)) >> 2;
130 static const std::hash< std::string >
helper;
200 return typeid( Char_t );
202 return typeid( UChar_t );
204 return typeid( Short_t );
206 return typeid( UShort_t );
209 return typeid( Int_t );
212 case kDataTypeAliasUnsigned_t:
213 return typeid( UInt_t );
215 return typeid( Long_t );
217 return typeid( ULong_t );
219 return typeid( Float_t );
221 return typeid( Double_t );
223 return typeid( Double32_t );
225 return typeid( Bool_t );
227 return typeid( Long64_t );
229 return typeid( ULong64_t );
231 return typeid( Float16_t );
233 return typeid(
char* );
235 return typeid( void );
237 ::Error(
"xAOD::Utils::getTypeInfo",
239 static_cast< int >(
type ) );
240 return typeid( void );
254 switch( typeidType ) {
293 Error(
"xAOD::Utils::rootType",
294 XAOD_MESSAGE(
"Received an unknown type: %c" ), typeidType );
317 if( (
result.find(
"DataVector<" ) == std::string::npos ) &&
318 (
result.find(
"std::vector<" ) == std::string::npos ) &&
319 (
result.find(
"std::__1::vector<") == std::string::npos ) ) {
324 removeDefaultTemplateParameters(
result,
"DataVector" );
325 removeDefaultTemplateParameters(
result,
"std::vector" );
326 removeDefaultTemplateParameters(
result,
"std::__1::vector" );
330 while( (
pos =
result.find(
">>" ) ) != std::string::npos ) {
335 while( (
pos =
result.find(
"__1::" ) ) != std::string::npos ) {
351 const std::string& pre ) {
352 const TObjArray * pBranches =
tree->GetListOfBranches();
355 for(
int i = 0, nLast = pBranches->GetLast();
i <= nLast; ++
i ) {
356 const std::string
name = pBranches->At(
i)->GetName();
377 const std::string& pre ) {
379 ntupleReader.LoadEntry( 0 );
380 for(
const auto&
field :
381 #
if ROOT_VERSION_CODE >= ROOT_VERSION( 6, 33, 0 )
382 ntupleReader.GetModel().GetConstFieldZero()
384 auto name =
field.GetQualifiedFieldName();
386 ntupleReader.GetModel().GetFieldZero().GetSubFields()
388 auto name =
field->GetQualifiedFieldName();
408 if( ntupleReader.GetDescriptor().FindFieldId(
fieldName ) ==