Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:07:27

0001 #ifndef DQModule_h
0002 #define DQModule_h
0003 
0004 /*
0005  *  file:           DQModule.h
0006  *  Author:         Viktor Khristenko
0007  *  date:           13.10.2015
0008  */
0009 
0010 #include "DQM/HcalCommon/interface/HcalCommonHeaders.h"
0011 #include "DQM/HcalCommon/interface/Logger.h"
0012 
0013 #include <iostream>
0014 #include <string>
0015 #include <vector>
0016 
0017 namespace hcaldqm {
0018   //    Module Types:
0019   //    1) Tasks - process every event
0020   //    2) Clients - get loaded into the Harvester and processed sequentially
0021   //        used only for Online/Offline World Harvesting. Prefer standalone
0022   //        Harvesters
0023   //    3) Harvester - Client Manager - per lumi processing
0024   enum ModuleType { fTask = 0, fHarvester = 1, fClient = 2, nModuleType = 3 };
0025 
0026   enum ProcessingType { fOnline = 0, fOffline = 1, fLocal = 2, nProcessingType = 3 };
0027 
0028   std::string const pTypeNames[nProcessingType] = {"Online", "Offline", "Local"};
0029 
0030   class DQModule {
0031   public:
0032     DQModule(edm::ParameterSet const&);
0033     virtual ~DQModule() noexcept(false) {}
0034     static void fillPSetDescription(edm::ParameterSetDescription& desc);
0035 
0036   protected:
0037     //  Member variables
0038     //  @name - module's name
0039     //  @ptype - Processing Type
0040     //  @mtype - Module Type
0041     //  @ctype - Calibration Type of the Module. All we want is 0 or 1
0042     std::string _name;
0043     ModuleType _mtype;
0044     ProcessingType _ptype;
0045     int _debug;
0046 
0047     int _runkeyVal;
0048     std::string _runkeyName;
0049     std::string _subsystem;
0050 
0051     int _evsTotal;
0052     int _evsPerLS;
0053     int _currentLS;
0054     int _maxLS;
0055     Logger _logger;
0056   };
0057 }  // namespace hcaldqm
0058 
0059 #endif