#include <RecoLuminosity/ROOTSchema/interface/ROOTFileMerger.h>
Public Member Functions | |
void | Merge (const unsigned int runNumber, bool bCMSLive) |
ROOTFileMerger () | |
~ROOTFileMerger () | |
Private Member Functions | |
std::string | CreateInputFileName (const unsigned int runNumber) |
Private Attributes | |
unsigned int | minSectionNumber |
Definition at line 13 of file ROOTFileMerger.h.
HCAL_HLX::ROOTFileMerger::ROOTFileMerger | ( | ) |
Definition at line 10 of file ROOTFileMerger.cc.
References GenMuonPlsPt100GeV_cfg::cout, lat::endl(), and minSectionNumber.
00010 { 00011 #ifdef DEBUG 00012 std::cout << "Begin " << __PRETTY_FUNCTION__ << std::endl; 00013 #endif 00014 00015 minSectionNumber = 99999999; 00016 00017 #ifdef DEBUG 00018 std::cout << "End " << __PRETTY_FUNCTION__ << std::endl; 00019 #endif 00020 }
HCAL_HLX::ROOTFileMerger::~ROOTFileMerger | ( | ) |
Definition at line 22 of file ROOTFileMerger.cc.
References GenMuonPlsPt100GeV_cfg::cout, and lat::endl().
00022 { 00023 #ifdef DEBUG 00024 std::cout << "Begin " << __PRETTY_FUNCTION__ << std::endl; 00025 #endif 00026 00027 #ifdef DEBUG 00028 std::cout << "End " << __PRETTY_FUNCTION__ << std::endl; 00029 #endif 00030 }
std::string HCAL_HLX::ROOTFileMerger::CreateInputFileName | ( | const unsigned int | runNumber | ) | [private] |
Definition at line 70 of file ROOTFileMerger.cc.
References GenMuonPlsPt100GeV_cfg::cout, lat::endl(), HCAL_HLX::ROOTFileBase::outputDir_, HCAL_HLX::ROOTFileBase::outputFilePrefix_, HCAL_HLX::TimeStamp::TimeStampYYYYMM(), and HCAL_HLX::TimeStamp::TimeStampYYYYMMDD().
Referenced by Merge().
00070 { 00071 #ifdef DEBUG 00072 std::cout << "Begin " << __PRETTY_FUNCTION__ << std::endl; 00073 #endif 00074 00075 std::ostringstream outputString; 00076 00077 outputString << outputDir_ 00078 << "/" 00079 << TimeStampYYYYMM() 00080 << "/" 00081 << std::setfill('0') << std::setw(9) << runNumber 00082 << "/" 00083 << outputFilePrefix_ 00084 << "_" 00085 << TimeStampYYYYMMDD() 00086 << "_" 00087 << std::setfill('0') << std::setw(9) << runNumber 00088 << "_*.root"; 00089 00090 #ifdef DEBUG 00091 std::cout << "Input file name: " << outputString.str() << std::endl; 00092 std::cout << "End " << __PRETTY_FUNCTION__ << std::endl; 00093 #endif 00094 return outputString.str(); 00095 }
Definition at line 32 of file ROOTFileMerger.cc.
References HCAL_HLX::ROOTFileBase::CloseTree(), GenMuonPlsPt100GeV_cfg::cout, CreateInputFileName(), HCAL_HLX::ROOTFileBase::CreateRunFileName(), HCAL_HLX::ROOTFileBase::CreateTree(), lat::endl(), HCAL_HLX::ROOTFileBase::FillTree(), HCAL_HLX::ROOTFileReader::GetEntry(), HCAL_HLX::ROOTFileReader::GetLumiSection(), HCAL_HLX::ROOTFileReader::GetNumEntries(), i, minSectionNumber, HCAL_HLX::ROOTFileReader::ReplaceFile(), and HCAL_HLX::ROOTFileBase::SetFileName().
00032 { 00033 #ifdef DEBUG 00034 std::cout << "Begin " << __PRETTY_FUNCTION__ << std::endl; 00035 #endif 00036 // TChain::Merge and TTree::CloneTree leak because we used TTree::Bronch to create the tree. 00037 00038 HCAL_HLX::LUMI_SECTION lumiSection; 00039 00040 ROOTFileReader RFR; 00041 RFR.ReplaceFile(CreateInputFileName(runNumber)); 00042 00043 SetFileName(CreateRunFileName(runNumber, 0)); 00044 CreateTree(lumiSection); 00045 00046 int nentries = RFR.GetNumEntries(); 00047 00048 for(int i = 0; i < nentries; i++){ 00049 RFR.GetEntry(i); 00050 RFR.GetLumiSection(lumiSection); 00051 if( minSectionNumber > lumiSection.hdr.sectionNumber ){ 00052 std::cout << minSectionNumber << ":" << lumiSection.hdr.sectionNumber << std::endl; 00053 minSectionNumber = lumiSection.hdr.sectionNumber; 00054 } 00055 00056 // Must fill Threshold eventually right now it contains fake data. 00057 FillTree(lumiSection); 00058 } 00059 00060 CloseTree(); 00061 00062 // Rename file so that it includes the minimum lumi section number. 00063 rename( CreateRunFileName(runNumber, 0).c_str(), CreateRunFileName(runNumber, minSectionNumber).c_str() ); 00064 00065 #ifdef DEBUG 00066 std::cout << "End " << __PRETTY_FUNCTION__ << std::endl; 00067 #endif 00068 }
unsigned int HCAL_HLX::ROOTFileMerger::minSectionNumber [private] |