Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef DQHarvester_h
0002 #define DQHarvester_h
0003 
0004 /*
0005  *  file:       DQHarvester.h
0006  *  Author:     VK
0007  */
0008 
0009 #include "DQM/HcalCommon/interface/ContainerXXX.h"
0010 #include "DQM/HcalCommon/interface/DQModule.h"
0011 #include "DQM/HcalCommon/interface/Utilities.h"
0012 
0013 #include <string>
0014 #include <vector>
0015 
0016 namespace hcaldqm {
0017   class DQHarvester : public DQMEDHarvester, public DQModule {
0018   public:
0019     DQHarvester(edm::ParameterSet const &);
0020     ~DQHarvester() override {}
0021 
0022     void beginRun(edm::Run const &, edm::EventSetup const &) override;
0023     void dqmBeginLuminosityBlock(DQMStore::IBooker &ib,
0024                                  DQMStore::IGetter &ig,
0025                                  edm::LuminosityBlock const &lb,
0026                                  edm::EventSetup const &es);
0027     void dqmEndLuminosityBlock(DQMStore::IBooker &,
0028                                DQMStore::IGetter &,
0029                                edm::LuminosityBlock const &,
0030                                edm::EventSetup const &) override;
0031     void dqmEndJob(DQMStore::IBooker &, DQMStore::IGetter &) override;
0032 
0033   protected:
0034     //  emap
0035     HcalElectronicsMap const *_emap;
0036 
0037     //  some counters
0038     int _totalLS;
0039 
0040     // Crate and crate eid lists
0041     std::vector<int> _vCrates;
0042     std::vector<uint32_t> _vhashCrates;
0043 
0044     //  all FEDs
0045     std::vector<int> _vFEDs;
0046     std::vector<uint32_t> _vhashFEDs;
0047     //  container of quality masks from conddb
0048     ContainerXXX<uint32_t> _xQuality;
0049     //  vector of Electronics raw Ids of HCAL FEDs
0050     //  that were registered at cDAQ for the Run
0051     std::vector<uint32_t> _vcdaqEids;
0052 
0053     edm::ESGetToken<HcalDbService, HcalDbRecord> hcalDbServiceToken_;
0054     edm::ESGetToken<RunInfo, RunInfoRcd> runInfoToken_;
0055     edm::ESGetToken<HcalChannelQuality, HcalChannelQualityRcd> hcalChannelQualityToken_;
0056 
0057     virtual void _dqmEndLuminosityBlock(DQMStore::IBooker &,
0058                                         DQMStore::IGetter &,
0059                                         edm::LuminosityBlock const &,
0060                                         edm::EventSetup const &) = 0;
0061     virtual void _dqmEndJob(DQMStore::IBooker &, DQMStore::IGetter &) = 0;
0062   };
0063 }  // namespace hcaldqm
0064 
0065 #endif