00001 #include "DataDir.hh" 00002 00003 #include <string> 00004 #include <iostream> 00005 #include <cstdio> 00006 00007 DataDir::DataDir() : fRawExt(".mid"), fODBExt(".odb"), fHistExt(".root"), fCorrExt(".odb"), 00008 fRawDir(""), fODBDir(""), fHistDir(""), fCorrDir(""), 00009 fRawPre("run"), fODBPre("run"), fHistPre("hist"), fCorrPre("corr") {} 00010 00011 std::string DataDir::GetCanonicalRun(int run) { 00012 static const std::string def("00000"); 00013 char num[8]; 00014 if (run < 0 || run > 99999) 00015 return def; 00016 sprintf(num, "%05d", run); 00017 return std::string(num); 00018 } 00019 00020 void DataDir::SetRawDir(const std::string& raw_dir) { 00021 fRawDir = raw_dir; 00022 } 00023 void DataDir::SetRawDir() { 00024 std::cout << "Enter raw data directory: "; 00025 std::cin >> fRawDir; 00026 } 00027 00028 void DataDir::SetODBDir(const std::string& odb_dir) { 00029 fODBDir = odb_dir; 00030 } 00031 00032 void DataDir::SetODBDir() { 00033 std::cout << "Enter ODB directory: "; 00034 std::cin >> fODBDir; 00035 } 00036 00037 void DataDir::SetHistDir(const std::string& hist_dir) { 00038 fHistDir = hist_dir; 00039 } 00040 00041 void DataDir::SetHistDir() { 00042 std::cout << "Enter histogram directory: "; 00043 std::cin >> fHistDir; 00044 } 00045 00046 void DataDir::SetCorrDir(const std::string& corr_dir) { 00047 fCorrDir = corr_dir; 00048 } 00049 00050 void DataDir::SetCorrDir() { 00051 std::cout << "Enter corrections directory: "; 00052 std::cin >> fCorrDir; 00053 } 00054 00055 std::string DataDir::GetRawFileName(int run) const { 00056 return fRawDir + fRawPre + GetCanonicalRun(run) + fRawExt; 00057 } 00058 00059 std::string DataDir::GetODBFileName(int run) const { 00060 return fODBDir + fODBPre + GetCanonicalRun(run) + fODBExt; 00061 } 00062 00063 std::string DataDir::GetHistFileName(int run) const { 00064 return fHistDir + fHistPre + GetCanonicalRun(run) + fHistExt; 00065 } 00066 00067 std::string DataDir::GetCorrFileName(int run) const { 00068 return fCorrDir + fCorrPre + GetCanonicalRun(run) + fCorrExt; 00069 } 00070