Go to the documentation of this file.00001 #ifndef _SiPixelDataQuality_h_
00002 #define _SiPixelDataQuality_h_
00003
00004 #include "DQMServices/Core/interface/MonitorElement.h"
00005
00006 #include "DQM/SiPixelMonitorClient/interface/SiPixelConfigParser.h"
00007 #include "DQM/SiPixelMonitorClient/interface/SiPixelConfigWriter.h"
00008 #include "DQM/SiPixelMonitorClient/interface/SiPixelActionExecutor.h"
00009 #include "DQM/SiPixelMonitorClient/interface/SiPixelLayoutParser.h"
00010
00011 #include "FWCore/Framework/interface/Event.h"
00012 #include "FWCore/Framework/interface/EventSetup.h"
00013 #include "FWCore/Framework/interface/ESHandle.h"
00014 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00015
00016 #include "DataFormats/SiPixelDigi/interface/PixelDigi.h"
00017 #include "DataFormats/Common/interface/DetSetVector.h"
00018 #include "CondFormats/DataRecord/interface/SiPixelFedCablingMapRcd.h"
00019 #include "CondFormats/SiPixelObjects/interface/DetectorIndex.h"
00020 #include "CondFormats/SiPixelObjects/interface/SiPixelFedCablingMap.h"
00021 #include "CondFormats/SiPixelObjects/interface/SiPixelFrameConverter.h"
00022
00023 #include "xgi/Utils.h"
00024 #include "xgi/Method.h"
00025
00026 #include "TCanvas.h"
00027 #include "TPaveText.h"
00028 #include "TF1.h"
00029 #include "TH2F.h"
00030 #include "TGaxis.h"
00031
00032 #include <fstream>
00033 #include <sstream>
00034 #include <map>
00035 #include <vector>
00036 #include <string>
00037 #include <map>
00038 #include <boost/cstdint.hpp>
00039
00040 class DQMStore;
00041 class SiPixelEDAClient;
00042 class SiPixelWebInterface;
00043 class SiPixelHistoPlotter;
00044 class SiPixelDataQuality {
00045
00046 public:
00047
00048 SiPixelDataQuality( bool offlineXMLfile);
00049 ~SiPixelDataQuality();
00050
00051 int getDetId( MonitorElement * mE) ;
00052
00053 void bookGlobalQualityFlag (DQMStore * bei,
00054 bool Tier0Flag,
00055 int nFEDs);
00056
00057 void computeGlobalQualityFlag (DQMStore * bei,
00058 bool init,
00059 int nFEDs,
00060 bool Tier0Flag);
00061
00062 void computeGlobalQualityFlagByLumi (DQMStore * bei,
00063 bool init,
00064 int nFEDs,
00065 bool Tier0Flag,
00066 int nEvents_lastLS_,
00067 int nErrorsBarrel_lastLS_,
00068 int nErrorsEndcap_lastLS_);
00069
00070 void fillGlobalQualityPlot (DQMStore * bei,
00071 bool init,
00072 edm::EventSetup const & eSetup,
00073 int nFEDs,
00074 bool Tier0Flag,
00075 int lumisec);
00076
00077 private:
00078
00079 bool offlineXMLfile_;
00080
00081
00082 TH2F * allmodsMap;
00083 TH2F * errmodsMap;
00084 TH2F * goodmodsMap;
00085 TH1D * allmodsVec;
00086 TH1D * errmodsVec;
00087 TH1D * goodmodsVec;
00088 int count;
00089 int errcount;
00090 bool gotDigis;
00091
00092 int objectCount_;
00093 bool DONE_;
00094
00095
00096 ofstream myfile_;
00097 int nevents_;
00098 bool endOfModules_;
00099 edm::ESHandle<SiPixelFedCablingMap> theCablingMap;
00100
00101
00102 MonitorElement * SummaryReportMap;
00103 MonitorElement * SummaryPixel;
00104 MonitorElement * SummaryBarrel;
00105 MonitorElement * SummaryEndcap;
00106 MonitorElement * ClusterModAll;
00107 MonitorElement * ClusterMod1;
00108 MonitorElement * ClusterMod2;
00109 MonitorElement * ClusterMod3;
00110 MonitorElement * ClusterMod4;
00111
00112 float qflag_;
00113 int allMods_, errorMods_, barrelMods_, endcapMods_;
00114
00115
00116 MonitorElement * FEDErrReportMap;
00117 MonitorElement * NErrorsBarrel;
00118 MonitorElement * NErrorsEndcap;
00119 MonitorElement * NErrorsFEDs;
00120 int n_errors_barrel_, n_errors_endcap_, n_errors_pixel_;
00121 float barrel_error_flag_, endcap_error_flag_, pixel_error_flag_;
00122
00123 bool digiStatsBarrel, clusterStatsBarrel, trackStatsBarrel;
00124 int digiCounterBarrel, clusterCounterBarrel, trackCounterBarrel;
00125 bool digiStatsEndcap, clusterStatsEndcap, trackStatsEndcap;
00126 int digiCounterEndcap, clusterCounterEndcap, trackCounterEndcap;
00127
00128
00129 MonitorElement * NDigisBarrel;
00130 MonitorElement * NDigisEndcap;
00131 MonitorElement * DigiChargeBarrel;
00132 MonitorElement * DigiChargeEndcap;
00133
00134
00135 MonitorElement * ClusterSizeBarrel;
00136 MonitorElement * ClusterSizeEndcap;
00137 MonitorElement * ClusterChargeBarrel;
00138 MonitorElement * ClusterChargeEndcap;
00139 MonitorElement * NClustersBarrel;
00140 MonitorElement * NClustersEndcap;
00141
00142
00143 MonitorElement * NPixelTracks;
00144
00145 int count1;
00146 int count2;
00147 int count3;
00148 int count4;
00149 int count5;
00150 int count6;
00151
00152 int timeoutCounter_;
00153 int modCounter_;
00154 int lastLS_;
00155 float lasterrmods_[40];
00156 float lastallmods_[40];
00157
00158 };
00159 #endif