CSCDQM Framework provides common services for both Local and Global CSC DQM. It includes analysis module, caching, etc. And should be extended in the nearest future.
The rationale in creating this framework/library is being sick in constantly changing Local and Global DQM code and being not efficient in both places. And having no spare time for hobbies. After starting to program this framework found myself even more busy.
Murphys Law: Everything done to improve it only makes it worse.
Below are some steps that are necessary to go throught while trying to run the library.
One should implement/extend cscdqm::MonitorObject interface which is the main (and only) Monitoring Object that goes into the library and is beinf manipulated uppon. Example:
cscdqm::MonitorObjectProvider is the object which receives cscdqm::HistoBookRequest to get cscdqm::MonitorObject. Note that particular Monitor Object is being requested only once. After that received pointer to MonitorObject will be held in framework cache efficiently. Example:
In your code create cscdqm::Configuration object, supply whatever parameters you need (or load XML configuration file, or edm::ParameterSet), create your cscdqm::MonitorObjectProvider and then create cscdqm::Dispatcher object. Thats it. Now you can supply events to Dispatcher by calling appropriate method. Note that event processing methods differ in Local and Global DQM! You can call a methof to update fractional and efficiency histograms as well. Example: