00001 #ifndef DTDCSByLumiTask_H 00002 #define DTDCSByLumiTask_H 00003 00004 /* 00005 * \file DTDCSByLumiTask.h 00006 * 00007 * $Date: 2011/03/02 13:56:39 $ 00008 * $Revision: 1.1 $ 00009 * \author C. Battilana - CIEMAT 00010 * \author P. Bellan - INFN PD 00011 * \author A. Branca = INFN PD 00012 * 00013 */ 00014 00015 #include "FWCore/Framework/interface/Frameworkfwd.h" 00016 #include <FWCore/Framework/interface/EDAnalyzer.h> 00017 #include <DataFormats/Common/interface/Handle.h> 00018 #include <FWCore/Framework/interface/ESHandle.h> 00019 #include <FWCore/Framework/interface/Event.h> 00020 #include <FWCore/Framework/interface/MakerMacros.h> 00021 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00022 00023 #include <FWCore/Framework/interface/LuminosityBlock.h> 00024 00025 #include <vector> 00026 00027 class DTGeometry; 00028 class DQMStore; 00029 class MonitorElement; 00030 class DTHVStatus; 00031 00032 class DTDCSByLumiTask: public edm::EDAnalyzer{ 00033 00034 public: 00035 00037 DTDCSByLumiTask(const edm::ParameterSet& ps); 00038 00040 virtual ~DTDCSByLumiTask(); 00041 00042 protected: 00043 00045 void beginJob(); 00046 00048 void beginRun(const edm::Run&, const edm::EventSetup&); 00049 00051 void bookHistos(); 00052 00054 void beginLuminosityBlock(edm::LuminosityBlock const& lumiSeg, edm::EventSetup const& context) ; 00055 00057 void endLuminosityBlock(const edm::LuminosityBlock& lumiSeg, const edm::EventSetup& setup); 00058 00060 void analyze(const edm::Event& e, const edm::EventSetup& c); 00061 00063 void endJob(); 00064 00065 private: 00066 00067 std::string topFolder() const; 00068 00069 int theEvents; 00070 int theLumis; 00071 00072 bool DTHVRecordFound; 00073 00074 DQMStore* theDQMStore; 00075 edm::ESHandle<DTGeometry> theDTGeom; 00076 // CB Get HV DB and loop on half layers 00077 edm::ESHandle<DTHVStatus> hvStatus; 00078 00079 std::vector<MonitorElement*> hActiveUnits; 00080 00081 }; 00082 00083 #endif