CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DirManager.cc
Go to the documentation of this file.
3 #include <iostream>
4 
5 namespace evf {
6 
7  unsigned int DirManager::findHighestRun() {
8  DIR *dir = opendir(dir_.c_str());
9  struct dirent *buf;
10  int maxrun = 0;
11  while ((buf = readdir(dir))) {
12  std::string dirnameNum = buf->d_name;
13  if (dirnameNum.find("run") != std::string::npos)
14  dirnameNum = dirnameNum.substr(3, std::string::npos);
15  if (atoi(dirnameNum.c_str()) > maxrun) {
16  maxrun = atoi(dirnameNum.c_str());
17  }
18  }
19  closedir(dir);
20  return maxrun;
21  }
22 
24  std::string retval = dir_ + "/";
25  std::string tmpdir;
26  DIR *dir = opendir(dir_.c_str());
27  struct dirent *buf;
28  int maxrun = 0;
29  while ((buf = readdir(dir))) {
30  std::string dirnameNum = buf->d_name;
31  if (dirnameNum.find("run") != std::string::npos)
32  dirnameNum = dirnameNum.substr(3, std::string::npos);
33  if (atoi(dirnameNum.c_str()) > maxrun) {
34  tmpdir = buf->d_name;
35  maxrun = atoi(dirnameNum.c_str());
36  }
37  }
38  closedir(dir);
39  retval += tmpdir;
40  return retval;
41  }
42 
44  std::string retval = dir_ + "/";
45  std::string tmpdir = "";
46  DIR *dir = opendir(dir_.c_str());
47  struct dirent *buf;
48  while ((buf = readdir(dir))) {
49  std::string dirnameNum = buf->d_name;
50  if (dirnameNum.find("run") != std::string::npos)
51  dirnameNum = dirnameNum.substr(3, std::string::npos);
52  if ((unsigned int)atoi(dirnameNum.c_str()) == run) {
53  tmpdir = buf->d_name;
54  break;
55  }
56  }
57  closedir(dir);
58  if (tmpdir.empty())
59  throw cms::Exception("LogicError") << "Run Directory for Run " << run << " Not Found";
60  retval += tmpdir;
61  return retval;
62  }
63 
65  int filecount = 0;
66  DIR *dir = opendir(d.c_str());
67  while (readdir(dir)) {
68  filecount++;
69  }
70  return (filecount == 0);
71  }
72 } // namespace evf
bool checkDirEmpty(std::string &)
Definition: DirManager.cc:64
unsigned int findHighestRun()
Definition: DirManager.cc:7
Int_t maxrun
tuple d
Definition: ztail.py:151
std::string dir_
Definition: DirManager.h:23
std::string findHighestRunDir()
Definition: DirManager.cc:23
std::string findRunDir(unsigned int)
Definition: DirManager.cc:43