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;
175 return typeid( Char_t );
177 return typeid( UChar_t );
179 return typeid( Short_t );
181 return typeid( UShort_t );
184 return typeid( Int_t );
187 case kDataTypeAliasUnsigned_t:
188 return typeid( UInt_t );
190 return typeid( Long_t );
192 return typeid( ULong_t );
194 return typeid( Float_t );
196 return typeid( Double_t );
198 return typeid( Double32_t );
200 return typeid( Bool_t );
202 return typeid( Long64_t );
204 return typeid( ULong64_t );
206 return typeid( Float16_t );
208 return typeid(
char* );
210 return typeid( void );
212 ::Error(
"xAOD::Utils::getTypeInfo",
214 static_cast< int >(
type ) );
215 return typeid( void );
229 switch( typeidType ) {
268 Error(
"xAOD::Utils::rootType",
269 XAOD_MESSAGE(
"Received an unknown type: %c" ), typeidType );
288 std::string
result = AthContainers_detail::typeinfoName( ti );
292 if( (
result.find(
"DataVector<" ) == std::string::npos ) &&
293 (
result.find(
"std::vector<" ) == std::string::npos ) &&
294 (
result.find(
"std::__1::vector<") == std::string::npos ) ) {
299 removeDefaultTemplateParameters(
result,
"DataVector" );
300 removeDefaultTemplateParameters(
result,
"std::vector" );
301 removeDefaultTemplateParameters(
result,
"std::__1::vector" );
305 while( (
pos =
result.find(
">>" ) ) != std::string::npos ) {
310 while( (
pos =
result.find(
"__1::" ) ) != std::string::npos ) {
319 const std::string& pre ) {
320 const TObjArray * pBranches =
tree->GetListOfBranches();
323 for(
int i = 0, nLast = pBranches->GetLast();
i <= nLast; ++
i ) {
324 const std::string
name = pBranches->At(
i)->GetName();