33 #include <openssl/sha.h>
39 char tmp[SHA_DIGEST_LENGTH * 2 + 1];
40 bzero(tmp,
sizeof(tmp));
43 throw cms::Exception(
"L1TGlobalPrescalesVetosViewer::hash") <<
"SHA1 initialization error";
45 if (!SHA1_Update(&ctx, buf, len))
46 throw cms::Exception(
"L1TGlobalPrescalesVetosViewer::hash") <<
"SHA1 processing error";
48 unsigned char hash[SHA_DIGEST_LENGTH];
49 if (!SHA1_Final(hash, &ctx))
50 throw cms::Exception(
"L1TGlobalPrescalesVetosViewer::hash") <<
"SHA1 finalization error";
53 for (
unsigned int i = 0;
i < 20;
i++)
54 ::sprintf(&tmp[
i * 2],
"%02x", hash[i]);
68 cout <<
" version_ = " << ptr->version_ << endl;
69 cout <<
" bxmask_default_ = " << ptr->bxmask_default_ << endl;
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) {
77 for (
size_t row = 0; row < nRows; row++)
78 column[row] = (ptr->prescale_table_)[
col][row];
79 cout <<
" prescale_table_[" <<
col <<
"][" << nRows <<
"] = ";
81 cout <<
hash(column,
sizeof(
int) * nRows) << endl;
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];
92 cout <<
" prescale_table_[[" << len_prescale_table_ <<
"]] = ";
93 if (len_prescale_table_)
94 cout <<
hash(prescale_table_,
sizeof(
int) * len_prescale_table_) << endl;
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;
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];
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();
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;
126 if (bxmask_map_verbosity > 1) {
127 cout <<
" bxmask_map_[" << it->first <<
"][" << it->second.size() <<
"] = ";
133 int bxmask_map_[len_bxmask_map_];
135 for (std::map<
int, std::vector<int> >::const_iterator it = (ptr->bxmask_map_).begin(); it != (ptr->bxmask_map_).
end();
137 for (
size_t i = 0;
i < it->second.size();
i++, pos++)
138 bxmask_map_[pos] = it->second[
i];
140 cout <<
" bxmask_map_[[" << len_bxmask_map_ <<
"]] = ";
142 cout <<
hash(bxmask_map_,
sizeof(
int) * len_bxmask_map_) << endl;
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];
151 veto_allZeros =
false;
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());
158 cout <<
" (all zeros)" << endl;
164 for (
size_t i = 0;
i < (ptr->veto_).
size();
i++)
165 cout << veto_[
i] << endl;
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;
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;
tuple L1TGlobalPrescalesVetos
T getUntrackedParameter(std::string const &, T const &) const
~L1TGlobalPrescalesVetosViewer(void) override
#define DEFINE_FWK_MODULE(type)
L1TGlobalPrescalesVetosViewer(const edm::ParameterSet &pset)
int32_t prescale_table_verbosity
void analyze(const edm::Event &, const edm::EventSetup &) override
int32_t bxmask_map_verbosity
Log< level::Info, false > LogInfo
T const * product() const
std::string hash(void *buf, size_t len) const
tuple size
Write out results.