CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
DBoxMetadataHelper::DBMetaDataPlotDisplay Class Reference

#include <DropBoxMetaDataPayloadInspectorHelper.h>

Public Member Functions

 DBMetaDataPlotDisplay (DBoxMetadataHelper::recordMap theMap, std::string theTag, std::string theIOV)
 
void plotDiffWithMetadata (const DBoxMetadataHelper::recordMap &theRefMap, std::string theRefTag, std::string theRefIOV)
 
void plotMetaDatas ()
 
void setImageFileName (const std::string &theFileName)
 
 ~DBMetaDataPlotDisplay ()=default
 

Private Member Functions

std::string cleanJson (std::string str)
 
void cleanPrepString (std::string &myString)
 
void cleanProdString (std::string &myString)
 
std::vector< std::string > decompose (const std::string &s) const
 
void eraseAllSubStr (std::string &s, const std::string &toErase)
 
void prepareLine (const std::vector< std::string > &thePaths, std::vector< std::string > &output, std::string &tmp, const std::string &header)
 
std::string replaceAll (std::string str, const std::string &from, const std::string &to)
 

Private Attributes

std::string m_imageFileName
 image file name More...
 
std::string m_IOVsinceDisplay
 iov since More...
 
DBoxMetadataHelper::recordMap m_Map
 map of the record / metadata associations More...
 
std::string m_tagName
 tag name More...
 

Detailed Description

Definition at line 181 of file DropBoxMetaDataPayloadInspectorHelper.h.

Constructor & Destructor Documentation

◆ DBMetaDataPlotDisplay()

DBoxMetadataHelper::DBMetaDataPlotDisplay::DBMetaDataPlotDisplay ( DBoxMetadataHelper::recordMap  theMap,
std::string  theTag,
std::string  theIOV 
)
inline

Definition at line 183 of file DropBoxMetaDataPayloadInspectorHelper.h.

184  : m_Map(theMap), m_tagName(theTag), m_IOVsinceDisplay(theIOV) {}
DBoxMetadataHelper::recordMap m_Map
map of the record / metadata associations

◆ ~DBMetaDataPlotDisplay()

DBoxMetadataHelper::DBMetaDataPlotDisplay::~DBMetaDataPlotDisplay ( )
default

Member Function Documentation

◆ cleanJson()

std::string DBoxMetadataHelper::DBMetaDataPlotDisplay::cleanJson ( std::string  str)
inlineprivate

◆ cleanPrepString()

void DBoxMetadataHelper::DBMetaDataPlotDisplay::cleanPrepString ( std::string &  myString)
inlineprivate

Definition at line 551 of file DropBoxMetaDataPayloadInspectorHelper.h.

References eraseAllSubStr(), and replaceAll().

Referenced by plotDiffWithMetadata(), and plotMetaDatas().

551  {
552  eraseAllSubStr(myString, "&quot;");
553  eraseAllSubStr(myString, "destinationDatabase: oracle://cms_orcoff_prep/CMS_CONDITIONS, ");
554  eraseAllSubStr(myString, "since: null, ");
555  eraseAllSubStr(myString, "{");
556  eraseAllSubStr(myString, "}");
557  eraseAllSubStr(myString, ":");
558  myString = replaceAll(myString, "destinationTags", "destinationTags:");
559  myString = replaceAll(myString, "inputTag", "inputTag:");
560  return;
561  }
std::string replaceAll(std::string str, const std::string &from, const std::string &to)
void eraseAllSubStr(std::string &s, const std::string &toErase)

◆ cleanProdString()

void DBoxMetadataHelper::DBMetaDataPlotDisplay::cleanProdString ( std::string &  myString)
inlineprivate

Definition at line 564 of file DropBoxMetaDataPayloadInspectorHelper.h.

References eraseAllSubStr(), and replaceAll().

Referenced by plotDiffWithMetadata(), and plotMetaDatas().

