Skip to content

Commit 16a8720

Browse files
committed
Use config to decide meta data compression in RNTupleTemp
1 parent ed1bba5 commit 16a8720

File tree

1 file changed

+16
-9
lines changed

1 file changed

+16
-9
lines changed

FWIO/RNTupleTempOutput/src/RootOutputFile.cc

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)