CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Functions | Variables
DQMStore.cc File Reference
#include "DQMServices/Core/interface/Standalone.h"
#include "DQMServices/Core/interface/DQMStore.h"
#include "DQMServices/Core/interface/QReport.h"
#include "DQMServices/Core/interface/QTest.h"
#include "DQMServices/Core/src/DQMError.h"
#include "classlib/utils/RegexpMatch.h"
#include "classlib/utils/Regexp.h"
#include "classlib/utils/StringOps.h"
#include "TFile.h"
#include "TROOT.h"
#include "TKey.h"
#include "TClass.h"
#include "TSystem.h"
#include <iterator>
#include <cerrno>
#include <boost/algorithm/string.hpp>
#include <fstream>

Go to the source code of this file.

Functions

static void cleanTrailingSlashes (const std::string &path, std::string &clean, const std::string *&cleaned)
 
template<class T >
void initQCriterion (std::map< std::string, QCriterion *(*)(const std::string &)> &m)
 
static bool isSubdirectory (const std::string &ofdir, const std::string &path)
 
template<class T >
QCriterionmakeQCriterion (const std::string &qtname)
 
static void mergePath (std::string &path, const std::string &dir, const std::string &name)
 
static const lat::Regexp s_rxmeqr1 ("^st:(\\d+):([-+e.\\d]+):([^:]*):(.*)$")
 
static const lat::Regexp s_rxmeqr2 ("^st\\.(\\d+)\\.(.*)$")
 
static const lat::Regexp s_rxmeval ("^<(.*)>(i|f|s|e|t|qr)=(.*)</\\1>$")
 
static const lat::Regexp s_rxtrace ("(.*)\\((.*)\\+0x.*\\).*")
 
static void splitPath (std::string &dir, std::string &name, const std::string &path)
 

Variables

static std::string s_collateDirName = "Collate"
 
static std::string s_monitorDirName = "DQMData"
 name of global monitoring folder (containing all sources subdirectories) More...
 
static std::string s_referenceDirName = "Reference"
 
static std::string s_safe = "/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-+=_()# "
 

Function Documentation

static void cleanTrailingSlashes ( const std::string &  path,
std::string &  clean,
const std::string *&  cleaned 
)
static

Definition at line 71 of file DQMStore.cc.

References clean, and scaleCards::path.

Referenced by DQMStore::cd(), DQMStore::getAllContents(), DQMStore::getContents(), DQMStore::getStatus(), DQMStore::rmdir(), DQMStore::setCurrentFolder(), DQMStore::tagAllContents(), and DQMStore::useQTest().

72 {
73  clean.clear();
74  cleaned = &path;
75 
76  size_t len = path.size();
77  for ( ; len > 0 && path[len-1] == '/'; --len)
78  ;
79 
80  if (len != path.size())
81  {
82  clean = path.substr(0, len);
83  cleaned = &clean;
84  }
85 }
list path
Definition: scaleCards.py:51
std::vector< T * > clean
Definition: MVATrainer.cc:156
template<class T >
void initQCriterion ( std::map< std::string, QCriterion *(*)(const std::string &)> &  m)

Definition at line 117 of file DQMStore.cc.

References m.

118 { m[T::getAlgoName()] = &makeQCriterion<T>; }
static bool isSubdirectory ( const std::string &  ofdir,
const std::string &  path 
)
static

Check whether the path is a subdirectory of ofdir. Returns true both for an exact match and any nested subdirectory.

Definition at line 61 of file DQMStore.cc.

Referenced by DQMStore::containsAnyMonitorable(), DQMStore::extract(), DQMStore::getAllContents(), DQMStore::getAllTags(), DQMStore::getContents(), DQMStore::getMEs(), DQMStore::getStatus(), DQMStore::getSubdirs(), DQMStore::isCollateME(), DQMStore::readDirectory(), DQMStore::removeContents(), DQMStore::rmdir(), DQMStore::runQTests(), DQMStore::save(), and DQMStore::tagAllContents().

62 {
63  return (ofdir.empty()
64  || (path.size() >= ofdir.size()
65  && path.compare(0, ofdir.size(), ofdir) == 0
66  && (path.size() == ofdir.size()
67  || path[ofdir.size()] == '/')));
68 }
list path
Definition: scaleCards.py:51
template<class T >
QCriterion* makeQCriterion ( const std::string &  qtname)

Definition at line 112 of file DQMStore.cc.

113 { return new T(qtname); }
long double T
static void mergePath ( std::string &  path,
const std::string &  dir,
const std::string &  name 
)
static

Definition at line 101 of file DQMStore.cc.

References dir, and mergeVDriftHistosByStation::name.

Referenced by DQMStore::book(), DQMStore::getMatchingContents(), and DQMStore::useQTestByMatch().

102 {
103  path.reserve(dir.size() + name.size() + 2);
104  path += dir;
105  if (! path.empty())
106  path += '/';
107  path += name;
108 }
list path
Definition: scaleCards.py:51
dbl *** dir
Definition: mlp_gen.cc:35
static const lat::Regexp s_rxmeqr1 ( "^st:(\\d+):([-+e.\\d]+):([^:]*):(.*)$"  )
static

Referenced by DQMStore::extract().

static const lat::Regexp s_rxmeqr2 ( "^st\\.(\\d+)\\.(.*)$"  )
static

Referenced by DQMStore::extract().

static const lat::Regexp s_rxmeval ( )
static

Referenced by DQMStore::extract().

static const lat::Regexp s_rxtrace ( "(.*)\\((.*)\\+0x.*\\).*"  )
static

Referenced by DQMStore::print_trace().

static void splitPath ( std::string &  dir,
std::string &  name,
const std::string &  path 
)
static

Definition at line 88 of file DQMStore.cc.

References scaleCards::path, and pickleFileParser::slash.

Referenced by DQMStore::get(), and DQMStore::tag().

89 {
90  size_t slash = path.rfind('/');
91  if (slash != std::string::npos)
92  {
93  dir.append(path, 0, slash);
94  name.append(path, slash+1, std::string::npos);
95  }
96  else
97  name = path;
98 }
list path
Definition: scaleCards.py:51
dbl *** dir
Definition: mlp_gen.cc:35

Variable Documentation

std::string s_collateDirName = "Collate"
static

Definition at line 49 of file DQMStore.cc.

Referenced by DQMStore::isCollateME(), and DQMStore::readDirectory().

std::string s_monitorDirName = "DQMData"
static

name of global monitoring folder (containing all sources subdirectories)

Definition at line 47 of file DQMStore.cc.

Referenced by DQMStore::readDirectory(), and DQMStore::save().

std::string s_referenceDirName = "Reference"
static
std::string s_safe = "/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-+=_()# "
static

Definition at line 50 of file DQMStore.cc.

Referenced by DQMStore::findObject(), and DQMStore::useQTest().