11#include " podio/RNTupleWriter.h"
22#include " podio/DatamodelRegistry.h"
3- #include " podio/SchemaEvolution.h"
43#include " podio/podioVersion.h"
54#include " podio/utilities/RootHelpers.h"
65#include " rootUtils.h"
@@ -67,7 +66,7 @@ void RNTupleWriter::writeFrame(const podio::Frame& frame, const std::string& cat
6766
6867 // Use the writer as proxy to check whether this category has been initialized
6968 // already and do so if not
70- const bool new_category = ( catInfo.writer == nullptr ) ;
69+ const bool new_category = catInfo.writer == nullptr ;
7170 if (new_category) {
7271 // This is the minimal information that we need for now
7372 catInfo.names = podio::utils::sortAlphabeticaly (collsToWrite);
@@ -78,7 +77,7 @@ void RNTupleWriter::writeFrame(const podio::Frame& frame, const std::string& cat
7877 // Only loop over the collections that were requested in the first Frame of
7978 // this category
8079 for (const auto & name : catInfo.names ) {
81- auto * coll = frame.getCollectionForWrite (name);
80+ const auto * coll = frame.getCollectionForWrite (name);
8281 if (!coll) {
8382 // Make sure all collections that we want to write are actually available
8483 // NOLINTNEXTLINE(performance-inefficient-string-concatenation)
@@ -105,37 +104,37 @@ void RNTupleWriter::writeFrame(const podio::Frame& frame, const std::string& cat
105104 }
106105 }
107106
108- auto entry = m_categories[category].writer ->GetModel ().CreateBareEntry ();
107+ const auto entry = m_categories[category].writer ->GetModel ().CreateBareEntry ();
109108
110109 RNTupleWriteOptions options;
111110 options.SetCompression (ROOT::RCompressionSetting::EDefaults::kUseGeneralPurpose );
112111
113112 for (const auto & [name, coll] : collections) {
114- auto collBuffers = coll->getBuffers ();
113+ const auto collBuffers = coll->getBuffers ();
115114 if (collBuffers.vecPtr ) {
116115 entry->BindRawPtr (name, static_cast <void *>(collBuffers.vecPtr ));
117116 }
118117
119118 if (coll->isSubsetCollection ()) {
120- auto & refColl = (*collBuffers.references )[0 ];
119+ const auto & refColl = (*collBuffers.references )[0 ];
121120 const auto brName = root_utils::subsetBranch (name);
122121 entry->BindRawPtr (brName, refColl.get ());
123122
124123 } else {
125124
126125 const auto relVecNames = podio::DatamodelRegistry::instance ().getRelationNames (coll->getValueTypeName ());
127- if (auto refColls = collBuffers.references ) {
128- int i = 0 ;
129- for (auto & c : ( *refColls) ) {
126+ if (const auto refColls = collBuffers.references ) {
127+ size_t i = 0 ;
128+ for (const auto & c : *refColls) {
130129 const auto brName = root_utils::refBranch (name, relVecNames.relations [i]);
131130 entry->BindRawPtr (brName, c.get ());
132131 ++i;
133132 }
134133 }
135134
136- if (auto vmInfo = collBuffers.vectorMembers ) {
137- int i = 0 ;
138- for (auto & [type, vec] : ( *vmInfo) ) {
135+ if (const auto vmInfo = collBuffers.vectorMembers ) {
136+ size_t i = 0 ;
137+ for (const auto & [type, vec] : *vmInfo) {
139138 const auto typeName = " vector<" + type + " >" ;
140139 const auto brName = root_utils::vecBranch (name, relVecNames.vectorMembers [i]);
141140 auto ptr = *static_cast <std::vector<int >**>(vec);
@@ -163,41 +162,41 @@ std::unique_ptr<root_compat::RNTupleModel>
163162RNTupleWriter::createModels (const std::vector<root_utils::StoreCollection>& collections) {
164163 auto model = root_compat::RNTupleModel::CreateBare ();
165164
166- for (auto & [name, coll] : collections) {
165+ for (const auto & [name, coll] : collections) {
167166 // For the first entry in each category we also record the datamodel
168167 // definition
169168 m_datamodelCollector.registerDatamodelDefinition (coll, name);
170169
171170 const auto collBuffers = coll->getBuffers ();
172171
173172 if (collBuffers.vecPtr ) {
174- auto collClassName = " std::vector<" + std::string (coll->getDataTypeName ()) + " >" ;
173+ const auto collClassName = " std::vector<" + std::string (coll->getDataTypeName ()) + " >" ;
175174 auto field = RFieldBase::Create (name, collClassName).Unwrap ();
176175 model->AddField (std::move (field));
177176 }
178177
179178 if (coll->isSubsetCollection ()) {
180179 const auto brName = root_utils::subsetBranch (name);
181- auto collClassName = " vector<podio::ObjectID>" ;
180+ const auto collClassName = " vector<podio::ObjectID>" ;
182181 auto field = RFieldBase::Create (brName, collClassName).Unwrap ();
183182 model->AddField (std::move (field));
184183 } else {
185184
186185 const auto relVecNames = podio::DatamodelRegistry::instance ().getRelationNames (coll->getValueTypeName ());
187- if (auto refColls = collBuffers.references ) {
188- int i = 0 ;
189- for (auto & c [[maybe_unused]] : ( *refColls) ) {
186+ if (const auto refColls = collBuffers.references ) {
187+ size_t i = 0 ;
188+ for (const auto & c [[maybe_unused]] : *refColls) {
190189 const auto brName = root_utils::refBranch (name, relVecNames.relations [i]);
191- auto collClassName = " vector<podio::ObjectID>" ;
190+ const auto collClassName = " vector<podio::ObjectID>" ;
192191 auto field = RFieldBase::Create (brName, collClassName).Unwrap ();
193192 model->AddField (std::move (field));
194193 ++i;
195194 }
196195 }
197196
198- if (auto vminfo = collBuffers.vectorMembers ) {
199- int i = 0 ;
200- for (auto & [type, vec] : ( *vminfo) ) {
197+ if (const auto vminfo = collBuffers.vectorMembers ) {
198+ size_t i = 0 ;
199+ for (const auto & [type, vec] : *vminfo) {
201200 const auto typeName = " vector<" + type + " >" ;
202201 const auto brName = root_utils::vecBranch (name, relVecNames.vectorMembers [i]);
203202 auto field = RFieldBase::Create (brName, typeName).Unwrap ();
@@ -227,46 +226,48 @@ RNTupleWriter::createModels(const std::vector<root_utils::StoreCollection>& coll
227226}
228227
229228RNTupleWriter::CategoryInfo& RNTupleWriter::getCategoryInfo (const std::string& category) {
230- if (auto it = m_categories.find (category); it != m_categories.end ()) {
229+ if (const auto it = m_categories.find (category); it != m_categories.end ()) {
231230 return it->second ;
232231 }
233232
234- auto [it, _] = m_categories.try_emplace (category, CategoryInfo{});
233+ const auto [it, _] = m_categories.try_emplace (category, CategoryInfo{});
235234 return it->second ;
236235}
237236
238237void RNTupleWriter::finish () {
239238 auto metadata = root_compat::RNTupleModel::Create ();
240239
241- auto podioVersion = podio::version::build_version;
240+ const auto podioVersion = podio::version::build_version;
242241 auto versionField = metadata->MakeField <std::vector<uint16_t >>(root_utils::versionBranchName);
243242 *versionField = {podioVersion.major , podioVersion.minor , podioVersion.patch };
244243
245- auto edmDefinitions = m_datamodelCollector.getDatamodelDefinitionsToWrite ();
244+ const auto edmDefinitions = m_datamodelCollector.getDatamodelDefinitionsToWrite ();
246245 for (const auto & [name, _] : edmDefinitions) {
247- auto edmVersion = DatamodelRegistry::instance ().getDatamodelVersion (name);
246+ const auto edmVersion = DatamodelRegistry::instance ().getDatamodelVersion (name);
248247 if (edmVersion) {
249- auto edmVersionField = metadata->MakeField <std::vector<uint16_t >>(root_utils::edmVersionBranchName (name). c_str ( ));
248+ const auto edmVersionField = metadata->MakeField <std::vector<uint16_t >>(root_utils::edmVersionBranchName (name));
250249 *edmVersionField = {edmVersion->major , edmVersion->minor , edmVersion->patch };
251250 }
252251 }
253252
254- auto edmField = metadata->MakeField <std::vector<std::tuple<std::string, std::string>>>(root_utils::edmDefBranchName);
253+ const auto edmField =
254+ metadata->MakeField <std::vector<std::tuple<std::string, std::string>>>(root_utils::edmDefBranchName);
255255 *edmField = std::move (edmDefinitions);
256256
257- auto availableCategoriesField = metadata->MakeField <std::vector<std::string>>(root_utils::availableCategories);
258- for (auto & [c, _] : m_categories) {
257+ const auto availableCategoriesField = metadata->MakeField <std::vector<std::string>>(root_utils::availableCategories);
258+ for (const auto & [c, _] : m_categories) {
259259 availableCategoriesField->push_back (c);
260260 }
261261
262- for (auto & [category, collInfo] : m_categories) {
263- auto collInfoField =
262+ for (const auto & [category, collInfo] : m_categories) {
263+ const auto collInfoField =
264264 metadata->MakeField <std::vector<root_utils::CollectionWriteInfo>>({root_utils::collInfoName (category)});
265265 *collInfoField = collInfo.collInfo ;
266266 }
267267
268268 metadata->Freeze ();
269- auto metadataWriter = root_compat::RNTupleWriter::Append (std::move (metadata), root_utils::metaTreeName, *m_file, {});
269+ const auto metadataWriter =
270+ root_compat::RNTupleWriter::Append (std::move (metadata), root_utils::metaTreeName, *m_file, {});
270271
271272 metadataWriter->Fill ();
272273
0 commit comments