CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_10/src/DQM/SiPixelMonitorClient/interface/SiPixelDataQuality.h

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   // Final combined Data Quality Flags:
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   // FEDErrors Cuts:
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   // Digis Cuts:
00129   MonitorElement * NDigisBarrel;
00130   MonitorElement * NDigisEndcap;
00131   MonitorElement * DigiChargeBarrel;
00132   MonitorElement * DigiChargeEndcap;
00133   
00134   // Cluster Cuts:
00135   MonitorElement * ClusterSizeBarrel;
00136   MonitorElement * ClusterSizeEndcap;
00137   MonitorElement * ClusterChargeBarrel;
00138   MonitorElement * ClusterChargeEndcap;
00139   MonitorElement * NClustersBarrel;
00140   MonitorElement * NClustersEndcap;
00141   
00142   // Track Cuts:
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