|
|
Go to the documentation of this file.
17 #include <sys/types.h>
23 std::string const& defPath,
std::string const defGroup,
bool strictChecking,
bool useSource,
bool useDefinition)
25 strictChecking_(strictChecking),
26 useSource_(useSource),
27 useDefinition_(useDefinition),
40 : strictChecking_(strictChecking), useSource_(useSource), useDefinition_(useDefinition), nStreams_(1), dpd_(dpd) {
67 unsigned int*
nBins) {
69 dp->trackMonitorable(newMonitorable, NAifZeroUpdates);
81 dp->trackMonitorable(newMonitorable,
false);
87 std::vector<unsigned int>*
inputs,
89 unsigned int*
nBins) {
100 std::vector<AtomicMonUInt*>*
inputs,
101 bool NAifZeroUpdates,
102 unsigned int*
nBins) {
107 dp->trackVectorUIntAtomic(
name,
inputs, NAifZeroUpdates);
115 std::vector<std::string>
const& jsonNames =
dpd_->
getNames();
120 std::map<unsigned int, bool> hasJson;
121 for (
unsigned int i = 0;
i < jsonNames.size();
i++) {
122 bool notFoundVar =
true;
150 std::map<unsigned int, bool> fhasJson;
151 for (
unsigned int i = 0;
i < fjsonNames.size();
i++) {
152 bool notFoundVar =
true;
164 bool notFoundVarSlow =
true;
169 notFoundVarSlow =
false;
176 if (notFoundVarSlow) {
215 std::stringstream
ss;
217 for (
unsigned int j = 0;
j < monSize;
j++) {
238 return dataPoints_[it->second]->mergeAndRetrieveValue(forLumi);
243 <<
") in lumisection ";
255 std::stringstream tidext;
256 tidext <<
"_tid" <<
i;
268 <<
") in lumisection ";
286 dp->discardCollected(forLumi);
290 std::stringstream hpid;
291 int pid = (
int)getpid();
293 gethostname(hostname,
sizeof hostname);
294 hpid << hostname <<
"_" << pid;
std::unordered_set< std::string > uids_
unsigned int recentSnapsTimer_
std::vector< std::string > const & getNames()
std::vector< DataPoint * > dataPoints_
void commit(std::vector< unsigned int > *streamLumisPtr)
bool outputFullJSON(std::string const &path, unsigned int lumi, bool output=true)
JsonMonitorable * getMergedIntJForLumi(std::string const &name, unsigned int forLumi)
U second(std::pair< T, U > const &p)
unsigned int recentSnaps_
void getHostAndPID(std::string &sHPid)
std::vector< DataPoint * > jsonDpIndexFast_
void registerGlobalMonitorable(JsonMonitorable *newMonitorable, bool NAifZeroUpdates, unsigned int *nBins=nullptr)
DataPointDefinition * dpdFast_
virtual std::string & getName()
unsigned int fregDpCount_
void registerStreamMonitorableUIntVec(std::string const &name, std::vector< unsigned int > *inputs, bool NAifZeroUpdates, unsigned int *nBins=nullptr)
static bool getDataPointDefinitionFor(std::string &defFilePath, DataPointDefinition *dpd, const std::string *defaultGroup=nullptr)
OperationType getOperationFor(unsigned int index)
void addFastPathDefinition(std::string const &defPathFast, std::string const defGroupFast, bool strict)
void outputCSV(std::string const &path, std::string const &csvString)
TString getName(TString structure, int layer, TString geometry)
Writes a Value in JSON format in a human friendly way.
void snapGlobal(unsigned int ls)
bool outputFullJSONs(std::string const &pathstem, std::string const &ext, unsigned int lumi, bool output=true)
bool fastPathStrictChecking_
void registerStreamMonitorableUIntVecAtomic(std::string const &name, std::vector< AtomicMonUInt * > *inputs, bool NAifZeroUpdates, unsigned int *nBins=nullptr)
static void writeStringToFile(std::string const &filename, std::string &content)
void registerFastGlobalMonitorable(JsonMonitorable *newMonitorable)
DataPointDefinition * dpd_
void trackDummy(std::string const &name, bool setNAifZeroUpdates)
void snapStreamAtomic(unsigned int ls, unsigned int streamID)
std::map< std::string, unsigned int > dpNameMap_
void snap(unsigned int ls)
FastMonitor(std::string const &defPath, std::string const defGroup, bool strictChecking, bool useSource=true, bool useDefinition=true)
std::string getCSVString(int sid=-1)
std::vector< unsigned int > jsonDpIndex_
void discardCollected(unsigned int forLumi)
std::vector< DataPoint * > dataPointsFastOnly_