File indexing completed on 2024-04-06 12:19:15
0001 #ifndef IORAWDATA_HCALTBINPUTSERVICE_HCALTBWRITER_H
0002 #define IORAWDATA_HCALTBINPUTSERVICE_HCALTBWRITER_H 1
0003
0004 #include <map>
0005 #include "DataFormats/FEDRawData/interface/FEDRawDataCollection.h"
0006 #include "FWCore/Framework/interface/one/EDAnalyzer.h"
0007 #include "FWCore/Framework/interface/Event.h"
0008 #include "FWCore/Framework/interface/EventSetup.h"
0009 #include "DataFormats/Common/interface/Handle.h"
0010 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0011 #include "FWCore/ServiceRegistry/interface/Service.h"
0012 #include "FWCore/Utilities/interface/InputTag.h"
0013 #include "IORawData/HcalTBInputService/src/CDFRunInfo.h"
0014
0015 class TFile;
0016 class TTree;
0017 class CDFChunk;
0018 class CDFEventInfo;
0019
0020
0021
0022
0023
0024
0025
0026 class HcalTBWriter : public edm::one::EDAnalyzer<> {
0027 public:
0028 explicit HcalTBWriter(const edm::ParameterSet& pset);
0029 ~HcalTBWriter() override = default;
0030 void analyze(const edm::Event& e, const edm::EventSetup& es) override;
0031 void endJob() override;
0032
0033 private:
0034 std::string namePattern_;
0035
0036 std::map<int, std::string> blockToName_;
0037 void extractEventInfo(const FEDRawDataCollection& raw, const edm::EventID& id);
0038 void buildTree(const FEDRawDataCollection& raw);
0039 TFile* file_;
0040 TTree* tree_;
0041 CDFEventInfo* eventInfo_;
0042 CDFRunInfo ri_;
0043 std::map<int, int> chunkMap_;
0044 CDFChunk* chunkList_[1024];
0045 int trigChunk_;
0046 edm::EDGetTokenT<FEDRawDataCollection> tok_raw_;
0047 };
0048 #endif