00001 // -*- C++ -*- 00002 // 00003 // Package: L1RCTTestAnalyzer 00004 // Class: L1RCTTestAnalyzer 00005 // 00013 // 00014 // Original Author: pts/47 00015 // Created: Thu Jul 13 21:38:08 CEST 2006 00016 // $Id: L1RCTTestAnalyzer.h,v 1.15 2012/04/10 13:30:58 ghete Exp $ 00017 // 00018 // 00019 00020 00021 // system include files 00022 #include <memory> 00023 #include <iostream> 00024 // user include files 00025 #include "FWCore/Framework/interface/Frameworkfwd.h" 00026 #include "FWCore/Framework/interface/EDAnalyzer.h" 00027 00028 #include "FWCore/Framework/interface/Event.h" 00029 #include "FWCore/Framework/interface/MakerMacros.h" 00030 00031 #include "FWCore/ServiceRegistry/interface/Service.h" 00032 #include "CommonTools/UtilAlgos/interface/TFileService.h" 00033 00034 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00035 00036 #include "DataFormats/L1CaloTrigger/interface/L1CaloCollections.h" 00037 #include "DataFormats/EcalDigi/interface/EcalDigiCollections.h" 00038 #include "DataFormats/HcalDigi/interface/HcalDigiCollections.h" 00039 00040 #include "TH1F.h" 00041 #include "TH2F.h" 00042 #include "TTree.h" 00043 00044 00045 // // outside of class 00046 // bool compareEmCands(const L1CaloEmCand& cand1, const L1CaloEmCand& cand2) 00047 // { 00048 // return (cand1.rank() < cand2.rank()); 00049 // } 00050 00051 00052 // 00053 // class declaration 00054 // 00055 00056 class L1RCTTestAnalyzer : public edm::EDAnalyzer { 00057 public: 00058 explicit L1RCTTestAnalyzer(const edm::ParameterSet&); 00059 ~L1RCTTestAnalyzer(); 00060 00061 00062 virtual void analyze(const edm::Event&, const edm::EventSetup&); 00063 private: 00064 static bool compareEmCands(const L1CaloEmCand& cand1, const L1CaloEmCand& cand2); 00065 00066 // ----------member data --------------------------- 00067 std::string m_HepMCProduct; 00068 bool showEmCands; 00069 bool showRegionSums; 00070 edm::InputTag ecalDigisLabel; 00071 edm::InputTag hcalDigisLabel; 00072 edm::InputTag rctDigisLabel; 00073 00074 TTree * emTree; 00075 // float emRank[8]; 00076 // float emIeta[8]; 00077 // float emIphi[8]; 00078 // float emIso[8]; 00079 std::vector<int> emRank; 00080 std::vector<int> emIeta; 00081 std::vector<int> emIphi; 00082 std::vector<int> emIso; 00083 00084 TH1F * h_emRank; 00085 TH1F * h_emRankOutOfTime; 00086 TH1F * h_emIeta; 00087 TH1F * h_emIphi; 00088 TH1F * h_emIso; 00089 TH2F * h_emRankInIetaIphi; 00090 // add isolated/non-iso? 00091 TH2F * h_emIsoInIetaIphi; 00092 TH2F * h_emNonIsoInIetaIphi; 00093 TH1F * h_emCandTimeSample; 00094 00095 TH1F * h_regionSum; 00096 TH1F * h_regionIeta; 00097 TH1F * h_regionIphi; 00098 TH1F * h_regionMip; 00099 TH2F * h_regionSumInIetaIphi; 00100 // add bits in ieta/iphi? tau, overflow, mip, quiet, finegrain? 00101 // (is fine grain same thing as mip??) 00102 TH2F * h_regionFGInIetaIphi; 00103 00104 TH1F * h_towerMip; 00105 00106 TH1F * h_ecalTimeSample; 00107 TH1F * h_hcalTimeSample; 00108 00109 }; 00110 00111 // 00112 // constants, enums and typedefs 00113 // 00114 00115 // 00116 // static data member definitions 00117 //