@@ -379,6 +379,19 @@ namespace edm::rntuple_temp {
379379 treePointers_[ttreeIndex]->optimizeBaskets (10ULL * 1024 * 1024 );
380380 }
381381
382+ namespace {
383+ ROOT::RNTupleWriteOptions optionsFrom (RNTupleTempOutputModule const & iOM) {
384+ auto writeOptions = ROOT::RNTupleWriteOptions ();
385+ auto compressionAlgo =
386+ iOM.compressionAlgorithm () == std::string (" LZMA" ) ? ROOT::RCompressionSetting::EAlgorithm::kLZMA
387+ : iOM.compressionAlgorithm () == std::string (" ZSTD" ) ? ROOT::RCompressionSetting::EAlgorithm::kZSTD
388+ : iOM.compressionAlgorithm () == std::string (" LZ4" ) ? ROOT::RCompressionSetting::EAlgorithm::kLZ4
389+ : ROOT::RCompressionSetting::EAlgorithm::kZLIB ;
390+ writeOptions.SetCompression (compressionAlgo, iOM.compressionLevel ());
391+ return writeOptions;
392+ }
393+ } // namespace
394+
382395 void RootOutputFile::writeMetaData (ProductRegistry const & iReg) {
383396 auto model = ROOT::RNTupleModel::CreateBare ();
384397 {
@@ -396,10 +409,8 @@ namespace edm::rntuple_temp {
396409 }
397410 }
398411
399- auto writeOptions = ROOT::RNTupleWriteOptions ();
400- // writeOptions.SetCompression(convert(iConfig.compressionAlgo), iConfig.compressionLevel);
401412 auto metaData =
402- ROOT::RNTupleWriter::Append (std::move (model), poolNames::metaDataTreeName (), *filePtr_, writeOptions );
413+ ROOT::RNTupleWriter::Append (std::move (model), poolNames::metaDataTreeName (), *filePtr_, optionsFrom (*om_) );
403414
404415 auto rentry = metaData->CreateEntry ();
405416
@@ -420,10 +431,8 @@ namespace edm::rntuple_temp {
420431 auto model = ROOT::RNTupleModel::CreateBare ();
421432 model->AddField (ROOT::RFieldBase::Create (poolNames::parentageBranchName (), " edm::Parentage" ).Unwrap ());
422433
423- auto writeOptions = ROOT::RNTupleWriteOptions ();
424- // writeOptions.SetCompression(convert(iConfig.compressionAlgo), iConfig.compressionLevel);
425434 auto parentageWriter =
426- ROOT::RNTupleWriter::Append (std::move (model), poolNames::parentageTreeName (), *filePtr_, writeOptions );
435+ ROOT::RNTupleWriter::Append (std::move (model), poolNames::parentageTreeName (), *filePtr_, optionsFrom (*om_) );
427436
428437 ParentageRegistry& ptReg = *ParentageRegistry::instance ();
429438
@@ -569,10 +578,8 @@ namespace edm::rntuple_temp {
569578 ROOT::RFieldBase::Create (" IdToParameterSetsBlobs" , " std::pair<edm::Hash<1>,edm::ParameterSetBlob>" ).Unwrap ();
570579 model->AddField (std::move (field));
571580 }
572- auto writeOptions = ROOT::RNTupleWriteOptions ();
573- // writeOptions.SetCompression(convert(iConfig.compressionAlgo), iConfig.compressionLevel);
574581 auto parameterSets =
575- ROOT::RNTupleWriter::Append (std::move (model), poolNames::parameterSetsTreeName (), *filePtr_, writeOptions );
582+ ROOT::RNTupleWriter::Append (std::move (model), poolNames::parameterSetsTreeName (), *filePtr_, optionsFrom (*om_) );
576583
577584 std::pair<ParameterSetID, ParameterSetBlob> idToBlob;
578585
0 commit comments