00001 #ifndef GlobalRecHitsHistogrammer_h 00002 #define GlobalRecHitsHistogrammer_h 00003 00015 // framework & common header files 00016 #include "FWCore/Framework/interface/EDAnalyzer.h" 00017 #include "FWCore/Framework/interface/Frameworkfwd.h" 00018 #include "FWCore/Framework/interface/Event.h" 00019 #include "FWCore/Framework/interface/EventSetup.h" 00020 #include "DataFormats/Common/interface/Handle.h" 00021 #include "FWCore/Framework/interface/ESHandle.h" 00022 00023 //DQM services 00024 #include "DQMServices/Core/interface/DQMStore.h" 00025 #include "FWCore/ServiceRegistry/interface/Service.h" 00026 00027 00028 //#include "DataFormats/Common/interface/Provenance.h" 00029 #include "DataFormats/Provenance/interface/Provenance.h" 00030 #include "FWCore/Framework/interface/MakerMacros.h" 00031 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00032 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00033 00034 00035 // event info 00036 #include "SimDataFormats/ValidationFormats/interface/PValidationFormats.h" 00037 00038 // helper files 00039 //#include <CLHEP/Vector/LorentzVector.h> 00040 //#include <CLHEP/Units/SystemOfUnits.h> 00041 00042 #include <iostream> 00043 #include <stdlib.h> 00044 #include <string> 00045 #include <memory> 00046 #include <vector> 00047 #include <map> 00048 #include <math.h> 00049 00050 #include "TString.h" 00051 #include "DQMServices/Core/interface/MonitorElement.h" 00052 00053 00054 class GlobalRecHitsHistogrammer : public edm::EDAnalyzer 00055 { 00056 00057 public: 00058 00059 //typedef std::vector<float> FloatVector; 00060 //typedef std::vector<double> DoubleVector; 00061 //typedef std::vector<int> IntVector; 00062 typedef std::map<uint32_t,float,std::less<uint32_t> > MapType; 00063 00064 explicit GlobalRecHitsHistogrammer(const edm::ParameterSet&); 00065 virtual ~GlobalRecHitsHistogrammer(); 00066 virtual void beginJob(); 00067 virtual void endJob(); 00068 virtual void analyze(const edm::Event&, const edm::EventSetup&); 00069 00070 00071 private: 00072 00073 // parameter information 00074 std::string fName; 00075 int verbosity; 00076 int frequency; 00077 std::string label; 00078 bool getAllProvenances; 00079 bool printProvenanceInfo; 00080 00081 DQMStore *dbe; 00082 std::string outputfile; 00083 bool doOutput; 00084 00085 edm::InputTag GlobalRecHitSrc_; 00086 //edm::InputTag srcGlobalRecHits; 00087 00088 // Electromagnetic info 00089 // ECal info 00090 00091 MonitorElement *mehEcaln[3]; 00092 MonitorElement *mehEcalRes[3]; 00093 00094 00095 00096 // HCal info 00097 00098 MonitorElement *mehHcaln[4]; 00099 MonitorElement *mehHcalRes[4]; 00100 00101 00102 // Tracker info 00103 // SiStrip 00104 00105 MonitorElement *mehSiStripn[19]; 00106 MonitorElement *mehSiStripResX[19]; 00107 MonitorElement *mehSiStripResY[19]; 00108 00109 00110 // SiPxl 00111 00112 MonitorElement *mehSiPixeln[7]; 00113 MonitorElement *mehSiPixelResX[7]; 00114 MonitorElement *mehSiPixelResY[7]; 00115 00116 // Muon info 00117 // DT 00118 00119 MonitorElement *mehDtMuonn; 00120 MonitorElement *mehCSCn; 00121 MonitorElement *mehRPCn; 00122 MonitorElement *mehDtMuonRes; 00123 MonitorElement *mehCSCResRDPhi; 00124 MonitorElement *mehRPCResX; 00125 00126 00127 // private statistics information 00128 unsigned int count; 00129 00130 }; // end class declaration 00131 00132 00133 00134 00135 00136 00137 #endif //PGlobalRecHitsProducer_h