New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DQM: header and namespace cleanup #27476
DQM: header and namespace cleanup #27476
Conversation
Is this a scram bug? The test/ BuildFile does add DQMServices/Core already. The error was: DQMServices/Core/interface/DQMStore.h:23:10: fatal error: 'classlib/utils/Regexp.h' file not found #include <classlib/utils/Regexp.h>
... where the tool was not smart enough.
All removing a newline that one of the header cleanup tools left over.
... so we can merge the subsystem changes before the big restructuring. Requires a bunch of changes to the ancient code in this package.
The code-checks are being triggered in jenkins. |
+code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-27476/10805
|
@@ -14,6 +14,7 @@ | |||
*/ | |||
|
|||
#include "FastSimulation/MaterialEffects/interface/MaterialEffectsSimulator.h" | |||
#include "DQMServices/Core/interface/DQMStore.h" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@qliphy @efeyazgan @alberto-sanchez please check also the update in your domain, it looks straightforward |
+1 |
+1 indeed the changes are associated to RivetInterface and are straightforward |
+1 |
+1 |
@schneiml @andrius-k @jfernan2 ping |
+1 |
+1 |
+1 |
merge |
PR description:
This PR separates a few changes out of the big
DQMStore
restructuring project [1] that can be merged safely. No behaviour changes. These changes include things that need to be fixed/explicitly declared in subsystem code, therefore this PR touches many packages and will conflict almost certainly with others.This is the reason to split out these changes and merge them now.
There are two big sets of changes:
Simplify includes. The only files to be included from the
DQMServices/Core
package areDQMStore.h
and the module base classes (DQMEDAnalyzer.h
,DQMEDHarvester.h
,oneDQMEDAnalyzer.h
,DQMGlobalEDAnalyzer.h
). All others should the replaced withDQMStore.h
.MonitorElement.h
should never be included, the majority the majority of changes is removing these.DQMStore
andMonitorElement
should never be forward-declared, to prevent problems in the next steps.Namespace
MonitorElement
andDQMStore
intodqm::reco::
,dqm::harvesting::
anddqm::legacy::
(anddqm::impl::
, which is the actual implementation).DQMStore
andMonitorElement
in the default namespace. Most code will continue to work unchanged sinceDQMEDAnalyzer
andDQMEDHarvester
import them into class scope.DQMEDAnalyzer
orDQMEDHarvester
, need to import the correct definition themselves.typedef
s to to that are the second big batch of changes.dqm::legacy::
are actually helper classes and not legacy modules by themselves. These could be changed todqm::reco::
ordqm::harvesting::
based on the APIs that they use, but that will be easier once the reduced APIs are actually in place.MonitorElement
defined outside the class declaration now need to qualify theMonitorElement
in their return type. This is due to how C++ scoping works and hard to avoid.In addition,
DQMServices/Examples
is deleted, since it demonstrates the usage of legacy APIs, some of which are only used in the example code...MonitorElement::Kind
got turned into anenum class
to keep things a bit more clean in the future.PR validation:
Code compiles.
None of the changes should affect the output, but bugs and mistakes are possible, so we need to watch the comparisons.
PR comparison shows no significant changes.
[1] master...schneiml:dqm-new-dqmstore-on-CMSSW_11_0_0_pre1-from-andrius