00001 #ifndef SimG4CMS_ZdcSimHitStudy_H 00002 #define SimG4CMS_ZdcSimHitStudy_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 ZdcSimHitStudy: public edm::EDAnalyzer{ 00029 public: 00030 00031 ZdcSimHitStudy(const edm::ParameterSet& ps); 00032 ~ZdcSimHitStudy(); 00033 00034 protected: 00035 00036 void beginJob (); 00037 void endJob (); 00038 void analyze (const edm::Event& e, const edm::EventSetup& c); 00039 void analyzeHits (std::vector<PCaloHit> &); 00040 int FillHitValHist (int side,int section,int channel,double energy,double time); 00041 00042 private: 00043 double enetotEmN, enetotHadN,enetotN; 00044 double enetotEmP,enetotHadP,enetotP; 00045 double enetot; 00046 00047 00048 std::string g4Label, zdcHits, outFile_; 00049 bool verbose_, checkHit_; 00050 DQMStore *dbe_; 00051 00052 MonitorElement *meAllZdcNHit_, *meBadZdcDetHit_, *meBadZdcSecHit_, *meBadZdcIdHit_; 00053 MonitorElement *meZdcNHit_,*meZdcDetectHit_,*meZdcSideHit_,*meZdcETime_; 00054 MonitorElement *meZdcNHitEM_,*meZdcNHitHad_,*meZdcNHitLum_,*meZdc10Ene_; 00055 MonitorElement *meZdcSectionHit_,*meZdcChannelHit_,*meZdcEnergyHit_,*meZdcTimeWHit_; 00056 MonitorElement *meZdcHadEnergyHit_, *meZdcEMEnergyHit_, *meZdcTimeHit_, *meZdcHadL10EneP_; 00057 MonitorElement *meZdc10EneP_, *meZdcEHadCh_, *meZdcEEMCh_,*meZdcEML10EneP_; 00058 MonitorElement *meZdcEneEmN1_,*meZdcEneEmN2_,*meZdcEneEmN3_,*meZdcEneEmN4_,*meZdcEneEmN5_; 00059 MonitorElement *meZdcEneHadN1_,*meZdcEneHadN2_,*meZdcEneHadN3_,*meZdcEneHadN4_; 00060 MonitorElement *meZdcEneTEmN1_,*meZdcEneTEmN2_,*meZdcEneTEmN3_,*meZdcEneTEmN4_,*meZdcEneTEmN5_; 00061 MonitorElement *meZdcEneTHadN1_,*meZdcEneTHadN2_,*meZdcEneTHadN3_,*meZdcEneTHadN4_; 00062 MonitorElement *meZdcEneHadNTot_,*meZdcEneEmNTot_,*meZdcEneNTot_; 00063 MonitorElement *meZdcCorEEmNEHadN_; 00064 MonitorElement *meZdcEneEmP1_,*meZdcEneEmP2_,*meZdcEneEmP3_,*meZdcEneEmP4_,*meZdcEneEmP5_; 00065 MonitorElement *meZdcEneHadP1_,*meZdcEneHadP2_,*meZdcEneHadP3_,*meZdcEneHadP4_; 00066 MonitorElement *meZdcEneTEmP1_,*meZdcEneTEmP2_,*meZdcEneTEmP3_,*meZdcEneTEmP4_,*meZdcEneTEmP5_; 00067 MonitorElement *meZdcEneTHadP1_,*meZdcEneTHadP2_,*meZdcEneTHadP3_,*meZdcEneTHadP4_; 00068 MonitorElement *meZdcEneHadPTot_,*meZdcEneEmPTot_, *meZdcEnePTot_; 00069 MonitorElement *meZdcCorEEmPEHadP_,*meZdcCorEtotNEtotP_,*meZdcEneTot_; 00070 }; 00071 00072 #endif