From f5924774a2e8fc4d01d5d4be592629c5eb191f05 Mon Sep 17 00:00:00 2001
From: Philippe Canal <pcanal@fnal.gov>
Date: Tue, 19 Nov 2013 15:00:19 -0600
Subject: [PATCH] Always use ROOT::ESTLtype

---
 core/meta/inc/TBaseClass.h                  | 14 +--
 core/meta/src/TBaseClass.cxx                | 24 ++---
 core/meta/src/TClass.cxx                    |  2 +-
 core/meta/src/TStreamerElement.cxx          | 52 +++++------
 core/metautils/inc/ESTLType.h               |  1 +
 core/metautils/inc/TClassEdit.h             |  2 +-
 core/metautils/inc/TMetaUtils.h             | 11 ++-
 core/metautils/src/RStl.cxx                 |  4 +-
 core/metautils/src/TClassEdit.cxx           | 32 +++----
 core/metautils/src/TMetaUtils.cxx           | 40 ++++-----
 core/utils/src/rootcling.cxx                | 22 ++---
 io/io/src/TCollectionProxyFactory.cxx       | 12 +--
 io/io/src/TEmulatedCollectionProxy.cxx      | 14 +--
 io/io/src/TEmulatedMapProxy.cxx             |  4 +-
 io/io/src/TFile.cxx                         |  4 +-
 io/io/src/TGenCollectionProxy.cxx           | 86 +++++++++---------
 io/io/src/TGenCollectionStreamer.cxx        | 98 ++++++++++-----------
 io/io/src/TMakeProject.cxx                  | 46 +++++-----
 io/io/src/TStreamerInfo.cxx                 | 26 +++---
 io/io/src/TStreamerInfoActions.cxx          | 40 ++++-----
 io/xml/src/TXMLPlayer.cxx                   | 20 ++---
 tree/tree/src/TBranchElement.cxx            | 54 ++++++------
 tree/tree/src/TTree.cxx                     |  2 +-
 tree/treeplayer/src/TTreeProxyGenerator.cxx | 24 ++---
 tree/treeplayer/src/TTreeReaderArray.cxx    |  4 +-
 25 files changed, 321 insertions(+), 317 deletions(-)

diff --git a/core/meta/inc/TBaseClass.h b/core/meta/inc/TBaseClass.h
index 7fe119efd6d..b182648429f 100644
--- a/core/meta/inc/TBaseClass.h
+++ b/core/meta/inc/TBaseClass.h
@@ -46,13 +46,13 @@ private:
 public:
    TBaseClass(BaseClassInfo_t *info = 0, TClass *cl = 0);
    virtual     ~TBaseClass();
-   virtual void Browse(TBrowser *b);
-   const char  *GetTitle() const;
-   TClass      *GetClassPointer(Bool_t load=kTRUE);
-   Int_t        GetDelta() const;
-   Bool_t       IsFolder() const {return kTRUE;}
-   Int_t        IsSTLContainer();
-   Long_t       Property() const;
+   virtual void   Browse(TBrowser *b);
+   const char    *GetTitle() const;
+   TClass        *GetClassPointer(Bool_t load=kTRUE);
+   Int_t          GetDelta() const;
+   Bool_t         IsFolder() const {return kTRUE;}
+   ROOT::ESTLType IsSTLContainer();
+   Long_t         Property() const;
 
    ClassDef(TBaseClass,0)  //Description of a base class
 };
diff --git a/core/meta/src/TBaseClass.cxx b/core/meta/src/TBaseClass.cxx
index e99d60b7a18..b0c22793f3f 100644
--- a/core/meta/src/TBaseClass.cxx
+++ b/core/meta/src/TBaseClass.cxx
@@ -84,22 +84,22 @@ const char *TBaseClass::GetTitle() const
 }
 
 //______________________________________________________________________________
-int TBaseClass::IsSTLContainer()
+ROOT::ESTLType TBaseClass::IsSTLContainer()
 {
    // Return which type (if any) of STL container the data member is.
 
-   if (!fInfo) return kNone;
+   if (!fInfo) return ROOT::kNotSTL;
    const char *type = gCling->BaseClassInfo_TmpltName(fInfo);
-   if (!type) return kNone;
-
-   if (!strcmp(type, "vector"))   return kVector;
-   if (!strcmp(type, "list"))     return kList;
-   if (!strcmp(type, "deque"))    return kDeque;
-   if (!strcmp(type, "map"))      return kMap;
-   if (!strcmp(type, "multimap")) return kMultimap;
-   if (!strcmp(type, "set"))      return kSet;
-   if (!strcmp(type, "multiset")) return kMultiset;
-   return kNone;
+   if (!type) return ROOT::kNotSTL;
+
+   if (!strcmp(type, "vector"))   return ROOT::kSTLvector;
+   if (!strcmp(type, "list"))     return ROOT::kSTLlist;
+   if (!strcmp(type, "deque"))    return ROOT::kSTLdeque;
+   if (!strcmp(type, "map"))      return ROOT::kSTLmap;
+   if (!strcmp(type, "multimap")) return ROOT::kSTLmultimap;
+   if (!strcmp(type, "set"))      return ROOT::kSTLset;
+   if (!strcmp(type, "multiset")) return ROOT::kSTLmultiset;
+   return ROOT::kNotSTL;
 }
 
 //______________________________________________________________________________
diff --git a/core/meta/src/TClass.cxx b/core/meta/src/TClass.cxx
index ebe1e0aa5aa..2078c26e531 100644
--- a/core/meta/src/TClass.cxx
+++ b/core/meta/src/TClass.cxx
@@ -1956,7 +1956,7 @@ Bool_t TClass::CanSplit() const
          if (valueClass->GetCollectionProxy() != 0) return kFALSE;
 
          Int_t stl = -TClassEdit::IsSTLCont(GetName(), 0);
