Page MenuHomeHEPForge

Improve use of ROOT dictionary generation macros

Authored by tlatham on Oct 16 2023, 5:09 PM.


  • Remove all uses of deprecated ROOT ClassImp macro
    • As noted in T213, this prevents compilation in Belle 2 software stack due to a deprecation warning being promoted to an error by -Werror
  • Generate ROOT dictionary only for classes that need it for I/O
    • As noted in T213, dictionaries are only required for classes that need I/O
      • In our case that is only, currently, LauAbsRValue, LauBlind and LauParameter
    • Remove all but these from the LinkDef file and the dictionary generation command
    • Remove ClassDef macros from all other classes
  • Take advantage of related improvements in the ROOT CMake support
    • Consequently bump the minimum ROOT version to 6.18.
Test Plan

Examples, particularly those running a simultaneous fit (which uses the I/O of
LauParameter to TBufferFile), continue to run ok

Diff Detail

rLAURA laura
No Lint Coverage
No Test Coverage
Build Status
Buildable 270
Build 270: arc lint + arc unit

Event Timeline

tlatham created this revision.
tlatham changed the visibility from "All Users" to "Public (No Login Required)".Oct 16 2023, 5:09 PM
tlatham changed the edit policy from "All Users" to "Laura (Project)".
tlatham added a project: Laura.

Fix typo in release notes

@jback - just to provide you with a bit more context. This is the first of three Differentials that I would like to get merged before releasing v3r6 from the master branch:

  • This one, which addresses T213, solving an issue with and generally improving the ROOT dictionary generation
  • One that will address T111 by creating a clang-format style file, applying it to the code, and adding a corresponding CI check
  • One that will address T227 by creating new functions in the fit models to access the amplitude and likelihood as a function of the DP position

You can already see the working versions of these on gitlab if you want to have a sneak preview:

Ideally, I'd like to get these all wrapped up in the next week or two so that I can make the new release.
The changes aren't that complicated in principle, but they do touch a lot of files!

All of the changes look OK. Just have a query about some K-matrix code that is commented out. Otherwise this can be merged.


Is there a reason why this is commented out?

This revision is now accepted and ready to land.Nov 6 2023, 3:46 PM

Many thanks for checking through this. I’ve reply to your K-matrix related question inline.


It seems that this variable isn’t used anywhere and it now triggers a warning in the most recent compiler versions.
There is a comment in LauKMatrixPropagator::calcEtaEtaPRho about why it isn’t used. Can you double check that that function is indeed correct?
If so then we could remove this variable completely, or we could leave it commented and maybe add to the comment on line 596 that it isn’t used and why.


I forgot about that issue, which I understand still applies. So I would remove the mEtaEtaPDiffSq function from the header file since it isn't needed.

tlatham added inline comments.

OK, thanks, I’ll remove it completely

tlatham marked an inline comment as done.

Remove unused member variable from LauKMatrixPropagator

Closed by rLAURA9dffea19ce7b
(not sure why this didn't happen automatically)