From f09047d646ca1ca38d20b3251329919dfafa78d6 Mon Sep 17 00:00:00 2001 From: Philippe Canal <pcanal@fnal.gov> Date: Fri, 29 May 2015 20:11:42 -0500 Subject: [PATCH] Add TFileMerger::kKeepCompression to request full 'fast' cloning --- io/io/inc/TFileMerger.h | 3 ++- io/io/src/TFileMerger.cxx | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/io/io/inc/TFileMerger.h b/io/io/inc/TFileMerger.h index 7d8a1ce28da..93693041c8e 100644 --- a/io/io/inc/TFileMerger.h +++ b/io/io/inc/TFileMerger.h @@ -81,7 +81,8 @@ public: kAllIncremental = kIncremental | kAll, // Merge incrementally all type of objects. kOnlyListed = BIT(4), // Only the objects specified in fObjectNames list - kSkipListed = BIT(5) // Skip objects specified in fObjectNames list + kSkipListed = BIT(5), // Skip objects specified in fObjectNames list + kKeepCompression= BIT(6) // Keep compression level unchanged for each input files }; TFileMerger(Bool_t isLocal = kTRUE, Bool_t histoOneGo = kTRUE); virtual ~TFileMerger(); diff --git a/io/io/src/TFileMerger.cxx b/io/io/src/TFileMerger.cxx index ee02b48f2a4..2d2340f8cc5 100644 --- a/io/io/src/TFileMerger.cxx +++ b/io/io/src/TFileMerger.cxx @@ -353,6 +353,7 @@ Bool_t TFileMerger::MergeRecursive(TDirectory *target, TList *sourcelist, Int_t // kNonResetable : merge only the objects without a MergeAfterReset member function. // kOnlyListed : merge only objects listed in fObjectNames // kSkipListed : skip merging of objects listed in fObjectNames + // kKeepCompression : Keep compression level of the buffer as it is in each the original input files. Bool_t status = kTRUE; Bool_t onlyListed = kFALSE; if (fPrintLevel > 0) { @@ -380,7 +381,7 @@ Bool_t TFileMerger::MergeRecursive(TDirectory *target, TList *sourcelist, Int_t TFileMergeInfo info(target); - if ((fFastMethod && !fCompressionChange)) { + if (fFastMethod && ((type&kKeepCompression) || !fCompressionChange) ) { info.fOptions.Append(" fast"); } -- GitLab