Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 11:59:36

0001 #ifndef SiPixelStatusManager_H
0002 #define SiPixelStatusManager_H
0003 
0004 /** \class SiPixelStatusManager
0005  *  
0006  *
0007  *  \author 
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 //Data format
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