00001 #ifndef EcalPreshowerSimHitsValidation_H 00002 #define EcalPreshowerSimHitsValidation_H 00003 00004 /* 00005 * \file EcalPreshowerSimHitsValidation.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/CaloHit/interface/PCaloHit.h" 00027 #include "SimDataFormats/CaloHit/interface/PCaloHitContainer.h" 00028 #include "SimDataFormats/ValidationFormats/interface/PValidationFormats.h" 00029 00030 #include <iostream> 00031 #include <fstream> 00032 #include <vector> 00033 #include <map> 00034 #include "DQMServices/Core/interface/MonitorElement.h" 00035 00036 00037 class EcalPreshowerSimHitsValidation: public edm::EDAnalyzer{ 00038 00039 typedef std::map<uint32_t,float,std::less<uint32_t> > MapType; 00040 00041 public: 00042 00044 EcalPreshowerSimHitsValidation(const edm::ParameterSet& ps); 00045 00047 ~EcalPreshowerSimHitsValidation(); 00048 00049 protected: 00050 00052 void analyze(const edm::Event& e, const edm::EventSetup& c); 00053 00054 // BeginJob 00055 void beginJob(const edm::EventSetup& c); 00056 00057 // EndJob 00058 void endJob(void); 00059 00060 private: 00061 00062 std::string HepMCLabel; 00063 std::string g4InfoLabel; 00064 std::string EEHitsCollection; 00065 std::string ESHitsCollection; 00066 00067 bool verbose_; 00068 00069 DQMStore* dbe_; 00070 00071 std::string outputFile_; 00072 00073 MonitorElement* menESHits1zp_; 00074 MonitorElement* menESHits2zp_; 00075 00076 MonitorElement* menESHits1zm_; 00077 MonitorElement* menESHits2zm_; 00078 00079 MonitorElement* meEShitLog10Energy_; 00080 MonitorElement* meEShitLog10EnergyNorm_; 00081 00082 MonitorElement* meESEnergyHits1zp_; 00083 MonitorElement* meESEnergyHits2zp_; 00084 00085 MonitorElement* meESEnergyHits1zm_; 00086 MonitorElement* meESEnergyHits2zm_; 00087 00088 MonitorElement* meE1alphaE2zp_; 00089 MonitorElement* meE1alphaE2zm_; 00090 00091 MonitorElement* meEEoverESzp_; 00092 MonitorElement* meEEoverESzm_; 00093 00094 MonitorElement* me2eszpOver1eszp_; 00095 MonitorElement* me2eszmOver1eszm_; 00096 00097 }; 00098 00099 #endif