Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:09:09

0001 #ifndef TrackingAnalyser_H
0002 #define TrackingAnalyser_H
0003 
0004 #include "FWCore/Utilities/interface/EDGetToken.h"
0005 #include "DQMServices/Core/interface/DQMEDHarvester.h"
0006 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0007 #include "FWCore/Framework/interface/ESHandle.h"
0008 #include "FWCore/Framework/interface/LuminosityBlock.h"
0009 #include "FWCore/Framework/interface/Run.h"
0010 #include "FWCore/Framework/interface/EventSetup.h"
0011 #include "FWCore/Framework/interface/ESWatcher.h"
0012 #include "DQMServices/Core/interface/DQMStore.h"
0013 
0014 #include <iostream>
0015 #include <fstream>
0016 #include <string>
0017 #include <vector>
0018 #include <map>
0019 
0020 class SiStripFedCabling;
0021 class SiStripDetCabling;
0022 class TrackingActionExecutor;
0023 class FEDRawDataCollection;
0024 class SiStripFedCablingRcd;
0025 class SiStripDetCablingRcd;
0026 
0027 class TrackingAnalyser : public DQMEDHarvester {
0028 public:
0029   /// Constructor
0030   TrackingAnalyser(const edm::ParameterSet& ps);
0031 
0032   /// Destructor
0033   ~TrackingAnalyser() override;
0034 
0035 private:
0036   /// BeginJob
0037   void beginJob() override;
0038 
0039   /// BeginRun
0040   void beginRun(edm::Run const& run, edm::EventSetup const& eSetup) override;
0041 
0042   /// Begin Luminosity Block
0043   void dqmBeginLuminosityBlock(DQMStore::IBooker& ibooker_,
0044                                DQMStore::IGetter& igetter_,
0045                                edm::LuminosityBlock const& lumiSeg,
0046                                edm::EventSetup const& eSetup);
0047 
0048   /// End Luminosity Block
0049   void dqmEndLuminosityBlock(DQMStore::IBooker& ibooker_,
0050                              DQMStore::IGetter& igetter_,
0051                              edm::LuminosityBlock const& lumiSeg,
0052                              edm::EventSetup const& eSetup) override;
0053 
0054   /// Endjob
0055   void dqmEndJob(DQMStore::IBooker& ibooker_, DQMStore::IGetter& igetter_) override;
0056 
0057 private:
0058   bool verbose_;
0059 
0060   void checkTrackerFEDsInLS(DQMStore::IGetter& igetter, double iLS);
0061   void checkTrackerFEDsWdataInLS(DQMStore::IGetter& igetter, double iLS);
0062 
0063   int fileSaveFrequency_;
0064   int staticUpdateFrequency_;
0065   int globalStatusFilling_;
0066   int shiftReportFrequency_;
0067 
0068   edm::EDGetTokenT<FEDRawDataCollection> rawDataToken_;
0069 
0070   std::string outputFilePath_;
0071   std::string outputFileName_;
0072 
0073   edm::ParameterSet tkMapPSet_;
0074   edm::ESGetToken<SiStripFedCabling, SiStripFedCablingRcd> fedCablingToken_;
0075   edm::ESGetToken<SiStripDetCabling, SiStripDetCablingRcd> detCablingToken_;
0076   edm::ESWatcher<SiStripFedCablingRcd> fedCablingWatcher_;
0077   const SiStripFedCabling* fedCabling_;
0078   const SiStripDetCabling* detCabling_;
0079   TrackingActionExecutor* actionExecutor_;
0080 
0081   unsigned long long m_cacheID_;
0082   int nLumiSecs_;
0083   bool trackerFEDsFound_;
0084   bool trackerFEDsWdataFound_;
0085   std::ostringstream html_out_;
0086 
0087   std::string nFEDinfoDir_;
0088   std::string nFEDinVsLSname_;
0089   std::string nFEDinWdataVsLSname_;
0090 };
0091 
0092 #endif