![]() |
![]() |
00001 #ifndef _ROOTFILEREADER_H_ 00002 #define _ROOTFILEREADER_H_ 00003 00004 00005 // STL Headers 00006 #include <string> 00007 #include <sstream> 00008 #include <iomanip> 00009 00010 // ROOT Headers 00011 #include <TChain.h> 00012 00013 // Lumi Headers 00014 #include "RecoLuminosity/TCPReceiver/interface/ICTypeDefs.hh" 00015 #include "RecoLuminosity/TCPReceiver/interface/LumiStructures.hh" 00016 00017 namespace HCAL_HLX{ 00018 00019 class ROOTFileReader{ 00020 public: 00021 ROOTFileReader(); 00022 ~ROOTFileReader(); 00023 00024 int ReplaceFile(const std::string &fileName); 00025 00026 unsigned int GetRunNumber(){ return runNumber_;} 00027 unsigned int GetSectionNumber(){ return sectionNumber_;} 00028 00029 int GetLumiSection(HCAL_HLX::LUMI_SECTION& section); 00030 00031 int GetThreshold(HCAL_HLX::LUMI_THRESHOLD& threshold); 00032 int GetHFRingSet(HCAL_HLX::LUMI_HF_RING_SET& ringSet); 00033 int GetL1Trigger(HCAL_HLX::LEVEL1_TRIGGER& l1trigger); 00034 int GetHLT(HCAL_HLX::HLT& hlt); 00035 int GetTriggerDeadtime(HCAL_HLX::TRIGGER_DEADTIME& TD); 00036 00037 int GetEntry(int entry); 00038 int GetNumEntries(); 00039 00040 private: 00041 00042 unsigned int runNumber_; 00043 unsigned int sectionNumber_; 00044 00045 std::string mFileName_; 00046 TChain* mChain_; 00047 00048 // LUMI_SECTION 00049 TBranch *b_Header; 00050 TBranch *b_Summary; 00051 TBranch *b_Detail; 00052 00053 TBranch *b_ETSum[HCAL_HLX_MAX_HLXS]; 00054 TBranch *b_Occupancy[HCAL_HLX_MAX_HLXS]; 00055 TBranch *b_LHC[HCAL_HLX_MAX_HLXS]; 00056 00057 // OTHER 00058 TBranch *b_Threshold; 00059 TBranch *b_L1Trigger; 00060 TBranch *b_HLT; 00061 TBranch *b_TriggerDeadtime; 00062 TBranch *b_RingSet; 00063 00064 HCAL_HLX::LUMI_SECTION* lumiSection_; 00065 00066 // LUMI_SECTION 00067 HCAL_HLX::LUMI_SECTION_HEADER* Header_; 00068 HCAL_HLX::LUMI_SUMMARY* Summary_; 00069 HCAL_HLX::LUMI_DETAIL* Detail_; 00070 00071 HCAL_HLX::ET_SUM_SECTION *EtSumPtr[HCAL_HLX_MAX_HLXS]; 00072 HCAL_HLX::OCCUPANCY_SECTION *OccupancyPtr[HCAL_HLX_MAX_HLXS]; 00073 HCAL_HLX::LHC_SECTION *LHCPtr[HCAL_HLX_MAX_HLXS]; 00074 00075 // Other 00076 HCAL_HLX::LUMI_THRESHOLD* Threshold_; 00077 HCAL_HLX::LEVEL1_TRIGGER* L1Trigger_; 00078 HCAL_HLX::HLT* HLT_; 00079 HCAL_HLX::TRIGGER_DEADTIME* TriggerDeadtime_; 00080 HCAL_HLX::LUMI_HF_RING_SET* RingSet_; 00081 00082 }; 00083 } 00084 00085 #endif