564  {
565  eraseAllSubStr(myString, "&quot;");
566  eraseAllSubStr(myString, "destinationDatabase: oracle://cms_orcon_prod/CMS_CONDITIONS, ");
567  eraseAllSubStr(myString, "since: null, ");
568  eraseAllSubStr(myString, "{");
569  eraseAllSubStr(myString, "}");
570  eraseAllSubStr(myString, ":");
571  myString = replaceAll(myString, "destinationTags", "destinationTags:");
572  myString = replaceAll(myString, "inputTag", "inputTag:");
573  return;
574  }
std::string replaceAll(std::string str, const std::string &from, const std::string &to)
void eraseAllSubStr(std::string &s, const std::string &toErase)

◆ decompose()

std::vector<std::string> DBoxMetadataHelper::DBMetaDataPlotDisplay::decompose ( const std::string &  s) const
inlineprivate

Definition at line 577 of file DropBoxMetaDataPayloadInspectorHelper.h.

References mps_fire::result, and alignCSCRings::s.

Referenced by plotDiffWithMetadata(), and plotMetaDatas().

577  {
578  // decompose 's' into its parts that are separated by 'delimeter_'
579  // (similar as in
580  // Alignment/CommonAlignmentAlgorithm/src/AlignmentParameterSelector.cc)
581 
582  const std::string::value_type delimeter_ = ','; // separator
583  const std::string::value_type space_ = ' '; // separator
584 
585  std::vector<std::string> result;
586  if (!(s.size() == 1 && s[0] == delimeter_)) {
587  // delimeter_ only indicates an empty list as DB cannot store empty strings
588  std::string::size_type previousPos = 0;
589  while (true) {
590  const std::string::size_type delimiterPos = s.find(delimeter_, previousPos);
591  if (delimiterPos == std::string::npos) {
592  result.push_back(s.substr(previousPos)); // until end
593  break;
594  }
595  result.push_back(s.substr(previousPos, delimiterPos - previousPos));
596  previousPos = delimiterPos + 1; // +1: skip delim
597  if (s[previousPos] == space_)
598  previousPos++; // remove space
599  }
600  }
601  return result;
602  }
uint16_t size_type

◆ eraseAllSubStr()

void DBoxMetadataHelper::DBMetaDataPlotDisplay::eraseAllSubStr ( std::string &  s,
const std::string &  toErase 
)
inlineprivate

Definition at line 540 of file DropBoxMetaDataPayloadInspectorHelper.h.

References alignCSCRings::s.

Referenced by cleanPrepString(), cleanProdString(), and plotDiffWithMetadata().

540  {
541  size_t pos = std::string::npos;
542  // Search for the substring in string in a loop until nothing is found
543  while ((pos = s.find(toErase)) != std::string::npos) {
544  // If found then erase it from string
545  s.erase(pos, toErase.length());
546  }
547  return;
548  }

◆ plotDiffWithMetadata()

void DBoxMetadataHelper::DBMetaDataPlotDisplay::plotDiffWithMetadata ( const DBoxMetadataHelper::recordMap theRefMap,
std::string  theRefTag,
std::string  theRefIOV 
)
inline

Definition at line 332 of file DropBoxMetaDataPayloadInspectorHelper.h.

References beamvalidation::br, svgfig::canvas(), cleanPrepString(), cleanProdString(), decompose(), eraseAllSubStr(), DQMScaleToClient_cfi::factor, MillePedeFileConverter_cfg::fileName, spr::find(), DBoxMetadataHelper::getAllRecords(), mps_fire::i, crabWrapper::key, MainPageGenerator::l, mps_splice::line, groupFilesInBlocks::lines, m_imageFileName, m_IOVsinceDisplay, m_Map, m_tagName, SiStripPI::max, convertSQLitetoXML_cfg::output, prepareLine(), DBoxMetadataHelper::set_intersection(), AlCaHLTBitMon_QueryRunRegistry::string, heppy_batch::val, testProducerWithPsetDescEmpty_cfi::x1, and testProducerWithPsetDescEmpty_cfi::x2.

