CMS 3D CMS Logo

HCAL_HLX::ROOTFileMerger Class Reference

#include <RecoLuminosity/ROOTSchema/interface/ROOTFileMerger.h>

Inheritance diagram for HCAL_HLX::ROOTFileMerger:

HCAL_HLX::ROOTFileReader HCAL_HLX::ROOTFileBase HCAL_HLX::TimeStamp

List of all members.

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


Detailed Description

Definition at line 13 of file ROOTFileMerger.h.


Constructor & Destructor Documentation

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 }


Member Function Documentation

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 }

void HCAL_HLX::ROOTFileMerger::Merge ( const unsigned int  runNumber,
bool  bCMSLive 
)

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 }


Member Data Documentation

unsigned int HCAL_HLX::ROOTFileMerger::minSectionNumber [private]

Definition at line 24 of file ROOTFileMerger.h.

Referenced by Merge(), and ROOTFileMerger().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:47:24 2009 for CMSSW by  doxygen 1.5.4