00001 #ifndef ZEEPLOTS_H 00002 #define ZEEPLOTS_H 00003 00004 // -*- C++ -*- 00005 // 00006 // Package: ElectronCalibration 00007 // Class: ElectronCalibration 00008 // 00016 // 00017 // Original Author: Lorenzo AGOSTINO, Radek Ofierzynski 00018 // Created: Tue Jul 18 12:17:01 CEST 2006 00019 // $Id: ZeePlots.h,v 1.2 2008/04/30 09:37:49 palmale Exp $ 00020 // 00021 // 00022 00023 00024 // system include files 00025 #include <memory> 00026 00027 // user include files 00028 #include "FWCore/Framework/interface/Frameworkfwd.h" 00029 #include "FWCore/Framework/interface/EDAnalyzer.h" 00030 00031 #include "DataFormats/Common/interface/TriggerResults.h" 00032 #include "DataFormats/EgammaCandidates/interface/GsfElectron.h" 00033 #include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h" 00034 #include "SimDataFormats/HepMCProduct/interface/HepMCProduct.h" 00035 #include "FWCore/Framework/interface/Event.h" 00036 #include "FWCore/Framework/interface/MakerMacros.h" 00037 #include "FWCore/Framework/interface/EventSetup.h" 00038 #include "FWCore/Framework/interface/ESHandle.h" 00039 #include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h" 00040 #include "Calibration/Tools/interface/HouseholderDecomposition.h" 00041 #include "Calibration/Tools/interface/MinL3Algorithm.h" 00042 #include "Calibration/Tools/interface/CalibrationCluster.h" 00043 #include "Calibration/Tools/interface/CalibElectron.h" 00044 #include "DataFormats/DetId/interface/DetId.h" 00045 #include "TFile.h" 00046 #include "TH1.h" 00047 #include "TH2.h" 00048 00049 00050 // class declaration 00051 // 00052 00053 class ZeePlots { 00054 public: 00055 ZeePlots( char* ); 00056 ~ZeePlots(); 00057 00058 void openFile(); 00059 00060 void bookEleHistograms(); 00061 void bookEleMCHistograms(); 00062 void bookZHistograms(); 00063 void bookZMCHistograms(); 00064 void bookHLTHistograms(); 00065 void bookEleClassesPlots(); 00066 00067 void fillZMCInfo( const HepMC::GenEvent* ); 00068 void fillEleMCInfo( const HepMC::GenEvent* ); 00069 void fillEleInfo( const reco::PixelMatchGsfElectronCollection* ); 00070 void fillHLTInfo( edm::Handle<edm::TriggerResults> ); 00071 void fillZInfo(pair<calib::CalibElectron*,calib::CalibElectron*> myZeeCandidate); 00072 void fillEleClassesPlots( calib::CalibElectron*); 00073 00074 void writeEleHistograms(); 00075 void writeZHistograms(); 00076 void writeMCEleHistograms(); 00077 void writeMCZHistograms(); 00078 void writeHLTHistograms(); 00079 void writeEleClassesPlots(); 00080 00081 private: 00082 00083 TFile* file_; 00084 char* fileName_; 00085 00086 TH1F* h1_gen_ZMass_; 00087 TH1F* h1_gen_ZRapidity_; 00088 TH1F* h1_gen_ZEta_; 00089 TH1F* h1_gen_ZPhi_; 00090 TH1F* h1_gen_ZPt_; 00091 00092 TH1F* h1_FiredTriggers_; 00093 TH1F* h1_HLT1Electron_FiredEvents_ ; 00094 TH1F* h1_HLT2Electron_FiredEvents_; 00095 TH1F* h1_HLT2ElectronRelaxed_FiredEvents_ ; 00096 TH1F* h1_HLT1Electron_HLT2Electron_FiredEvents_; 00097 TH1F* h1_HLT1Electron_HLT2ElectronRelaxed_FiredEvents_; 00098 TH1F* h1_HLT2Electron_HLT2ElectronRelaxed_FiredEvents_; 00099 TH1F* h1_HLT1Electron_HLT2Electron_HLT2ElectronRelaxed_FiredEvents_; 00100 TH1F* h1_HLTVisitedEvents_; 00101 00102 TH1F* h1_mcEle_Energy_; 00103 TH1F* h1_mcElePt_; 00104 TH1F* h1_mcEleEta_; 00105 TH1F* h1_mcElePhi_; 00106 00107 TH1F* h1_recoEleEnergy_; 00108 TH1F* h1_recoElePt_; 00109 TH1F* h1_recoEleEta_; 00110 TH1F* h1_recoElePhi_; 00111 TH1F* h1_nEleReco_; 00112 00113 00114 TH1F* h1_reco_ZEta_; 00115 TH1F* h1_reco_ZTheta_; 00116 TH1F* h1_reco_ZRapidity_; 00117 TH1F* h1_reco_ZPhi_; 00118 TH1F* h1_reco_ZPt_; 00119 00120 TH1F* h1_occupancyVsEtaGold_; 00121 TH1F* h1_occupancyVsEtaSilver_; 00122 TH1F* h1_occupancyVsEtaCrack_; 00123 TH1F* h1_occupancyVsEtaShower_; 00124 00125 }; 00126 #endif