334  {
335  const auto& ref_records = DBoxMetadataHelper::getAllRecords(theRefMap);
336  const auto& tar_records = DBoxMetadataHelper::getAllRecords(m_Map);
337 
338  // const auto& diff = DBoxMetadataHelper::set_difference(ref_records, tar_records);
339  const auto& common = DBoxMetadataHelper::set_intersection(ref_records, tar_records);
340 
341  // preparations for plotting
342  // starting table at y=1.0 (top of the canvas)
343  // first column is at 0.03, second column at 0.22 NDC
344  unsigned int mapsize = 2 * m_Map.size();
345  float pitch = 1. / (mapsize * 1.1);
346  float y, x1, x2;
347  std::vector<float> y_x1, y_x2, y_line;
348  std::vector<std::string> s_x1, s_x2, s_x3;
349  y = 1.0;
350  x1 = 0.02;
351  x2 = x1 + 0.30;
352  y -= pitch;
353 
354  // title for plot
355  y_x1.push_back(y);
356  s_x1.push_back("#scale[1.2]{Key}");
357  y_x2.push_back(y);
358  s_x2.push_back("#scale[1.2]{Target tag / IOV :" + m_tagName + " / " + m_IOVsinceDisplay + "}");
359 
360  y -= pitch;
361  y_x1.push_back(y);
362  s_x1.push_back("");
363  y_x2.push_back(y);
364  s_x2.push_back("#scale[1.2]{Reference tag / IOV :" + theRefTag + " / " + theRefIOV + "}");
365 
366  y -= pitch / 2.;
367  y_line.push_back(y);
368 
369  // do first the common parts
370  for (const auto& key : common) {
371  const auto& val = m_Map.at(key);
372  const auto& refval = theRefMap.at(key);
373 
374  y -= pitch;
375  y_x1.push_back(y);
376  s_x1.push_back(key);
377 
378  std::vector<std::string> output;
379 
380  std::string tarPrepMetaData = val.getPrepMetaData();
381  std::string tarProdMetaData = val.getProdMetaData();
382  std::string refPrepMetaData = refval.getPrepMetaData();
383  std::string refProdMetaData = refval.getProdMetaData();
384 
385  // Remove &quot and uninteresting text from output for sake of clarity
386  cleanPrepString(tarPrepMetaData);
387  cleanPrepString(refPrepMetaData);
388  cleanProdString(tarProdMetaData);
389  cleanProdString(refProdMetaData);
390 
391  const std::vector<std::string> tarPathsPrep = decompose(tarPrepMetaData);
392  const std::vector<std::string> refPathsPrep = decompose(refPrepMetaData);
393  const std::vector<std::string> tarPathsProd = decompose(tarProdMetaData);
394  const std::vector<std::string> refPathsProd = decompose(refProdMetaData);
395 
396  bool refAndTarIdentical = true;
397  std::string tmpTar = "";
398  std::string tmpRef = "";
399 
400  prepareLine(tarPathsPrep, output, tmpTar, "PREP/tar");
401  prepareLine(refPathsPrep, output, tmpRef, "PREP/ref");
402 
403  // check if printouts are identical for PREP
404  eraseAllSubStr(tmpTar, "PREP/tar: ");
405  eraseAllSubStr(tmpRef, "PREP/ref: ");
406  if (tmpTar != tmpRef) {
407  refAndTarIdentical = false;
408  } else {
409  output.clear();
410  }
411 
412  // determine the size after having filled the prep- metadata
413  size_t lenAfterPrep = output.size();
414 
415  // clear the tmps
416  tmpTar = "";
417  tmpRef = "";
418 
419  prepareLine(tarPathsProd, output, tmpTar, "PROD/tar");
420  prepareLine(refPathsProd, output, tmpRef, "PROD/ref");
421 
422  // check if printouts are identical for PROD
423  eraseAllSubStr(tmpTar, "PROD/tar: ");
424  eraseAllSubStr(tmpRef, "PROD/ref: ");
425  if (tmpTar != tmpRef) {
426  refAndTarIdentical = false;
427  } else {
428  // remove everything after the prep one
429  output.erase(output.end() - lenAfterPrep, output.end());
430  }
431 
432  // print either "identical" or contents of tags
433  if (refAndTarIdentical) {
434  y_x2.push_back(y);
435  s_x2.push_back("#color[4]{identical}");
436  } else {
437  for (unsigned int br = 0; br < output.size(); br++) {
438  y_x2.push_back(y);
439  // do not use red color since colors get mixed if output[br]
440  // contains a right curly brace (I could not find a way to circumvent that)
441  s_x2.push_back(output[br]);
442 
443  if (br != output.size() - 1)
444  y -= pitch;
445  }
446  }
447  y_line.push_back(y - (pitch / 2.));
448  }
449 
450  // now when common parts are handled, check if there are additional records
451  // (one could check if diff is empty, but his doesn't seem to work as expected)
452 
453  // First, check if there are records in reference which are not in target
454  for (const auto& ref : ref_records) {
455  if (std::find(tar_records.begin(), tar_records.end(), ref) == tar_records.end()) {
456  y -= pitch;
457  y_x1.push_back(y);
458  s_x1.push_back(ref);
459  y_x2.push_back(y);
460  s_x2.push_back("#bf{Only in reference, not in target.}");
461  y_line.push_back(y - (pitch / 2.));
462  }
463  }
464 
465  // Second, check if there are records in target which are not in reference
466  for (const auto& tar : tar_records) {
467  if (std::find(ref_records.begin(), ref_records.end(), tar) == ref_records.end()) {
468  y -= pitch;
469  y_x1.push_back(y);
470  s_x1.push_back(tar);
471  y_x2.push_back(y);
472  s_x2.push_back("#bf{Only in target, not in reference.}");
473  y_line.push_back(y - (pitch / 2.));
474  }
475  }
476 
477  // Finally, print text to TCanvas
478 
479  TCanvas canvas("DropBoxMetaData", "DropBoxMetaData", 2000, std::max(y_x1.size(), y_x2.size()) * 40);
480  TLatex l;
481  // Draw the columns titles
482  l.SetTextAlign(12);
483 
484  float newpitch = 1 / (std::max(y_x1.size(), y_x2.size()) * 1.1);
485  float factor = newpitch / pitch;
486  l.SetTextSize(newpitch - 0.002);
487  canvas.cd();
488  for (unsigned int i = 0; i < y_x1.size(); i++) {
489  l.DrawLatexNDC(x1, 1 - (1 - y_x1[i]) * factor, s_x1[i].c_str());
490  }
491 
492  for (unsigned int i = 0; i < y_x2.size(); i++) {
493  l.DrawLatexNDC(x2, 1 - (1 - y_x2[i]) * factor, s_x2[i].c_str());
494  }
495 
496  canvas.cd();
497  canvas.Update();
498 
499  // Draw horizontal lines separating records
500  TLine lines[y_line.size()];
501  unsigned int iL = 0;
502  for (const auto& line : y_line) {
503  lines[iL] = TLine(gPad->GetUxmin(), 1 - (1 - line) * factor, gPad->GetUxmax(), 1 - (1 - line) * factor);
504  lines[iL].SetLineWidth(1);
505  lines[iL].SetLineStyle(9);
506  lines[iL].SetLineColor(2);
507  lines[iL].Draw("same");
508  iL++;
509  }
510 
511  std::string fileName("DropBoxMetadata_Compare.png");
512  if (!m_imageFileName.empty())
514  canvas.SaveAs(fileName.c_str());
515  }
const std::vector< std::string > getAllRecords(const DBoxMetadataHelper::recordMap &recordSet)
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
std::vector< std::string > decompose(const std::string &s) const
DBoxMetadataHelper::recordMap m_Map
map of the record / metadata associations
void eraseAllSubStr(std::string &s, const std::string &toErase)
Definition: common.py:1
def canvas(sub, attr)
Definition: svgfig.py:482
void prepareLine(const std::vector< std::string > &thePaths, std::vector< std::string > &output, std::string &tmp, const std::string &header)
std::vector< std::string > set_intersection(std::vector< std::string > const &v1, std::vector< std::string > const &v2)

