00001 #ifndef SimG4CMS_HcalSimHitStudy_H 00002 #define SimG4CMS_HcalSimHitStudy_H 00003 00004 #include "FWCore/Framework/interface/Frameworkfwd.h" 00005 #include "FWCore/Framework/interface/EDAnalyzer.h" 00006 00007 #include "FWCore/Framework/interface/Event.h" 00008 #include "FWCore/Framework/interface/EventSetup.h" 00009 #include "FWCore/Framework/interface/ESHandle.h" 00010 #include "FWCore/Framework/interface/MakerMacros.h" 00011 00012 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00013 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00014 00015 #include "DQMServices/Core/interface/DQMStore.h" 00016 #include "DQMServices/Core/interface/MonitorElement.h" 00017 #include "FWCore/ServiceRegistry/interface/Service.h" 00018 00019 #include "SimDataFormats/CaloHit/interface/PCaloHit.h" 00020 #include "SimDataFormats/CaloHit/interface/PCaloHitContainer.h" 00021 00022 #include <iostream> 00023 #include <fstream> 00024 #include <vector> 00025 #include <map> 00026 #include <string> 00027 00028 class HcalSimHitStudy: public edm::EDAnalyzer{ 00029 public: 00030 00031 HcalSimHitStudy(const edm::ParameterSet& ps); 00032 ~HcalSimHitStudy(); 00033 00034 protected: 00035 00036 void beginJob (const edm::EventSetup& c); 00037 void endJob (); 00038 void analyze (const edm::Event& e, const edm::EventSetup& c); 00039 00040 void analyzeHits (std::vector<PCaloHit> &); 00041 00042 private: 00043 00044 std::string g4Label, hcalHits, outFile_; 00045 bool verbose_, checkHit_; 00046 DQMStore *dbe_; 00047 00048 MonitorElement *meAllNHit_, *meBadDetHit_, *meBadSubHit_, *meBadIdHit_; 00049 MonitorElement *meHBNHit_, *meHENHit_, *meHONHit_, *meHFNHit_; 00050 MonitorElement *meDetectHit_, *meSubdetHit_, *meDepthHit_, *meEtaHit_; 00051 MonitorElement *mePhiHit_, *meEnergyHit_, *meTimeHit_, *meTimeWHit_; 00052 MonitorElement *meHBDepHit_, *meHEDepHit_, *meHODepHit_, *meHFDepHit_; 00053 MonitorElement *meHBEtaHit_, *meHEEtaHit_, *meHOEtaHit_, *meHFEtaHit_; 00054 MonitorElement *meHBPhiHit_, *meHEPhiHit_, *meHOPhiHit_, *meHFPhiHit_; 00055 MonitorElement *meHBEneHit_, *meHEEneHit_, *meHOEneHit_, *meHFEneHit_; 00056 MonitorElement *meHBTimHit_, *meHETimHit_, *meHOTimHit_, *meHFTimHit_; 00057 MonitorElement *meHBEneHit2_, *meHEEneHit2_, *meHOEneHit2_, *meHFEneHit2_; 00058 MonitorElement *meHBL10Ene_, *meHEL10Ene_, *meHOL10Ene_, *meHFL10Ene_; 00059 MonitorElement *meHBL10EneP_, *meHEL10EneP_, *meHOL10EneP_, *meHFL10EneP_; 00060 00061 }; 00062 00063 #endif