TrackingCertificationInfo

TrackingLSMEs

TrackingMEs

Macros

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
#ifndef TrackingMonitorClient_TrackingCertificationInfo_h
#define TrackingMonitorClient_TrackingCertificationInfo_h
// -*- C++ -*-
//
// Package:     TrackingMonitorClient
// Class  :     TrackingCertificationInfo
//
/**\class TrackingCertificationInfo TrackingCertificationInfo.h DQM/TrackingMonitorClient/interface/TrackingCertificationInfo.h

 Description: 

 Usage:
    <usage>

*/

#include <string>

#include "DQMServices/Core/interface/DQMEDHarvester.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "FWCore/Framework/interface/ESHandle.h"
#include "FWCore/Framework/interface/ESWatcher.h"
#include "FWCore/Framework/interface/LuminosityBlock.h"
#include "FWCore/Framework/interface/Run.h"
#include "FWCore/Framework/interface/EventSetup.h"

#include "DQMServices/Core/interface/DQMStore.h"

#include <fstream>
#include <string>
#include <vector>
#include <map>

class SiStripDetCabling;
class SiStripDetCablingRcd;
class RunInfo;
class RunInfoRcd;

class TrackingCertificationInfo : public DQMEDHarvester {
public:
  /// Constructor
  TrackingCertificationInfo(const edm::ParameterSet& ps);

  /// Destructor
  ~TrackingCertificationInfo() override;

private:
  /// BeginJob
  void beginJob() override;

  /// Begin Run
  void beginRun(edm::Run const& run, edm::EventSetup const& eSetup) override;

  /// End Of Luminosity
  void dqmEndLuminosityBlock(DQMStore::IBooker& ibooker_,
                             DQMStore::IGetter& igetter_,
                             edm::LuminosityBlock const& lumiSeg,
                             edm::EventSetup const& iSetup) override;

  /// EndJob
  void dqmEndJob(DQMStore::IBooker& ibooker_, DQMStore::IGetter& igetter_) override;

private:
  void bookTrackingCertificationMEs(DQMStore::IBooker& ibooker_, DQMStore::IGetter& igetter_);
  void bookTrackingCertificationMEsAtLumi(DQMStore::IBooker& ibooker_, DQMStore::IGetter& igetter_);

  void resetTrackingCertificationMEs(DQMStore::IBooker& ibooker_, DQMStore::IGetter& igetter_);
  void resetTrackingCertificationMEsAtLumi(DQMStore::IBooker& ibooker_, DQMStore::IGetter& igetter_);

  void fillTrackingCertificationMEs(DQMStore::IBooker& ibooker_, DQMStore::IGetter& igetter_);
  void fillTrackingCertificationMEsAtLumi(DQMStore::IBooker& ibooker_, DQMStore::IGetter& igetter_);

  void fillDummyTrackingCertification(DQMStore::IBooker& ibooker_, DQMStore::IGetter& igetter_);
  void fillDummyTrackingCertificationAtLumi(DQMStore::IBooker& ibooker_, DQMStore::IGetter& igetter_);

  struct TrackingMEs {
    MonitorElement* TrackingFlag;
  };

  struct TrackingLSMEs {
    MonitorElement* TrackingFlag;
  };

  std::map<std::string, TrackingMEs> TrackingMEsMap;
  std::map<std::string, TrackingLSMEs> TrackingLSMEsMap;

  MonitorElement* TrackingCertification;
  MonitorElement* TrackingCertificationSummaryMap;

  MonitorElement* TrackingLSCertification;

  edm::ParameterSet pSet_;

  bool trackingCertificationBooked_;
  bool trackingLSCertificationBooked_;
  int nFEDConnected_;
  bool allPixelFEDConnected_;
  bool verbose_;
  std::string TopFolderName_;

  bool checkPixelFEDs_;

  unsigned long long m_cacheID_;

  edm::ESGetToken<RunInfo, RunInfoRcd> runInfoToken_;
  const RunInfo* sumFED_ = nullptr;
  edm::ESGetToken<SiStripDetCabling, SiStripDetCablingRcd> detCablingToken_;
  edm::ESWatcher<SiStripDetCablingRcd> fedDetCablingWatcher_;
  const SiStripDetCabling* detCabling_;

  std::vector<std::string> SubDetFolder;
};
#endif