◆ plotMetaDatas()

void DBoxMetadataHelper::DBMetaDataPlotDisplay::plotMetaDatas ( )
inline

Definition at line 193 of file DropBoxMetaDataPayloadInspectorHelper.h.

References beamvalidation::br, svgfig::canvas(), cleanPrepString(), cleanProdString(), decompose(), DQMScaleToClient_cfi::factor, MillePedeFileConverter_cfg::fileName, mps_fire::i, MainPageGenerator::l, mps_splice::line, groupFilesInBlocks::lines, m_imageFileName, m_IOVsinceDisplay, m_Map, m_tagName, SiStripPI::max, convertSQLitetoXML_cfg::output, AlCaHLTBitMon_QueryRunRegistry::string, testProducerWithPsetDescEmpty_cfi::x1, and testProducerWithPsetDescEmpty_cfi::x2.

193  {
194  unsigned int mapsize = m_Map.size();
195  float pitch = 1. / (mapsize * 1.1);
196 
197  float y, x1, x2;
198  std::vector<float> y_x1, y_x2, y_line;
199  std::vector<std::string> s_x1, s_x2, s_x3;
200 
201  // starting table at y=1.0 (top of the canvas)
202  // first column is at 0.02, second column at 0.32 NDC
203  y = 1.0;
204  x1 = 0.02;
205  x2 = x1 + 0.30;
206 
207  y -= pitch;
208  y_x1.push_back(y);
209  s_x1.push_back("#scale[1.2]{Key}");
210  y_x2.push_back(y);
211  s_x2.push_back("#scale[1.2]{tag: " + m_tagName + " in IOV: " + m_IOVsinceDisplay + "}");
212 
213  y -= pitch / 2.;
214  y_line.push_back(y);
215 
216  for (const auto& element : m_Map) {
217  y -= pitch;
218  y_x1.push_back(y);
219  s_x1.push_back(element.first);
220 
221  std::vector<std::string> output;
222  std::string toAppend = "";
223 
224  std::string prepMetaData = element.second.getPrepMetaData();
225  std::string prodMetaData = element.second.getProdMetaData();
226 
227  // Remove &quot and uninteresting text from output for sake of clarity
228  cleanPrepString(prepMetaData);
229  cleanProdString(prodMetaData);
230 
231  const std::vector<std::string> pathsPrep = decompose(prepMetaData);
232  const std::vector<std::string> pathsProd = decompose(prodMetaData);
233 
234  const int colWidth = 80;
235 
236  toAppend = "PREP: ";
237  output.push_back(toAppend);
238  toAppend.clear();
239  for (unsigned int iPath = 0; iPath < pathsPrep.size(); ++iPath) {
240  std::string thisString = pathsPrep[iPath];
241  // skip userText since we want to see actual contents, not metadata
242  if (thisString.find("userText") == std::string::npos) {
243  // if the line to be added has less than colWidth chars, and is not a new tag ("inputTag"), append to current
244  if ((toAppend + thisString).length() < colWidth && thisString.find("inputTag") != 0) {
245  toAppend += thisString;
246  } else {
247  // else if the line exceeds colWidth chars or this is a new tag ("inputTag"), dump in the vector and resume from scratch
248  output.push_back(toAppend);
249  toAppend.clear();
250  toAppend += thisString;
251  }
252  }
253  // if it's the last, dump it
254  if (iPath == pathsPrep.size() - 1) {
255  output.push_back(toAppend);
256  }
257  }
258 
259  toAppend = "PROD: ";
260  output.push_back(toAppend);
261  toAppend.clear();
262  for (unsigned int iPath = 0; iPath < pathsProd.size(); ++iPath) {
263  std::string thisString = pathsProd[iPath];
264 
265  if (thisString.find("userText") == std::string::npos) {
266  // if the line to be added has less than colWidth chars append to current
267  if ((toAppend + thisString).length() < colWidth && thisString.find("inputTag") != 0) {
268  toAppend += thisString;
269  } else {
270  // else if the line exceeds colWidth chars or this is a new tag ("inputTag"), dump in the vector and resume from scratch
271  output.push_back(toAppend);
272  toAppend.clear();
273  toAppend += thisString;
274  }
275  }
276  // if it's the last, dump it
277  if (iPath == pathsProd.size() - 1)
278  output.push_back(toAppend);
279  }
280 
281  for (unsigned int br = 0; br < output.size(); br++) {
282  y_x2.push_back(y);
283  // do not use red color since colors get mixed if output[br]
284  // contains a right curly brace (I could not find a way to circumvent that)
285  s_x2.push_back(output[br]);
286 
287  if (br != output.size() - 1)
288  y -= pitch;
289  }
290 
291  y_line.push_back(y - (pitch / 2.));
292  }
293 
294  TCanvas canvas("DropBoxMetaData", "DropBoxMetaData", 2000, std::max(y_x1.size(), y_x2.size()) * 40);
295  TLatex l;
296 
297  // Draw the columns titles
298  l.SetTextAlign(12);
299  float newpitch = 1 / (std::max(y_x1.size(), y_x2.size()) * 1.1);
300  float factor = newpitch / pitch;
301  l.SetTextSize(newpitch - 0.002);
302  canvas.cd();
303  for (unsigned int i = 0; i < y_x1.size(); i++) {
304  l.DrawLatexNDC(x1, 1 - (1 - y_x1[i]) * factor, s_x1[i].c_str());
305  }
306 
307  for (unsigned int i = 0; i < y_x2.size(); i++) {
308  l.DrawLatexNDC(x2, 1 - (1 - y_x2[i]) * factor, s_x2[i].c_str());
309  }
310  canvas.cd();
311  canvas.Update();
312 
313  // Draw horizontal lines separating records
314  TLine lines[y_line.size()];
315  unsigned int iL = 0;
316  for (const auto& line : y_line) {
317  lines[iL] = TLine(gPad->GetUxmin(), 1 - (1 - line) * factor, gPad->GetUxmax(), 1 - (1 - line) * factor);
318  lines[iL].SetLineWidth(1);
319  lines[iL].SetLineStyle(9);
320  lines[iL].SetLineColor(2);
321  lines[iL].Draw("same");
322  iL++;
323  }
324 
325  std::string fileName("DropBoxMetadata_Display.png");
326  if (!m_imageFileName.empty())
328  canvas.SaveAs(fileName.c_str());
329  }
std::vector< std::string > decompose(const std::string &s) const
DBoxMetadataHelper::recordMap m_Map
map of the record / metadata associations
def canvas(sub, attr)
Definition: svgfig.py:482

