31 #include <openssl/sha.h> 37 char tmp[SHA_DIGEST_LENGTH*2+1];
38 bzero(tmp,
sizeof(tmp));
40 if( !SHA1_Init( &ctx ) )
41 throw cms::Exception(
"L1TGlobalPrescalesVetosViewer::hash")<<
"SHA1 initialization error";
43 if( !SHA1_Update( &ctx, buf, len ) )
44 throw cms::Exception(
"L1TGlobalPrescalesVetosViewer::hash")<<
"SHA1 processing error";
46 unsigned char hash[SHA_DIGEST_LENGTH];
47 if( !SHA1_Final(hash, &ctx) )
48 throw cms::Exception(
"L1TGlobalPrescalesVetosViewer::hash")<<
"SHA1 finalization error";
51 for(
unsigned int i=0;
i<20;
i++)
52 ::sprintf(&tmp[
i*2],
"%02x", hash[i]);
67 cout<<
" version_ = "<<ptr->version_<<endl;
68 cout<<
" bxmask_default_ = "<<ptr->bxmask_default_<<endl;
70 size_t len_prescale_table_ = 0;
71 for(
size_t col=0;
col<ptr->prescale_table_.size();
col++){
72 size_t nRows = (ptr->prescale_table_)[
col ].
size();
73 len_prescale_table_ += nRows;
76 for(
size_t row=0; row<nRows; row++)
77 column[ row ] = (ptr->prescale_table_)[
col ][ row ];
78 cout <<
" prescale_table_[" <<
col<<
"][" << nRows <<
"] = ";
80 cout <<
hash( column,
sizeof(
int)*nRows ) << endl;
81 else cout << 0 << endl;
84 int prescale_table_[len_prescale_table_];
85 for(
size_t col=0,
pos=0;
col<ptr->prescale_table_.size();
col++){
86 size_t nRows = (ptr->prescale_table_)[
col ].
size();
87 for(
size_t row=0; row<nRows; row++,
pos++)
88 prescale_table_[
pos ] = (ptr->prescale_table_)[
col ][ row ];
90 cout <<
" prescale_table_[["<<len_prescale_table_<<
"]] = ";
91 if( len_prescale_table_ )
92 cout <<
hash( prescale_table_,
sizeof(
int)*len_prescale_table_ ) << endl;
93 else cout << 0 << endl;
96 cout << endl <<
" Detailed view on the prescales * masks: " << endl;
97 for(
size_t col=0;
col<ptr->prescale_table_.size();
col++)
98 cout << setw(8) <<
" Index " <<
col;
100 size_t nRows = (ptr->prescale_table_)[ 0 ].
size();
101 for(
size_t row=0; row<nRows; row++){
102 for(
size_t col=0;
col<ptr->prescale_table_.size();
col++)
103 cout << setw(8) << (ptr->prescale_table_)[
col ][ row ] ;
109 size_t len_bxmask_map_ = 0;
110 for(
std::map<
int, std::vector<int> >::const_iterator it = (ptr->bxmask_map_).begin(); it != (ptr->bxmask_map_).
end(); it++){
111 len_bxmask_map_ += it->second.size();
113 int masks[ it->second.size() ];
114 for(
size_t i=0;
i<it->second.size();
i++)
115 masks[
i ] = it->second[
i];
116 cout <<
" bxmask_map_[" << it->first <<
"][" << it->second.size() <<
"] = ";
117 if( it->second.size() )
118 cout <<
hash( masks,
sizeof(
int)*it->second.size() ) << endl;
119 else cout << 0 << endl;
122 int bxmask_map_[ len_bxmask_map_ ];
124 for(
std::map<
int, std::vector<int> >::const_iterator it = (ptr->bxmask_map_).begin(); it != (ptr->bxmask_map_).
end(); it++){
125 for(
size_t i=0;
i<it->second.size();
i++,pos++) bxmask_map_[ pos ] = it->second[
i];
127 cout <<
" bxmask_map_[["<< len_bxmask_map_ <<
"]] = ";
128 if( len_bxmask_map_ )
129 cout <<
hash( bxmask_map_,
sizeof(
int)*len_bxmask_map_ ) << endl;
130 else cout << 0 << endl;
132 int veto_[ (ptr->veto_).
size() ];
133 for(
size_t i=0;
i<(ptr->veto_).
size();
i++) veto_[
i] = (ptr->veto_)[
i];
134 cout <<
" veto_[" << (ptr->veto_).
size() <<
"] = ";
135 if( (ptr->veto_).size() )
136 cout <<
hash( veto_,
sizeof(
int)*(ptr->veto_).
size() ) << endl;
137 else cout << 0 << endl;
139 int exp_ints_[ (ptr->exp_ints_).
size() ];
140 for(
size_t i=0;
i<(ptr->exp_ints_).
size();
i++) exp_ints_[
i] = (ptr->exp_ints_)[
i];
141 cout <<
" exp_ints_[" << (ptr->exp_ints_).
size() <<
"] = ";
142 if( (ptr->exp_ints_).size() )
143 cout <<
hash( exp_ints_,
sizeof(
int)*(ptr->exp_ints_).
size() ) << endl;
144 else cout << 0 << endl;
146 int exp_doubles_[ (ptr->exp_doubles_).
size() ];
147 for(
size_t i=0;
i<(ptr->exp_doubles_).
size();
i++) exp_ints_[
i] = (ptr->exp_doubles_)[
i];
148 cout <<
" exp_doubles_[" << (ptr->exp_doubles_).
size() <<
"] = ";
149 if( (ptr->exp_doubles_).size() )
150 cout <<
hash( exp_doubles_,
sizeof(
int)*(ptr->exp_doubles_).
size() ) << endl;
151 else cout << 0 << endl;
T getUntrackedParameter(std::string const &, T const &) const
#define DEFINE_FWK_MODULE(type)
L1TGlobalPrescalesVetosViewer(const edm::ParameterSet &pset)
int32_t prescale_table_verbosity
virtual void analyze(const edm::Event &, const edm::EventSetup &)
int32_t bxmask_map_verbosity
virtual ~L1TGlobalPrescalesVetosViewer(void)
std::vector< std::vector< double > > tmp
constexpr uint32_t masks[]
std::string hash(void *buf, size_t len) const
T const * product() const