-         if ((stl==TClassEdit::kMap || stl==TClassEdit::kMultiMap)
+         if ((stl==ROOT::kSTLmap || stl==ROOT::kSTLmultimap)
               && valueClass->GetClassInfo()==0)
          {
             return kFALSE;
diff --git a/core/meta/src/TStreamerElement.cxx b/core/meta/src/TStreamerElement.cxx
index d54b2bab4f3..e8529882cb1 100644
--- a/core/meta/src/TStreamerElement.cxx
+++ b/core/meta/src/TStreamerElement.cxx
@@ -1570,7 +1570,7 @@ TStreamerSTL::TStreamerSTL() : fSTLtype(0),fCtype(0)
 //______________________________________________________________________________
 TStreamerSTL::TStreamerSTL(const char *name, const char *title, Int_t offset,
                            const char *typeName, const TVirtualCollectionProxy &proxy, Bool_t dmPointer)
-        : TStreamerElement(name,title,offset,kSTL,typeName)
+        : TStreamerElement(name,title,offset,ROOT::kSTLany,typeName)
 {
    // Create a TStreamerSTL object.
 
@@ -1586,7 +1586,7 @@ TStreamerSTL::TStreamerSTL(const char *name, const char *title, Int_t offset,
 
    if (dmPointer) fSTLtype += TVirtualStreamerInfo::kOffsetP;
 
-   if (fSTLtype == kSTLbitset) {
+   if (fSTLtype == ROOT::kSTLbitset) {
       // Nothing to check
    } else if (proxy.GetValueClass()) {
       if (proxy.HasPointers()) fCtype = TVirtualStreamerInfo::kObjectp;
@@ -1601,7 +1601,7 @@ TStreamerSTL::TStreamerSTL(const char *name, const char *title, Int_t offset,
 //______________________________________________________________________________
 TStreamerSTL::TStreamerSTL(const char *name, const char *title, Int_t offset,
                            const char *typeName, const char *trueType, Bool_t dmPointer)
-        : TStreamerElement(name,title,offset,kSTL,typeName)
+        : TStreamerElement(name,title,offset,ROOT::kSTLany,typeName)
 {
    // Create a TStreamerSTL object.
 
@@ -1648,14 +1648,14 @@ TStreamerSTL::TStreamerSTL(const char *name, const char *title, Int_t offset,
    fCtype   = 0;
    // Any class name that 'contains' the word will be counted
    // as a STL container. Is that really what we want.
-   if      (strstr(s,"vector"))   fSTLtype = kSTLvector;
-   else if (strstr(s,"list"))     fSTLtype = kSTLlist;
-   else if (strstr(s,"deque"))    fSTLtype = kSTLdeque;
-   else if (strstr(s,"multimap")) fSTLtype = kSTLmultimap;
-   else if (strstr(s,"multiset")) fSTLtype = kSTLmultiset;
-   else if (strstr(s,"bitset"))   fSTLtype = kSTLbitset;
-   else if (strstr(s,"map"))      fSTLtype = kSTLmap;
-   else if (strstr(s,"set"))      fSTLtype = kSTLset;
+   if      (strstr(s,"vector"))   fSTLtype = ROOT::kSTLvector;
+   else if (strstr(s,"list"))     fSTLtype = ROOT::kSTLlist;
+   else if (strstr(s,"deque"))    fSTLtype = ROOT::kSTLdeque;
+   else if (strstr(s,"multimap")) fSTLtype = ROOT::kSTLmultimap;
+   else if (strstr(s,"multiset")) fSTLtype = ROOT::kSTLmultiset;
+   else if (strstr(s,"bitset"))   fSTLtype = ROOT::kSTLbitset;
+   else if (strstr(s,"map"))      fSTLtype = ROOT::kSTLmap;
+   else if (strstr(s,"set"))      fSTLtype = ROOT::kSTLset;
    if (fSTLtype == 0) { delete [] s; return;}
    if (dmPointer) fSTLtype += TVirtualStreamerInfo::kOffsetP;
 
@@ -1676,7 +1676,7 @@ TStreamerSTL::TStreamerSTL(const char *name, const char *title, Int_t offset,
 
 
    TDataType *dt = (TDataType*)gROOT->GetListOfTypes()->FindObject(sopen);
-   if (fSTLtype == kSTLbitset) {
+   if (fSTLtype == ROOT::kSTLbitset) {
       // Nothing to check
    } else if (dt) {
       fCtype = dt->GetType();
@@ -1807,14 +1807,14 @@ const char *TStreamerSTL::GetInclude() const
 {
    // Return the proper include for this element.
 
-   if      (fSTLtype == kSTLvector)   gIncludeName.Form("<%s>","vector");
-   else if (fSTLtype == kSTLlist)     gIncludeName.Form("<%s>","list");
-   else if (fSTLtype == kSTLdeque)    gIncludeName.Form("<%s>","deque");
-   else if (fSTLtype == kSTLmap)      gIncludeName.Form("<%s>","map");
-   else if (fSTLtype == kSTLset)      gIncludeName.Form("<%s>","set");
-   else if (fSTLtype == kSTLmultimap) gIncludeName.Form("<%s>","map");
-   else if (fSTLtype == kSTLmultiset) gIncludeName.Form("<%s>","set");
-   else if (fSTLtype == kSTLbitset)   gIncludeName.Form("<%s>","bitset");
+   if      (fSTLtype == ROOT::kSTLvector)   gIncludeName.Form("<%s>","vector");
+   else if (fSTLtype == ROOT::kSTLlist)     gIncludeName.Form("<%s>","list");
+   else if (fSTLtype == ROOT::kSTLdeque)    gIncludeName.Form("<%s>","deque");
+   else if (fSTLtype == ROOT::kSTLmap)      gIncludeName.Form("<%s>","map");
+   else if (fSTLtype == ROOT::kSTLset)      gIncludeName.Form("<%s>","set");
+   else if (fSTLtype == ROOT::kSTLmultimap) gIncludeName.Form("<%s>","map");
+   else if (fSTLtype == ROOT::kSTLmultiset) gIncludeName.Form("<%s>","set");
+   else if (fSTLtype == ROOT::kSTLbitset)   gIncludeName.Form("<%s>","bitset");
    return gIncludeName;
 }
 
@@ -1844,15 +1844,15 @@ void TStreamerSTL::Streamer(TBuffer &R__b)
          R__b >> fCtype;
          R__b.CheckByteCount(R__s, R__c, TStreamerSTL::IsA());
       }
-      if (fSTLtype == kSTLmultimap || fSTLtype == kSTLset) {
+      if (fSTLtype == ROOT::kSTLmultimap || fSTLtype == ROOT::kSTLset) {
          // For a long time those where inverted compared to the other
          // definitions.   When we move to version 'x', this got standardized,
          // but we now need to fix it.
 
          if (fTypeName.BeginsWith("std::set") || fTypeName.BeginsWith("set")) {
-            fSTLtype = kSTLset;
+            fSTLtype = ROOT::kSTLset;
          } else if (fTypeName.BeginsWith("std::multimap") || fTypeName.BeginsWith("multimap")) {
-            fSTLtype = kSTLmultimap;
+            fSTLtype = ROOT::kSTLmultimap;
          }
       }
 
@@ -1864,7 +1864,7 @@ void TStreamerSTL::Streamer(TBuffer &R__b)
       if (R__b.GetParent()) { // Avoid resetting during a cloning.
          if (fCtype==TVirtualStreamerInfo::kObjectp || fCtype==TVirtualStreamerInfo::kAnyp || fCtype==TVirtualStreamerInfo::kObjectP || fCtype==TVirtualStreamerInfo::kAnyP) {
             SetBit(kDoNotDelete); // For backward compatibility
-         } else if ( fSTLtype == kSTLmap || fSTLtype == kSTLmultimap) {
+         } else if ( fSTLtype == ROOT::kSTLmap || fSTLtype == ROOT::kSTLmultimap) {
             // Here we would like to set the bit only if one of the element of the pair is a pointer, 
             // however we have no easy to determine this short of parsing the class name.
             SetBit(kDoNotDelete); // For backward compatibility
@@ -1915,8 +1915,8 @@ TStreamerSTLstring::TStreamerSTLstring(const char *name, const char *title, Int_
 
    fNewType = fType;
    fOffset  = offset;
-   fSTLtype = kSTLstring;
-   fCtype   = kSTLstring;
+   fSTLtype = ROOT::kSTLstring;
+   fCtype   = ROOT::kSTLstring;
    fTypeName= typeName;
 
 }
diff --git a/core/metautils/inc/ESTLType.h b/core/metautils/inc/ESTLType.h
index 4b272078e0f..32a88095dd1 100644
--- a/core/metautils/inc/ESTLType.h
+++ b/core/metautils/inc/ESTLType.h
@@ -35,6 +35,7 @@ namespace ROOT {
       kSTLset      = 6,
       kSTLmultiset = 7,
       kSTLbitset   = 8,
+      kSTLend      = 9,
       kSTLany      = 300 /* TVirtualStreamerInfo::kSTL */,
       kSTLstring   = 365 /* TVirtualStreamerInfo::kSTLstring */
    };
diff --git a/core/metautils/inc/TClassEdit.h b/core/metautils/inc/TClassEdit.h
index 8c7a368413b..ae1ff1afa9f 100644
--- a/core/metautils/inc/TClassEdit.h
+++ b/core/metautils/inc/TClassEdit.h
@@ -70,7 +70,7 @@ namespace TClassEdit {
       kSet      = ROOT::kSTLset,
       kMultiSet = ROOT::kSTLmultiset,
       kBitSet   = ROOT::kSTLbitset,
-      kEnd      = 9
+      kEnd      = ROOT::kSTLend
    };
 
    class TInterpreterLookupHelper {
diff --git a/core/metautils/inc/TMetaUtils.h b/core/metautils/inc/TMetaUtils.h
index 4e33ddde88f..8e193bbb358 100644
--- a/core/metautils/inc/TMetaUtils.h
+++ b/core/metautils/inc/TMetaUtils.h
@@ -47,7 +47,10 @@ namespace cling {
 
 #include "cling/Utils/AST.h"
 
-// For TClassEdit::ESTLType and for TClassEdit::TInterpreterLookupHelper
+// For ROOT::ESTLType
+#include "ESTLType.h"
+
+// for TClassEdit::TInterpreterLookupHelper
 #include "TClassEdit.h"
 
 #ifndef ROOT_Varargs
@@ -338,7 +341,7 @@ int GetClassVersion(const clang::RecordDecl *cl);
 int IsSTLContainer(const AnnotatedRecordDecl &annotated);
 
 //______________________________________________________________________________
-TClassEdit::ESTLType IsSTLContainer(const clang::FieldDecl &m);
+ROOT::ESTLType IsSTLContainer(const clang::FieldDecl &m);
 
 //______________________________________________________________________________
 int IsSTLContainer(const clang::CXXBaseSpecifier &base);
@@ -523,7 +526,7 @@ bool IsStdClass(const clang::RecordDecl &cl);
 
 //______________________________________________________________________________
 // Return which kind of STL container the decl is, if any.
-TClassEdit::ESTLType IsSTLCont(const clang::RecordDecl &cl);
+ROOT::ESTLType IsSTLCont(const clang::RecordDecl &cl);
 
 //______________________________________________________________________________
 // Check if 'input' or any of its template parameter was substituted when
@@ -533,7 +536,7 @@ clang::QualType ReSubstTemplateArg(clang::QualType input, const clang::Type *ins
 
 //______________________________________________________________________________
 // Kind of stl container
-TClassEdit::ESTLType STLKind(const llvm::StringRef type);
+ROOT::ESTLType STLKind(const llvm::StringRef type);
 
 //______________________________________________________________________________
 // Set the toolchain and the include paths for the relocatability
diff --git a/core/metautils/src/RStl.cxx b/core/metautils/src/RStl.cxx
index 54d4a9b54ed..809d3726517 100644
--- a/core/metautils/src/RStl.cxx
+++ b/core/metautils/src/RStl.cxx
@@ -67,7 +67,7 @@ void ROOT::RStl::GenerateTClassFor(const clang::QualType &type, const cling::Int
             ROOT::TMetaUtils::GetQualifiedName(*stlclass).c_str());
    }
 
-   if ( TClassEdit::STLKind( stlclass->getName().str().c_str() )  == TClassEdit::kVector ) {
+   if ( TClassEdit::STLKind( stlclass->getName().str().c_str() )  == ROOT::kSTLvector ) {
       const clang::TemplateArgument &arg( templateCl->getTemplateArgs().get(0) );
       if (arg.getKind() == clang::TemplateArgument::Type) {
          const clang::NamedDecl *decl = arg.getAsType().getTypePtr()->getAsCXXRecordDecl();
@@ -122,7 +122,7 @@ void ROOT::RStl::GenerateTClassFor(const char *requestedName, const clang::CXXRe
    }
    
    
-   if ( TClassEdit::STLKind( stlclass->getName().str().c_str() )  == TClassEdit::kVector ) {
+   if ( TClassEdit::STLKind( stlclass->getName().str().c_str() )  == ROOT::kSTLvector ) {
       const clang::TemplateArgument &arg( templateCl->getTemplateArgs().get(0) );
       if (arg.getKind() == clang::TemplateArgument::Type) {
          const clang::NamedDecl *decl = arg.getAsType().getTypePtr()->getAsCXXRecordDecl();
diff --git a/core/metautils/src/TClassEdit.cxx b/core/metautils/src/TClassEdit.cxx
index d0c32a60c23..3079a89165b 100644
--- a/core/metautils/src/TClassEdit.cxx
+++ b/core/metautils/src/TClassEdit.cxx
@@ -57,7 +57,7 @@ int TClassEdit::TSplitType::IsSTLCont(int testAlloc) const
 
    int kind = STLKind(fElements[0].c_str());
 
-   if (kind==kVector || kind==kList ) {
+   if (kind==ROOT::kSTLvector || kind==ROOT::kSTLlist ) {
 
       int nargs = STLArgs(kind);
       if (testAlloc && (numb-1 > nargs) && !IsDefAlloc(fElements[numb-1].c_str(),fElements[1].c_str())) {
@@ -157,15 +157,15 @@ void TClassEdit::TSplitType::ShortType(std::string &answ, int mode)
 
             } else if (mode & kDropDefaultAlloc) {
                switch (kind) {
-                  case kVector:
-                  case kList:
-                  case kDeque:
-                  case kSet:
-                  case kMultiSet:
+                  case ROOT::kSTLvector:
+                  case ROOT::kSTLlist:
+                  case ROOT::kSTLdeque:
+                  case ROOT::kSTLset:
+                  case ROOT::kSTLmultiset:
                      dropAlloc = IsDefAlloc(fElements[iall+1].c_str(),fElements[1].c_str());
                      break;
-                  case kMap:
-                  case kMultiMap:
+                  case ROOT::kSTLmap:
+                  case ROOT::kSTLmultimap:
                      dropAlloc = IsDefAlloc(fElements[iall+1].c_str(),fElements[1].c_str(),fElements[2].c_str());
                      break;
                   default:
@@ -190,14 +190,14 @@ void TClassEdit::TSplitType::ShortType(std::string &answ, int mode)
       } else if ( mode & kDropComparator ) {
 
          switch (kind) {
-            case kVector:
-            case kList:
-            case kDeque:
+            case ROOT::kSTLvector:
+            case ROOT::kSTLlist:
+            case ROOT::kSTLdeque:
                break;
-            case kSet:
-            case kMultiSet:
-            case kMap:
-            case kMultiMap:
+            case ROOT::kSTLset:
+            case ROOT::kSTLmultiset:
+            case ROOT::kSTLmap:
+            case ROOT::kSTLmultimap:
                if (!allocRemoved && narg-1 == iall+1) {
                   narg--;
                   allocRemoved = true;
@@ -794,7 +794,7 @@ bool TClassEdit::IsStdClass(const char *classname)
 bool TClassEdit::IsVectorBool(const char *name) {
    TSplitType splitname( name );
 
-   return ( TClassEdit::STLKind( splitname.fElements[0].c_str() ) == TClassEdit::kVector)
+   return ( TClassEdit::STLKind( splitname.fElements[0].c_str() ) == ROOT::kSTLvector)
       && ( splitname.fElements[1] == "bool" || splitname.fElements[1]=="Bool_t");
 }
 
diff --git a/core/metautils/src/TMetaUtils.cxx b/core/metautils/src/TMetaUtils.cxx
index b45efd177dd..67055dd82dd 100644
--- a/core/metautils/src/TMetaUtils.cxx
+++ b/core/metautils/src/TMetaUtils.cxx
@@ -1894,17 +1894,17 @@ void ROOT::TMetaUtils::WriteClassInit(std::ostream& finalString,
       int stlType = (idx!=(int)std::string::npos) ? TClassEdit::STLKind(classname.substr(0,idx).c_str()) : 0;
       const char* methodTCP=0;
       switch(stlType)  {
-         case TClassEdit::kVector:
-         case TClassEdit::kList:
-         case TClassEdit::kDeque:
+         case ROOT::kSTLvector:
+         case ROOT::kSTLlist:
+         case ROOT::kSTLdeque:
             methodTCP="Pushback";
             break;
-         case TClassEdit::kMap:
-         case TClassEdit::kMultiMap:
+         case ROOT::kSTLmap:
+         case ROOT::kSTLmultimap:
             methodTCP="MapInsert";
             break;
-         case TClassEdit::kSet:
-         case TClassEdit::kMultiSet:
+         case ROOT::kSTLset:
+         case ROOT::kSTLmultiset:
             methodTCP="Insert";
             break;
       }
@@ -2533,7 +2533,7 @@ int ROOT::TMetaUtils::IsSTLContainer(const ROOT::TMetaUtils::AnnotatedRecordDecl
 }
 
 //______________________________________________________________________________
-TClassEdit::ESTLType ROOT::TMetaUtils::IsSTLContainer(const clang::FieldDecl &m)
+ROOT::ESTLType ROOT::TMetaUtils::IsSTLContainer(const clang::FieldDecl &m)
 {
    // Is this an STL container?
 
@@ -2541,7 +2541,7 @@ TClassEdit::ESTLType ROOT::TMetaUtils::IsSTLContainer(const clang::FieldDecl &m)
    clang::RecordDecl *decl = ROOT::TMetaUtils::GetUnderlyingRecordDecl(type);
 
    if (decl) return TMetaUtils::IsSTLCont(*decl);
-   else return TClassEdit::kNotSTL;
+   else return ROOT::kNotSTL;
 }
 
 //______________________________________________________________________________
@@ -2553,7 +2553,7 @@ int ROOT::TMetaUtils::IsSTLContainer(const clang::CXXBaseSpecifier &base)
    clang::RecordDecl *decl = ROOT::TMetaUtils::GetUnderlyingRecordDecl(type);
 
    if (decl) return TMetaUtils::IsSTLCont(*decl);
-   else return TClassEdit::kNotSTL;
+   else return ROOT::kNotSTL;
 }
 
 //______________________________________________________________________________
@@ -3773,7 +3773,7 @@ bool ROOT::TMetaUtils::IsStdClass(const clang::RecordDecl &cl)
 }
 
 //______________________________________________________________________________
-TClassEdit::ESTLType ROOT::TMetaUtils::IsSTLCont(const clang::RecordDecl &cl)
+ROOT::ESTLType ROOT::TMetaUtils::IsSTLCont(const clang::RecordDecl &cl)
 {
    //  type     : type name: vector<list<classA,allocator>,allocator>
    //  result:    0          : not stl container
@@ -3792,7 +3792,7 @@ TClassEdit::ESTLType ROOT::TMetaUtils::IsSTLCont(const clang::RecordDecl &cl)
    //                           For example: vector<deque<int>> has answer -1
 
    if (!IsStdClass(cl)) {
-      return TClassEdit::kNotSTL;
+      return ROOT::kNotSTL;
    }
 
    return STLKind(cl.getName());
@@ -3918,22 +3918,22 @@ clang::QualType ROOT::TMetaUtils::ReSubstTemplateArg(clang::QualType input, cons
 }
 
 //______________________________________________________________________________
-TClassEdit::ESTLType ROOT::TMetaUtils::STLKind(const llvm::StringRef type)
+ROOT::ESTLType ROOT::TMetaUtils::STLKind(const llvm::StringRef type)
 {
    // Converts STL container name to number. vector -> 1, etc..
 
    static const char *stls[] =                  //container names
       {"any","vector","list","deque","map","multimap","set","multiset","bitset",0};
-   static const TClassEdit::ESTLType values[] =
-      {TClassEdit::kNotSTL, TClassEdit::kVector,
-       TClassEdit::kList, TClassEdit::kDeque,
-       TClassEdit::kMap, TClassEdit::kMultiMap,
-       TClassEdit::kSet, TClassEdit::kMultiSet,
-       TClassEdit::kBitSet, TClassEdit::kEnd
+   static const ROOT::ESTLType values[] =
+      {ROOT::kNotSTL, ROOT::kSTLvector,
+       ROOT::kSTLlist, ROOT::kSTLdeque,
+       ROOT::kSTLmap, ROOT::kSTLmultimap,
+       ROOT::kSTLset, ROOT::kSTLmultiset,
+       ROOT::kSTLbitset, ROOT::kNotSTL
       };
    //              kind of stl container
    for(int k=1;stls[k];k++) {if (type.equals(stls[k])) return values[k];}
-   return TClassEdit::kNotSTL;
+   return ROOT::kNotSTL;
 }
 
 //______________________________________________________________________________
diff --git a/core/utils/src/rootcling.cxx b/core/utils/src/rootcling.cxx
index cb71d94fcd2..f73cdf427a9 100644
--- a/core/utils/src/rootcling.cxx
+++ b/core/utils/src/rootcling.cxx
@@ -1027,7 +1027,7 @@ int STLContainerStreamer(const clang::FieldDecl &m,
       tcl1="R__tcl1";
       fulName1 = ti.getAsString(); // Should we be passing a context?
    }
-   if (stltype==kMap || stltype==kMultiMap) {
+   if (stltype==kSTLmap || stltype==kSTLmultimap) {
       const clang::TemplateArgument &arg1( tmplt_specialization->getTemplateArgs().get(1) );
       clang::QualType tmplti = arg1.getAsType();
       if (ROOT::TMetaUtils::ElementStreamer(*dictSrcOut, m, tmplti, 0, rwmode, interp)) {
@@ -1102,13 +1102,13 @@ int STLContainerStreamer(const clang::FieldDecl &m,
       (*dictSrcOut) << "         int R__i, R__n;" << std::endl
                     << "         R__b >> R__n;" << std::endl;
 
-      if (stltype==kVector) {
+      if (stltype==kSTLvector) {
          (*dictSrcOut) << "         R__stl.reserve(R__n);" << std::endl;
       }
       (*dictSrcOut) << "         for (R__i = 0; R__i < R__n; R__i++) {" << std::endl;
 
       ROOT::TMetaUtils::ElementStreamer(*dictSrcOut, m, arg0.getAsType(), "R__t", rwmode, interp, tcl1);
-      if (stltype == kMap || stltype == kMultiMap) {     //Second Arg
+      if (stltype == kSTLmap || stltype == kSTLmultimap) {     //Second Arg
          const clang::TemplateArgument &arg1( tmplt_specialization->getTemplateArgs().get(1) );
          ROOT::TMetaUtils::ElementStreamer(*dictSrcOut, m, arg1.getAsType(), "R__t2", rwmode, interp, tcl2);
       }
@@ -1125,8 +1125,8 @@ int STLContainerStreamer(const clang::FieldDecl &m,
       */
       switch (stltype) {
 
-      case kMap:
-      case kMultiMap: {
+      case kSTLmap:
+      case kSTLmultimap: {
          std::string keyName( ti.getAsString() );
          (*dictSrcOut) << "            typedef " << keyName << " Value_t;" << std::endl
                        << "            std::pair<Value_t const, " << tmplt_specialization->getTemplateArgs().get(1).getAsType().getAsString() << " > R__t3(R__t,R__t2);" << std::endl
@@ -1134,13 +1134,13 @@ int STLContainerStreamer(const clang::FieldDecl &m,
          //fprintf(fp, "            R__stl.insert(%s::value_type(R__t,R__t2));\n",stlType.c_str());
          break;
       }
-      case kSet:
-      case kMultiSet:
+      case kSTLset:
+      case kSTLmultiset:
          (*dictSrcOut) << "            R__stl.insert(R__t);" << std::endl;
          break;
-      case kVector:
-      case kList:
-      case kDeque:
+      case kSTLvector:
+      case kSTLlist:
+      case kSTLdeque:
          (*dictSrcOut) << "            R__stl.push_back(R__t);" << std::endl;
          break;
 
@@ -1195,7 +1195,7 @@ int STLContainerStreamer(const clang::FieldDecl &m,
 
       (*dictSrcOut) << "            " << stlType.c_str() << "::iterator R__k;" << std::endl
                     << "            for (R__k = R__stl.begin(); R__k != R__stl.end(); ++R__k) {" << std::endl;
-      if (stltype == kMap || stltype == kMultiMap) {
+      if (stltype == kSTLmap || stltype == kSTLmultimap) {
          const clang::TemplateArgument &arg1( tmplt_specialization->getTemplateArgs().get(1) );
          clang::QualType tmplti = arg1.getAsType();
          ROOT::TMetaUtils::ElementStreamer(*dictSrcOut, m, ti, "((*R__k).first )",rwmode,interp, tcl1);
diff --git a/io/io/src/TCollectionProxyFactory.cxx b/io/io/src/TCollectionProxyFactory.cxx
index 1d8f3116f08..46aa1b821c5 100644
--- a/io/io/src/TCollectionProxyFactory.cxx
+++ b/io/io/src/TCollectionProxyFactory.cxx
@@ -37,15 +37,15 @@
 
 // Do not clutter global namespace with shit....
 namespace {
-   static TClassEdit::ESTLType stl_type(const std::string& class_name)  {
+   static ROOT::ESTLType stl_type(const std::string& class_name)  {
       // return the STL type.
       int nested = 0;
       std::vector<std::string> inside;
       int num = TClassEdit::GetSplit(class_name.c_str(),inside,nested);
       if ( num > 1 )  {
-         return (TClassEdit::ESTLType)TClassEdit::STLKind(inside[0].c_str());
+         return (ROOT::ESTLType)TClassEdit::STLKind(inside[0].c_str());
       }
-      return TClassEdit::kNotSTL;
+      return ROOT::kNotSTL;
    }
 
    static TEmulatedCollectionProxy* GenEmulation(const char* class_name, Bool_t silent)  {
@@ -59,10 +59,10 @@ namespace {
             cl.replace(0,16,"std::");
          TEmulatedCollectionProxy * result = 0;
          switch ( stl_type(cl) )  {
-            case TClassEdit::kNotSTL:
+            case ROOT::kNotSTL:
                return 0;
-            case TClassEdit::kMap:
-            case TClassEdit::kMultiMap:
+            case ROOT::kSTLmap:
+            case ROOT::kSTLmultimap:
                result = new TEmulatedMapProxy(class_name,silent);
                break;
             default:
diff --git a/io/io/src/TEmulatedCollectionProxy.cxx b/io/io/src/TEmulatedCollectionProxy.cxx
index 0f82ffc19ea..9eb96e53f88 100644
--- a/io/io/src/TEmulatedCollectionProxy.cxx
+++ b/io/io/src/TEmulatedCollectionProxy.cxx
@@ -138,8 +138,8 @@ TGenCollectionProxy *TEmulatedCollectionProxy::InitializeEx(Bool_t silent)
          // std::cout << "Initialized " << typeid(*this).name() << ":" << fName << std::endl;
          int slong = sizeof(void*);
          switch ( fSTL_type )  {
-            case TClassEdit::kMap:
-            case TClassEdit::kMultiMap:
+            case ROOT::kSTLmap:
+            case ROOT::kSTLmultimap:
                nam = "pair<"+inside[1]+","+inside[2];
                nam += (nam[nam.length()-1]=='>') ? " >" : ">";
                if (0==TClass::GetClass(nam.c_str())) {
@@ -166,7 +166,7 @@ TGenCollectionProxy *TEmulatedCollectionProxy::InitializeEx(Bool_t silent)
                   fValOffset += (slong - fKey->fSize%slong)%slong;
                }
                break;
-            case TClassEdit::kBitSet:
+            case ROOT::kSTLbitset:
                inside[1] = "bool";
                // Intentional fall through
             default:
@@ -229,8 +229,8 @@ void TEmulatedCollectionProxy::Shrink(UInt_t nCurr, UInt_t left, Bool_t force )
    size_t i;
 
    switch ( fSTL_type )  {
-      case TClassEdit::kMap:
-      case TClassEdit::kMultiMap:
+      case ROOT::kSTLmap:
+      case ROOT::kSTLmultimap:
          addr = ((char*)fEnv->fStart) + fValDiff*left;
          switch(fKey->fCase)  {
             case kIsFundamental:  // Only handle primitives this way
@@ -335,8 +335,8 @@ void TEmulatedCollectionProxy::Expand(UInt_t nCurr, UInt_t left)
 
    char* addr = ((char*)fEnv->fStart) + fValDiff*nCurr;
    switch ( fSTL_type )  {
-      case TClassEdit::kMap:
-      case TClassEdit::kMultiMap:
+      case ROOT::kSTLmap:
+      case ROOT::kSTLmultimap:
          switch(fKey->fCase)  {
             case kIsFundamental:  // Only handle primitives this way
             case kIsEnum:
diff --git a/io/io/src/TEmulatedMapProxy.cxx b/io/io/src/TEmulatedMapProxy.cxx
index 1f6216c9f37..3cbc46ca1ac 100644
--- a/io/io/src/TEmulatedMapProxy.cxx
+++ b/io/io/src/TEmulatedMapProxy.cxx
@@ -32,7 +32,7 @@ TEmulatedMapProxy::TEmulatedMapProxy(const TEmulatedMapProxy& copy)
    : TEmulatedCollectionProxy(copy)
 {
    // copy constructor
-   if ( !(fSTL_type == TClassEdit::kMap || fSTL_type == TClassEdit::kMultiMap) )  {
+   if ( !(fSTL_type == ROOT::kSTLmap || fSTL_type == ROOT::kSTLmultimap) )  {
       Fatal("TEmulatedMapProxy","Class %s is not a map-type!",fName.c_str());
    }
 }
@@ -41,7 +41,7 @@ TEmulatedMapProxy::TEmulatedMapProxy(const char* cl_name, Bool_t silent)
    : TEmulatedCollectionProxy(cl_name, silent)
 {
    // Build a Streamer for an emulated vector whose type is 'name'.
-   if ( !(fSTL_type == TClassEdit::kMap || fSTL_type == TClassEdit::kMultiMap) )  {
+   if ( !(fSTL_type == ROOT::kSTLmap || fSTL_type == ROOT::kSTLmultimap) )  {
       Fatal("TEmulatedMapProxy","Class %s is not a map-type!",fName.c_str());
    }
 }
diff --git a/io/io/src/TFile.cxx b/io/io/src/TFile.cxx
index 4c91e88ae17..ece64222799 100644
--- a/io/io/src/TFile.cxx
+++ b/io/io/src/TFile.cxx
@@ -2835,8 +2835,8 @@ void TFile::MakeProject(const char *dirname, const char * /*classes*/,
          if (key) {
             TString what;
             switch ( stlkind )  {
-            case TClassEdit::kMap:
-            case TClassEdit::kMultiMap:
+            case ROOT::kSTLmap:
+            case ROOT::kSTLmultimap:
                if (TClass::GetClass(inside[1].c_str())) {
                   what = "std::pair<";
                   what += TMakeProject::UpdateAssociativeToVector( inside[1].c_str() );
diff --git a/io/io/src/TGenCollectionProxy.cxx b/io/io/src/TGenCollectionProxy.cxx
index 32c84d7f86e..4aba2bf355b 100644
--- a/io/io/src/TGenCollectionProxy.cxx
+++ b/io/io/src/TGenCollectionProxy.cxx
@@ -567,7 +567,7 @@ TGenCollectionProxy::TGenCollectionProxy(Info_t info, size_t iter_size)
    fValDiff         = 0;
    fPointers        = false;
    fOnFileClass     = 0;
-   fSTL_type        = TClassEdit::kNotSTL;
+   fSTL_type        = ROOT::kNotSTL;
    Env_t e;
    if ( iter_size > sizeof(e.fIterator) ) {
       Fatal("TGenCollectionProxy",
@@ -616,7 +616,7 @@ TGenCollectionProxy::TGenCollectionProxy(const ROOT::TCollectionProxyInfo &info,
    fKey             = 0;
    fVal             = 0;
    fPointers        = false;
-   fSTL_type        = TClassEdit::kNotSTL;
+   fSTL_type        = ROOT::kNotSTL;
 
    Env_t e;
    if ( info.fIterSize > sizeof(e.fIterator) ) {
@@ -687,23 +687,23 @@ TVirtualCollectionProxy* TGenCollectionProxy::Generate() const
       return new TGenCollectionProxy(*this);
 
    switch(fSTL_type) {
-      case TClassEdit::kBitSet: {
+      case ROOT::kSTLbitset: {
          return new TGenBitsetProxy(*this);
       }
-      case TClassEdit::kVector: {
+      case ROOT::kSTLvector: {
          if (fValue->fKind == (EDataType)kBOOL_t) {
             return new TGenVectorBoolProxy(*this);
          } else {
             return new TGenVectorProxy(*this);
          }         
       }
-      case TClassEdit::kList:
+      case ROOT::kSTLlist:
          return new TGenListProxy(*this);
-      case TClassEdit::kMap:
-      case TClassEdit::kMultiMap:
+      case ROOT::kSTLmap:
+      case ROOT::kSTLmultimap:
          return new TGenMapProxy(*this);
-      case TClassEdit::kSet:
-      case TClassEdit::kMultiSet:
+      case ROOT::kSTLset:
+      case ROOT::kSTLmultiset:
          return new TGenSetProxy(*this);
       default:
          return new TGenCollectionProxy(*this);
@@ -790,19 +790,19 @@ TGenCollectionProxy *TGenCollectionProxy::InitializeEx(Bool_t silent)
             inside[0].replace(0,16,"std::");
          fSTL_type = TClassEdit::STLKind(inside[0].c_str());
          switch ( fSTL_type ) {
-            case TClassEdit::kMap:
-            case TClassEdit::kMultiMap:
-            case TClassEdit::kSet:
-            case TClassEdit::kMultiSet:
-            case TClassEdit::kBitSet: // not really an associate container but it has no real iterator.
+            case ROOT::kSTLmap:
+            case ROOT::kSTLmultimap:
+            case ROOT::kSTLset:
+            case ROOT::kSTLmultiset:
+            case ROOT::kSTLbitset: // not really an associate container but it has no real iterator.
                fProperties |= kIsAssociative;
                break;
          };
                
          int slong = sizeof(void*);
          switch ( fSTL_type ) {
-            case TClassEdit::kMap:
-            case TClassEdit::kMultiMap:
+            case ROOT::kSTLmap:
+            case ROOT::kSTLmultimap:
                nam = "pair<"+inside[1]+","+inside[2];
                nam += (nam[nam.length()-1]=='>') ? " >" : ">";
                fValue = R__CreateValue(nam, silent);
@@ -823,7 +823,7 @@ TGenCollectionProxy *TGenCollectionProxy::InitializeEx(Bool_t silent)
                   fValOffset += (slong - fKey->fSize%slong)%slong;
                }
                break;
-            case TClassEdit::kBitSet:
+            case ROOT::kSTLbitset:
                inside[1] = "bool";
                // Intentional fall through
             default:
@@ -897,7 +897,7 @@ Bool_t TGenCollectionProxy::HasPointers() const
    // The content of a map and multimap is always a 'pair' and hence
    // fPointers means "Flag to indicate if containee has pointers (key or value)"
    // so we need to ignore its value for map and multimap;
-   return fPointers && !(fSTL_type == TClassEdit::kMap || fSTL_type == TClassEdit::kMultiMap);
+   return fPointers && !(fSTL_type == ROOT::kSTLmap || fSTL_type == ROOT::kSTLmultimap);
 }
 
 //______________________________________________________________________________
@@ -933,7 +933,7 @@ void* TGenCollectionProxy::At(UInt_t idx)
    // Return the address of the value at index 'idx'
    if ( fEnv && fEnv->fObject ) {
       switch (fSTL_type) {
-      case TClassEdit::kVector:
+      case ROOT::kSTLvector:
          fEnv->fIdx = idx;
          switch( idx ) {
          case 0:
@@ -942,10 +942,10 @@ void* TGenCollectionProxy::At(UInt_t idx)
             if (! fEnv->fStart ) fEnv->fStart = fFirst.invoke(fEnv);
             return ((char*)fEnv->fStart) + fValDiff*idx;
          }
-      case TClassEdit::kSet:
-      case TClassEdit::kMultiSet:
-      case TClassEdit::kMap:
-      case TClassEdit::kMultiMap:
+      case ROOT::kSTLset:
+      case ROOT::kSTLmultiset:
+      case ROOT::kSTLmap:
+      case ROOT::kSTLmultimap:
          if ( fEnv->fUseTemp ) {
             return (((char*)fEnv->fTemp)+idx*fValDiff);
          }
@@ -1029,10 +1029,10 @@ void* TGenCollectionProxy::Allocate(UInt_t n, Bool_t /* forceDelete */ )
 
    if ( fEnv && fEnv->fObject ) {
       switch ( fSTL_type ) {
-         case TClassEdit::kSet:
-         case TClassEdit::kMultiSet:
-         case TClassEdit::kMap:
-         case TClassEdit::kMultiMap: {
+         case ROOT::kSTLset:
+         case ROOT::kSTLmultiset:
+         case ROOT::kSTLmap:
+         case ROOT::kSTLmultimap: {
             if ( (fProperties & kNeedDelete) )
                Clear("force");
             else
@@ -1060,9 +1060,9 @@ void* TGenCollectionProxy::Allocate(UInt_t n, Bool_t /* forceDelete */ )
 
             return s;
          }
-         case TClassEdit::kVector:
-         case TClassEdit::kList:
-         case TClassEdit::kDeque:
+         case ROOT::kSTLvector:
+         case ROOT::kSTLlist:
+         case ROOT::kSTLdeque:
             if( (fProperties & kNeedDelete) ) {
                Clear("force");
             }
@@ -1070,7 +1070,7 @@ void* TGenCollectionProxy::Allocate(UInt_t n, Bool_t /* forceDelete */ )
             fResize(fEnv->fObject,n);
             return fEnv->fObject;
             
-        case TClassEdit::kBitSet: {
+        case ROOT::kSTLbitset: {
             TStaging *s;
             if (fStaged.empty()) {
                s = new TStaging(n,fValDiff);
@@ -1098,10 +1098,10 @@ void TGenCollectionProxy::Commit(void* from)
    // Commit the change.
 
    if (fProperties & kIsAssociative) {
-//      case TClassEdit::kMap:
-//      case TClassEdit::kMultiMap:
-//      case TClassEdit::kSet:
-//      case TClassEdit::kMultiSet:
+//      case ROOT::kSTLmap:
+//      case ROOT::kSTLmultimap:
+//      case ROOT::kSTLset:
+//      case ROOT::kSTLmultiset:
       if ( from ) {
          TStaging *s = (TStaging*) from;
          if ( s->GetTarget() ) {
@@ -1171,8 +1171,8 @@ void TGenCollectionProxy::DeleteItem(Bool_t force, void* ptr) const
    // Call to delete/destruct individual item.
    if ( force && ptr ) {
       switch (fSTL_type) {
-         case TClassEdit::kMap:
-         case TClassEdit::kMultiMap: {
+         case ROOT::kSTLmap:
+         case ROOT::kSTLmultimap: {
             if ( fKey->fCase&kIsPointer ) {
                if (fKey->fProperties&kNeedDelete) {
                   TVirtualCollectionProxy *proxy = fKey->fType->GetCollectionProxy();
@@ -1415,14 +1415,14 @@ TVirtualCollectionProxy::CreateIterators_t TGenCollectionProxy::GetFunctionCreat
    if ( !fValue ) InitializeEx(kFALSE);
 
 //   fprintf(stderr,"GetFunctinCreateIterator for %s will give: ",fClass.GetClassName());
-//   if (fSTL_type==TClassEdit::kVector || (fProperties & kIsEmulated)) 
+//   if (fSTL_type==ROOT::kSTLvector || (fProperties & kIsEmulated)) 
 //      fprintf(stderr,"vector/emulated iterator\n");
 //   else if ( (fProperties & kIsAssociative) && read)
 //      fprintf(stderr,"an associative read iterator\n");
 //   else 
 //      fprintf(stderr,"a generic iterator\n");
       
-   if (fSTL_type==TClassEdit::kVector || (fProperties & kIsEmulated)) 
+   if (fSTL_type==ROOT::kSTLvector || (fProperties & kIsEmulated)) 
       return fFunctionCreateIterators = TGenCollectionProxy__VectorCreateIterators;
    else if ( (fProperties & kIsAssociative) && read)
       return TGenCollectionProxy__StagingCreateIterators;
@@ -1448,7 +1448,7 @@ TVirtualCollectionProxy::CopyIterator_t TGenCollectionProxy::GetFunctionCopyIter
 
    if ( !fValue ) InitializeEx(kFALSE);
 
-   if (fSTL_type==TClassEdit::kVector || (fProperties & kIsEmulated)) 
+   if (fSTL_type==ROOT::kSTLvector || (fProperties & kIsEmulated)) 
       return fFunctionCopyIterator = TGenCollectionProxy__VectorCopyIterator;
    else if ( (fProperties & kIsAssociative) && read)
       return TGenCollectionProxy__StagingCopyIterator;
@@ -1475,7 +1475,7 @@ TVirtualCollectionProxy::Next_t TGenCollectionProxy::GetFunctionNext(Bool_t read
 
    if ( !fValue ) InitializeEx(kFALSE);
 
-   if (fSTL_type==TClassEdit::kVector || (fProperties & kIsEmulated)) 
+   if (fSTL_type==ROOT::kSTLvector || (fProperties & kIsEmulated)) 
       return fFunctionNextIterator = TGenCollectionProxy__VectorNext;
    else if ( (fProperties & kIsAssociative) && read)
       return TGenCollectionProxy__StagingNext;
@@ -1500,7 +1500,7 @@ TVirtualCollectionProxy::DeleteIterator_t TGenCollectionProxy::GetFunctionDelete
 
    if ( !fValue ) InitializeEx(kFALSE);
 
-   if (fSTL_type==TClassEdit::kVector || (fProperties & kIsEmulated)) 
+   if (fSTL_type==ROOT::kSTLvector || (fProperties & kIsEmulated)) 
       return fFunctionDeleteIterator = TGenCollectionProxy__VectorDeleteSingleIterators;
    else if ( (fProperties & kIsAssociative) && read)
       return TGenCollectionProxy__StagingDeleteSingleIterators;
@@ -1525,7 +1525,7 @@ TVirtualCollectionProxy::DeleteTwoIterators_t TGenCollectionProxy::GetFunctionDe
    
    if ( !fValue ) InitializeEx(kFALSE);
    
-   if (fSTL_type==TClassEdit::kVector || (fProperties & kIsEmulated)) 
+   if (fSTL_type==ROOT::kSTLvector || (fProperties & kIsEmulated)) 
       return fFunctionDeleteTwoIterators = TGenCollectionProxy__VectorDeleteTwoIterators;
    else if ( (fProperties & kIsAssociative) && read)
       return TGenCollectionProxy__StagingDeleteTwoIterators;
diff --git a/io/io/src/TGenCollectionStreamer.cxx b/io/io/src/TGenCollectionStreamer.cxx
index 71e026f521b..45269ad10c5 100644
--- a/io/io/src/TGenCollectionStreamer.cxx
+++ b/io/io/src/TGenCollectionStreamer.cxx
@@ -224,7 +224,7 @@ void TGenCollectionStreamer::ReadPrimitives(int nElements, TBuffer &b, const TCl
    StreamHelper* itmconv = 0;
    fEnv->fSize = nElements;
    switch (fSTL_type)  {
-      case TClassEdit::kVector:
+      case ROOT::kSTLvector:
          if (fVal->fKind != EDataType(kBOOL_t))  {
             fResize(fEnv->fObject,fEnv->fSize);
             fEnv->fIdx = 0;
@@ -385,7 +385,7 @@ void TGenCollectionStreamer::ReadObjects(int nElements, TBuffer &b, const TClass
    fEnv->fSize = nElements;
    switch (fSTL_type)  {
          // Simple case: contiguous memory. get address of first, then jump.
-      case TClassEdit::kVector:
+      case ROOT::kSTLvector:
 #define DOLOOP(x) {int idx=0; while(idx<nElements) {StreamHelper* i=(StreamHelper*)(((char*)itm) + fValDiff*idx); { x ;} ++idx;} break;}
          fResize(fEnv->fObject,fEnv->fSize);
          fEnv->fIdx = 0;
@@ -413,8 +413,8 @@ void TGenCollectionStreamer::ReadObjects(int nElements, TBuffer &b, const TClass
 
          // No contiguous memory, but resize is possible
          // Hence accessing objects using At(i) should be not too much an overhead
-      case TClassEdit::kList:
-      case TClassEdit::kDeque:
+      case ROOT::kSTLlist:
+      case ROOT::kSTLdeque:
 #define DOLOOP(x) {int idx=0; while(idx<nElements) {StreamHelper* i=(StreamHelper*)TGenCollectionProxy::At(idx); { x ;} ++idx;} break;}
          fResize(fEnv->fObject,fEnv->fSize);
          fEnv->fIdx = 0;
@@ -436,8 +436,8 @@ void TGenCollectionStreamer::ReadObjects(int nElements, TBuffer &b, const TClass
 
          // Rather troublesome case: Objects can only be fed into the container
          // Once they are created. Need to take memory from stack or heap.
-      case TClassEdit::kMultiSet:
-      case TClassEdit::kSet:
+      case ROOT::kSTLmultiset:
+      case ROOT::kSTLset:
 #define DOLOOP(x) {int idx=0; while(idx<nElements) {StreamHelper* i=(StreamHelper*)(((char*)itm) + fValDiff*idx); { x ;} ++idx;}}
          fEnv->fStart = itm = (StreamHelper*)(len < sizeof(buffer) ? buffer : memory =::operator new(len));
          fConstruct(itm,nElements);
@@ -499,7 +499,7 @@ void TGenCollectionStreamer::ReadPairFromMap(int nElements, TBuffer &b)
    fEnv->fSize = nElements;
    switch (fSTL_type)  {
          // Simple case: contiguous memory. get address of first, then jump.
-      case TClassEdit::kVector:
+      case ROOT::kSTLvector:
 #define DOLOOP(x) {int idx=0; while(idx<nElements) {StreamHelper* i=(StreamHelper*)(((char*)itm) + fValDiff*idx); { x ;} ++idx;} break;}
          fResize(fEnv->fObject,fEnv->fSize);
          fEnv->fIdx = 0;
@@ -522,8 +522,8 @@ void TGenCollectionStreamer::ReadPairFromMap(int nElements, TBuffer &b)
 
          // No contiguous memory, but resize is possible
          // Hence accessing objects using At(i) should be not too much an overhead
-      case TClassEdit::kList:
-      case TClassEdit::kDeque:
+      case ROOT::kSTLlist:
+      case ROOT::kSTLdeque:
 #define DOLOOP(x) {int idx=0; while(idx<nElements) {StreamHelper* i=(StreamHelper*)TGenCollectionProxy::At(idx); { x ;} ++idx;} break;}
          fResize(fEnv->fObject,fEnv->fSize);
          fEnv->fIdx = 0;
@@ -544,8 +544,8 @@ void TGenCollectionStreamer::ReadPairFromMap(int nElements, TBuffer &b)
 
          // Rather troublesome case: Objects can only be fed into the container
          // Once they are created. Need to take memory from stack or heap.
-      case TClassEdit::kMultiSet:
-      case TClassEdit::kSet:
+      case ROOT::kSTLmultiset:
+      case ROOT::kSTLset:
 #define DOLOOP(x) {int idx=0; while(idx<nElements) {StreamHelper* i=(StreamHelper*)(((char*)itm) + fValDiff*idx); { x ;} ++idx;}}
          fEnv->fStart = itm = (StreamHelper*)(len < sizeof(buffer) ? buffer : memory =::operator new(len));
          fConstruct(itm,nElements);
@@ -915,7 +915,7 @@ void TGenCollectionStreamer::WritePrimitives(int nElements, TBuffer &b)
    void*  memory  = 0;
    StreamHelper* itm = 0;
    switch (fSTL_type)  {
-      case TClassEdit::kVector:
+      case ROOT::kSTLvector:
          if (fVal->fKind != EDataType(kBOOL_t))  {
             itm = (StreamHelper*)(fEnv->fStart = fFirst.invoke(fEnv));
             break;
@@ -990,7 +990,7 @@ void TGenCollectionStreamer::WriteObjects(int nElements, TBuffer &b)
    StreamHelper* itm = 0;
    switch (fSTL_type)  {
          // Simple case: contiguous memory. get address of first, then jump.
-      case TClassEdit::kVector:
+      case ROOT::kSTLvector:
 #define DOLOOP(x) {int idx=0; while(idx<nElements) {StreamHelper* i=(StreamHelper*)(((char*)itm) + fValDiff*idx); { x ;} ++idx;} break;}
          itm = (StreamHelper*)fFirst.invoke(fEnv);
          switch (fVal->fCase) {
@@ -1015,10 +1015,10 @@ void TGenCollectionStreamer::WriteObjects(int nElements, TBuffer &b)
 
          // No contiguous memory, but resize is possible
          // Hence accessing objects using At(i) should be not too much an overhead
-      case TClassEdit::kList:
-      case TClassEdit::kDeque:
-      case TClassEdit::kMultiSet:
-      case TClassEdit::kSet:
+      case ROOT::kSTLlist:
+      case ROOT::kSTLdeque:
+      case ROOT::kSTLmultiset:
+      case ROOT::kSTLset:
 #define DOLOOP(x) {int idx=0; while(idx<nElements) {StreamHelper* i=(StreamHelper*)TGenCollectionProxy::At(idx); { x ;} ++idx;} break;}
          switch (fVal->fCase) {
             case kIsClass:
@@ -1263,7 +1263,7 @@ void TGenCollectionStreamer::ReadBufferDefault(TBuffer &b, void *obj, const TCla
    if (!GetFunctionCreateIterators()) {
       Fatal("TGenCollectionStreamer::ReadBufferDefault","No CreateIterators function for %s",fName.c_str());
    }
-   if (fSTL_type == TClassEdit::kVector && ( fVal->fCase == kIsFundamental || fVal->fCase == kIsEnum ) )
+   if (fSTL_type == ROOT::kSTLvector && ( fVal->fCase == kIsFundamental || fVal->fCase == kIsEnum ) )
    {
       // Only handle primitives this way
       switch (int(fVal->fKind))   {
@@ -1338,7 +1338,7 @@ void TGenCollectionStreamer::ReadBufferGeneric(TBuffer &b, void *obj, const TCla
       }
    } else if (nElements > 0)  {
       switch (fSTL_type)  {
-         case TClassEdit::kBitSet:
+         case ROOT::kSTLbitset:
             if (obj) {
                if (fProperties & kNeedDelete)   {
                   TGenCollectionProxy::Clear("force");
@@ -1348,7 +1348,7 @@ void TGenCollectionStreamer::ReadBufferGeneric(TBuffer &b, void *obj, const TCla
             }
             ReadPrimitives(nElements, b, onFileClass);
             return;
-         case TClassEdit::kVector:
+         case ROOT::kSTLvector:
             if (obj) {
                if (fProperties & kNeedDelete)   {
                   TGenCollectionProxy::Clear("force");
@@ -1367,10 +1367,10 @@ void TGenCollectionStreamer::ReadBufferGeneric(TBuffer &b, void *obj, const TCla
                   return;
             }
             break;
-         case TClassEdit::kList:
-         case TClassEdit::kDeque:
-         case TClassEdit::kMultiSet:
-         case TClassEdit::kSet:
+         case ROOT::kSTLlist:
+         case ROOT::kSTLdeque:
+         case ROOT::kSTLmultiset:
+         case ROOT::kSTLset:
             if (obj) {
                if (fProperties & kNeedDelete)   {
                   TGenCollectionProxy::Clear("force");
@@ -1388,8 +1388,8 @@ void TGenCollectionStreamer::ReadBufferGeneric(TBuffer &b, void *obj, const TCla
                   return;
             }
             break;
-         case TClassEdit::kMap:
-         case TClassEdit::kMultiMap:
+         case ROOT::kSTLmap:
+         case ROOT::kSTLmultimap:
             if (obj) {
                if (fProperties & kNeedDelete)   {
                   TGenCollectionProxy::Clear("force");
@@ -1414,14 +1414,14 @@ void TGenCollectionStreamer::Streamer(TBuffer &b)
       }
       if (nElements > 0)  {
          switch (fSTL_type)  {
-            case TClassEdit::kBitSet:
+            case ROOT::kSTLbitset:
                ReadPrimitives(nElements, b, fOnFileClass);
                return;
-            case TClassEdit::kVector:
-            case TClassEdit::kList:
-            case TClassEdit::kDeque:
-            case TClassEdit::kMultiSet:
-            case TClassEdit::kSet:
+            case ROOT::kSTLvector:
+            case ROOT::kSTLlist:
+            case ROOT::kSTLdeque:
+            case ROOT::kSTLmultiset:
+            case ROOT::kSTLset:
                switch (fVal->fCase) {
                   case kIsFundamental:  // Only handle primitives this way
                   case kIsEnum:
@@ -1432,8 +1432,8 @@ void TGenCollectionStreamer::Streamer(TBuffer &b)
                      return;
                }
                break;
-            case TClassEdit::kMap:
-            case TClassEdit::kMultiMap:
+            case ROOT::kSTLmap:
+            case ROOT::kSTLmultimap:
                ReadMap(nElements, b, fOnFileClass);
                break;
          }
@@ -1443,14 +1443,14 @@ void TGenCollectionStreamer::Streamer(TBuffer &b)
       b << nElements;
       if (nElements > 0)  {
          switch (fSTL_type)  {
-            case TClassEdit::kBitSet:
+            case ROOT::kSTLbitset:
                WritePrimitives(nElements, b);
                return;
-            case TClassEdit::kVector:
-            case TClassEdit::kList:
-            case TClassEdit::kDeque:
-            case TClassEdit::kMultiSet:
-            case TClassEdit::kSet:
+            case ROOT::kSTLvector:
+            case ROOT::kSTLlist:
+            case ROOT::kSTLdeque:
+            case ROOT::kSTLmultiset:
+            case ROOT::kSTLset:
                switch (fVal->fCase) {
                   case kIsFundamental:  // Only handle primitives this way
                   case kIsEnum:
@@ -1461,8 +1461,8 @@ void TGenCollectionStreamer::Streamer(TBuffer &b)
                      return;
                }
                break;
-            case TClassEdit::kMap:
-            case TClassEdit::kMultiMap:
+            case ROOT::kSTLmap:
+            case ROOT::kSTLmultimap:
                WriteMap(nElements, b);
                break;
          }
@@ -1481,15 +1481,15 @@ void TGenCollectionStreamer::StreamerAsMap(TBuffer &b)
       }
       if (nElements > 0)  {
          switch (fSTL_type)  {
-            case TClassEdit::kMap:
-            case TClassEdit::kMultiMap:
+            case ROOT::kSTLmap:
+            case ROOT::kSTLmultimap:
                ReadMap(nElements, b, fOnFileClass);
                break;
-            case TClassEdit::kVector:
-            case TClassEdit::kList:
-            case TClassEdit::kDeque:
-            case TClassEdit::kMultiSet:
-            case TClassEdit::kSet: {
+            case ROOT::kSTLvector:
+            case ROOT::kSTLlist:
+            case ROOT::kSTLdeque:
+            case ROOT::kSTLmultiset:
+            case ROOT::kSTLset: {
                   ReadPairFromMap(nElements, b);
                   break;
                }
diff --git a/io/io/src/TMakeProject.cxx b/io/io/src/TMakeProject.cxx
index 952a5da117b..75ed04dfbd3 100644
--- a/io/io/src/TMakeProject.cxx
+++ b/io/io/src/TMakeProject.cxx
@@ -457,28 +457,28 @@ UInt_t TMakeProject::GenerateIncludeForTemplate(FILE *fp, const char *clname, ch
                } else if ((stlType = TClassEdit::IsSTLCont(incName))) {
                   const char *what = "";
                   switch (TMath::Abs(stlType))  {
-                     case TClassEdit::kVector:
+                     case ROOT::kSTLvector:
                         what = "vector";
                         break;
-                     case TClassEdit::kList:
+                     case ROOT::kSTLlist:
                         what = "list";
                         break;
-                     case TClassEdit::kDeque:
+                     case ROOT::kSTLdeque:
                         what = "deque";
                         break;
-                     case TClassEdit::kMap:
+                     case ROOT::kSTLmap:
                         what = "map";
                         break;
-                     case TClassEdit::kMultiMap:
+                     case ROOT::kSTLmultimap:
                         what = "map";
                         break;
-                     case TClassEdit::kSet:
+                     case ROOT::kSTLset:
                         what = "set";
                         break;
-                     case TClassEdit::kMultiSet:
+                     case ROOT::kSTLmultiset:
                         what = "set";
                         break;
-                     case TClassEdit::kBitSet:
+                     case ROOT::kSTLbitset:
                         what = "bitset";
                         break;
                      default:
@@ -545,8 +545,8 @@ UInt_t TMakeProject::GenerateIncludeForTemplate(FILE *fp, const char *clname, ch
       if (key) {
          TString what;
          switch (stlkind)  {
-            case TClassEdit::kMap:
-            case TClassEdit::kMultiMap: {
+            case ROOT::kSTLmap:
+            case ROOT::kSTLmultimap: {
                   what = "pair<";
                   what += UpdateAssociativeToVector( inside[1].c_str() );
                   what += ",";
@@ -592,8 +592,8 @@ void TMakeProject::GeneratePostDeclaration(FILE *fp, const TVirtualStreamerInfo
             what = inside[1].c_str();
          } else if (key) {
             switch (stlkind)  {
-               case TClassEdit::kMap:
-               case TClassEdit::kMultiMap: 
+               case ROOT::kSTLmap:
+               case ROOT::kSTLmultimap: 
                {
                   // Already done (see GenerateIncludeForTemplate
                   break;
@@ -636,17 +636,17 @@ TString TMakeProject::UpdateAssociativeToVector(const char *name)
       }
       // Remove default allocator if any.
       switch (stlkind) {
-         case TClassEdit::kVector:
-         case TClassEdit::kList:
-         case TClassEdit::kDeque:
+         case ROOT::kSTLvector:
+         case ROOT::kSTLlist:
+         case ROOT::kSTLdeque:
             if (narg>2 && strncmp(inside[2].c_str(),"std::allocator<",strlen("std::allocator<"))==0) {
                --narg;
             }
             break;
-         case TClassEdit::kSet:
-         case TClassEdit::kMultiSet:
-         case TClassEdit::kMap:
-         case TClassEdit::kMultiMap:
+         case ROOT::kSTLset:
+         case ROOT::kSTLmultiset:
+         case ROOT::kSTLmap:
+         case ROOT::kSTLmultimap:
             if (narg>4 && strncmp(inside[4].c_str(),"std::allocator<",strlen("std::allocator<"))==0) {
                --narg;
             }
@@ -660,8 +660,8 @@ TString TMakeProject::UpdateAssociativeToVector(const char *name)
             // (for which we do not know the sorting).
             std::string what;
             switch ( stlkind )  {
-               case TClassEdit::kMap:
-               case TClassEdit::kMultiMap: {
+               case ROOT::kSTLmap:
+               case ROOT::kSTLmultimap: {
                   what = "std::pair<";
                   what += inside[1];
                   what += ",";
@@ -677,8 +677,8 @@ TString TMakeProject::UpdateAssociativeToVector(const char *name)
                   narg = 2;
                   break;
                }
-               case TClassEdit::kSet:
-               case TClassEdit::kMultiSet:
+               case ROOT::kSTLset:
+               case ROOT::kSTLmultiset:
                   inside[0] = "std::vector";
                   break;
             }
diff --git a/io/io/src/TStreamerInfo.cxx b/io/io/src/TStreamerInfo.cxx
index 7e8eea1579a..c1314e35526 100644
--- a/io/io/src/TStreamerInfo.cxx
+++ b/io/io/src/TStreamerInfo.cxx
@@ -261,7 +261,7 @@ void TStreamerInfo::Build()
          TVirtualCollectionProxy *proxy = base->GetClassPointer()->GetCollectionProxy();
          if (proxy) element = new TStreamerSTL(bname, btitle, offset, bname, *proxy, kFALSE);
          else       element = new TStreamerSTL(bname, btitle, offset, bname, 0, kFALSE);
-         if (fClass->IsLoaded() && ((TStreamerSTL*)element)->GetSTLtype() != TClassEdit::kVector) {
+         if (fClass->IsLoaded() && ((TStreamerSTL*)element)->GetSTLtype() != ROOT::kSTLvector) {
             if (!element->GetClassPointer()->IsLoaded()) {
                Error("Build","The class \"%s\" is compiled and its base class \"%s\" is a collection and we do not have a dictionary for it, we will not be able to read or write this base class.",GetName(),bname);
                delete element;
@@ -399,7 +399,7 @@ void TStreamerInfo::Build()
             TVirtualCollectionProxy *proxy = TClass::GetClass(dm->GetTypeName() /* the underlying type */)->GetCollectionProxy();
             if (proxy) element = new TStreamerSTL(dmName, dmTitle, offset, dmFull, *proxy, dmIsPtr);
             else element = new TStreamerSTL(dmName, dmTitle, offset, dmFull, dm->GetTrueTypeName(), dmIsPtr);
-            if (fClass->IsLoaded() && ((TStreamerSTL*)element)->GetSTLtype() != TClassEdit::kVector) {
+            if (fClass->IsLoaded() && ((TStreamerSTL*)element)->GetSTLtype() != ROOT::kSTLvector) {
                if (!element->GetClassPointer()->IsLoaded()) {
                   Error("Build","The class \"%s\" is compiled and for its the data member \"%s\", we do not have a dictionary for the collection \"%s\", we will not be able to read or write this data member.",GetName(),dmName,element->GetClassPointer()->GetName());
                   delete element;
@@ -1488,7 +1488,7 @@ void TStreamerInfo::BuildOld()
                   continue;
                } else if (bc->GetClassPointer()->GetCollectionProxy()
                           && !bc->GetClassPointer()->IsLoaded() 
-                          && bc->GetClassPointer()->GetCollectionProxy()->GetCollectionType() != TClassEdit::kVector) {
+                          && bc->GetClassPointer()->GetCollectionProxy()->GetCollectionType() != ROOT::kSTLvector) {
                   Error("BuildOld","The class \"%s\" is compiled and its base class \"%s\" is a collection and we do not have a dictionary for it, we will not be able to read or write this base class.",GetName(),bc->GetName());
                   offset = kMissing;
                   element->SetOffset(kMissing);
@@ -1588,7 +1588,7 @@ void TStreamerInfo::BuildOld()
             TClass *elemDm = TClass::GetClass(dmClassName.Data());
             if (elemDm && elemDm->GetCollectionProxy()
                 && !elemDm->IsLoaded() 
-                && elemDm->GetCollectionProxy()->GetCollectionType() != TClassEdit::kVector) {
+                && elemDm->GetCollectionProxy()->GetCollectionType() != ROOT::kSTLvector) {
                Error("BuildOld","The class \"%s\" is compiled and for its data member \"%s\", we do not have a dictionary for the collection \"%s\", we will not be able to read or write this data member.",GetName(),dm->GetName(),elemDm->GetName());
                offset = kMissing;
                element->SetOffset(kMissing);
@@ -1727,8 +1727,8 @@ void TStreamerInfo::BuildOld()
                Int_t oldkind = TMath::Abs(TClassEdit::IsSTLCont( oldClass->GetName() ));
                Int_t newkind = TMath::Abs(TClassEdit::IsSTLCont( newClass->GetName() ));
 
-               if ( (oldkind==TClassEdit::kMap || oldkind==TClassEdit::kMultiMap) &&
-                    (newkind!=TClassEdit::kMap && newkind!=TClassEdit::kMultiMap) ) {
+               if ( (oldkind==ROOT::kSTLmap || oldkind==ROOT::kSTLmultimap) &&
+                    (newkind!=ROOT::kSTLmap && newkind!=ROOT::kSTLmultimap) ) {
 
                   Int_t elemType = element->GetType();
                   Bool_t isPrealloc = (elemType == kObjectp) || (elemType == kAnyp) || (elemType == (kObjectp + kOffsetL)) || (elemType == (kAnyp + kOffsetL));
@@ -1754,8 +1754,8 @@ void TStreamerInfo::BuildOld()
                   }
                   element->Update(oldClass, newClass.GetClass());
 
-               } else if ( (newkind==TClassEdit::kMap || newkind==TClassEdit::kMultiMap) &&
-                           (oldkind!=TClassEdit::kMap && oldkind!=TClassEdit::kMultiMap) ) {
+               } else if ( (newkind==ROOT::kSTLmap || newkind==ROOT::kSTLmultimap) &&
+                           (oldkind!=ROOT::kSTLmap && oldkind!=ROOT::kSTLmultimap) ) {
                   element->SetNewType(-2);
                } else {
                   element->Update(oldClass, newClass.GetClass());
@@ -2811,7 +2811,7 @@ static void R__WriteDestructorBody(FILE *file, TIter &next)
                //fprintf(file,"      %s::iterator end (%s %s).end();\n");
                //fprintf(file,"      for( iter = begin; iter != end; ++iter) { delete *iter; }\n");
             } else {
-               if (stltype == TStreamerElement::kSTLmap || stltype == TStreamerElement::kSTLmultimap) {
+               if (stltype == ROOT::kSTLmap || stltype == ROOT::kSTLmultimap) {
                   TString enamebasic = TMakeProject::UpdateAssociativeToVector(element->GetTypeNameBasic());
                   std::vector<std::string> inside;
                   int nestedLoc;
@@ -2988,10 +2988,10 @@ void TStreamerInfo::GenerateDeclaration(FILE *fp, FILE *sfp, const TList *subCla
             // comparator function.
             Int_t stltype = ((TStreamerSTL*)element)->GetSTLtype();
             switch (stltype) {
-               case TStreamerElement::kSTLmap:
-               case TStreamerElement::kSTLmultimap:
-               case TStreamerElement::kSTLset:
-               case TStreamerElement::kSTLmultiset:
+               case ROOT::kSTLmap:
+               case ROOT::kSTLmultimap:
+               case ROOT::kSTLset:
+               case ROOT::kSTLmultiset:
                {
                   enamebasic = TMakeProject::UpdateAssociativeToVector(enamebasic);
                }
diff --git a/io/io/src/TStreamerInfoActions.cxx b/io/io/src/TStreamerInfoActions.cxx
index 70388bdf1bd..e2128d80787 100644
--- a/io/io/src/TStreamerInfoActions.cxx
+++ b/io/io/src/TStreamerInfoActions.cxx
@@ -964,11 +964,11 @@ namespace TStreamerInfoActions
 
    ESelectLooper SelectLooper(TVirtualCollectionProxy &proxy)
    {
-      if ( (proxy.GetCollectionType() == TClassEdit::kVector) || (proxy.GetProperties() & TVirtualCollectionProxy::kIsEmulated) ) {
+      if ( (proxy.GetCollectionType() == ROOT::kSTLvector) || (proxy.GetProperties() & TVirtualCollectionProxy::kIsEmulated) ) {
          return kVectorLooper;
-      } else if (proxy.GetCollectionType() == TClassEdit::kSet || proxy.GetCollectionType() == TClassEdit::kMultiSet
-                 || proxy.GetCollectionType() == TClassEdit::kMap || proxy.GetCollectionType() == TClassEdit::kMultiMap 
-                 || proxy.GetCollectionType() == TClassEdit::kBitSet) {
+      } else if (proxy.GetCollectionType() == ROOT::kSTLset || proxy.GetCollectionType() == ROOT::kSTLmultiset
+                 || proxy.GetCollectionType() == ROOT::kSTLmap || proxy.GetCollectionType() == ROOT::kSTLmultimap 
+                 || proxy.GetCollectionType() == ROOT::kSTLbitset) {
          return kAssociativeLooper;
       } else {
          return kGenericLooper;
@@ -2870,7 +2870,7 @@ TStreamerInfoActions::TActionSequence *TStreamerInfoActions::TActionSequence::Cr
    }
    UInt_t ndata = info->GetElements()->GetEntries();
    TStreamerInfoActions::TActionSequence *sequence = new TStreamerInfoActions::TActionSequence(info,ndata);
-   if ( (proxy.GetCollectionType() == TClassEdit::kVector) || (proxy.GetProperties() & TVirtualCollectionProxy::kIsEmulated) ) 
+   if ( (proxy.GetCollectionType() == ROOT::kSTLvector) || (proxy.GetProperties() & TVirtualCollectionProxy::kIsEmulated) ) 
    {
       if (proxy.HasPointers()) {
          // Instead of the creating a new one let's copy the one from the StreamerInfo.
@@ -2884,8 +2884,8 @@ TStreamerInfoActions::TActionSequence *TStreamerInfoActions::TActionSequence::Cr
       // We can speed up the iteration in case of vector.  We also know that all emulated collection are stored internally as a vector.
       Long_t increment = proxy.GetIncrement();
       sequence->fLoopConfig = new TVectorLoopConfig(increment);
-   } else if (proxy.GetCollectionType() == TClassEdit::kSet || proxy.GetCollectionType() == TClassEdit::kMultiSet
-              || proxy.GetCollectionType() == TClassEdit::kMap || proxy.GetCollectionType() == TClassEdit::kMultiMap) 
+   } else if (proxy.GetCollectionType() == ROOT::kSTLset || proxy.GetCollectionType() == ROOT::kSTLmultiset
+              || proxy.GetCollectionType() == ROOT::kSTLmap || proxy.GetCollectionType() == ROOT::kSTLmultimap) 
    {
       Long_t increment = proxy.GetIncrement();
       sequence->fLoopConfig = new TVectorLoopConfig(increment);
@@ -2929,8 +2929,8 @@ TStreamerInfoActions::TActionSequence *TStreamerInfoActions::TActionSequence::Cr
       }
       switch (SelectLooper(proxy)) {
       case kAssociativeLooper:
-//         } else if (proxy.GetCollectionType() == TClassEdit::kSet || proxy.GetCollectionType() == TClassEdit::kMultiSet
-//                    || proxy.GetCollectionType() == TClassEdit::kMap || proxy.GetCollectionType() == TClassEdit::kMultiMap) {
+//         } else if (proxy.GetCollectionType() == ROOT::kSTLset || proxy.GetCollectionType() == ROOT::kSTLmultiset
+//                    || proxy.GetCollectionType() == ROOT::kSTLmap || proxy.GetCollectionType() == ROOT::kSTLmultimap) {
 //            sequence->AddAction( GenericAssocCollectionAction, new TConfigSTL(info,i,offset,0,proxy.GetCollectionClass(),0,0) );
       case kVectorLooper:
       case kVectorPtrLooper:
@@ -2973,7 +2973,7 @@ TStreamerInfoActions::TActionSequence *TStreamerInfoActions::TActionSequence::Cr
       }
       UInt_t ndata = info->GetElements()->GetEntries();
       TStreamerInfoActions::TActionSequence *sequence = new TStreamerInfoActions::TActionSequence(info,ndata);
-      if ( (proxy.GetCollectionType() == TClassEdit::kVector) || (proxy.GetProperties() & TVirtualCollectionProxy::kIsEmulated) ) 
+      if ( (proxy.GetCollectionType() == ROOT::kSTLvector) || (proxy.GetProperties() & TVirtualCollectionProxy::kIsEmulated) ) 
       {
          if (proxy.HasPointers()) {
             // Instead of the creating a new one let's copy the one from the StreamerInfo.
@@ -2987,8 +2987,8 @@ TStreamerInfoActions::TActionSequence *TStreamerInfoActions::TActionSequence::Cr
          // We can speed up the iteration in case of vector.  We also know that all emulated collection are stored internally as a vector.
          Long_t increment = proxy.GetIncrement();
          sequence->fLoopConfig = new TVectorLoopConfig(increment);
-      /*} else if (proxy.GetCollectionType() == TClassEdit::kSet || proxy.GetCollectionType() == TClassEdit::kMultiSet
-                 || proxy.GetCollectionType() == TClassEdit::kMap || proxy.GetCollectionType() == TClassEdit::kMultiMap) 
+      /*} else if (proxy.GetCollectionType() == ROOT::kSTLset || proxy.GetCollectionType() == ROOT::kSTLmultiset
+                 || proxy.GetCollectionType() == ROOT::kSTLmap || proxy.GetCollectionType() == ROOT::kSTLmultimap) 
       {
          Long_t increment = proxy.GetIncrement();
          sequence->fLoopConfig = new TVectorLoopConfig(increment);
@@ -3035,9 +3035,9 @@ TStreamerInfoActions::TActionSequence *TStreamerInfoActions::TActionSequence::Cr
                oldType += TVirtualStreamerInfo::kSkip;
             }
          }
-         if ( (proxy.GetCollectionType() == TClassEdit::kVector) || (proxy.GetProperties() & TVirtualCollectionProxy::kIsEmulated)  
-               /*|| (proxy.GetCollectionType() == TClassEdit::kSet || proxy.GetCollectionType() == TClassEdit::kMultiSet
-               || proxy.GetCollectionType() == TClassEdit::kMap || proxy.GetCollectionType() == TClassEdit::kMultiMap) */ )
+         if ( (proxy.GetCollectionType() == ROOT::kSTLvector) || (proxy.GetProperties() & TVirtualCollectionProxy::kIsEmulated)  
+               /*|| (proxy.GetCollectionType() == ROOT::kSTLset || proxy.GetCollectionType() == ROOT::kSTLmultiset
+               || proxy.GetCollectionType() == ROOT::kSTLmap || proxy.GetCollectionType() == ROOT::kSTLmultimap) */ )
          {
 
             // We can speed up the iteration in case of vector.  We also know that all emulated collection are stored internally as a vector.
@@ -3048,8 +3048,8 @@ TStreamerInfoActions::TActionSequence *TStreamerInfoActions::TActionSequence::Cr
                sequence->AddAction(GetCollectionWriteAction<VectorLooper>(info,element,oldType,i,offset));
             }
 
-   //         } else if (proxy.GetCollectionType() == TClassEdit::kSet || proxy.GetCollectionType() == TClassEdit::kMultiSet
-   //                    || proxy.GetCollectionType() == TClassEdit::kMap || proxy.GetCollectionType() == TClassEdit::kMultiMap) {
+   //         } else if (proxy.GetCollectionType() == ROOT::kSTLset || proxy.GetCollectionType() == ROOT::kSTLmultiset
+   //                    || proxy.GetCollectionType() == ROOT::kSTLmap || proxy.GetCollectionType() == ROOT::kSTLmultimap) {
    //            sequence->AddAction( GenericAssocCollectionAction, new TConfigSTL(info,i,offset,0,proxy.GetCollectionClass(),0,0) );
          } else {
             // The usual collection case.
@@ -3108,9 +3108,9 @@ TStreamerInfoActions::TActionSequence *TStreamerInfoActions::TActionSequence::Cr
             }
          }
 #else
-         if ( (proxy.GetCollectionType() == TClassEdit::kVector) || (proxy.GetProperties() & TVirtualCollectionProxy::kIsEmulated)  
-               /*|| (proxy.GetCollectionType() == TClassEdit::kSet || proxy.GetCollectionType() == TClassEdit::kMultiSet
-               || proxy.GetCollectionType() == TClassEdit::kMap || proxy.GetCollectionType() == TClassEdit::kMultiMap)*/ )
+         if ( (proxy.GetCollectionType() == ROOT::kSTLvector) || (proxy.GetProperties() & TVirtualCollectionProxy::kIsEmulated)  
+               /*|| (proxy.GetCollectionType() == ROOT::kSTLset || proxy.GetCollectionType() == ROOT::kSTLmultiset
+               || proxy.GetCollectionType() == ROOT::kSTLmap || proxy.GetCollectionType() == ROOT::kSTLmultimap)*/ )
          {
             sequence->AddAction( GetCollectionWriteAction<VectorLooper>(info,element,oldType,i,offset) );
          } else {
diff --git a/io/xml/src/TXMLPlayer.cxx b/io/xml/src/TXMLPlayer.cxx
index 9912132e981..5ce5a2e55bf 100644
--- a/io/xml/src/TXMLPlayer.cxx
+++ b/io/xml/src/TXMLPlayer.cxx
@@ -947,7 +947,7 @@ Bool_t TXMLPlayer::ProduceSTLstreamer(std::ostream& fs, TClass* cl, TStreamerSTL
 
    TClass* contcl = el->GetClassPointer();
 
-   Bool_t isstr = (el->GetSTLtype() == TStreamerElement::kSTLstring);
+   Bool_t isstr = (el->GetSTLtype() == ROOT::kSTLstring);
    Bool_t isptr = el->IsaPointer();
    Bool_t isarr = (el->GetArrayLength()>0);
    Bool_t isparent = (strcmp(el->GetName(), contcl->GetName())==0);
@@ -968,13 +968,13 @@ Bool_t TXMLPlayer::ProduceSTLstreamer(std::ostream& fs, TClass* cl, TStreamerSTL
 
          stltyp = TClassEdit::STLKind(splitName[0].c_str());
          switch (stltyp) {
-            case TClassEdit::kVector   : narg = 1; break;
-            case TClassEdit::kList     : narg = 1; break;
-            case TClassEdit::kDeque    : narg = 1; break;
-            case TClassEdit::kMap      : narg = 2; break;
-            case TClassEdit::kMultiMap : narg = 2; break;
-            case TClassEdit::kSet      : narg = 1; break;
-            case TClassEdit::kMultiSet : narg = 1; break;
+            case ROOT::kSTLvector   : narg = 1; break;
+            case ROOT::kSTLlist     : narg = 1; break;
+            case ROOT::kSTLdeque    : narg = 1; break;
+            case ROOT::kSTLmap      : narg = 2; break;
+            case ROOT::kSTLmultimap : narg = 2; break;
+            case ROOT::kSTLset      : narg = 1; break;
+            case ROOT::kSTLmultiset : narg = 1; break;
             default: return false;
          }
 
@@ -1163,7 +1163,7 @@ Bool_t TXMLPlayer::ProduceSTLstreamer(std::ostream& fs, TClass* cl, TStreamerSTL
 
          if (akaarrayaccess) {
             fs << std::endl << tabs << tab1 << accname;
-            if ((stltyp==TClassEdit::kSet) || (stltyp==TClassEdit::kMultiSet))
+            if ((stltyp==ROOT::kSTLset) || (stltyp==ROOT::kSTLmultiset))
                fs << "insert"; else fs << "push_back";
             fs << "(arr[k]);" << std::endl;
             fs << tabs << "delete[] arr;" << std::endl;
@@ -1175,7 +1175,7 @@ Bool_t TXMLPlayer::ProduceSTLstreamer(std::ostream& fs, TClass* cl, TStreamerSTL
             fs << tabs << tab1;
             if (ifcond.Length()>0) fs << "if (" << ifcond << ") ";
             fs << accname;
-            if ((stltyp==TClassEdit::kSet) || (stltyp==TClassEdit::kMultiSet))
+            if ((stltyp==ROOT::kSTLset) || (stltyp==ROOT::kSTLmultiset))
                fs << "insert";
             else
                fs << "push_back";
diff --git a/tree/tree/src/TBranchElement.cxx b/tree/tree/src/TBranchElement.cxx
index f8af76e680f..e07000b9009 100644
--- a/tree/tree/src/TBranchElement.cxx
+++ b/tree/tree/src/TBranchElement.cxx
@@ -149,7 +149,7 @@ TBranchElement::TBranchElement()
 , fType(0)
 , fStreamerType(-1)
 , fMaximum(0)
-, fSTLtype(TClassEdit::kNotSTL)
+, fSTLtype(ROOT::kNotSTL)
 , fNdata(1)
 , fBranchCount(0)
 , fBranchCount2(0)
@@ -189,7 +189,7 @@ TBranchElement::TBranchElement(TTree *tree, const char* bname, TStreamerInfo* si
 , fType(0)
 , fStreamerType(-1)
 , fMaximum(0)
-, fSTLtype(TClassEdit::kNotSTL)
+, fSTLtype(ROOT::kNotSTL)
 , fNdata(1)
 , fBranchCount(0)
 , fBranchCount2(0)
@@ -230,7 +230,7 @@ TBranchElement::TBranchElement(TBranch *parent, const char* bname, TStreamerInfo
 , fType(0)
 , fStreamerType(-1)
 , fMaximum(0)
-, fSTLtype(TClassEdit::kNotSTL)
+, fSTLtype(ROOT::kNotSTL)
 , fNdata(1)
 , fBranchCount(0)
 , fBranchCount2(0)
@@ -548,7 +548,7 @@ void TBranchElement::Init(TTree *tree, TBranch *parent,const char* bname, TStrea
             SetReadLeavesPtr();
             SetFillLeavesPtr();
             return;
-         } else if (((fSTLtype >= TClassEdit::kVector) && (fSTLtype < TClassEdit::kEnd)) || ((fSTLtype > -TClassEdit::kEnd) && (fSTLtype <= -TClassEdit::kVector))) {
+         } else if (((fSTLtype >= ROOT::kSTLvector) && (fSTLtype < ROOT::kSTLend)) || ((fSTLtype > -ROOT::kSTLend) && (fSTLtype <= -ROOT::kSTLvector))) {
             // -- We are an STL container element.
             TClass* contCl = TClass::GetClass(elem_type);
             fCollProxy = contCl->GetCollectionProxy()->Generate();
@@ -711,7 +711,7 @@ void TBranchElement::Init(TTree *tree, TBranch *parent, const char* bname, TClon
    fOnfileObject  = 0;
    fMaximum       = 0;
    fBranchOffset  = 0;
-   fSTLtype       = TClassEdit::kNotSTL;
+   fSTLtype       = ROOT::kNotSTL;
    fInitOffsets   = kFALSE;
 
    fTree          = tree;
@@ -1408,7 +1408,7 @@ void TBranchElement::FillLeavesCollection(TBuffer& b)
    }
    b << n;
 
-   if(fSTLtype != TClassEdit::kVector && proxy->HasPointers() && fSplitLevel > TTree::kSplitCollectionOfPointers ) {
+   if(fSTLtype != ROOT::kSTLvector && proxy->HasPointers() && fSplitLevel > TTree::kSplitCollectionOfPointers ) {
       fPtrIterators->CreateIterators(fObject, proxy);
    } else {
       //NOTE: this does not work for not vectors since the CreateIterators expects a TGenCollectionProxy::TStaging as its argument!
@@ -2253,10 +2253,10 @@ Int_t TBranchElement::GetEntry(Long64_t entry, Int_t getall)
          nbytes += nb;
       }
       switch(fSTLtype) {
-         case TClassEdit::kSet:
-         case TClassEdit::kMultiSet:
-         case TClassEdit::kMap:
-         case TClassEdit::kMultiMap:
+         case ROOT::kSTLset:
+         case ROOT::kSTLmultiset:
+         case ROOT::kSTLmap:
+         case ROOT::kSTLmultimap:
             break;
          default:
             ValidateAddress(); // There is no ReadLeave for this node, so we need to do the validation here.
@@ -3452,10 +3452,10 @@ void TBranchElement::ReadLeavesMakeClass(TBuffer& b)
       if (fType == 4)   {
          Int_t nbranches = fBranches.GetEntriesFast();
          switch(fSTLtype) {
-            case TClassEdit::kSet:
-            case TClassEdit::kMultiSet:
-            case TClassEdit::kMap:
-            case TClassEdit::kMultiMap:
+            case ROOT::kSTLset:
+            case ROOT::kSTLmultiset:
+            case ROOT::kSTLmap:
+            case ROOT::kSTLmultimap:
                for (Int_t i=0; i<nbranches; i++) {
                   TBranch *branch = (TBranch*)fBranches[i];
                   Int_t nb = branch->GetEntry(GetReadEntry(), 1);
@@ -3711,7 +3711,7 @@ void TBranchElement::ReadLeavesCollection(TBuffer& b)
    TVirtualCollectionProxy* proxy = GetCollectionProxy();
    TVirtualCollectionProxy::TPushPop helper(proxy, fObject);
    void* alternate = proxy->Allocate(fNdata, true);
-   if(fSTLtype != TClassEdit::kVector && proxy->HasPointers() && fSplitLevel > TTree::kSplitCollectionOfPointers ) {
+   if(fSTLtype != ROOT::kSTLvector && proxy->HasPointers() && fSplitLevel > TTree::kSplitCollectionOfPointers ) {
       fPtrIterators->CreateIterators(alternate, proxy);
    } else {
       fIterators->CreateIterators(alternate, proxy);
@@ -3719,10 +3719,10 @@ void TBranchElement::ReadLeavesCollection(TBuffer& b)
 
    Int_t nbranches = fBranches.GetEntriesFast();
    switch (fSTLtype) {
-      case TClassEdit::kSet:
-      case TClassEdit::kMultiSet:
-      case TClassEdit::kMap:
-      case TClassEdit::kMultiMap:
+      case ROOT::kSTLset:
+      case ROOT::kSTLmultiset:
+      case ROOT::kSTLmap:
+      case ROOT::kSTLmultimap:
          for (Int_t i = 0; i < nbranches; ++i) {
             TBranch *branch = (TBranch*) fBranches[i];
             Int_t nb = branch->GetEntry(GetReadEntry(), 1);
@@ -4480,7 +4480,7 @@ void TBranchElement::SetAddress(void* addr)
             SetReadLeavesPtr();
             SetFillLeavesPtr();
 
-            if(fSTLtype != TClassEdit::kVector && fCollProxy->HasPointers() && fSplitLevel > TTree::kSplitCollectionOfPointers ) {
+            if(fSTLtype != ROOT::kSTLvector && fCollProxy->HasPointers() && fSplitLevel > TTree::kSplitCollectionOfPointers ) {
                fPtrIterators = new TVirtualCollectionPtrIterators(fCollProxy);
             } else {
                fIterators = new TVirtualCollectionIterators(fCollProxy);
@@ -4518,7 +4518,7 @@ void TBranchElement::SetAddress(void* addr)
             SetFillLeavesPtr();
             delete fIterators;
             delete fPtrIterators;
-            if(fSTLtype != TClassEdit::kVector && fCollProxy->HasPointers() && fSplitLevel > TTree::kSplitCollectionOfPointers ) {
+            if(fSTLtype != ROOT::kSTLvector && fCollProxy->HasPointers() && fSplitLevel > TTree::kSplitCollectionOfPointers ) {
                fPtrIterators = new TVirtualCollectionPtrIterators(fCollProxy);
             } else {
                fIterators = new TVirtualCollectionIterators(fCollProxy);
@@ -4551,7 +4551,7 @@ void TBranchElement::SetAddress(void* addr)
                SetFillLeavesPtr();
                delete fIterators;
                delete fPtrIterators;
-               if(fSTLtype != TClassEdit::kVector && fCollProxy->HasPointers() && fSplitLevel > TTree::kSplitCollectionOfPointers ) {
+               if(fSTLtype != ROOT::kSTLvector && fCollProxy->HasPointers() && fSplitLevel > TTree::kSplitCollectionOfPointers ) {
                   fPtrIterators = new TVirtualCollectionPtrIterators(fCollProxy);
                } else {
                   fIterators = new TVirtualCollectionIterators(fCollProxy);
@@ -4616,7 +4616,7 @@ void TBranchElement::SetAddress(void* addr)
          }
       } else {
          if (!fIterators && !fPtrIterators) {
-            if(fSTLtype != TClassEdit::kVector && GetCollectionProxy()->HasPointers() && fSplitLevel > TTree::kSplitCollectionOfPointers ) {
+            if(fSTLtype != ROOT::kSTLvector && GetCollectionProxy()->HasPointers() && fSplitLevel > TTree::kSplitCollectionOfPointers ) {
                fPtrIterators = new TVirtualCollectionPtrIterators(GetCollectionProxy());
             } else {
                fIterators = new TVirtualCollectionIterators(GetCollectionProxy());
@@ -4967,7 +4967,7 @@ void TBranchElement::SetReadActionSequence()
    TStreamerInfoActions::TActionSequence *original = 0;
    TStreamerInfoActions::TActionSequence *transient = 0;
    if (fType == 41) {
-      if( fSplitLevel >= TTree::kSplitCollectionOfPointers && fBranchCount->fSTLtype == TClassEdit::kVector) {
+      if( fSplitLevel >= TTree::kSplitCollectionOfPointers && fBranchCount->fSTLtype == ROOT::kSTLvector) {
          original = fInfo->GetReadMemberWiseActions(kTRUE);
       } else {
          TVirtualStreamerInfo *info = GetInfoImp();
@@ -5010,7 +5010,7 @@ void TBranchElement::SetReadLeavesPtr()
       fReadLeaves = (ReadLeaves_t)&TBranchElement::ReadLeavesCollection;
    } else if (fType == 41) {
       if( fSplitLevel >= TTree::kSplitCollectionOfPointers ) {
-         if (fBranchCount->fSTLtype == TClassEdit::kVector) {
+         if (fBranchCount->fSTLtype == ROOT::kSTLvector) {
             fReadLeaves = (ReadLeaves_t)&TBranchElement::ReadLeavesCollectionSplitVectorPtrMember;
          } else {
             fReadLeaves = (ReadLeaves_t)&TBranchElement::ReadLeavesCollectionSplitPtrMember;
@@ -5054,7 +5054,7 @@ void TBranchElement::SetFillActionSequence()
    TStreamerInfoActions::TActionSequence *original = 0;
    TStreamerInfoActions::TActionSequence *transient = 0;
    if (fType == 41) {
-      if( fSplitLevel >= TTree::kSplitCollectionOfPointers && fBranchCount->fSTLtype == TClassEdit::kVector) {
+      if( fSplitLevel >= TTree::kSplitCollectionOfPointers && fBranchCount->fSTLtype == ROOT::kSTLvector) {
          original = fInfo->GetWriteMemberWiseActions(kTRUE);
       } else {
          TVirtualStreamerInfo *info = GetInfoImp();
@@ -5098,7 +5098,7 @@ void TBranchElement::SetFillLeavesPtr()
       fFillLeaves = (FillLeaves_t)&TBranchElement::FillLeavesCollection;
    } else if (fType == 41) {
       if( fSplitLevel >= TTree::kSplitCollectionOfPointers ) {
-         if (fBranchCount->fSTLtype == TClassEdit::kVector) {
+         if (fBranchCount->fSTLtype == ROOT::kSTLvector) {
             fFillLeaves = (FillLeaves_t)&TBranchElement::FillLeavesCollectionSplitVectorPtrMember;
          } else {
             fFillLeaves = (FillLeaves_t)&TBranchElement::FillLeavesCollectionSplitPtrMember;
diff --git a/tree/tree/src/TTree.cxx b/tree/tree/src/TTree.cxx
index 0f3757d0b1e..5bd447b01ed 100644
--- a/tree/tree/src/TTree.cxx
+++ b/tree/tree/src/TTree.cxx
@@ -2122,7 +2122,7 @@ TBranch* TTree::BronchExec(const char* name, const char* classname, void* addr,
       }
       if ((splitlevel > 0) && inklass && (inklass->GetCollectionProxy() == 0)) {
          Int_t stl = -TClassEdit::IsSTLCont(cl->GetName(), 0);
-         if ((stl != TClassEdit::kMap) && (stl != TClassEdit::kMultiMap)) {
+         if ((stl != ROOT::kSTLmap) && (stl != ROOT::kSTLmultimap)) {
             void *classinfo = inklass->GetClassInfo();
             if (!classinfo) {
                Error("Bronch", "Container with no dictionary defined in branch: %s", name);
diff --git a/tree/treeplayer/src/TTreeProxyGenerator.cxx b/tree/treeplayer/src/TTreeProxyGenerator.cxx
index fe5ccfcae54..9118e9a459d 100644
--- a/tree/treeplayer/src/TTreeProxyGenerator.cxx
+++ b/tree/treeplayer/src/TTreeProxyGenerator.cxx
@@ -385,18 +385,18 @@ namespace ROOT {
       } else if (cl->GetCollectionProxy() && (stlType=TClassEdit::IsSTLCont(cl->GetName()))) {
          const char *what = "";
          switch(stlType)  {
-            case TClassEdit::kVector:   what = "vector"; break;
-            case TClassEdit::kList:     what = "list"; break;
-            case -TClassEdit::kDeque: // same as positive
-            case TClassEdit::kDeque:    what = "deque"; break;
-            case -TClassEdit::kMap: // same as positive
-            case TClassEdit::kMap:      what = "map"; break;
-            case -TClassEdit::kMultiMap: // same as positive
-            case TClassEdit::kMultiMap: what = "map"; break;
-            case -TClassEdit::kSet:  // same as positive
-            case TClassEdit::kSet:      what = "set"; break;
-            case -TClassEdit::kMultiSet: // same as positive
-            case TClassEdit::kMultiSet: what = "set"; break;
+            case ROOT::kSTLvector:   what = "vector"; break;
+            case ROOT::kSTLlist:     what = "list"; break;
+            case -ROOT::kSTLdeque: // same as positive
+            case ROOT::kSTLdeque:    what = "deque"; break;
+            case -ROOT::kSTLmap: // same as positive
+            case ROOT::kSTLmap:      what = "map"; break;
+            case -ROOT::kSTLmultimap: // same as positive
+            case ROOT::kSTLmultimap: what = "map"; break;
+            case -ROOT::kSTLset:  // same as positive
+            case ROOT::kSTLset:      what = "set"; break;
+            case -ROOT::kSTLmultiset: // same as positive
+            case ROOT::kSTLmultiset: what = "set"; break;
          }
          if (what[0]) {
             directive = "#include <";
diff --git a/tree/treeplayer/src/TTreeReaderArray.cxx b/tree/treeplayer/src/TTreeReaderArray.cxx
index e214f9721fb..d108c367ff8 100644
--- a/tree/treeplayer/src/TTreeReaderArray.cxx
+++ b/tree/treeplayer/src/TTreeReaderArray.cxx
@@ -611,8 +611,8 @@ const char* ROOT::TTreeReaderArrayBase::GetBranchContentDataType(TBranch* branch
                Error("GetBranchContentDataType()", "Cannot determine STL collection type of %s stored in branch %s", brElement->GetClassName(), branch->GetName());
                return brElement->GetClassName();
             }
-            bool isMap = isSTLCont == TClassEdit::kMap
-               || isSTLCont == TClassEdit::kMultiMap;
+            bool isMap = isSTLCont == ROOT::kSTLmap
+               || isSTLCont == ROOT::kSTLmultimap;
             if (isMap) contentTypeName = "std::pair< ";
             contentTypeName += splitType.fElements[1];
             if (isMap) {
-- 
GitLab