◆ prepareLine()

void DBoxMetadataHelper::DBMetaDataPlotDisplay::prepareLine ( const std::vector< std::string > &  thePaths,
std::vector< std::string > &  output,
std::string &  tmp,
const std::string &  header 
)
inlineprivate

Definition at line 605 of file DropBoxMetaDataPayloadInspectorHelper.h.

References RecoTauValidation_cfi::header, convertSQLitetoXML_cfg::output, AlCaHLTBitMon_QueryRunRegistry::string, createJobs::tmp, and cond::impl::to_string().

Referenced by plotDiffWithMetadata().

608  {
609  const int color = (header.find("tar") == std::string::npos) ? 2 /*kRed*/ : 3 /*kGreen*/;
610  const int colWidth = 80; // maximum width of column
611 
612  std::string toAppend = "";
613  toAppend = header;
614  output.push_back("#color[" + std::to_string(color) + "]{" + toAppend + "}");
615  toAppend.clear();
616  for (unsigned int iPath = 0; iPath < thePaths.size(); ++iPath) {
617  std::string thisString = thePaths[iPath];
618  // skip userText since we want to compare actual contents, not metadata
619  if (thisString.find("userText") == std::string::npos) {
620  // if the line to be added has less than colWidth chars, and is not a new tag ("inputTag"), append to current
621  if ((toAppend + thisString).length() < colWidth && thisString.find("inputTag") != 0) {
622  toAppend += thisString;
623  } else {
624  // else if the line exceeds colWidth chars or this is a new tag ("inputTag"), dump in the vector and resume from scratch
625  output.push_back("#color[" + std::to_string(color) + "]{" + toAppend + "}");
626  tmp += toAppend;
627  toAppend.clear();
628  toAppend += thisString;
629  }
630  }
631  if (iPath == thePaths.size() - 1) {
632  output.push_back("#color[" + std::to_string(color) + "]{" + toAppend + "}");
633  tmp += toAppend;
634  }
635  }
636  }
std::string to_string(const V &value)
Definition: OMSAccess.h:71
tmp
align.sh
Definition: createJobs.py:716

