00001 #ifndef EcalSimHitsValidation_H 00002 #define EcalSimHitsValidation_H 00003 00004 /* 00005 * \file EcalSimHitsValidation.h 00006 * 00007 * \author C.Rovelli 00008 * 00009 */ 00010 00011 #include "FWCore/Framework/interface/Frameworkfwd.h" 00012 #include "FWCore/Framework/interface/EDAnalyzer.h" 00013 00014 #include "FWCore/Framework/interface/Event.h" 00015 #include "FWCore/Framework/interface/EventSetup.h" 00016 #include "FWCore/Framework/interface/ESHandle.h" 00017 #include "FWCore/Framework/interface/MakerMacros.h" 00018 00019 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00020 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00021 00022 #include "DQMServices/Core/interface/DQMStore.h" 00023 #include "FWCore/ServiceRegistry/interface/Service.h" 00024 00025 #include "SimDataFormats/HepMCProduct/interface/HepMCProduct.h" 00026 #include "SimDataFormats/EncodedEventId/interface/EncodedEventId.h" 00027 #include "SimDataFormats/Track/interface/SimTrack.h" 00028 #include "SimDataFormats/Track/interface/SimTrackContainer.h" 00029 #include "SimDataFormats/Vertex/interface/SimVertex.h" 00030 #include "SimDataFormats/Vertex/interface/SimVertexContainer.h" 00031 #include "SimDataFormats/CaloHit/interface/PCaloHit.h" 00032 #include "SimDataFormats/CaloHit/interface/PCaloHitContainer.h" 00033 #include "SimDataFormats/ValidationFormats/interface/PValidationFormats.h" 00034 00035 #include <iostream> 00036 #include <fstream> 00037 #include <vector> 00038 #include <map> 00039 #include "DQMServices/Core/interface/MonitorElement.h" 00040 00041 00042 class EcalSimHitsValidation: public edm::EDAnalyzer{ 00043 00044 typedef std::map<uint32_t,float,std::less<uint32_t> > MapType; 00045 00046 public: 00047 00049 EcalSimHitsValidation(const edm::ParameterSet& ps); 00050 00052 ~EcalSimHitsValidation(); 00053 00054 protected: 00055 00057 void analyze(const edm::Event& e, const edm::EventSetup& c); 00058 00059 // BeginJob 00060 void beginJob(const edm::EventSetup& c); 00061 00062 // EndJob 00063 void endJob(void); 00064 00065 private: 00066 00067 std::string HepMCLabel; 00068 std::string g4InfoLabel; 00069 std::string EBHitsCollection; 00070 std::string EEHitsCollection; 00071 std::string ESHitsCollection; 00072 00073 bool verbose_; 00074 00075 DQMStore* dbe_; 00076 00077 std::string outputFile_; 00078 00079 MonitorElement* meGunEnergy_; 00080 MonitorElement* meGunEta_; 00081 MonitorElement* meGunPhi_; 00082 00083 MonitorElement* meEBEnergyFraction_; 00084 MonitorElement* meEEEnergyFraction_; 00085 MonitorElement* meESEnergyFraction_; 00086 }; 00087 00088 #endif