1 #if !WITHOUT_CMS_FRAMEWORK
8 # include "classlib/utils/Regexp.h"
9 # include "classlib/utils/Error.h"
14 #include "TBufferFile.h"
17 static pthread_mutex_t
s_mutex = PTHREAD_MUTEX_INITIALIZER;
22 { pthread_mutex_lock(&
s_mutex); }
26 { pthread_mutex_unlock(&
s_mutex); }
31 { pthread_mutex_lock(&
s_mutex); }
40 { pthread_mutex_unlock(&
s_mutex); }
52 publishFrequency_(5.0)
69 if (host !=
"" && port > 0)
73 net_->updateToCollector(host, port);
81 filter_ =
new lat::Regexp(filter);
84 <<
"Invalid 'filter' parameter value '" << filter <<
"':"
85 <<
" bad regular expression syntax at character "
92 <<
"Invalid regular expression 'filter' parameter value '"
93 << filter <<
"': " << e.explain();
111 double vtime = version * 1e-9;
119 std::set<std::string> seen;
120 std::string fullpath;
124 bool updated =
false;
127 DQMStore::MEMap::iterator
i, e;
141 seen.insert(fullpath);
154 assert(o.
qdata.empty());
167 TBufferFile buffer(TBufferFile::kWrite);
168 buffer.WriteObject(me.
object_);
172 buffer.WriteObjectAny(0, 0);
173 o.
rawdata.resize(buffer.Length());
174 memcpy(&o.
rawdata[0], buffer.Buffer(), buffer.Length());
181 net_->updateLocalObject(o);
183 std::string().swap(o.
scalar);
184 std::string().swap(o.
qdata);
189 if (
net_->removeLocalExcept(seen))
197 net_->sendLocalChanges();
213 #endif // !WITHOUT_CMS_FRAMEWORK
T getUntrackedParameter(std::string const &, T const &) const
static void releaseDQMAccessM(const edm::ModuleDescription &)
void watchPostEndJob(PostEndJob::slot_type const &iSlot)
void watchPostModule(PostModule::slot_type const &iSlot)
void watchPreSourceConstruction(PreSourceConstruction::slot_type const &iSlot)
void watchPostSourceConstruction(PostSourceConstruction::slot_type const &iSlot)
const std::string * dirname
void watchPreModule(PreModule::slot_type const &iSlot)
void packScalarData(std::string &into, const char *prefix) const
convert scalar data into a string.
bool wasUpdated(void) const
true if ME was updated in last monitoring cycle
void watchPostProcessEvent(PostProcessEvent::slot_type const &iSlot)
static void releaseDQMAccess(void)
Release access to the DQM core.
static void restrictDQMAccessM(const edm::ModuleDescription &)
std::vector< unsigned char > DataBlob
void watchPreSource(PreSource::slot_type const &iSlot)
static size_t dqmhash(const void *key, size_t keylen)
static void restrictDQMAccess(void)
Restrict access to the DQM core.
Kind kind(void) const
Get the type of the monitor element.
static pthread_mutex_t s_mutex
~DQMScope(void)
Release access lock to the DQM core.
tuple filter
USE THIS FOR SKIMMED TRACKS process.p = cms.Path(process.hltLevel1GTSeed*process.skimming*process.offlineBeamSpot*process.TrackRefitter2) OTHERWISE USE THIS.
unsigned long long uint64_t
static void packQualityData(std::string &into, const QReports &qr)
DQMService(const edm::ParameterSet &pset, edm::ActivityRegistry &ar)
void flush(const edm::Event &, const edm::EventSetup &)
void watchPostSource(PostSource::slot_type const &iSlot)