00001 #ifndef SimG4CMS_Calo_ElectronStudy_H 00002 #define SimG4CMS_Calo_ElectronStudy_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/Utilities/interface/InputTag.h" 00014 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00015 00016 #include "FWCore/ServiceRegistry/interface/Service.h" 00017 #include "CommonTools/UtilAlgos/interface/TFileService.h" 00018 00019 #include "SimDataFormats/CaloHit/interface/PCaloHit.h" 00020 #include "SimDataFormats/CaloHit/interface/PCaloHitContainer.h" 00021 00022 #include "SimDataFormats/Track/interface/SimTrackContainer.h" 00023 #include "SimDataFormats/Vertex/interface/SimVertexContainer.h" 00024 00025 #include <TH1F.h> 00026 00027 #include <memory> 00028 #include <iostream> 00029 #include <fstream> 00030 #include <vector> 00031 #include <string> 00032 00033 class ElectronStudy: public edm::EDAnalyzer { 00034 00035 public: 00036 00037 ElectronStudy(const edm::ParameterSet& ps); 00038 ~ElectronStudy() {} 00039 00040 void analyze (const edm::Event& e, const edm::EventSetup& c); 00041 00042 private: 00043 00044 static const int NEtaBins = 3; 00045 static const int NPBins = 8; 00046 double pBins[NPBins+1], etaBins[NEtaBins+1]; 00047 00048 std::string sourceLabel, g4Label, hitLabEB, hitLabEE; 00049 int hotZone, verbose; 00050 bool histos; 00051 TH1F *histoR1[NPBins+1][NEtaBins+1], *histoR2[NPBins+1][NEtaBins+1]; 00052 TH1F *histoR3[NPBins+1][NEtaBins+1], *histoE1x1[NPBins+1][NEtaBins+1]; 00053 TH1F *histoE3x3[NPBins+1][NEtaBins+1], *histoE5x5[NPBins+1][NEtaBins+1]; 00054 }; 00055 00056 #endif