diff --git a/Reconstruction/MVAUtils/Root/BDT.cxx b/Reconstruction/MVAUtils/Root/BDT.cxx
index 46ed101c72292508ec5dc942f6c5c85002c70258..50cdfe10397f3c4471e72fd3006493321e0a70be 100644
--- a/Reconstruction/MVAUtils/Root/BDT.cxx
+++ b/Reconstruction/MVAUtils/Root/BDT.cxx
@@ -58,6 +58,7 @@ BDT::BDT(::TTree *tree)
 {
   // at runtime decide which flavour of BDT we need to build
   // the information is coming from the title of the TTree
+  if (tree) tree->SetCacheSize(0); // Avoid unnecessary memory allocations
   std::map<std::string, std::string> options = parseOptions(tree->GetTitle());
   std::string creator = get_default_string_map(options, std::string("creator"));
   if (creator == "lgbm")