Go to the documentation of this file.00001 #ifndef DTMonitorModule_DTBlockedROChannelsTest_H
00002 #define DTMonitorModule_DTBlockedROChannelsTest_H
00003
00013 #include <FWCore/Framework/interface/EDAnalyzer.h>
00014 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00015 #include <FWCore/Framework/interface/Event.h>
00016 #include "FWCore/Framework/interface/ESHandle.h"
00017 #include <FWCore/Framework/interface/EventSetup.h>
00018 #include <FWCore/Framework/interface/LuminosityBlock.h>
00019 #include "DataFormats/MuonDetId/interface/DTChamberId.h"
00020
00021 class DQMStore;
00022 class MonitorElement;
00023 class DTReadOutMapping;
00024 class DTTimeEvolutionHisto;
00025
00026 class DTBlockedROChannelsTest: public edm::EDAnalyzer{
00027
00028 public:
00029
00031 DTBlockedROChannelsTest(const edm::ParameterSet& ps);
00032
00034 ~DTBlockedROChannelsTest();
00035
00036 protected:
00037
00039 void beginJob();
00040
00042 void beginRun(const edm::Run& run, const edm::EventSetup& c);
00043
00045 void analyze(const edm::Event& e, const edm::EventSetup& c);
00046
00048 void endJob();
00049
00050 void beginLuminosityBlock(edm::LuminosityBlock const& lumiSeg, edm::EventSetup const& context) ;
00051
00053 void performClientDiagnostic();
00054
00056 void endLuminosityBlock(edm::LuminosityBlock const& lumiSeg, edm::EventSetup const& c);
00057
00059 void endRun(edm::Run const& run, edm::EventSetup const& eSetup);
00060
00061 private:
00062 int readOutToGeometry(int dduId, int rosNumber, int& wheel, int& sector);
00063
00064 private:
00065
00066
00067 int nupdates;
00068
00069
00070 int prescaleFactor;
00071
00072 int nevents;
00073 int neventsPrev;
00074 unsigned int nLumiSegs;
00075 unsigned int prevNLumiSegs;
00076 double prevTotalPerc;
00077
00078 int run;
00079
00080
00081 DQMStore* dbe;
00082 edm::ESHandle<DTReadOutMapping> mapping;
00083
00084
00085
00086 std::map<int, MonitorElement*> wheelHitos;
00087 MonitorElement *summaryHisto;
00088
00089 bool offlineMode;
00090
00091 std::map<int, double> resultsPerLumi;
00092 DTTimeEvolutionHisto* hSystFractionVsLS;
00093
00094
00095 class DTRobBinsMap {
00096 public:
00097 DTRobBinsMap(const int fed, const int ros, const DQMStore* dbe);
00098
00099 DTRobBinsMap();
00100
00101
00102 ~DTRobBinsMap();
00103
00104
00105 void addRobBin(int robBin);
00106
00107 bool robChanged(int robBin);
00108
00109 double getChamberPercentage();
00110
00111 void readNewValues();
00112
00113 private:
00114 int getValueRobBin(int robBin) const;
00115 int getValueRos() const;
00116
00117 int rosBin;
00118
00119 std::map<int, int> robsAndValues;
00120 int rosValue;
00121
00122 const MonitorElement* meROS;
00123 const MonitorElement* meDDU;
00124
00125 std::string rosHName;
00126 std::string dduHName;
00127
00128 const DQMStore* theDbe;
00129 };
00130
00131 std::map<DTChamberId, DTRobBinsMap> chamberMap;
00132
00133 };
00134
00135 #endif