00001 #ifndef ROOTSCHEMA_H 00002 #define ROOTSCHEMA_H 00003 00004 /* 00005 00006 Author: Adam Hunt - Princeton University 00007 Date: 2007-10-05 00008 00009 */ 00010 00011 #include "RecoLuminosity/TCPReceiver/interface/TimeStamp.h" 00012 #include "RecoLuminosity/ROOTSchema/interface/FileToolKit.h" 00013 00014 #include <string> 00015 00016 namespace HCAL_HLX{ 00017 00018 class ROOTFileWriter; 00019 class ROOTFileMerger; 00020 class ROOTFileTransfer; 00021 class HTMLGenerator; 00022 00023 struct LUMI_SECTION; 00024 00025 class ROOTSchema: private TimeStamp, private FileToolKit{ 00026 00027 public: 00028 00029 ROOTSchema(); 00030 ~ROOTSchema(); 00031 00032 void SetLSDir( const std::string &lsDir ); 00033 void SetMergeDir( const std::string &mergeDir ); 00034 00035 00036 void SetMergeFiles( const bool bMerge ); 00037 00038 void SetTransferFiles( const bool bTransfer ); 00039 00040 void SetFileType( const std::string &fileType ); 00041 void SetHistoBins( const int NBins, const double XMin, const double XMax ); 00042 bool ProcessSection(const HCAL_HLX::LUMI_SECTION &lumiSection); 00043 00044 void SetWebDir( const std::string &webDir ); 00045 void SetCreateWebPage( const bool bWBM ); 00046 void EndRun(); 00047 00048 private: 00049 00050 HCAL_HLX::ROOTFileMerger *RFMerger_; 00051 HCAL_HLX::ROOTFileTransfer *RFTransfer_; 00052 HCAL_HLX::HTMLGenerator *LumiHTML_; 00053 HCAL_HLX::ROOTFileWriter *RFWriter_; 00054 00055 unsigned int previousRun_; 00056 unsigned int firstSectionNumber_; 00057 unsigned int startTime_; 00058 00059 bool bMerge_; 00060 bool bWBM_; 00061 bool bTransfer_; 00062 00063 bool bEtSumOnly_; 00064 std::string fileType_; 00065 00066 std::string lsDir_; 00067 std::string mergeDir_; 00068 00069 std::string dateDir_; 00070 std::string runDir_; 00071 00072 // Setting a directory implies that you want to do something. 00073 00074 // Making the file type "ET" implies true. 00075 void SetEtSumOnly( const bool bEtSumOnly); 00076 }; 00077 } 00078 00079 #endif