182 std::cout <<
"L1TdeGCT::analyze() start\n" << std::flush;
190 <<
"Cannot find L1DataEmulRecord"
191 <<
" Please verify that comparator was successfully executed."
192 <<
" Emulator DQM for GCT will be skipped!"
198 bool isComp = deRecord->get_isComp(
GCT);
201 std::cout <<
"[L1TdeGCT] Gct information not generated in de-record."
202 <<
" Skiping event!\n" << std::flush;
207 for(
int j=0;
j<2;
j++)
208 DEncand[
j] = deRecord->getNCand(
GCT,
j);
212 <<
" data: " << DEncand[0]
213 <<
" emul: " << DEncand[1]
218 deColl = deRecord->getColl();
227 for(L1DEDigiCollection::const_iterator it=deColl.begin();
228 it!=deColl.end(); it++)
231 gctColl.push_back(*it);
234 std::cout <<
"[L1TdeGCT] record has " << gctColl.size()
235 <<
" gct de digis\n" << std::flush;
236 for(L1DEDigiCollection::const_iterator it=gctColl.begin();
237 it!=gctColl.end(); it++)
246 for(L1DEDigiCollection::const_iterator it=gctColl.begin();
247 it!=gctColl.end(); it++) {
256 std::cout <<
"[L1TdeGCT] processing digi "
264 if(sid!=
GCT || it->empty()) {
265 LogDebug(
"L1TdeGCT") <<
"consistency check failure, non-gct digis!";
269 int type = it->type();
270 double phiv = it->x1();
271 double etav = it->x2();
274 float rnkv = rankarr[0];
278 unsigned int mask = (~0x0);
283 LogDebug(
"L1TdeGCT") <<
"consistency check failure, col type outbounds:"
291 if(it->type()<5&&it->type()!=3)
296 wei=1.;
if(!type) wei=0.;
297 if(etav!=nullVal && phiv!=nullVal)
306 wei=1.;
if(type==4) wei=0.;
315 unsigned int word[2];
317 std::bitset<32> dbits(word[0]);
318 std::bitset<32> ebits(word[1]);
319 unsigned int dexor = ( (word[0]) ^ (word[1]) );
321 std::bitset<32> debits(dexor);
323 std::bitset<32> dembits( ( (dexor) & (mask) ) );
327 <<
" sid:" << sid <<
" cid:" << cid <<
"\n"
328 <<
" data:0x" << std::hex << word[0] <<
std::dec
329 <<
" bitset:" << dbits
331 <<
" emul:0x" << std::hex << word[1] <<
std::dec
332 <<
" bitset:" << ebits
334 <<
" xor:0x" << std::hex << dexor <<
std::dec
335 <<
" bitset:" << debits
336 <<
" bitset:" << ( (dbits) ^ (ebits) )
337 <<
"\n" << std::flush;
340 for(
int ibit=0; ibit<32; ibit++) {
343 if(type==3 || type==4) wei=0.;
344 if(dbits [ibit])
dword[sid]->
Fill(ibit,wei);
345 if(ebits [ibit])
eword[sid]->
Fill(ibit,wei);
356 for(L1DEDigiCollection::const_iterator it=gctColl.begin();
357 it!=gctColl.end(); it++) {
359 ccid = (ccid<0 || ccid >=
nGctColl_) ? 0:ccid;
365 if(!hasCol[
i])
continue;
378 std::cout <<
"[L1TDEMON] analyze rate computation\t\n"
384 <<
"hasCol: " << hasCol[
i]
385 <<
" nagree: " << nagree[
i]
387 <<
"\n" << std::flush;
388 if(rate>1. || rate<0.)
391 <<
"\n" << std::flush;
void setBinContent(int binx, double content)
set content of bin (1-D)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
MonitorElement * phiData[nGctColl_]
MonitorElement * phi[nGctColl_]
MonitorElement * eta[nGctColl_]
MonitorElement * sysrates
std::vector< L1DataEmulDigi > L1DEDigiCollection
static const int nGctColl_
MonitorElement * etaData[nGctColl_]
MonitorElement * rnk[nGctColl_]
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
MonitorElement * errortype[nGctColl_]
MonitorElement * rnkData[nGctColl_]
MonitorElement * sysncand[2]
MonitorElement * dword[nGctColl_]
edm::EDGetTokenT< L1DataEmulRecord > DEsource_
const std::string SystLabel[DEnsys]
double getBinContent(int binx) const
get content of bin (1-D)
MonitorElement * deword[nGctColl_]
MonitorElement * eword[nGctColl_]
MonitorElement * etaphi[nGctColl_]