Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 10:54:51

0001 #ifndef DQM_HcalTasks_HcalOnlineHarvesting_h
0002 #define DQM_HcalTasks_HcalOnlineHarvesting_h
0003 
0004 /**
0005  *  file:       HcalOnlineHarvesting.h
0006  *  Author:     VK
0007  *  Date:       ..
0008  *  Description: 
0009  *      This is DQMEDAnalyzer which is a edm::one module. edm::one enforces
0010  *      that only 1 run is being processed.
0011  *      https://twiki.cern.ch/twiki/bin/view/CMSPublic/FWMultithreadedFrameworkOneModuleInterface - for details.
0012  *
0013  *      HcalOnlineHarvesting is responsible for Status Evaluation and Summary
0014  *      Generation. In this step RAW, DIGI, RECO + TP Data Tiers 
0015  *      are evaluated and Summary is generated. 
0016  *      ___________
0017  *      Online:
0018  *      There is always a Current Summary - Summary for the Current LS 
0019  *      being Evaluated. It might and might not include the information 
0020  *      from previous LSs, depending on the Quantity.
0021  *      ___________
0022  *      Offline:
0023  *      For Offline only Run Summary is being generated. As it is meaningless
0024  *      to have current LS information being delivered. Only Total Summary
0025  *      makes sense
0026  */
0027 
0028 #include "DQM/HcalCommon/interface/HcalCommonHeaders.h"
0029 #include "DQM/HcalCommon/interface/DQHarvester.h"
0030 #include "DQM/HcalCommon/interface/Container1D.h"
0031 #include "DQM/HcalCommon/interface/Container2D.h"
0032 #include "DQM/HcalCommon/interface/ContainerProf1D.h"
0033 #include "DQM/HcalCommon/interface/ContainerProf2D.h"
0034 #include "DQM/HcalCommon/interface/ContainerSingle1D.h"
0035 #include "DQM/HcalCommon/interface/ContainerSingle2D.h"
0036 #include "DQM/HcalCommon/interface/ContainerSingleProf1D.h"
0037 #include "DQM/HcalCommon/interface/ContainerSingleProf2D.h"
0038 #include "DQM/HcalCommon/interface/ElectronicsMap.h"
0039 #include "DQM/HcalCommon/interface/DQClient.h"
0040 
0041 #include "DQM/HcalTasks/interface/RawRunSummary.h"
0042 #include "DQM/HcalTasks/interface/DigiRunSummary.h"
0043 #include "DQM/HcalTasks/interface/RecoRunSummary.h"
0044 #include "DQM/HcalTasks/interface/TPRunSummary.h"
0045 #include "DQM/HcalTasks/interface/PedestalRunSummary.h"
0046 
0047 class HcalOnlineHarvesting : public hcaldqm::DQHarvester {
0048 public:
0049   HcalOnlineHarvesting(edm::ParameterSet const &);
0050   ~HcalOnlineHarvesting() override {}
0051   void beginRun(edm::Run const &, edm::EventSetup const &) override;
0052 
0053 protected:
0054   void _dqmEndLuminosityBlock(DQMStore::IBooker &,
0055                               DQMStore::IGetter &,
0056                               edm::LuminosityBlock const &,
0057                               edm::EventSetup const &) override;
0058   void _dqmEndJob(DQMStore::IBooker &, DQMStore::IGetter &) override;
0059 
0060   enum Summary { fRaw = 0, fDigi = 1, fReco = 2, fTP = 3, fPedestal = 4, nSummary = 5 };
0061 
0062   //    flags to harvest...
0063   std::vector<bool> _vmarks;
0064   std::vector<hcaldqm::DQClient *> _vsumgen;
0065   std::vector<std::string> _vnames;
0066 
0067   //    thresholds
0068   double _thresh_bad_bad;
0069 
0070   //    counters
0071   int _nBad;
0072   int _nTotal;
0073 
0074   //    summaries
0075   std::vector<hcaldqm::ContainerSingle2D> _vcSummaryvsLS;
0076 
0077   hcaldqm::Container2D _cKnownBadChannels_depth;
0078 
0079   //    reportSummaryMap
0080   MonitorElement *_reportSummaryMap;
0081   MonitorElement *_runSummary;
0082 
0083   // Efficiencies
0084   hcaldqm::ContainerSingle2D _cTDCCutEfficiency_depth;
0085   hcaldqm::ContainerSingle1D _cTDCCutEfficiency_ieta;
0086 };
0087 
0088 #endif