Revert some interface changes of THistSvc
The recent interface changes in THistSvc would require too much manual intervention for quick adaption in Athena. For this reason I reverted some of the changes and added (deprecated) methods to preserve most of the old interface. This also means, that there are more StatusCode
s again, opposed to returning nullable types to communicate failures.
As a rule, the THistSvc is expected to take ownership of the managed histograms, but a very common use case is to register a histogram pointer and continue to work on it afterwards. The interface now offers methods to do exactly that in one call, while communicating ownership transfer to the service to some extend.
This affects only histogram methods. regTree
, getTree
, regGraph
and getGraph
aren't used that often in Athena (< 100 times), so that I should be able to migrate those to unique_ptr
s within a couple of days on my own.
The deprecation attribute is introducing one additional compiler warning in Gaudi (ITHistSvc.h -> THistSvc.h), so how should I address that in the future? I could remove the attribute from the interface and only leave a comment there. This way, only clients of the THistSvc implementation would be marked during compile time. (None in Gaudi; O(1000) times in Athena without any scripted migration to a non-deprecated method)
To prepare the THistSvc for future rewriting efforts (with ROOT 7 histograms in mind), I have changed the order of functions and added many comments. Hopefully this makes the MR/commits not too bloated for everyones taste.
Merge request reports
Activity
- [2018-01-31 15:52] Validation started with lhcb-gaudi-merge#401
- [2018-02-01 10:37] Validation started with lhcb-gaudi-merge#403
- [2018-02-01 11:37] Validation started with lhcb-tdr-test#45
- [2018-02-02 00:06] Validation started with lhcb-gaudi-head-py3#52
- [2018-02-02 00:06] Validation started with lhcb-tdr-test#46
- [2018-02-02 00:07] Validation started with lhcb-gaudi-head#1744
- [2018-02-02 11:52] Validation started with lhcb-upgrade-hackathon#1
- [2018-02-02 11:57] Validation started with lhcb-upgrade-hackathon#2
- [2018-02-02 15:45] Validation started with lhcb-upgrade-hackathon#3
- [2018-02-02 15:58] Validation started with lhcb-upgrade-hackathon#4
- [2018-02-02 17:32] Validation started with lhcb-upgrade-hackathon#5
- [2018-02-02 21:03] Validation started with lhcb-upgrade-hackathon#6
- [2018-02-03 00:04] Validation started with lhcb-gaudi-head-py3#53
- [2018-02-03 00:06] Validation started with lhcb-tdr-test#47
- [2018-02-03 00:06] Validation started with lhcb-upgrade-hackathon#7
- [2018-02-03 00:08] Validation started with lhcb-gaudi-head#1745
- [2018-02-04 00:04] Validation started with lhcb-gaudi-head-py3#54
- [2018-02-04 00:05] Validation started with lhcb-upgrade-hackathon#8
- [2018-02-04 00:06] Validation started with lhcb-tdr-test#48
- [2018-02-04 00:08] Validation started with lhcb-gaudi-head#1746
- [2018-02-05 00:05] Validation started with lhcb-gaudi-head-py3#55
- [2018-02-05 00:06] Validation started with lhcb-upgrade-hackathon#9
- [2018-02-05 00:09] Validation started with lhcb-tdr-test#49
- [2018-02-05 00:10] Validation started with lhcb-gaudi-head#1747
- [2018-02-05 09:40] Validation started with lhcb-upgrade-hackathon#10
- [2018-02-05 09:42] Validation started with lhcb-tdr-test#50
- [2018-02-05 09:52] Validation started with lhcb-gaudi-head#1748
- [2018-02-06 00:03] Validation started with lhcb-gaudi-head-py3#56
- [2018-02-06 00:06] Validation started with lhcb-tdr-test#51
- [2018-02-06 00:08] Validation started with lhcb-gaudi-head#1749
- [2018-02-07 00:04] Validation started with lhcb-gaudi-head-py3#57
- [2018-02-07 00:04] Validation started with lhcb-tdr-test#52
- [2018-02-07 00:08] Validation started with lhcb-gaudi-head#1750
- [2018-02-08 00:04] Validation started with lhcb-gaudi-head-py3#58
- [2018-02-08 00:08] Validation started with lhcb-tdr-test#53
- [2018-02-08 00:09] Validation started with lhcb-gaudi-head#1751
- [2018-02-08 13:42] Validation started with lhcb-gaudi-head#1752
- [2018-02-09 00:05] Validation started with lhcb-gaudi-head-py3#59
- [2018-02-09 00:07] Validation started with lhcb-tdr-test#54
- [2018-02-09 00:12] Validation started with lhcb-gaudi-head#1753
- [2018-02-09 13:23] Validation started with lhcb-gaudi-head#1754
- [2018-02-09 17:15] Validation started with lhcb-gaudi-head#1755
- [2018-02-10 00:04] Validation started with lhcb-gaudi-head-py3#60
- [2018-02-10 00:07] Validation started with lhcb-tdr-test#55
- [2018-02-10 00:11] Validation started with lhcb-gaudi-head#1756
- [2018-02-10 16:54] Validation started with lhcb-gaudi-head#1757
- [2018-02-10 17:00] Validation started with lhcb-gaudi-head#1758
- [2018-02-10 18:05] Validation started with lhcb-gaudi-head#1759
- [2018-02-11 00:03] Validation started with lhcb-gaudi-head-py3#61
- [2018-02-11 00:06] Validation started with lhcb-tdr-test#56
- [2018-02-11 00:09] Validation started with lhcb-gaudi-head#1760
- [2018-02-11 10:17] Validation started with lhcb-gaudi-head#1761
- [2018-02-11 12:21] Validation started with lhcb-gaudi-head#1762
- [2018-02-11 16:37] Validation started with lhcb-gaudi-head#1763
- [2018-02-12 00:05] Validation started with lhcb-gaudi-head-py3#62
- [2018-02-12 00:06] Validation started with lhcb-tdr-test#57
- [2018-02-12 00:07] Validation started with lhcb-gaudi-head#1764
- [2018-02-12 15:36] Validation started with lhcb-gaudi-head#1765
- [2018-02-13 00:03] Validation started with lhcb-gaudi-head-py3#63
- [2018-02-13 00:09] Validation started with lhcb-gaudi-head#1766
- [2018-02-13 00:09] Validation started with lhcb-tdr-test#58
- [2018-02-13 09:11] Validation started with lhcb-gaudi-head#1767
- [2018-02-14 00:04] Validation started with lhcb-gaudi-head-py3#64
- [2018-02-14 00:09] Validation started with lhcb-gaudi-head#1768
- [2018-02-14 00:14] Validation started with lhcb-tdr-test#59
- [2018-02-15 00:05] Validation started with lhcb-gaudi-head-py3#65
- [2018-02-15 00:05] Validation started with lhcb-tdr-test#60
- [2018-02-15 00:07] Validation started with lhcb-gaudi-head#1769
- [2018-02-16 00:04] Validation started with lhcb-gaudi-head-py3#66
- [2018-02-16 00:04] Validation started with lhcb-tdr-test#61
- [2018-02-16 00:06] Validation started with lhcb-gaudi-head#1770
- [2018-02-21 08:42] Validation started with lhcb-gaudi-merge#425
- [2018-02-22 01:03] Validation started with lhcb-gaudi-head-py3#72
- [2018-02-22 01:06] Validation started with lhcb-tdr-test#67
- [2018-02-22 01:08] Validation started with lhcb-gaudi-head#1777
- [2018-02-23 01:03] Validation started with lhcb-gaudi-head-py3#73
- [2018-02-23 01:06] Validation started with lhcb-tdr-test#68
- [2018-02-23 01:09] Validation started with lhcb-gaudi-head#1778
- [2018-02-24 01:03] Validation started with lhcb-gaudi-head-py3#74
- [2018-02-24 01:10] Validation started with lhcb-gaudi-head#1779
- [2018-02-24 01:15] Validation started with lhcb-tdr-test#69
- [2018-02-25 01:04] Validation started with lhcb-gaudi-head-py3#75
- [2018-02-25 01:06] Validation started with lhcb-tdr-test#70
- [2018-02-25 01:08] Validation started with lhcb-gaudi-head#1780
- [2018-02-26 01:03] Validation started with lhcb-gaudi-head-py3#76
- [2018-02-26 01:06] Validation started with lhcb-tdr-test#71
- [2018-02-26 01:08] Validation started with lhcb-gaudi-head#1781
- [2018-02-27 01:03] Validation started with lhcb-gaudi-head-py3#77
- [2018-02-27 01:06] Validation started with lhcb-tdr-test#72
- [2018-02-27 01:11] Validation started with lhcb-gaudi-head#1782
- [2018-02-28 01:03] Validation started with lhcb-gaudi-head-py3#78
- [2018-02-28 01:06] Validation started with lhcb-tdr-test#73
- [2018-02-28 01:12] Validation started with lhcb-gaudi-head#1783
- [2018-03-01 00:03] Validation started with lhcb-gaudi-head-py3#79
- [2018-03-01 00:05] Validation started with lhcb-tdr-test#74
- [2018-03-01 00:12] Validation started with lhcb-gaudi-head#1784
- [2018-03-01 13:04] Validation started with lhcb-upgrade-hackathon#40
- [2018-03-02 00:04] Validation started with lhcb-gaudi-head-py3#80
- [2018-03-02 00:05] Validation started with lhcb-upgrade-hackathon#41
- [2018-03-02 00:06] Validation started with lhcb-tdr-test#75
- [2018-03-02 00:09] Validation started with lhcb-gaudi-head#1785
- [2018-03-02 09:44] Validation started with lhcb-upgrade-hackathon#42
- [2018-03-03 00:03] Validation started with lhcb-gaudi-head-py3#81
- [2018-03-03 00:04] Validation started with lhcb-upgrade-hackathon#43
- [2018-03-03 00:05] Validation started with lhcb-tdr-test#76
- [2018-03-03 00:09] Validation started with lhcb-gaudi-head#1786
- [2018-03-03 09:56] Validation started with lhcb-gaudi-head#1787
- [2018-03-04 00:03] Validation started with lhcb-upgrade-hackathon#44
- [2018-03-04 00:04] Validation started with lhcb-gaudi-head-py3#82
- [2018-03-04 00:05] Validation started with lhcb-tdr-test#77
- [2018-03-04 00:06] Validation started with lhcb-gaudi-head#1788
- [2018-03-05 00:04] Validation started with lhcb-gaudi-head-py3#83
- [2018-03-05 00:08] Validation started with lhcb-upgrade-hackathon#45
- [2018-03-05 00:09] Validation started with lhcb-gaudi-head#1789
- [2018-03-05 00:09] Validation started with lhcb-tdr-test#78
- [2018-03-15 14:28] Validation started with lhcb-gaudi-merge#455
- [2018-03-16 00:04] Validation started with lhcb-gaudi-head-py3#94
- [2018-03-16 00:05] Validation started with lhcb-tdr-test#90
- [2018-03-16 00:07] Validation started with lhcb-gaudi-head#1800
- [2018-03-16 08:01] Validation started with lhcb-gaudi-head#1801
Edited by Software for LHCbI think it would be better to move the deprecation attribute to
THistSvc.h
alone, such that the Gaudi build does not get the additional warning during compilation.Edit: I take it back. The warning is about the implementation in
THistSvc.cpp
anyway. So what do you people think? Remove the deprecation attribute in favor of having a clean build without warnings?Also: The reference output for the debug build is not picked up correctly. How is that done? I compiled everything with
-DCMAKE_BUILD_TYPE:STRING=Debug
and dumped the test output in the corresponding.ref.dbg
files. Any idea why these tests fail anyway? I tried to add.*dbg
as an unsupported platform to the qmtest definition, but it still just fails.Edited by Martin Errenstadded 1 commit
- 831bc7a1 - Add accidentally deleated return type to regHist
added 1 commit
- 1f3f40ef - Comment out deprecation attribute in THistSvc.h
assigned to @clemenci
changed milestone to %v30r2
added C++ framework label
- Resolved by Martin Errenst
- Resolved by Martin Errenst
- Resolved by Martin Errenst
- Resolved by Martin Errenst
added 1 commit
- bf3534a6 - Hide deprecation warning behind ATLAS includeguard
added 1 commit
- 368f0434 - Let the thistwrite ignore specific file sizes
@clemenci I have checked the debug reference file again and my local debug build is not picking up the
.ref.dbg
, but.ref
reference. I do not really understand the mechanism how.dbg
should be picked up automatically in a debug build. Do you have some recommendations for that?@merrenst : could you please squash these into 1 commit?
added 1 commit
- 83c5e66b - Update ITHistSvc for better Athena migration
@leggett done!
added 1 commit
- 5afd894c - Update ITHistSvc for better Athena migration
mentioned in commit clemenci/Gaudi@90280e81
mentioned in commit clemenci/Gaudi@8b0ac931
added 1 commit
- fa80d699 - Remove delete in deReg (giving up ownership)
mentioned in commit f6504322