File indexing completed on 2024-04-06 11:59:36
0001 #ifndef SIPIXELDETECTORSTATUS_h
0002 #define SIPIXELDETECTORSTATUS_h
0003
0004 #include <ctime>
0005 #include <map>
0006 #include <string>
0007
0008 #include "CalibTracker/SiPixelQuality/interface/SiPixelModuleStatus.h"
0009
0010
0011 class SiPixelDetectorStatus {
0012 public:
0013 SiPixelDetectorStatus();
0014 ~SiPixelDetectorStatus();
0015
0016
0017 void resetDetectorStatus();
0018
0019 void updateDetectorStatus(SiPixelDetectorStatus newData);
0020
0021
0022 void readFromFile(std::string filename);
0023 void dumpToFile(std::ofstream& outFile);
0024
0025
0026
0027
0028 void addModule(int detid, int nrocs);
0029
0030 void addModule(int detid, SiPixelModuleStatus a);
0031
0032 bool findModule(int detid);
0033 SiPixelModuleStatus* getModule(int detid);
0034
0035
0036 void fillDIGI(int detid, int roc);
0037
0038 void fillFEDerror25(int detid, PixelFEDChannel ch);
0039
0040
0041 std::map<int, SiPixelModuleStatus> getDetectorStatus() { return fModules_; }
0042
0043 std::map<int, std::vector<int>> getFEDerror25Rocs();
0044
0045 unsigned long int digiOccDET() { return fDetHits_; }
0046
0047 void setNevents(unsigned long int N) { ftotalevents_ = N; }
0048 unsigned long int getNevents() { return ftotalevents_; }
0049
0050
0051 int nmodules();
0052
0053 double perRocDigiOcc();
0054 double perRocDigiOccVar();
0055
0056
0057 void setRunRange(int run0, int run1) {
0058 fRun0_ = run0;
0059 fRun1_ = run1;
0060 }
0061 std::pair<int, int> getRunRange() { return std::make_pair(fRun0_, fRun1_); }
0062
0063 void setLSRange(int ls0, int ls1) {
0064 fLS0_ = ls0;
0065 fLS1_ = ls1;
0066 }
0067 std::pair<int, int> getLSRange() { return std::make_pair(fLS0_, fLS1_); }
0068
0069
0070 std::map<int, SiPixelModuleStatus>::iterator begin();
0071 std::map<int, SiPixelModuleStatus>::iterator next();
0072 std::map<int, SiPixelModuleStatus>::iterator end();
0073
0074 private:
0075 std::map<int, SiPixelModuleStatus> fModules_;
0076
0077
0078 int fLS0_, fLS1_;
0079
0080 int fRun0_, fRun1_;
0081
0082
0083 unsigned long int ftotalevents_;
0084
0085
0086 unsigned long int fDetHits_;
0087 };
0088
0089 #endif