◆ replaceAll()

std::string DBoxMetadataHelper::DBMetaDataPlotDisplay::replaceAll ( std::string  str,
const std::string &  from,
const std::string &  to 
)
inlineprivate

Definition at line 524 of file DropBoxMetaDataPayloadInspectorHelper.h.

References str.

Referenced by cleanJson(), cleanPrepString(), and cleanProdString().

524  {
525  size_t start_pos = 0;
526  while ((start_pos = str.find(from, start_pos)) != std::string::npos) {
527  str.replace(start_pos, from.length(), to);
528  start_pos += to.length(); // Handles case where 'to' is a substring of 'from'
529  }
530  return str;
531  }
#define str(s)

◆ setImageFileName()

void DBoxMetadataHelper::DBMetaDataPlotDisplay::setImageFileName ( const std::string &  theFileName)
inline

Definition at line 187 of file DropBoxMetaDataPayloadInspectorHelper.h.

References m_imageFileName.

187  {
188  m_imageFileName = theFileName;
189  return;
190  }

Member Data Documentation

◆ m_imageFileName

std::string DBoxMetadataHelper::DBMetaDataPlotDisplay::m_imageFileName
private

image file name

Definition at line 521 of file DropBoxMetaDataPayloadInspectorHelper.h.

Referenced by plotDiffWithMetadata(), plotMetaDatas(), and setImageFileName().

◆ m_IOVsinceDisplay

std::string DBoxMetadataHelper::DBMetaDataPlotDisplay::m_IOVsinceDisplay
private

iov since

Definition at line 520 of file DropBoxMetaDataPayloadInspectorHelper.h.

Referenced by plotDiffWithMetadata(), and plotMetaDatas().

◆ m_Map

DBoxMetadataHelper::recordMap DBoxMetadataHelper::DBMetaDataPlotDisplay::m_Map
private

map of the record / metadata associations

Definition at line 518 of file DropBoxMetaDataPayloadInspectorHelper.h.

Referenced by plotDiffWithMetadata(), and plotMetaDatas().

◆ m_tagName

std::string DBoxMetadataHelper::DBMetaDataPlotDisplay::m_tagName
private

tag name

Definition at line 519 of file DropBoxMetaDataPayloadInspectorHelper.h.

Referenced by plotDiffWithMetadata(), and plotMetaDatas().