00001 //system include files 00002 #include <memory> 00003 #include <map> 00004 #include <iostream> 00005 #include <math.h> 00006 00007 //Framework includes 00008 #include "FWCore/Framework/interface/Frameworkfwd.h" 00009 #include "FWCore/Framework/interface/EDAnalyzer.h" 00010 #include "FWCore/Framework/interface/Event.h" 00011 #include "FWCore/Framework/interface/MakerMacros.h" 00012 #include "DataFormats/Common/interface/Handle.h" 00013 #include "FWCore/Framework/interface/ESHandle.h" 00014 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00015 00016 //ROOT includes 00017 #include "TFile.h" 00018 #include "TROOT.h" 00019 #include "TTree.h" 00020 00021 //Geometry includes 00022 #include "Geometry/HcalTowerAlgo/interface/HcalTrigTowerGeometry.h" 00023 #include "Geometry/CaloTopology/interface/HcalTopology.h" 00024 #include "Geometry/CaloGeometry/interface/CaloGeometry.h" 00025 #include "Geometry/Records/interface/IdealGeometryRecord.h" 00026 00027 //DataFormats includes 00028 #include "DataFormats/HcalDetId/interface/HcalSubdetector.h" 00029 #include "DataFormats/HcalDetId/interface/HcalDetId.h" 00030 #include "DataFormats/DetId/interface/DetId.h" 00031 #include "DataFormats/HcalDetId/interface/HcalTrigTowerDetId.h" 00032 #include "DataFormats/HcalDigi/interface/HcalQIESample.h" 00033 #include "DataFormats/HcalDigi/interface/HBHEDataFrame.h" 00034 #include "DataFormats/HcalDigi/interface/HFDataFrame.h" 00035 #include "DataFormats/HcalDigi/interface/HcalTriggerPrimitiveDigi.h" 00036 #include "DataFormats/HcalDetId/interface/HcalTrigTowerDetId.h" 00037 #include "DataFormats/HcalDigi/interface/HcalDigiCollections.h" 00038 #include "DataFormats/HcalRecHit/interface/HcalRecHitCollections.h" 00039 #include "DataFormats/HcalRecHit/interface/HBHERecHit.h" 00040 #include "DataFormats/HcalRecHit/interface/HFRecHit.h" 00041 00042 //SimDataFormats includes 00043 #include "SimDataFormats/CrossingFrame/interface/CrossingFrame.h" 00044 #include "SimDataFormats/CrossingFrame/interface/MixCollection.h" 00045 #include "SimDataFormats/CrossingFrame/interface/CrossingFrame.h" 00046 #include "SimDataFormats/CaloHit/interface/PCaloHitContainer.h" 00047 00048 //CalibFormats 00049 #include "CalibFormats/HcalObjects/interface/HcalDbService.h" 00050 #include "CalibFormats/HcalObjects/interface/HcalDbRecord.h" 00051 #include "CalibCalorimetry/CaloTPG/src/CaloTPGTranscoderULUT.h" 00052 #include "CalibFormats/HcalObjects/interface/HcalTPGRecord.h" 00053 #include "CalibFormats/CaloTPG/interface/CaloTPGRecord.h" 00054 00055 00056 class CaloGeometry; 00057 00058 class TPGntupler : public edm::EDAnalyzer { 00059 public: 00060 explicit TPGntupler(const edm::ParameterSet&); 00061 typedef std::map<HcalTrigTowerDetId, double> IdtoEnergy; 00062 ~TPGntupler(); 00063 00064 00065 private: 00066 virtual void beginJob(const edm::EventSetup&) ; 00067 virtual void analyze(const edm::Event&, const edm::EventSetup&); 00068 virtual void endJob(); 00069 HcalTrigTowerGeometry theTrigTowerGeometry; 00070 TFile file; 00071 TTree tree; 00072 IdtoEnergy Rec_towers; 00073 int run_num; 00074 int event_num; 00075 int ieta[4176]; 00076 int iphi[4176]; 00077 float tpg_energy[4176]; 00078 float rec_energy[4176]; 00079 float tpg_uncompressed[4176]; 00080 int index[4176]; 00081 edm::ESHandle<CaloTPGTranscoder> transcoder_; 00082 00083 };