CMS 3D CMS Logo

CSCMonitorModule.h

Go to the documentation of this file.
00001 /*
00002  * =====================================================================================
00003  *
00004  *       Filename:  CSCMonitorModule.h
00005  *
00006  *    Description: Main object of CSC DQM Monitor 
00007  *
00008  *        Version:  1.0
00009  *        Created:  04/18/2008 02:19:16 PM
00010  *       Revision:  none
00011  *       Compiler:  gcc
00012  *
00013  *         Author:  Valdas Rapsevicius (VR), Valdas.Rapsevicius@cern.ch
00014  *        Company:  CERN, CH
00015  *
00016  * =====================================================================================
00017  */
00018 
00019 #ifndef CSCMonitorModule_H
00020 #define CSCMonitorModule_H
00021 
00026 #include <memory>
00027 #include <iostream>
00028 #include <sstream>
00029 #include <fstream>
00030 #include <string>
00031 #include <vector>
00032 #include <map>
00033 #include <math.h>
00034 #include <bitset>
00035 
00036 #include <FWCore/Framework/interface/EDAnalyzer.h>
00037 #include <DQMServices/Core/interface/DQMStore.h>
00038 #include <DQMServices/Core/interface/MonitorElement.h>
00039 #include <FWCore/ServiceRegistry/interface/Service.h>
00040 #include <FWCore/ParameterSet/interface/ParameterSet.h>
00041 #include <FWCore/MessageLogger/interface/MessageLogger.h>
00042 
00043 #include "FWCore/Framework/interface/Event.h"
00044 #include "FWCore/Framework/interface/EventSetup.h"
00045 #include "FWCore/Framework/interface/Frameworkfwd.h"
00046 #include "DataFormats/FEDRawData/interface/FEDRawData.h"
00047 #include "DataFormats/FEDRawData/interface/FEDNumbering.h"
00048 #include "DataFormats/FEDRawData/interface/FEDRawDataCollection.h"
00049 #include "EventFilter/CSCRawToDigi/interface/CSCDCCEventData.h"
00050 #include "EventFilter/CSCRawToDigi/interface/CSCDCCExaminer.h"
00051 #include "EventFilter/CSCRawToDigi/interface/CSCCFEBData.h"
00052 #include "EventFilter/CSCRawToDigi/interface/CSCCFEBTimeSlice.h"
00053 
00054 #include "CondFormats/CSCObjects/interface/CSCCrateMap.h"
00055 #include "CondFormats/DataRecord/interface/CSCCrateMapRcd.h"
00056 #include "FWCore/Framework/interface/ESHandle.h"
00057 #include "DQM/CSCMonitorModule/interface/CSCDQM_Summary.h"
00058 #include "DQM/CSCMonitorModule/interface/CSCUtility.h"
00059 
00064 #define LOGERROR(cat)      edm::LogError (cat)
00065 #define LOGWARNING(cat)    edm::LogWarning (cat)
00066 #define LOGINFO(cat)       edm::LogInfo (cat)
00067 #define LOGDEBUG(cat)      LogDebug (cat)
00068 
00069 #define SUMMARY_FOLDER     "Summary/"
00070 #define DDU_FOLDER         "DDUs/"
00071 #define EVENTINFO_FOLDER   "EventInfo/"
00072 #define SUMCONTENTS_FOLDER "EventInfo/reportSummaryContents/"
00073 
00078 class CSCMonitorModule: public edm::EDAnalyzer {
00079 
00080   public:
00081 
00082     CSCMonitorModule(const edm::ParameterSet& ps);
00083     virtual ~CSCMonitorModule();
00084 
00085   protected:
00086 
00087     void beginJob(const edm::EventSetup& c);
00088     void beginRun(const edm::Run& r, const edm::EventSetup& c);
00089     void setup();
00090     void analyze(const edm::Event& e, const edm::EventSetup& c) ;
00091     void beginLuminosityBlock(const edm::LuminosityBlock& lumiSeg, const edm::EventSetup& context) ;
00092     void endRun(const edm::Run& r, const edm::EventSetup& c);
00093     void endJob();
00094 
00095   private:
00096 
00097     int loadCollection();    
00098     void printCollection();
00099     void book(const std::string prefix);
00100     const bool isMEValid(const std::string name, MonitorElement*& me);
00101     const bool getCSCFromMap(const int crate, const int slot, int& csctype, int& cscposition) const;
00102 
00104     void monitorEvent(const edm::Event& e) ;
00105     void monitorDCC(const CSCDCCEventData& dccEvent);
00106     void monitorDDU(const CSCDDUEventData& dduEvent);
00107     void monitorCSC(const CSCEventData&    cscEvent, const int32_t& dduID);
00108     bool monitorExaminer(CSCDCCExaminer& examiner);
00109     void updateFracHistos();
00110 
00112     edm::ParameterSet  parameters;
00113     edm::ParameterSet  effParameters;
00114     DQMStore*          dbe;
00115     std::string        monitorName;
00116     std::string        rootDir;
00117     std::string        bookingFile;
00118 
00120     bool init;
00121 
00123     bool            hitBookDDU;
00124 
00126     Bitset32        fractUpdateKey;
00127     uint32_t        fractUpdateEvF;
00128     
00130     edm::InputTag   inputObjectsTag;
00131 
00133     unsigned int    examinerMask;
00134     bool            examinerForce;
00135     bool            examinerOutput;
00136     Bitset32        examinerCRCKey;
00137 
00139     const CSCCrateMap* pcrate;
00140 
00142     HistoDefMap collection;
00143 
00145     uint32_t                     nEvents;
00146     uint32_t                     nCSCEvents;
00147     bool                         bCSCEventCounted;
00148     uint32_t                     L1ANumber;
00149     std::map<uint32_t,uint32_t>  L1ANumbers;
00150 
00152     const bool MEEMU(const std::string name, MonitorElement*& me);
00153     const bool MEDDU(const unsigned int dduId, const std::string name, MonitorElement*& me);
00154     const bool MEEventInfo(const std::string name, MonitorElement*& me);
00155     const bool MEReportSummaryContents(const std::string name, MonitorElement*& me);
00156 
00158     cscdqm::Summary summary;
00159     
00160 };
00161 
00162 #endif

Generated on Tue Jun 9 17:32:32 2009 for CMSSW by  doxygen 1.5.4