Skip to content

Extend SoA read streamer to support schema evolution#50487

Draft
fwyzard wants to merge 1 commit intocms-sw:masterfrom
fwyzard:SoA_schema_evolution
Draft

Extend SoA read streamer to support schema evolution#50487
fwyzard wants to merge 1 commit intocms-sw:masterfrom
fwyzard:SoA_schema_evolution

Conversation

@fwyzard
Copy link
Copy Markdown
Contributor

@fwyzard fwyzard commented Mar 20, 2026

PR description:

Extend SoA read streamer to support schema evolution:

  • added columns are initialised to 0;
  • removed or rearranged columns are handle correctly by ROOT;
  • column with changed type (e.g. double to float) are handle by ROOT, but need special care in the case of Eigen columns.

PR validation:

None.

@cmsbuild
Copy link
Copy Markdown
Contributor

cmsbuild commented Mar 20, 2026

cms-bot internal usage

Comment on lines +473 to +476
for (unsigned int i = 0; i < CPP_TYPE::RowsAtCompileTime * CPP_TYPE::ColsAtCompileTime; ++i) { \
memcpy(BOOST_PP_CAT(NAME, _) + i * BOOST_PP_CAT(NAME, Stride_), \
onfile.BOOST_PP_CAT(NAME, _) + i * onfile.BOOST_PP_CAT(NAME, Stride_), \
sizeof(CPP_TYPE::Scalar) * onfile.elements_); \
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This could remain the old, simpler, approach for the common case when BOOST_PP_CAT(NAME, Stride_) == onfile.BOOST_PP_CAT(NAME, Stride_)

@fwyzard
Copy link
Copy Markdown
Contributor Author

fwyzard commented Mar 20, 2026

please test

@cmsbuild
Copy link
Copy Markdown
Contributor

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-50487/48644

@fwyzard
Copy link
Copy Markdown
Contributor Author

fwyzard commented Mar 20, 2026

please test

@cmsbuild
Copy link
Copy Markdown
Contributor

+1

Size: This PR adds an extra 36KB to repository
Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-cf9847/52125/summary.html
COMMIT: bfbaa66
CMSSW: CMSSW_16_1_X_2026-03-20-1100/el8_amd64_gcc13
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week1/cms-sw/cmssw/50487/52125/install.sh to create a dev area with all the needed externals and cmssw changes.

Comparison Summary

Summary:

  • You potentially added 4 lines to the logs
  • ROOTFileChecks: Some differences in event products or their sizes found
  • Reco comparison results: 6 differences found in the comparisons
  • DQMHistoTests: Total files compared: 53
  • DQMHistoTests: Total histograms compared: 4185284
  • DQMHistoTests: Total failures: 50
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 4185214
  • DQMHistoTests: Total skipped: 20
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 52 files compared)
  • Checked 227 log files, 198 edm output root files, 53 DQM output files
  • TriggerResults: no differences found

@cmsbuild
Copy link
Copy Markdown
Contributor

cmsbuild commented Apr 4, 2026

Milestone for this pull request has been moved to CMSSW_17_0_X. Please open a backport if it should also go in to CMSSW_16_1_X.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants