CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Functions | Variables
DQMStore.cc File Reference
#include "FWCore/ServiceRegistry/interface/SystemBounds.h"
#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/ROOTFilePB.pb.h"
#include "DQMServices/Core/src/DQMError.h"
#include "classlib/utils/RegexpMatch.h"
#include "classlib/utils/Regexp.h"
#include "classlib/utils/StringOps.h"
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/io/gzip_stream.h>
#include <google/protobuf/io/zero_copy_stream_impl.h>
#include "TFile.h"
#include "TROOT.h"
#include "TKey.h"
#include "TClass.h"
#include "TSystem.h"
#include "TBufferFile.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_rxpbfile (".*\\.pb$")
 
static const lat::Regexp s_rxtrace ("(.*)\\((.*)\\+0x.*\\).*")
 
static void splitPath (std::string &dir, std::string &name, const std::string &path)
 

Variables

static const std::string s_collateDirName = "Collate"
 
static const std::string s_monitorDirName = "DQMData"
 name of global monitoring folder (containing all sources subdirectories) More...
 
static const std::string s_referenceDirName = "Reference"
 
static const 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 78 of file DQMStore.cc.

References clean, and cmsHarvester::path.

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

79 {
80  clean.clear();
81  cleaned = &path;
82 
83  size_t len = path.size();
84  for ( ; len > 0 && path[len-1] == '/'; --len)
85  ;
86 
87  if (len != path.size())
88  {
89  clean = path.substr(0, len);
90  cleaned = &clean;
91  }
92 }
tuple path
else: Piece not in the list, fine.
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 124 of file DQMStore.cc.

References m.

125 { 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 68 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(), DQMStore::savePB(), and DQMStore::tagAllContents().

69 {
70  return (ofdir.empty()
71  || (path.size() >= ofdir.size()
72  && path.compare(0, ofdir.size(), ofdir) == 0
73  && (path.size() == ofdir.size()
74  || path[ofdir.size()] == '/')));
75 }
tuple path
else: Piece not in the list, fine.
template<class T >
QCriterion* makeQCriterion ( const std::string &  qtname)

Definition at line 119 of file DQMStore.cc.

120 { 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 108 of file DQMStore.cc.

References dir, and mergeVDriftHistosByStation::name.

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

109 {
110  path.reserve(dir.size() + name.size() + 2);
111  path += dir;
112  if (! path.empty())
113  path += '/';
114  path += name;
115 }
tuple path
else: Piece not in the list, fine.
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_rxpbfile ( ".*\\.pb$"  )
static

Referenced by DQMStore::load().

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 95 of file DQMStore.cc.

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

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

96 {
97  size_t slash = path.rfind('/');
98  if (slash != std::string::npos)
99  {
100  dir.append(path, 0, slash);
101  name.append(path, slash+1, std::string::npos);
102  }
103  else
104  name = path;
105 }
tuple path
else: Piece not in the list, fine.
dbl *** dir
Definition: mlp_gen.cc:35

Variable Documentation

const std::string s_collateDirName = "Collate"
static

Definition at line 55 of file DQMStore.cc.

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

const std::string s_monitorDirName = "DQMData"
static

name of global monitoring folder (containing all sources subdirectories)

Definition at line 53 of file DQMStore.cc.

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

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

Definition at line 56 of file DQMStore.cc.

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