00001 #ifndef IORAWDATA_HCALTBINPUTSERVICE_HCALTBWRITER_H 00002 #define IORAWDATA_HCALTBINPUTSERVICE_HCALTBWRITER_H 1 00003 00004 #include <map> 00005 #include "DataFormats/FEDRawData/interface/FEDRawDataCollection.h" 00006 #include "FWCore/Framework/interface/EDAnalyzer.h" 00007 #include "FWCore/Framework/interface/Event.h" 00008 #include "DataFormats/Common/interface/Handle.h" 00009 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00010 #include "FWCore/Framework/interface/EventSetup.h" 00011 #include "IORawData/HcalTBInputService/src/CDFRunInfo.h" 00012 00013 class TFile; 00014 class TTree; 00015 class CDFChunk; 00016 class CDFEventInfo; 00017 00026 class HcalTBWriter : public edm::EDAnalyzer { 00027 public: 00028 HcalTBWriter(const edm::ParameterSet & pset); 00029 virtual void analyze(const edm::Event& e, const edm::EventSetup& es); 00030 virtual void endJob(); 00031 private: 00032 std::string namePattern_; 00033 // chunk naming... 00034 std::map<int, std::string> blockToName_; 00035 void extractEventInfo(const FEDRawDataCollection& raw, const edm::EventID& id); 00036 void buildTree(const FEDRawDataCollection& raw); 00037 TFile* file_; 00038 TTree* tree_; 00039 CDFEventInfo* eventInfo_; 00040 CDFRunInfo ri_; 00041 std::map<int,int> chunkMap_; 00042 CDFChunk* chunkList_[1024]; 00043 int trigChunk_; 00044 }; 00045 #endif