00001 #ifndef HCALDIGITESTER_H 00002 #define HCALDIGITESTER_H 00003 00004 // user include files 00005 00006 #include "FWCore/Framework/interface/Event.h" 00007 #include "FWCore/Framework/interface/ESHandle.h" 00008 #include "FWCore/Framework/interface/EDAnalyzer.h" 00009 00010 #include "Geometry/CaloGeometry/interface/CaloGeometry.h" 00011 #include "CalibFormats/HcalObjects/interface/HcalDbService.h" 00012 #include "DQMServices/Core/interface/DQMStore.h" 00013 #include <map> 00014 #include "Validation/HcalDigis/src/HcalSubdetDigiMonitor.h" 00015 00016 class HcalDigiTester : public edm::EDAnalyzer { 00017 public: 00018 explicit HcalDigiTester(const edm::ParameterSet&); 00019 ~HcalDigiTester(); 00020 virtual void analyze(const edm::Event&, const edm::EventSetup&); 00021 virtual void beginJob(const edm::EventSetup&) ; 00022 template<class Digi> void reco(const edm::Event&, const edm::EventSetup&); 00023 virtual void endJob() ; 00024 00025 00026 private: 00027 00028 double dR(double eta1, double phi1, double eta2, double phi2); 00029 00030 // choose the correct subdet 00031 HcalSubdetDigiMonitor * monitor(); 00032 00033 DQMStore* dbe_; 00034 00035 edm::InputTag inputTag_; 00036 std::string outputFile_; 00037 std::string hcalselector_; 00038 std::string zside_; 00039 int noise_; // flag to distinguish between 00040 // particular subdet only case and "global" noise one 00041 00042 edm::ESHandle<CaloGeometry> geometry ; 00043 edm::ESHandle<HcalDbService> conditions; 00044 float pedvalue; 00045 int nevent1; 00046 int nevent2; 00047 int nevent3; 00048 int nevent4; 00049 std::map<std::string, HcalSubdetDigiMonitor*> monitors_; 00050 00051 }; 00052 00053 #endif 00054