File indexing completed on 2024-04-06 11:59:36
0001 #ifndef SiPixelStatusManager_H
0002 #define SiPixelStatusManager_H
0003
0004
0005
0006
0007
0008
0009
0010 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0011 #include "FWCore/Framework/interface/LuminosityBlock.h"
0012 #include "FWCore/Framework/interface/ConsumesCollector.h"
0013 #include "DataFormats/Provenance/interface/LuminosityBlockID.h"
0014 #include <string>
0015 #include <map>
0016 #include <utility>
0017 #include <iostream>
0018 #include <algorithm> // std::sort
0019 #include <vector> // std::vector
0020
0021
0022 #include "CalibTracker/SiPixelQuality/interface/SiPixelDetectorStatus.h"
0023
0024 class SiPixelStatusManager {
0025 public:
0026 SiPixelStatusManager();
0027 SiPixelStatusManager(const edm::ParameterSet&, edm::ConsumesCollector&&);
0028 virtual ~SiPixelStatusManager();
0029
0030 void reset();
0031 void readLumi(const edm::LuminosityBlock&);
0032
0033 void createPayloads();
0034
0035 const std::map<edm::LuminosityBlockNumber_t, SiPixelDetectorStatus>& getBadComponents() { return siPixelStatusMap_; }
0036 const std::map<edm::LuminosityBlockNumber_t, std::map<int, std::vector<int>>>& getFEDerror25Rocs() {
0037 return FEDerror25Map_;
0038 }
0039
0040 typedef std::map<edm::LuminosityBlockNumber_t, SiPixelDetectorStatus>::iterator siPixelStatusMap_iterator;
0041 typedef std::map<edm::LuminosityBlockNumber_t, std::map<int, std::vector<int>>>::iterator FEDerror25Map_iterator;
0042 typedef std::vector<SiPixelDetectorStatus>::iterator siPixelStatusVtr_iterator;
0043
0044 private:
0045 static bool rankByLumi(SiPixelDetectorStatus status1, SiPixelDetectorStatus status2);
0046 void createFEDerror25();
0047 void createBadComponents();
0048
0049 std::vector<SiPixelDetectorStatus> siPixelStatusVtr_;
0050 std::map<edm::LuminosityBlockNumber_t, SiPixelDetectorStatus> siPixelStatusMap_;
0051 std::map<edm::LuminosityBlockNumber_t, std::map<int, std::vector<int>>> FEDerror25Map_;
0052
0053 std::string outputBase_;
0054 int aveDigiOcc_;
0055 int nLumi_;
0056 std::string moduleName_;
0057 std::string label_;
0058
0059 edm::EDGetTokenT<SiPixelDetectorStatus> siPixelStatusToken_;
0060 };
0061
0062 #endif