/
githubmirror
/
cmssw
Обзор
Документация
Войти
/
githubmirror
/
cmssw
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
DQM/CSCMonitorModule/plugins/CSCDQM_Documentation.cc
127 строк
4 KB
Shahzad Malik Muzaffar
[DQM] Applying code checks/format
03 окт 2024, 10:24
03 окт 2024, 10:24
1c51ea5
Код
Авторство
О чём код?
/* * ===================================================================================== * * Filename: CSCDQM_Documentation.h * * Description: CSCDQM Framework documentation file * * Version: 1.0 * Created: 02/19/2009 03:25:23 PM * Revision: none * Compiler: gcc * * Author: Valdas Rapsevicius (VR), valdas.rapsevicius@cern.ch * Company: CERN, CH * * ===================================================================================== */ /*! \mainpage CSCDQM Framework Guide * * \section intro_sec Introduction * * 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. * * \section start_sec Quick Start Guide * * Below are some steps that are necessary to go throught while trying to run * the library. * * \subsection step1 Step 1: Implement cscdqm::MonitorObject * * 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: * * \code * * #include "CSCDQM_MonitorObject.h" * * class MyMonitorObject : public cscdqm::MonitorObject { * * public: * * // Implement virtual methods * * }; * * \endcode * * \subsection step2 Step 2: Implement cscdqm::MonitorObjectProvider * * 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: * * \code * * #include "CSCDQM_MonitorObjectProvider.h" * * class MyMonitorObjectProvider : public cscdqm::MonitorObjectProvider { * * public: * * CSCMonitorObject* bookMonitorObject(const cscdqm::HistoBookRequest& req) { * * // Your code * * } * * // Other methods, etc. * * }; * * \endcode * * \subsection step3 Step 3: Rock & Roll * * 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: * * \code * * class MyApplication { * * private: * * MyMonitorObjectProvider provider; * cscdqm::Configuration config; * cscdqm::Dispatcher dispatcher; * * public: * * MyApplication() : dispatcher(&config, &provider) { * * // do whatever with config object, i.e. * // config.setPARAMETER(x); * * dispatcher.init(); * } * * ~MyApplication() { * dispatcher.updateFractionAndEfficiencyHistos(); * } * * void processEvent(const char* data, const int32_t* dataSize, const uint32_t errorStat, const int32_t nodeNumber) { * dispatcher.processEvent(data, dataSize, errorStat, nodeNumber); * } * * }; * * \endcode * */