CMS 3D CMS Logo

CSCDQM_EventProcessor.h

Go to the documentation of this file.
00001 /*
00002  * =====================================================================================
00003  *
00004  *       Filename:  EventProcessor.h
00005  *
00006  *    Description:  Object which processes Event and provides Hits to
00007  *    HitHandler object.
00008  *
00009  *        Version:  1.0
00010  *        Created:  10/03/2008 10:26:04 AM
00011  *       Revision:  none
00012  *       Compiler:  gcc
00013  *
00014  *         Author:  Valdas Rapsevicius, valdas.rapsevicius@cern.ch
00015  *        Company:  CERN, CH
00016  *
00017  * =====================================================================================
00018  */
00019 
00020 #ifndef CSCDQM_EventProcessor_H
00021 #define CSCDQM_EventProcessor_H
00022 
00023 #include <set>
00024 #include <string>
00025 #include <math.h>
00026 
00027 #include <TString.h>
00028 
00029 #ifdef DQMGLOBAL
00030 
00031 #include "FWCore/Framework/interface/Event.h"
00032 #include "DataFormats/FEDRawData/interface/FEDNumbering.h"
00033 #include "DataFormats/FEDRawData/interface/FEDRawDataCollection.h"
00034 #include "EventFilter/CSCRawToDigi/interface/CSCDCCEventData.h"
00035 
00036 #endif
00037 
00038 #include "DQM/CSCMonitorModule/interface/CSCDQM_Logger.h"
00039 #include "DQM/CSCMonitorModule/interface/CSCDQM_Summary.h"
00040 #include "DQM/CSCMonitorModule/interface/CSCDQM_StripClusterFinder.h"
00041 #include "DQM/CSCMonitorModule/interface/CSCDQM_Configuration.h"
00042 #include "DQM/CSCMonitorModule/interface/CSCDQM_Configuration.h"
00043 
00044 #include "EventFilter/CSCRawToDigi/interface/CSCDCCExaminer.h"
00045 #include "EventFilter/CSCRawToDigi/interface/CSCDDUEventData.h"
00046 #include "EventFilter/CSCRawToDigi/interface/CSCCFEBTimeSlice.h"
00047 #include "EventFilter/CSCRawToDigi/interface/CSCCFEBData.h"
00048 
00049 namespace cscdqm {
00050 
00051   typedef std::map<std::string, uint32_t> CSCCounters;
00052 
00057   class EventProcessor {
00058 
00059 // ===================================================================================================
00060 // General stuff 
00061 // ===================================================================================================
00062 
00063     public:
00064       
00065       EventProcessor(Configuration* const p_config);
00066       ~EventProcessor() { }
00067 
00068       void init();
00069       void updateFractionHistos();
00070       void updateEfficiencyHistos();
00071       void updateFractionAndEfficiencyHistos() {
00072         updateFractionHistos();
00073         updateEfficiencyHistos();
00074       }
00075 
00076     private:
00077       
00078       void processExaminer(const uint16_t *data, const uint32_t dataSize, bool& eventDenied); 
00079       void processDDU(const CSCDDUEventData& data);
00080       void processCSC(const CSCEventData& data, const int dduID);
00081 
00082       void calcEMUFractionHisto(const HistoId& result, const HistoId& set, const HistoId& subset);
00083 
00084       const bool getEMUHisto(const HistoId& histo, MonitorObject*& me);
00085       const bool getDDUHisto(const HistoId& histo, const HwId& dduID, MonitorObject*& me);
00086       const bool getCSCHisto(const HistoId& histo, const HwId& crateID, const HwId& dmbSlot, MonitorObject*& me);
00087       const bool getCSCHisto(const HistoId& histo, const HwId& crateID, const HwId& dmbSlot, const HwId& adId, MonitorObject*& me);
00088       const bool getParHisto(const HistoId& histo, MonitorObject*& me);
00089 
00090       const bool getCSCFromMap(const unsigned int& crateId, const unsigned int& dmbId, unsigned int& cscType, unsigned int& cscPosition) const;
00091 
00092       Configuration* config;
00093       Summary summary;
00094 
00095       bool bCSCEventCounted;
00096 
00097       std::map<std::string, uint32_t> nDMBEvents;
00098       std::map<std::string, CSCCounters> cscCntrs;
00099 
00100       CSCDCCExaminer binChecker;
00101 
00102       std::map<uint32_t, uint32_t> L1ANumbers;
00103       uint32_t L1ANumber;
00104       uint32_t BXN;
00105       bool fFirstEvent;
00106       bool fCloseL1As; // Close L1A bit from DDU Trailer
00107       
00108 // ===================================================================================================
00109 // Local ONLY stuff 
00110 // ===================================================================================================
00111 
00112 #ifdef DQMLOCAL
00113 
00114     public:
00115 
00116       void processEvent(const char* data, const int32_t dataSize, const uint32_t errorStat, const int32_t nodeNumber);
00117 
00118 #endif      
00119 
00120 // ===================================================================================================
00121 // Global ONLY stuff 
00122 // ===================================================================================================
00123 
00124 #ifdef DQMGLOBAL
00125 
00126     public:
00127 
00128       void processEvent(const edm::Event& e, const edm::InputTag& inputTag);
00129 
00130 #endif      
00131 
00132   };
00133 
00134 }
00135 
00136 #endif

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