Evolve `auto_ptr<gen::PdfInfo>`-to-`unique_ptr` read rules to avoid `std::auto_ptr`
PR description:
This PR applies the ROOT schema evolution pattern that avoids the use of std::auto_ptr (that was formally removed in C++17), for which a test was developed in https://github.com/cms-sw/cmssw/pull/48817, to the std::auto_ptr<gen::PdfInfo> -to-std::unique_ptr<gen::PdfInfo> read rules for GenEventInfoProduct and LHEEventProduct.
In addition, the first commit fixes the LHEEventProduct read rule to include all versions before 13 (that came up in https://github.com/cms-sw/cmssw/issues/49538). I included it here to because I had to touch the same line in classes_def.xml, and doing that change first makes the backporting easier.
Fixes https://github.com/cms-sw/cmssw/issues/43422 Fixes https://github.com/cms-sw/cmssw/issues/43923 Resolves https://github.com/cms-sw/framework-team/issues/1538 Resolves https://github.com/cms-sw/framework-team/issues/1714
PR validation:
Code compiles, and the deprecation warnings along
>> Compiling scram_x86-64-v2 LCG dictionary: tmp/el8_amd64_gcc13/src/SimDataFormats/GeneratorProducts/src/SimDataFormatsGeneratorProducts/lcgdict/SimDataFormatsGeneratorProducts_xr.cc
/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc13/external/gcc/13.4.0-6908cfdf803923e783448096ca4f0923/bin/c++ -MMD -MF tmp/el8_amd64_gcc13/src/SimDataFormats/GeneratorProducts/src/SimDataFormatsGeneratorProducts/scram_x86-64-v2/lcgdict/SimDataFormatsGeneratorProducts_xr.cc.d -I. -c -DCMS_MICRO_ARCH='x86-64-v2' -DGNU_GCC -D_GNU_SOURCE -DTBB_USE_GLIBCXX_VERSION=130400 -DTBB_SUPPRESS_DEPRECATED_MESSAGES -DTBB_PREVIEW_RESUMABLE_TASKS=1 -DTBB_PREVIEW_TASK_GROUP_EXTENSIONS=1 -DBOOST_SPIRIT_THREADSAFE -DPHOENIX_THREADSAFE -DBOOST_MATH_DISABLE_STD_FPCLASSIFY -DBOOST_UUID_RANDOM_PROVIDER_FORCE_POSIX -DBOOST_MPL_IGNORE_PARENTHESES_WARNING -DCMSSW_GIT_HASH='CMSSW_16_0_X_2025-12-09-2300' -DPROJECT_NAME='CMSSW' -DPROJECT_VERSION='CMSSW_16_0_X_2025-12-09-2300' -Isrc -I/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc13/external/pcre/8.43-6d98fda3bfd074ebb583e2d6a2c75d25/include -isystem/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc13/external/boost/1.80.0-6fb83b2bac2398768f2cc6374a639c37/include -I/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc13/external/bz2lib/1.0.6-d113e1c6278c07eeaff5f84db9548446/include -I/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc13/external/hepmc/2.06.10-903e23142392c852f3df97c32fbd4659/include -I/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc13/external/libuuid/2.34-5ba7a8abfc0c5fecdc448cca360c25ff/include -isystem/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc13/lcg/root/6.36.07-0490e78b33943d48f9af1c19441a9d2e/include -isystem/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc13/external/tbb/v2022.3.0-54089f7aad511dfcd272d65c5ee4b3ab/include -I/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc13/external/xz/5.6.4-b9c4ffbc390ed320a5d57fd552e29a05/include -I/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc13/external/zlib/1.2.13-589f6bb51bbeba38a7adf5a10ea8a093/include -I/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc13/external/hepmc3/3.2.7-f8f0da18d94695d72ff740910e834c9f/include -I/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc13/external/md5/1.0.0-26057075013e190e56dad37d35219376/include -I/data/cmsbld/jenkins/workspace/build-any-ib/w/el8_amd64_gcc13/external/tinyxml2/6.2.0-67924ead96ecb4e69aad321b767979a5/include -DCMSSW_REFLEX_DICT -pthread -pipe -Werror=main -Werror=pointer-arith -Werror=overlength-strings -Wno-vla -Werror=overflow -std=c++20 -ftree-vectorize -Werror=array-bounds -Werror=format-contains-nul -Werror=type-limits -fvisibility-inlines-hidden -fno-math-errno --param vect-max-version-for-alias-checks=50 -Xassembler --compress-debug-sections -Wno-error=array-bounds -Warray-bounds -fuse-ld=bfd -felide-constructors -fmessage-length=0 -Wall -Wno-non-template-friend -Wno-long-long -Wreturn-type -Wextra -Wpessimizing-move -Wclass-memaccess -Wno-cast-function-type -Wno-unused-but-set-parameter -Wno-ignored-qualifiers -Wno-unused-parameter -Wunused -Wparentheses -Werror=return-type -Werror=unused-value -Werror=unused-label -Werror=address -Werror=format -Werror=sign-compare -Werror=write-strings -Werror=delete-non-virtual-dtor -Werror=strict-aliasing -Werror=narrowing -Werror=unused-but-set-variable -Werror=reorder -Werror=unused-variable -Werror=conversion-null -Werror=return-local-addr -Wnon-virtual-dtor -Werror=switch -fdiagnostics-show-option -Wno-unused-local-typedefs -Wno-attributes -Wno-psabi -Wno-error=unused-variable -DBOOST_DISABLE_ASSERTS -Os -Wno-unused-variable -march=x86-64-v2 -flto=auto -fipa-icf -flto-odr-type-merging -fno-fat-lto-objects -Wodr -fPIC tmp/el8_amd64_gcc13/src/SimDataFormats/GeneratorProducts/src/SimDataFormatsGeneratorProducts/lcgdict/SimDataFormatsGeneratorProducts_xr.cc -o tmp/el8_amd64_gcc13/src/SimDataFormats/GeneratorProducts/src/SimDataFormatsGeneratorProducts/scram_x86-64-v2/lcgdict/SimDataFormatsGeneratorProducts_xr.cc.o
tmp/el8_amd64_gcc13/src/SimDataFormats/GeneratorProducts/src/SimDataFormatsGeneratorProducts/lcgdict/SimDataFormatsGeneratorProducts_xr.cc:234:62: warning: 'template<class> class std::auto_ptr' is deprecated: use 'std::unique_ptr' instead [-Wdeprecated-declarations]
234 | static TGenericClassInfo *GenerateInitInstanceLocal(const auto_ptr<gen::PdfInfo>*)
| ^~~~~~~~
are gone. Testing of the actual behavior relies of the test of the pattern added in https://github.com/cms-sw/cmssw/pull/48817, and in existing tests (including runTheMatrix) in PR and IB tests.
If this PR is a backport please specify the original PR and why you need to backport that PR. If this PR will be backported please specify to which release cycle the backport is meant for:
The first commit will be backported (at least down to 15_0_X).
cms-bot internal usage
+code-checks
Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-49593/47131
- There are other open Pull requests which might conflict with changes you have proposed:
- File SimDataFormats/GeneratorProducts/src/classes.h modified in PR(s): #38033
- File SimDataFormats/GeneratorProducts/src/classes_def.xml modified in PR(s): #38033
A new Pull Request was created by @makortel for master.
It involves the following packages:
- SimDataFormats/GeneratorProducts (generators)
@cmsbuild, @lviliani, @mkirsano, @sensrcn, @theofil can you please review it and eventually sign? Thanks. @apsallid, @bsunanda, @denizsun, @fabiocos, @martinamalberti, @missirol, @mmusich, @rovere, @salimcerci, @youyingli this is something you requested to watch as well. @ftenchini, @mandrenguyen, @sextonkennedy you are the release manager for this.
cms-bot commands are listed here
@cmsbuild, please test
+1
Size: This PR adds an extra 24KB to repository
Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-284a32/49886/summary.html
COMMIT: fde5708c9df5b4801e7922ac4ad7ddbbc89d26f8
CMSSW: CMSSW_16_0_X_2025-12-10-1100/el8_amd64_gcc13
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week1/cms-sw/cmssw/49593/49886/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: 5 differences found in the comparisons
- Reco comparison had 4 failed jobs
- DQMHistoTests: Total files compared: 53
- DQMHistoTests: Total histograms compared: 4273241
- DQMHistoTests: Total failures: 67
- DQMHistoTests: Total nulls: 0
- DQMHistoTests: Total successes: 4273154
- 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, please test workflow 2500.0201,2500.0202,2500.0203,2500.0204,2500.0401,2500.0402,2500.0403, 2500.0404
By quick look at least these workflows seem to read older-than-11_0_X AODSIM or MiniAODSIM files, and thus I'd expect to exercise the read rules.
@cmsbuild, please test workflow 2500.0201,2500.0202,2500.0203,2500.0204,2500.0401,2500.0402,2500.0403,2500.0404
+1
Size: This PR adds an extra 24KB to repository
Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-284a32/49893/summary.html
COMMIT: fde5708c9df5b4801e7922ac4ad7ddbbc89d26f8
CMSSW: CMSSW_16_0_X_2025-12-10-1100/el8_amd64_gcc13
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week1/cms-sw/cmssw/49593/49893/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: 1 differences found in the comparisons
- Reco comparison had 4 failed jobs
- DQMHistoTests: Total files compared: 61
- DQMHistoTests: Total histograms compared: 4285385
- DQMHistoTests: Total failures: 78
- DQMHistoTests: Total nulls: 0
- DQMHistoTests: Total successes: 4285287
- DQMHistoTests: Total skipped: 20
- DQMHistoTests: Total Missing objects: 0
- DQMHistoSizes: Histogram memory added: 0.0 KiB( 60 files compared)
- Checked 251 log files, 214 edm output root files, 61 DQM output files
- TriggerResults: no differences found
Comparison differences are related to https://github.com/cms-sw/cmssw/issues/47071
hold
I was just told this recipe has a memory leak
Pull request has been put on hold by @makortel
They need to issue an unhold command to remove the hold state or L1 can unhold it for all
+code-checks
Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-49593/47162
- There are other open Pull requests which might conflict with changes you have proposed:
- File SimDataFormats/GeneratorProducts/src/classes.h modified in PR(s): #38033
- File SimDataFormats/GeneratorProducts/src/classes_def.xml modified in PR(s): #38033
I updated the read rule following the convergence and tests of the test in https://github.com/cms-sw/cmssw/pull/49621
unhold
@cmsbuild, please test
Pull request #49593 was updated. @lviliani, @mkirsano, @sensrcn, @theofil can you please check and sign again.
+1
Size: This PR adds an extra 20KB to repository
Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-284a32/49939/summary.html
COMMIT: 54bdaa5b9dbbceaa3b815b2b86ca5b619dc593e8
CMSSW: CMSSW_16_0_X_2025-12-12-2300/el8_amd64_gcc13
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week1/cms-sw/cmssw/49593/49939/install.sh to create a dev area with all the needed externals and cmssw changes.
Comparison Summary
Summary:
- No significant changes to the logs found
- ROOTFileChecks: Some differences in event products or their sizes found
- Reco comparison results: 1 differences found in the comparisons
- Reco comparison had 4 failed jobs
- DQMHistoTests: Total files compared: 53
- DQMHistoTests: Total histograms compared: 4273241
- DQMHistoTests: Total failures: 64
- DQMHistoTests: Total nulls: 0
- DQMHistoTests: Total successes: 4273157
- 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
Comparison differences are related to https://github.com/cms-sw/cmssw/issues/47071
@cms-sw/generators-l2 Could you review and sign? It would be great to have this PR in 16_0_0_pre4.
@cms-sw/generators-l2 Ping
+generators
This pull request is fully signed and it will be integrated in one of the next master IBs (tests are also fine). This pull request will now be reviewed by the release team before it's merged. @mandrenguyen, @sextonkennedy, @ftenchini (and backports should be raised in the release meeting by the corresponding L2)
+1