00001 #ifndef SiStripMonitorPedestals_SiStripMonitorPedestals_h 00002 #define SiStripMonitorPedestals_SiStripMonitorPedestals_h 00003 // -*- C++ -*- 00004 // 00005 // Package: SiStripMonitorPedestals 00006 // Class : SiStripMonitorPedestals 00007 // 00016 // 00017 // Original Author: gennai, dutta 00018 // Created: Sat Feb 4 20:49:51 CET 2006 00019 // $Id: SiStripMonitorPedestals.h,v 1.16 2009/11/05 21:08:28 dutta Exp $ 00020 // 00021 00022 // system include files 00023 #include <memory> 00024 00025 // user include files 00026 #include "FWCore/Framework/interface/Frameworkfwd.h" 00027 #include "FWCore/Framework/interface/EDAnalyzer.h" 00028 #include "FWCore/Framework/interface/ESHandle.h" 00029 #include "FWCore/Framework/interface/Event.h" 00030 #include "FWCore/Framework/interface/MakerMacros.h" 00031 00032 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00033 00034 00035 // data formats 00036 #include "DataFormats/FEDRawData/interface/FEDRawDataCollection.h" 00037 #include "DataFormats/Common/interface/DetSetVector.h" 00038 #include "DataFormats/SiStripDigi/interface/SiStripDigi.h" 00039 #include "DataFormats/SiStripDigi/interface/SiStripRawDigi.h" 00040 00041 // cabling 00042 #include "CalibTracker/Records/interface/SiStripDetCablingRcd.h" 00043 #include "CalibFormats/SiStripObjects/interface/SiStripDetCabling.h" 00044 00045 00046 #include "boost/cstdint.hpp" 00047 #include <iomanip> 00048 #include <string> 00049 00050 class ApvAnalysisFactory; 00051 class MonitorElement; 00052 class DQMStore; 00053 class SiStripDetCabling; 00054 00055 class SiStripMonitorPedestals : public edm::EDAnalyzer { 00056 public: 00057 explicit SiStripMonitorPedestals(const edm::ParameterSet&); 00058 ~SiStripMonitorPedestals(); 00059 00060 virtual void beginJob() ; 00061 virtual void beginRun(edm::Run const& run, edm::EventSetup const& eSetup); 00062 virtual void analyze(const edm::Event&, const edm::EventSetup&); 00063 virtual void endRun(edm::Run const& run, edm::EventSetup const& eSetup); 00064 virtual void endJob() ; 00065 00066 00067 private: 00068 00069 void resetMEs(uint32_t idet); 00070 void createMEs(); 00071 void fillCondDBMEs(edm::EventSetup const& eSetup); 00072 00073 struct ModMEs{ 00074 MonitorElement* PedsPerStrip; 00075 MonitorElement* PedsDistribution; 00076 MonitorElement* PedsEvolution; 00077 00078 MonitorElement* CMSubNoisePerStrip; 00079 MonitorElement* RawNoisePerStrip; 00080 MonitorElement* CMSubNoiseProfile; 00081 MonitorElement* RawNoiseProfile; 00082 MonitorElement* NoisyStrips; 00083 MonitorElement* NoisyStripDistribution; 00084 00085 MonitorElement* CMDistribution; 00086 MonitorElement* CMSlopeDistribution; 00087 00088 00089 //MonitorElements for CondDB data display 00090 MonitorElement* PedsPerStripDB; 00091 MonitorElement* CMSubNoisePerStripDB; 00092 MonitorElement* BadStripsDB; 00093 }; 00094 00095 DQMStore* dqmStore_; 00096 edm::ParameterSet conf_; 00097 std::map<uint32_t, ModMEs> PedMEs; 00098 edm::ESHandle<SiStripDetCabling> detcabling; 00099 edm::ParameterSet pedsPSet_; 00100 bool analyzed; 00101 bool firstEvent; 00102 00103 //The following to be put inside the parametersets 00104 int16_t nEvUpdate_; 00105 int16_t signalCutPeds_; 00106 int16_t nEvTot_; 00107 int16_t nEvInit_; 00108 int nIteration_; 00109 ApvAnalysisFactory* apvFactory_; 00110 int theEventInitNumber_; 00111 int theEventIterNumber_; 00112 int NumCMstripsInGroup_; 00113 std::string runTypeFlag_; 00114 std::string outPutFileName; 00115 unsigned long long m_cacheID_; 00116 00117 static const std::string RunMode1; 00118 static const std::string RunMode2; 00119 static const std::string RunMode3; 00120 00121 }; 00122 00123 #endif