CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
DBoxMetadataHelper::DBMetaDataTableDisplay Class Reference

#include <DropBoxMetaDataPayloadInspectorHelper.h>

Public Member Functions

 DBMetaDataTableDisplay (DBoxMetadataHelper::recordMap theMap)
 
void printDiffWithMetadata (const DBoxMetadataHelper::recordMap &theRefMap)
 
void printMetaDatas ()
 
void printOneKey (const DBoxMetadataHelper::RecordMetaDataInfo &oneKey)
 
 ~DBMetaDataTableDisplay ()=default
 

Private Member Functions

std::string cleanJson (std::string str)
 
std::string replaceAll (std::string str, const std::string &from, const std::string &to)
 

Private Attributes

DBoxMetadataHelper::recordMap m_Map
 

Detailed Description

Definition at line 74 of file DropBoxMetaDataPayloadInspectorHelper.h.

Constructor & Destructor Documentation

DBoxMetadataHelper::DBMetaDataTableDisplay::DBMetaDataTableDisplay ( DBoxMetadataHelper::recordMap  theMap)
inline

Definition at line 76 of file DropBoxMetaDataPayloadInspectorHelper.h.

76 : m_Map(theMap) {}
DBoxMetadataHelper::DBMetaDataTableDisplay::~DBMetaDataTableDisplay ( )
default

Member Function Documentation

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

Definition at line 178 of file DropBoxMetaDataPayloadInspectorHelper.h.

References submitPVResolutionJobs::out, replaceAll(), and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by printDiffWithMetadata(), printMetaDatas(), and printOneKey().

178  {
179  std::string out = replaceAll(str, std::string("&quot;"), std::string("'"));
180  return out;
181  }
std::string replaceAll(std::string str, const std::string &from, const std::string &to)
#define str(s)
void DBoxMetadataHelper::DBMetaDataTableDisplay::printDiffWithMetadata ( const DBoxMetadataHelper::recordMap theRefMap)
inline

Definition at line 102 of file DropBoxMetaDataPayloadInspectorHelper.h.

References cleanJson(), compare(), change_name::diff, spr::find(), DBoxMetadataHelper::getAllRecords(), submitPVResolutionJobs::key, m_Map, printOneKey(), DBoxMetadataHelper::set_difference(), DBoxMetadataHelper::set_intersection(), and hgcalPerformanceValidation::val.

102  {
103  edm::LogPrint("DropBoxMetadataPIHelper")
104  << "Target has: " << m_Map.size() << " records, reference has: " << theRefMap.size() << " records"
105  << std::endl;
106 
107  const auto& ref_records = DBoxMetadataHelper::getAllRecords(theRefMap);
108  const auto& tar_records = DBoxMetadataHelper::getAllRecords(m_Map);
109 
110  const auto& diff = DBoxMetadataHelper::set_difference(ref_records, tar_records);
111  const auto& common = DBoxMetadataHelper::set_intersection(ref_records, tar_records);
112 
113  // do first the common parts
114  for (const auto& key : common) {
115  edm::LogPrint("DropBoxMetadataPIHelper") << "key: " << key << "\n" << std::endl;
116  const auto& val = m_Map.at(key);
117  const auto& refval = theRefMap.at(key);
118 
119  if ((val.getPrepMetaData()).compare(refval.getPrepMetaData()) != 0) {
120  edm::LogPrint("DropBoxMetadataPIHelper") << "found difference in prep metadata!" << std::endl;
121  edm::LogPrint("DropBoxMetadataPIHelper") << " in target: " << cleanJson(val.getPrepMetaData()) << std::endl;
122  edm::LogPrint("DropBoxMetadataPIHelper")
123  << " in reference: " << cleanJson(refval.getPrepMetaData()) << std::endl;
124  }
125  if ((val.getProdMetaData()).compare(refval.getProdMetaData()) != 0) {
126  edm::LogPrint("DropBoxMetadataPIHelper") << "found difference in prod metadata!" << std::endl;
127  edm::LogPrint("DropBoxMetadataPIHelper") << " in target: " << cleanJson(val.getProdMetaData()) << std::endl;
128  edm::LogPrint("DropBoxMetadataPIHelper")
129  << " in reference: " << cleanJson(refval.getProdMetaData()) << std::endl;
130  }
131  if ((val.getMultiMetaData()).compare(refval.getMultiMetaData()) != 0) {
132  edm::LogPrint("DropBoxMetadataPIHelper") << "found difference in multi metadata!" << std::endl;
133  edm::LogPrint("DropBoxMetadataPIHelper") << " in target: " << cleanJson(val.getMultiMetaData()) << std::endl;
134  edm::LogPrint("DropBoxMetadataPIHelper")
135  << " in reference: " << cleanJson(refval.getMultiMetaData()) << std::endl;
136  }
137  edm::LogPrint("DropBoxMetadataPIHelper") << "\n" << std::endl;
138  }
139 
140  // if interesction is not the union check for extra differences
141  if (!diff.empty()) {
142  // check if the reference has more records than target
143  if (ref_records.size() > tar_records.size()) {
144  for (const auto& ref : ref_records) {
145  if (std::find(tar_records.begin(), tar_records.end(), ref) == tar_records.end()) {
146  const auto& refval = theRefMap.at(ref);
147  edm::LogPrint("DropBoxMetadataPIHelper") << "key: " << ref << " not present in target! \n" << std::endl;
148  printOneKey(refval);
149  }
150  }
151  }
152  // then check if the target has more records than the reference
153  else if (tar_records.size() > ref_records.size()) {
154  for (const auto& tar : tar_records) {
155  if (std::find(ref_records.begin(), ref_records.end(), tar) == ref_records.end()) {
156  const auto& tarval = m_Map.at(tar);
157  edm::LogPrint("DropBoxMetadataPIHelper") << "key: " << tar << " not present in reference! \n"
158  << std::endl;
159  printOneKey(tarval);
160  }
161  }
162  }
163  }
164  }
bool compare(const P &i, const P &j)
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
tuple key
prepare the HTCondor submission files and eventually submit them
Log< level::Warning, true > LogPrint
void printOneKey(const DBoxMetadataHelper::RecordMetaDataInfo &oneKey)
std::vector< std::string > set_difference(std::vector< std::string > const &v1, std::vector< std::string > const &v2)
std::vector< std::string > set_intersection(std::vector< std::string > const &v1, std::vector< std::string > const &v2)
void DBoxMetadataHelper::DBMetaDataTableDisplay::printMetaDatas ( )
inline

