![]() |
![]() |
00001 #ifndef L1THCALTPGXANA_H 00002 #define L1THCALTPGXANA_H 00003 00004 /* 00005 * \file L1THCALTPGXAna.h 00006 * 00007 * $Date: 2008/03/01 00:40:00 $ 00008 * $Revision: 1.2 $ 00009 * \author J. Berryhill 00010 * 00011 */ 00012 00013 // system include files 00014 #include <memory> 00015 #include <unistd.h> 00016 #include <iostream> 00017 #include <fstream> 00018 #include <vector> 00019 #include <map> 00020 00021 00022 // user include files 00023 #include "FWCore/Framework/interface/Frameworkfwd.h" 00024 #include "FWCore/Framework/interface/EDAnalyzer.h" 00025 00026 #include "FWCore/Framework/interface/Event.h" 00027 #include "FWCore/Framework/interface/MakerMacros.h" 00028 00029 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00030 00031 #include "DQMServices/Core/interface/DQMStore.h" 00032 #include "DQMServices/Core/interface/MonitorElement.h" 00033 #include "FWCore/ServiceRegistry/interface/Service.h" 00034 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00035 00036 //adam's includes 00037 #include "DataFormats/HcalDetId/interface/HcalSubdetector.h" 00038 #include "DataFormats/HcalDetId/interface/HcalDetId.h" 00039 #include "DataFormats/DetId/interface/DetId.h" 00040 #include "DataFormats/HcalDetId/interface/HcalTrigTowerDetId.h" 00041 #include "DataFormats/HcalDigi/interface/HcalDigiCollections.h" 00042 #include "DataFormats/HcalRecHit/interface/HcalRecHitCollections.h" 00043 #include "DataFormats/HcalRecHit/interface/HBHERecHit.h" 00044 #include "DataFormats/HcalRecHit/interface/HFRecHit.h" 00045 #include "DataFormats/FEDRawData/interface/FEDNumbering.h" 00046 00047 #include "Geometry/HcalTowerAlgo/interface/HcalTrigTowerGeometry.h" 00048 #include "Geometry/CaloTopology/interface/HcalTopology.h" 00049 #include "Geometry/CaloGeometry/interface/CaloGeometry.h" 00050 #include "Geometry/Records/interface/IdealGeometryRecord.h" 00051 00052 #include "DataFormats/HcalDigi/interface/HcalTriggerPrimitiveDigi.h" 00053 //#include "DQM/L1TMonitor/interface/hcal_root_prefs.h" 00054 00055 00056 // 00057 // class decleration 00058 // 00059 00060 class L1THCALTPGXAna : public edm::EDAnalyzer { 00061 00062 public: 00063 00064 typedef std::multimap<HcalTrigTowerDetId, double> IdtoEnergy; 00065 00066 00067 // Constructor 00068 L1THCALTPGXAna(const edm::ParameterSet& ps); 00069 00070 // Destructor 00071 virtual ~L1THCALTPGXAna(); 00072 00073 protected: 00074 // Analyze 00075 void analyze(const edm::Event& e, const edm::EventSetup& c); 00076 00077 // BeginJob 00078 void beginJob(const edm::EventSetup& c); 00079 00080 // EndJob 00081 void endJob(void); 00082 00083 private: 00084 // ----------member data --------------------------- 00085 DQMStore * dbe; 00086 HcalTrigTowerGeometry theTrigTowerGeometry; 00087 IdtoEnergy Rec_towers; 00088 00089 // what we monitor 00090 MonitorElement *hcalTpEtEtaPhi_; 00091 MonitorElement *hcalTpOccEtaPhi_; 00092 MonitorElement *hcalTpRank_; 00093 MonitorElement *hcalEffDen_1_; 00094 MonitorElement *hcalEffNum_1_; 00095 MonitorElement *hcalEffDen_2_; 00096 MonitorElement *hcalEffNum_2_; 00097 MonitorElement *hcalEffDen_3_; 00098 MonitorElement *hcalEffNum_3_; 00099 MonitorElement *hcalEffDen_4_; 00100 MonitorElement *hcalEffNum_4_; 00101 MonitorElement *hcalFakes_; 00102 MonitorElement *hcalNoFire_; 00103 MonitorElement *hcalTpgRatiom1_; 00104 MonitorElement *hcalTpgRatioSOI_; 00105 MonitorElement *hcalTpgRatiop1_; 00106 MonitorElement *hcalTpgRatiop2_; 00107 MonitorElement *hcalTpgvsRec1_; 00108 MonitorElement *hcalTpgvsRec2_; 00109 MonitorElement *hcalTpgvsRec3_; 00110 MonitorElement *hcalTpgvsRec4_; 00111 MonitorElement *hcalTpSat_; 00112 MonitorElement *hcalEffNum_HBHE[56][72]; //56 eta slices, 72 phi slices 00113 MonitorElement *hcalEffNum_HF[8][18]; //8 eta slices, 18 phi slices 00114 MonitorElement *hcalEffDen_HBHE[56][72]; //56 eta slices, 72 phi slices 00115 MonitorElement *hcalEffDen_HF[8][18]; //8 eta slices, 18 phi slices 00116 MonitorElement *hcalTpgfgperbunch_; 00117 MonitorElement *hcalTpgfgbindiff_; 00118 MonitorElement *hcalTpgfgtimediff_; 00119 00120 int nev_; // Number of events processed 00121 std::string outputFile_; //file name for ROOT ouput 00122 bool verbose_; 00123 bool monitorDaemon_; 00124 ofstream logFile_; 00125 double fakeCut_; 00126 edm::InputTag hcaltpgSource_; 00127 edm::InputTag hbherecoSource_; 00128 edm::InputTag hfrecoSource_; 00129 int numFG; 00130 int binfg1; 00131 int binfg2; 00132 00133 }; 00134 00135 double find_eta(double,double); 00136 00137 #endif