CMS 3D CMS Logo

L1TGlobalPrescalesVetosViewer.cc
Go to the documentation of this file.
1 #include <iomanip>
6 
9 
12 
14 private:
17  int32_t veto_verbosity;
18 
19  std::string hash(void* buf, size_t len) const;
20 
21 public:
22  void analyze(const edm::Event&, const edm::EventSetup&) override;
23 
25  prescale_table_verbosity = pset.getUntrackedParameter<int32_t>("prescale_table_verbosity", 0);
26  bxmask_map_verbosity = pset.getUntrackedParameter<int32_t>("bxmask_map_verbosity", 0);
27  veto_verbosity = pset.getUntrackedParameter<int32_t>("veto_verbosity", 0);
28  }
29 
31 };
32 
33 #include <openssl/sha.h>
34 #include <cmath>
35 #include <iostream>
36 using namespace std;
37 
39  char tmp[SHA_DIGEST_LENGTH * 2 + 1];
40  bzero(tmp, sizeof(tmp));
41  SHA_CTX ctx;
42  if (!SHA1_Init(&ctx))
43  throw cms::Exception("L1TGlobalPrescalesVetosViewer::hash") << "SHA1 initialization error";
44 
45  if (!SHA1_Update(&ctx, buf, len))
46  throw cms::Exception("L1TGlobalPrescalesVetosViewer::hash") << "SHA1 processing error";
47 
48  unsigned char hash[SHA_DIGEST_LENGTH];
49  if (!SHA1_Final(hash, &ctx))
50  throw cms::Exception("L1TGlobalPrescalesVetosViewer::hash") << "SHA1 finalization error";
51 
52  // re-write bytes in hex
53  for (unsigned int i = 0; i < 20; i++)
54  ::sprintf(&tmp[i * 2], "%02x", hash[i]);
55 
56  tmp[20 * 2] = 0;
57  return std::string(tmp);
58 }
59 
62  evSetup.get<L1TGlobalPrescalesVetosRcd>().get(handle1);
63  std::shared_ptr<L1TGlobalPrescalesVetos> ptr(new L1TGlobalPrescalesVetos(*(handle1.product())));
64 
65  edm::LogInfo("") << "L1TGlobalPrescalesVetosViewer:";
66 
67  cout << endl;
68  cout << " version_ = " << ptr->version_ << endl;
69  cout << " bxmask_default_ = " << ptr->bxmask_default_ << endl;
70 
71  size_t len_prescale_table_ = 0;
72  for (size_t col = 0; col < ptr->prescale_table_.size(); col++) {
73  size_t nRows = (ptr->prescale_table_)[col].size();
74  len_prescale_table_ += nRows;
75  if (prescale_table_verbosity > 0) {
76  int column[nRows];
77  for (size_t row = 0; row < nRows; row++)
78  column[row] = (ptr->prescale_table_)[col][row];
79  cout << " prescale_table_[" << col << "][" << nRows << "] = ";
80  if (nRows)
81  cout << hash(column, sizeof(int) * nRows) << endl;
82  else
83  cout << 0 << endl;
84  }
85  }
86  int prescale_table_[len_prescale_table_];
87  for (size_t col = 0, pos = 0; col < ptr->prescale_table_.size(); col++) {
88  size_t nRows = (ptr->prescale_table_)[col].size();
89  for (size_t row = 0; row < nRows; row++, pos++)
90  prescale_table_[pos] = (ptr->prescale_table_)[col][row];
91  }
92  cout << " prescale_table_[[" << len_prescale_table_ << "]] = ";
93  if (len_prescale_table_)
94  cout << hash(prescale_table_, sizeof(int) * len_prescale_table_) << endl;
95  else
96  cout << 0 << endl;
97 
98  if (prescale_table_verbosity > 1) {
99  cout << endl << " Detailed view on the prescales * masks: " << endl;
100  for (size_t col = 0; col < ptr->prescale_table_.size(); col++)
101  cout << setw(8) << " Index " << col;
102  cout << endl;
103  size_t nRows = (ptr->prescale_table_)[0].size();
104  for (size_t row = 0; row < nRows; row++) {
105  for (size_t col = 0; col < ptr->prescale_table_.size(); col++)
106  cout << setw(8) << (ptr->prescale_table_)[col][row];
107  cout << endl;
108  }
109  cout << endl;
110  }
111 
112  size_t len_bxmask_map_ = 0;
113  for (std::map<int, std::vector<int> >::const_iterator it = (ptr->bxmask_map_).begin(); it != (ptr->bxmask_map_).end();
114  it++) {
115  len_bxmask_map_ += it->second.size();
116  if (bxmask_map_verbosity == 1) {
117  int masks[it->second.size()];
118  for (size_t i = 0; i < it->second.size(); i++)
119  masks[i] = it->second[i];
120  cout << " bxmask_map_[" << it->first << "][" << it->second.size() << "] = ";
121  if (!it->second.empty())
122  cout << hash(masks, sizeof(int) * it->second.size()) << endl;
123  else
124  cout << 0 << endl;
125  }
126  if (bxmask_map_verbosity > 1) {
127  cout << " bxmask_map_[" << it->first << "][" << it->second.size() << "] = ";
128  for (size_t algo = 0; algo < it->second.size(); algo++)
129  cout << it->second[algo] << ", ";
130  cout << endl;
131  }
132  }
133  int bxmask_map_[len_bxmask_map_];
134  size_t pos = 0;
135  for (std::map<int, std::vector<int> >::const_iterator it = (ptr->bxmask_map_).begin(); it != (ptr->bxmask_map_).end();
136  it++) {
137  for (size_t i = 0; i < it->second.size(); i++, pos++)
138  bxmask_map_[pos] = it->second[i];
139  }
140  cout << " bxmask_map_[[" << len_bxmask_map_ << "]] = ";
141  if (len_bxmask_map_)
142  cout << hash(bxmask_map_, sizeof(int) * len_bxmask_map_) << endl;
143  else
144  cout << 0 << endl;
145 
146  int veto_[(ptr->veto_).size()];
147  bool veto_allZeros = true;
148  for (size_t i = 0; i < (ptr->veto_).size(); i++) {
149  veto_[i] = (ptr->veto_)[i];
150  if (veto_[i])
151  veto_allZeros = false;
152  }
153  cout << " veto_[" << (ptr->veto_).size() << "] = ";
154  if (veto_verbosity == 0) {
155  if (!(ptr->veto_).empty()) {
156  cout << hash(veto_, sizeof(int) * (ptr->veto_).size());
157  if (veto_allZeros)
158  cout << " (all zeros)" << endl;
159  else
160  cout << endl;
161  } else
162  cout << 0 << endl;
163  } else
164  for (size_t i = 0; i < (ptr->veto_).size(); i++)
165  cout << veto_[i] << endl;
166 
167  int exp_ints_[(ptr->exp_ints_).size()];
168  for (size_t i = 0; i < (ptr->exp_ints_).size(); i++)
169  exp_ints_[i] = (ptr->exp_ints_)[i];
170  cout << " exp_ints_[" << (ptr->exp_ints_).size() << "] = ";
171  if (!(ptr->exp_ints_).empty())
172  cout << hash(exp_ints_, sizeof(int) * (ptr->exp_ints_).size()) << endl;
173  else
174  cout << 0 << endl;
175 
176  int exp_doubles_[(ptr->exp_doubles_).size()];
177  for (size_t i = 0; i < (ptr->exp_doubles_).size(); i++)
178  exp_ints_[i] = (ptr->exp_doubles_)[i];
179  cout << " exp_doubles_[" << (ptr->exp_doubles_).size() << "] = ";
180  if (!(ptr->exp_doubles_).empty())
181  cout << hash(exp_doubles_, sizeof(int) * (ptr->exp_doubles_).size()) << endl;
182  else
183  cout << 0 << endl;
184 }
185 
189 
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
PrescalesVetos_cff.L1TGlobalPrescalesVetos
L1TGlobalPrescalesVetos
Definition: PrescalesVetos_cff.py:14
L1TGlobalPrescalesVetosRcd
Definition: L1TGlobalPrescalesVetosRcd.h:11
L1TGlobalPrescalesVetosViewer::L1TGlobalPrescalesVetosViewer
L1TGlobalPrescalesVetosViewer(const edm::ParameterSet &pset)
Definition: L1TGlobalPrescalesVetosViewer.cc:24
mps_fire.i
i
Definition: mps_fire.py:428
MessageLogger.h
ESHandle.h
cond::hash
Definition: Time.h:19
edm
HLT enums.
Definition: AlignableModifier.h:19
L1TGlobalPrescalesVetosViewer::prescale_table_verbosity
int32_t prescale_table_verbosity
Definition: L1TGlobalPrescalesVetosViewer.cc:15
cuy.col
col
Definition: cuy.py:1009
gather_cfg.cout
cout
Definition: gather_cfg.py:144
pos
Definition: PixelAliasList.h:18
edm::EDAnalyzer::EDAnalyzer
EDAnalyzer()
Definition: EDAnalyzer.cc:28
EDAnalyzer.h
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
createJobs.tmp
tmp
align.sh
Definition: createJobs.py:716
edm::EDAnalyzer
Definition: EDAnalyzer.h:28
L1TGlobalPrescalesVetosRcd.h
cmsdt::algo
algo
Definition: constants.h:171
MakerMacros.h
edm::EventSetup::get
T get() const
Definition: EventSetup.h:87
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
L1TGlobalPrescalesVetosViewer::hash
std::string hash(void *buf, size_t len) const
Definition: L1TGlobalPrescalesVetosViewer.cc:38
mps_fire.end
end
Definition: mps_fire.py:242
edm::ESHandle
Definition: DTSurvey.h:22
L1TGlobalPrescalesVetosViewer::analyze
void analyze(const edm::Event &, const edm::EventSetup &) override
Definition: L1TGlobalPrescalesVetosViewer.cc:60
edm::ParameterSet
Definition: ParameterSet.h:47
Event.h
L1TGlobalPrescalesVetosViewer::bxmask_map_verbosity
int32_t bxmask_map_verbosity
Definition: L1TGlobalPrescalesVetosViewer.cc:16
ModuleDef.h
iEvent
int iEvent
Definition: GenABIO.cc:224
edm::EventSetup
Definition: EventSetup.h:58
get
#define get
visDQMUpload.buf
buf
Definition: visDQMUpload.py:160
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
L1TGlobalPrescalesVetosViewer
Definition: L1TGlobalPrescalesVetosViewer.cc:13
L1TGlobalPrescalesVetos.h
ModuleFactory.h
std
Definition: JetResolutionObject.h:76
L1TGlobalPrescalesVetosViewer::veto_verbosity
int32_t veto_verbosity
Definition: L1TGlobalPrescalesVetosViewer.cc:17
Exception
Definition: hltDiff.cc:245
EventSetup.h
genParticles_cff.map
map
Definition: genParticles_cff.py:11
ParameterSet.h
edm::Event
Definition: Event.h:73
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
L1TGlobalPrescalesVetosViewer::~L1TGlobalPrescalesVetosViewer
~L1TGlobalPrescalesVetosViewer(void) override
Definition: L1TGlobalPrescalesVetosViewer.cc:30
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443