Definition at line 79 of file DropBoxMetaDataPayloadInspectorHelper.h.

References cleanJson(), submitPVResolutionJobs::key, m_Map, and hgcalPerformanceValidation::val.

79  {
80  for (const auto& [key, val] : m_Map) {
81  edm::LogPrint("DropBoxMetadataPIHelper") << "key: " << key << "\n\n" << std::endl;
82  edm::LogPrint("DropBoxMetadataPIHelper") << "prep: " << cleanJson(val.getPrepMetaData()) << "\n" << std::endl;
83  edm::LogPrint("DropBoxMetadataPIHelper") << "prod: " << cleanJson(val.getProdMetaData()) << "\n" << std::endl;
84  // check, since it's optional
85  if (val.hasMultiMetaData()) {
86  edm::LogPrint("DropBoxMetadataPIHelper") << "multi: " << cleanJson(val.getMultiMetaData()) << "\n"
87  << std::endl;
88  }
89  }
90  }
tuple key
prepare the HTCondor submission files and eventually submit them
Log< level::Warning, true > LogPrint
void DBoxMetadataHelper::DBMetaDataTableDisplay::printOneKey ( const DBoxMetadataHelper::RecordMetaDataInfo oneKey)
inline

Definition at line 92 of file DropBoxMetaDataPayloadInspectorHelper.h.

References cleanJson(), DBoxMetadataHelper::RecordMetaDataInfo::getMultiMetaData(), DBoxMetadataHelper::RecordMetaDataInfo::getPrepMetaData(), DBoxMetadataHelper::RecordMetaDataInfo::getProdMetaData(), and DBoxMetadataHelper::RecordMetaDataInfo::hasMultiMetaData().

Referenced by printDiffWithMetadata().

92  {
93  edm::LogPrint("DropBoxMetadataPIHelper") << "prep: " << cleanJson(oneKey.getPrepMetaData()) << std::endl;
94  edm::LogPrint("DropBoxMetadataPIHelper") << "prod: " << cleanJson(oneKey.getProdMetaData()) << std::endl;
95  // check, since it's optional
96  if (oneKey.hasMultiMetaData()) {
97  edm::LogPrint("DropBoxMetadataPIHelper") << "multi: " << cleanJson(oneKey.getMultiMetaData()) << std::endl;
98  }
99  edm::LogPrint("DropBoxMetadataPIHelper") << "\n" << std::endl;
100  }
Log< level::Warning, true > LogPrint
std::string DBoxMetadataHelper::DBMetaDataTableDisplay::replaceAll ( std::string  str,
const std::string &  from,
const std::string &  to 
)
inlineprivate

Definition at line 169 of file DropBoxMetaDataPayloadInspectorHelper.h.

References str.

Referenced by cleanJson().

169  {
170  size_t start_pos = 0;
171  while ((start_pos = str.find(from, start_pos)) != std::string::npos) {
172  str.replace(start_pos, from.length(), to);
173  start_pos += to.length(); // Handles case where 'to' is a substring of 'from'
174  }
175  return str;
176  }
#define str(s)

Member Data Documentation

DBoxMetadataHelper::recordMap DBoxMetadataHelper::DBMetaDataTableDisplay::m_Map
private