CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HcalLogicalMap.cc
Go to the documentation of this file.
3 
5 
6 #include <string>
7 #include <cstring>
8 #include <iostream>
9 #include <fstream>
10 #include <sstream>
11 #include <stdio.h>
12 #include <time.h>
13 
14 using namespace std;
15 
16 HcalLogicalMap::HcalLogicalMap(std::vector<HBHEHFLogicalMapEntry>& HBHEHFEntries,
17  std::vector<HOHXLogicalMapEntry>& HOHXEntries,
18  std::vector<CALIBLogicalMapEntry>& CALIBEntries,
19  std::vector<ZDCLogicalMapEntry>& ZDCEntries,
20  std::vector<HTLogicalMapEntry>& HTEntries,
21  std::vector<uint32_t>& LinearIndex2Entry,
22  std::vector<uint32_t>& HbHash2Entry,
23  std::vector<uint32_t>& HeHash2Entry,
24  std::vector<uint32_t>& HfHash2Entry,
25  std::vector<uint32_t>& HtHash2Entry,
26  std::vector<uint32_t>& HoHash2Entry,
27  std::vector<uint32_t>& HxCalibHash2Entry,
28  std::vector<uint32_t>& ZdcHash2Entry)
29 
30 {
31  HBHEHFEntries_.resize(HBHEHFEntries.size());
32  HOHXEntries_.resize(HOHXEntries.size());
33  CALIBEntries_.resize(CALIBEntries.size());
34  ZDCEntries_.resize(ZDCEntries.size());
35  HTEntries_.resize(HTEntries.size());
36 
37  LinearIndex2Entry_.resize(LinearIndex2Entry.size());
38  HbHash2Entry_.resize(HbHash2Entry.size());
39  HeHash2Entry_.resize(HeHash2Entry.size());
40  HfHash2Entry_.resize(HfHash2Entry.size());
41  HtHash2Entry_.resize(HtHash2Entry.size());
42  HoHash2Entry_.resize(HoHash2Entry.size());
43  HxCalibHash2Entry_.resize(HxCalibHash2Entry.size());
44  ZdcHash2Entry_.resize(ZdcHash2Entry.size());
45 
46  copy(HBHEHFEntries.begin(),HBHEHFEntries.end(),HBHEHFEntries_.begin());
47  copy(HOHXEntries.begin(),HOHXEntries.end(),HOHXEntries_.begin());
48  copy(CALIBEntries.begin(),CALIBEntries.end(),CALIBEntries_.begin());
49  copy(ZDCEntries.begin(),ZDCEntries.end(),ZDCEntries_.begin());
50  copy(HTEntries.begin(),HTEntries.end(),HTEntries_.begin());
51  copy(LinearIndex2Entry.begin(),LinearIndex2Entry.end(),LinearIndex2Entry_.begin());
52  copy(HbHash2Entry.begin(),HbHash2Entry.end(),HbHash2Entry_.begin());
53  copy(HeHash2Entry.begin(),HeHash2Entry.end(),HeHash2Entry_.begin());
54  copy(HfHash2Entry.begin(),HfHash2Entry.end(),HfHash2Entry_.begin());
55  copy(HtHash2Entry.begin(),HtHash2Entry.end(),HtHash2Entry_.begin());
56  copy(HoHash2Entry.begin(),HoHash2Entry.end(),HoHash2Entry_.begin());
57  copy(HxCalibHash2Entry.begin(),HxCalibHash2Entry.end(),HxCalibHash2Entry_.begin());
58  copy(ZdcHash2Entry.begin(),ZdcHash2Entry.end(),ZdcHash2Entry_.begin());
59 }
60 
62 {
63 }
64 
65 uint32_t HcalLogicalMap::makeEntryNumber(bool isvalid, int vectorid, int entry)
66 {
67  uint32_t answer=0;
68  answer|=isvalid;
69  answer|=(vectorid&0x3)<<1;
70  answer|=entry<<3;
71  return answer;
72 }
73 
74 void HcalLogicalMap::printMap( unsigned int mapIOV ){
75  using namespace std;
76 
77  static FILE* HBEFmap;
78  static FILE* HOXmap;
79  static FILE* CALIBmap;
80  static FILE* ZDCmap;
81  static FILE* HTmap;
82 
83  char tempbuff[30];
84 
85  stringstream mystream;
86  string HBEFmapstr, HOXmapstr, CALIBmapstr, ZDCmapstr, HTmapstr;
87  string date;
88  string IOVlabel;
89 
90  time_t myTime;
91  time(&myTime);
92 
93  strftime(tempbuff,128,"%d.%b.%Y",localtime(&myTime) );
94  mystream<<tempbuff;
95  date= mystream.str();
96 
97  mystream.str("");
98  if (mapIOV==1) IOVlabel = "A";
99  else if (mapIOV==2) IOVlabel = "B";
100  else if (mapIOV==3) IOVlabel = "C";
101  else if (mapIOV==4) IOVlabel = "D";
102  else IOVlabel = "E";
103 
104  HBEFmapstr = "./HCALmapHBEF_"+IOVlabel+".txt";
105  HOXmapstr = "./HCALmapHO_"+IOVlabel+".txt";
106  CALIBmapstr = "./HCALmapCALIB_"+IOVlabel+".txt";
107  ZDCmapstr = "./ZDCmap_"+IOVlabel+".txt";
108  HTmapstr = "./HCALmapHT_"+IOVlabel+".txt";
109 
110 // HBEFmapstr = "./HCALmapHBEF_"+date+".txt";
111 // HOXmapstr = "./HCALmapHO_"+date+"_"+IOVlabel+".txt";
112 // CALIBmapstr = "./HCALmapCALIB_"+date+".txt";
113 // ZDCmapstr = "./ZDCmap_"+date+".txt";
114 // HTmapstr = "./HCALmapHT_"+date+".txt";
115 
116  HBEFmap = fopen(HBEFmapstr.c_str(),"w");
117  HOXmap = fopen(HOXmapstr.c_str(),"w");
118  CALIBmap = fopen(CALIBmapstr.c_str(),"w");
119  ZDCmap = fopen(ZDCmapstr.c_str(),"w");
120  HTmap = fopen(HTmapstr.c_str(),"w");
121  /**********************/
122 
123  if(HBEFmap) {
124  fprintf(HBEFmap,"## file created %s ##\n",date.c_str());
125  printHBEFMap(HBEFmap);
126  }
127  else cout <<HBEFmapstr<<" not found!"<<endl;
128 
129  if(HOXmap) {
130  fprintf(HOXmap,"## file created %s ##\n",date.c_str());
131  printHOXMap(HOXmap);
132  }
133  else cout <<HOXmapstr<<" not found!"<<endl;
134 
135  if(CALIBmap) {
136  fprintf(CALIBmap,"## file created %s ##\n",date.c_str());
137  printCalibMap(CALIBmap);
138  }
139  else cout <<CALIBmapstr<<" not found!"<<endl;
140 
141  if(ZDCmap) {
142  fprintf(ZDCmap,"## file created %s ##\n",date.c_str());
143  printZDCMap(ZDCmap);
144  }
145  else cout <<ZDCmapstr<<" not found!"<<endl;
146 
147  if(HTmap) {
148  fprintf(HTmap,"## file created %s ##\n",date.c_str());
149  printHTMap(HTmap);
150  }
151  else cout <<HTmapstr<<" not found!"<<endl;
152 
153 }
154 
155 /**************/
157 {
158  HcalElectronicsMap* theemap = new HcalElectronicsMap();
159 
160  for (std::vector<HBHEHFLogicalMapEntry>::iterator it = HBHEHFEntries_.begin(); it!=HBHEHFEntries_.end(); ++it) {
161  theemap->mapEId2chId( it->getHcalElectronicsId(), it->getDetId() );}
162  for (std::vector<HOHXLogicalMapEntry>::iterator it = HOHXEntries_.begin(); it!=HOHXEntries_.end(); ++it) {
163  theemap->mapEId2chId( it->getHcalElectronicsId(), it->getDetId() );}
164  for (std::vector<CALIBLogicalMapEntry>::iterator it = CALIBEntries_.begin(); it!=CALIBEntries_.end(); ++it) {
165  theemap->mapEId2chId( it->getHcalElectronicsId(), it->getDetId() );}
166  for (std::vector<ZDCLogicalMapEntry>::iterator it = ZDCEntries_.begin(); it!=ZDCEntries_.end(); ++it) {
167  theemap->mapEId2chId( it->getHcalElectronicsId(), it->getDetId() );}
168  for (std::vector<HTLogicalMapEntry>::iterator it = HTEntries_.begin(); it!=HTEntries_.end(); ++it) {
169  theemap->mapEId2tId( it->getHcalTrigElectronicsId(), it->getDetId() );}
170  theemap->sort();
171  return *theemap;
172 }
173 /**************/
174 
175 void HcalLogicalMap::printHBEFMap(FILE* hbefmapfile){
176  int titlecounter = 0;
177 
178  for (std::vector<HBHEHFLogicalMapEntry>::iterator it = HBHEHFEntries_.begin(); it!=HBHEHFEntries_.end(); ++it) {
179  titlecounter = titlecounter % 21;
180  if (titlecounter == 0){
181  fprintf(hbefmapfile,"# side eta phi dphi depth det rbx wedge rm pixel qie adc");
182  fprintf(hbefmapfile," rm_fi fi_ch crate htr fpga htr_fi dcc_sl spigo dcc slb slbin slbin2");
183  fprintf(hbefmapfile," slnam rctcra rctcar rctcon rctnam fedid\n");
184  }
185  titlecounter++;
186  fprintf(hbefmapfile,"%s",it->printLMapLine());
187  }
188 }
189 
190 void HcalLogicalMap::printHOXMap(FILE* hoxmapfile){
191 
192  int titlecounter = 0;
193 
194  for (std::vector<HOHXLogicalMapEntry>::iterator it = HOHXEntries_.begin(); it!=HOHXEntries_.end(); ++it) {
195  titlecounter = titlecounter % 21;
196  if (titlecounter == 0){
197  fprintf(hoxmapfile,"# side eta phi dphi depth det rbx sector rm pixel qie adc");
198  fprintf(hoxmapfile," rm_fi fi_ch let_code crate htr fpga htr_fi dcc_sl spigo dcc fedid\n");
199  }
200  titlecounter++;
201  fprintf(hoxmapfile,"%s",it->printLMapLine());
202  }
203 }
204 
205 void HcalLogicalMap::printCalibMap(FILE* calibmapfile){
206 
207  int titlecounter = 0;
208 
209  for (std::vector<CALIBLogicalMapEntry>::iterator it = CALIBEntries_.begin(); it!=CALIBEntries_.end(); ++it) {
210  titlecounter = titlecounter % 21;
211  if (titlecounter == 0){
212  fprintf(calibmapfile,"# side eta phi dphi det rbx sector rm rm_fi ");
213  fprintf(calibmapfile," fi_ch crate htr fpga htr_fi dcc_sl spigo dcc fedid ch_type name\n");
214  }
215  titlecounter++;
216  fprintf(calibmapfile,"%s",it->printLMapLine());
217  }
218 }
219 
220 void HcalLogicalMap::printZDCMap(FILE* zdcmapfile){
221 
222  int titlecounter = 0;
223 
224  for (std::vector<ZDCLogicalMapEntry>::iterator it = ZDCEntries_.begin(); it!=ZDCEntries_.end(); ++it) {
225  titlecounter = titlecounter % 21;
226  if (titlecounter == 0){
227  fprintf(zdcmapfile,"# side x y dx depth det det_ch cable rm qie ");
228  fprintf(zdcmapfile," adc rm_fi fi_ch crate htr fpga htr_fi dcc_sl spigo dcc fedid\n");
229  }
230  titlecounter++;
231  fprintf(zdcmapfile,"%s",it->printLMapLine());
232  }
233 }
234 
235 void HcalLogicalMap::printHTMap(FILE* htmapfile){
236 
237  int titlecounter = 0;
238 
239  for (std::vector<HTLogicalMapEntry>::iterator it = HTEntries_.begin(); it!=HTEntries_.end(); ++it) {
240  titlecounter = titlecounter % 21;
241  if (titlecounter == 0){
242  fprintf(htmapfile,"# side eta phi dphi depth det wedge crate");
243  fprintf(htmapfile," htr fpga dcc_sl spigo dcc slb slbin slbin2 nDat ");
244  fprintf(htmapfile," slnam rctcra rctcar rctcon rctnam fedid\n");
245  }
246  titlecounter++;
247  fprintf(htmapfile,"%s",it->printLMapLine());
248  }
249 }
250 
251 
253 {
254  const uint32_t entry=LinearIndex2Entry_.at(eid.linearIndex());
255  if ( !(entry&0x1) ) return DetId(0);
256  if ( ((entry>>1)&0x3)==0) return HBHEHFEntries_.at(entry>>3).getDetId();
257  if ( ((entry>>1)&0x3)==1) return HOHXEntries_.at(entry>>3).getDetId();
258  if ( ((entry>>1)&0x3)==2) return CALIBEntries_.at(entry>>3).getDetId();
259  if ( ((entry>>1)&0x3)==3) return ZDCEntries_.at(entry>>3).getDetId();
260  return DetId(0);
261 }
262 
264 {
265  const HcalGenericDetId hgdi(did);
267  const int hashedId=hgdi.hashedId(false);
269  const uint32_t entry=HbHash2Entry_.at(hashedId)-1;
270  return HBHEHFEntries_.at(entry).getHcalFrontEndId();
271  }
272  else if (hgsd==HcalGenericDetId::HcalGenEndcap) {
273  const uint32_t entry=HeHash2Entry_.at(hashedId)-1;
274  return HBHEHFEntries_.at(entry).getHcalFrontEndId();
275  }
276  else if (hgsd==HcalGenericDetId::HcalGenForward) {
277  const uint32_t entry=HfHash2Entry_.at(hashedId)-1;
278  return HBHEHFEntries_.at(entry).getHcalFrontEndId();
279  }
280  else if (hgsd==HcalGenericDetId::HcalGenOuter) {
281  const uint32_t entry=HoHash2Entry_.at(hashedId)-1;
282  return HOHXEntries_.at(entry).getHcalFrontEndId();
283  }
284  else if (hgsd==HcalGenericDetId::HcalGenCalibration) {
285  HcalCalibDetId hcid(did);
287  const uint32_t entry=HxCalibHash2Entry_.at(hashedId)-1;
288  return HOHXEntries_.at(entry).getHcalFrontEndId();
289  }
290  else if (hcid.calibFlavor()==HcalCalibDetId::CalibrationBox) {
291  const uint32_t entry=HxCalibHash2Entry_.at(hashedId)-1;
292  return CALIBEntries_.at(entry).getHcalFrontEndId();
293  }
294  }
295  return HcalFrontEndId(0);
296 }
297 
299  int HBHEHF_EID_pass=0;
300  int HBHEHF_EID_fail=0;
301  int HOHX_EID_pass=0;
302  int HOHX_EID_fail=0;
303  int CALIB_EID_pass=0;
304  int CALIB_EID_fail=0;
305  int ZDC_EID_pass=0;
306  int ZDC_EID_fail=0;
307 
308  int HBHEHF_FEID_pass=0;
309  int HBHEHF_FEID_fail=0;
310  int HOHX_FEID_pass=0;
311  int HOHX_FEID_fail=0;
312  int CALIB_FEID_pass=0;
313  int CALIB_FEID_fail=0;
314 
315  cout << "\nRunning the id function checker..." << endl;
316 
317  for (std::vector<HBHEHFLogicalMapEntry>::iterator it = HBHEHFEntries_.begin(); it!=HBHEHFEntries_.end(); ++it) {
318  const HcalElectronicsId heid=it->getHcalElectronicsId();
319  const DetId did0=it->getDetId();
320  const DetId did1=getDetId(heid);
321  if (did0==did1) HBHEHF_EID_pass++;
322  else HBHEHF_EID_fail++;
323 
324  const HcalFrontEndId hfeid0=it->getHcalFrontEndId();
325  const HcalFrontEndId hfeid1=getHcalFrontEndId(did0);
326  if (hfeid0==hfeid1) HBHEHF_FEID_pass++;
327  else HBHEHF_FEID_fail++;
328  }
329  for (std::vector<HOHXLogicalMapEntry>::iterator it = HOHXEntries_.begin(); it!=HOHXEntries_.end(); ++it) {
330  const HcalElectronicsId heid=it->getHcalElectronicsId();
331  const DetId did0=it->getDetId();
332  const DetId did1=getDetId(heid);
333  if (did0==did1) HOHX_EID_pass++;
334  else HOHX_EID_fail++;
335 
336  const HcalFrontEndId hfeid0=it->getHcalFrontEndId();
337  const HcalFrontEndId hfeid1=getHcalFrontEndId(did0);
338  if (hfeid0==hfeid1) HOHX_FEID_pass++;
339  else HOHX_FEID_fail++;
340  }
341  for (std::vector<CALIBLogicalMapEntry>::iterator it = CALIBEntries_.begin(); it!=CALIBEntries_.end(); ++it) {
342  const HcalElectronicsId heid=it->getHcalElectronicsId();
343  const DetId did0=it->getDetId();
344  const DetId did1=getDetId(heid);
345  if (did0==did1) CALIB_EID_pass++;
346  else CALIB_EID_fail++;
347 
348  const HcalFrontEndId hfeid0=it->getHcalFrontEndId();
349  const HcalFrontEndId hfeid1=getHcalFrontEndId(did0);
350  if (hfeid0==hfeid1) CALIB_FEID_pass++;
351  else CALIB_FEID_fail++;
352  }
353  for (std::vector<ZDCLogicalMapEntry>::iterator it = ZDCEntries_.begin(); it!=ZDCEntries_.end(); ++it) {
354  const HcalElectronicsId heid=it->getHcalElectronicsId();
355  const DetId did0=it->getDetId();
356  const DetId did1=getDetId(heid);
357  if (did0==did1) ZDC_EID_pass++;
358  else ZDC_EID_fail++;
359  }
360 
361  cout << "Checking detIds from electronics ids..." << endl;
362  cout << "HBHEHF EID (pass,fail) = (" << HBHEHF_EID_pass << "," << HBHEHF_EID_fail << ")" << endl;
363  cout << "HOHX EID (pass,fail) = (" << HOHX_EID_pass << "," << HOHX_EID_fail << ")" << endl;
364  cout << "CALIB EID (pass,fail) = (" << CALIB_EID_pass << "," << CALIB_EID_fail << ")" << endl;
365  cout << "ZDC EID (pass,fail) = (" << ZDC_EID_pass << "," << ZDC_EID_fail << ")" << endl;
366  cout << endl;
367  cout << "Checking frontEndIds from electronics ids..." << endl;
368  cout << "HBHEHF FEID (pass,fail) = (" << HBHEHF_FEID_pass << "," << HBHEHF_FEID_fail << ")" << endl;
369  cout << "HOHX FEID (pass,fail) = (" << HOHX_FEID_pass << "," << HOHX_FEID_fail << ")" << endl;
370  cout << "CALIB FEID (pass,fail) = (" << CALIB_FEID_pass << "," << CALIB_FEID_fail << ")" << endl;
371 }
372 
373 
375  std::vector<int> HB_Hashes_; // index 0
376  std::vector<int> HE_Hashes_; // index 1
377  std::vector<int> HF_Hashes_; // index 2
378  std::vector<int> HO_Hashes_; // index 3
379  std::vector<int> CALIBHX_Hashes_;// index 4
380  std::vector<int> ZDC_Hashes_; // index 5
381  std::vector<int> HT_Hashes_; // index 6
382 
383  int numfails[7] = {0,0,0,0,0,0,0};
384  int numpass[7] = {0,0,0,0,0,0,0};
385  int numnotdense[7] = {0,0,0,0,0,0,0};
386 
387  cout << "\nRunning the hash checker for detIds..." << endl;
388  for (std::vector<HBHEHFLogicalMapEntry>::iterator it = HBHEHFEntries_.begin(); it!=HBHEHFEntries_.end(); ++it) {
389  if (it->getDetId().subdetId()==HcalBarrel) {
390  HB_Hashes_.push_back(HcalGenericDetId(it->getDetId().rawId()).hashedId(false));
391  }
392  else if (it->getDetId().subdetId()==HcalEndcap) {
393  HE_Hashes_.push_back(HcalGenericDetId(it->getDetId().rawId()).hashedId(false));
394  }
395  else if (it->getDetId().subdetId()==HcalForward) {
396  HF_Hashes_.push_back(HcalGenericDetId(it->getDetId().rawId()).hashedId(false));
397  }
398  }
399  for (std::vector<HOHXLogicalMapEntry>::iterator it = HOHXEntries_.begin(); it!=HOHXEntries_.end(); ++it) {
400  if (HcalGenericDetId(it->getDetId().rawId()).isHcalCalibDetId() ) {
401  CALIBHX_Hashes_.push_back(HcalGenericDetId(it->getDetId().rawId()).hashedId(false));
402  }
403  else {
404  HO_Hashes_.push_back(HcalGenericDetId(it->getDetId().rawId()).hashedId(false));
405  }
406  }
407  for (std::vector<CALIBLogicalMapEntry>::iterator it = CALIBEntries_.begin(); it!=CALIBEntries_.end(); ++it) {
408  CALIBHX_Hashes_.push_back(HcalGenericDetId(it->getDetId().rawId()).hashedId(false));
409  }
410  for (std::vector<ZDCLogicalMapEntry>::iterator it = ZDCEntries_.begin(); it!=ZDCEntries_.end(); ++it) {
411  ZDC_Hashes_.push_back(HcalGenericDetId(it->getDetId().rawId()).hashedId(false));
412  }
413  for (std::vector<HTLogicalMapEntry>::iterator it = HTEntries_.begin(); it!=HTEntries_.end(); ++it) {
414  HT_Hashes_.push_back(HcalGenericDetId(it->getDetId().rawId()).hashedId(false));
415  }
416 
417  sort(HB_Hashes_.begin() , HB_Hashes_.end());
418  sort(HE_Hashes_.begin() , HE_Hashes_.end());
419  sort(HF_Hashes_.begin() , HF_Hashes_.end());
420  sort(HO_Hashes_.begin() , HO_Hashes_.end());
421  sort(CALIBHX_Hashes_.begin(), CALIBHX_Hashes_.end());
422  sort(ZDC_Hashes_.begin() , ZDC_Hashes_.end());
423  sort(HT_Hashes_.begin() , HT_Hashes_.end());
424 
425  for(unsigned int i = 0; i<HB_Hashes_.size()-1; i++) {
426  int diff = HB_Hashes_.at(i+1)-HB_Hashes_.at(i);
427  if (diff==0) numfails[0]++;
428  else if (diff>1) numnotdense[0]++;
429  else numpass[0]++;
430  }
431  for(unsigned int i = 0; i<HE_Hashes_.size()-1; i++) {
432  int diff = HE_Hashes_.at(i+1)-HE_Hashes_.at(i);
433  if (diff==0) numfails[1]++;
434  else if (diff>1) numnotdense[1]++;
435  else numpass[1]++;
436  }
437  for(unsigned int i = 0; i<HF_Hashes_.size()-1; i++) {
438  int diff = HF_Hashes_.at(i+1)-HF_Hashes_.at(i);
439  if (diff==0) numfails[2]++;
440  else if (diff>1) numnotdense[2]++;
441  else numpass[2]++;
442  }
443  for(unsigned int i = 0; i<HO_Hashes_.size()-1; i++) {
444  int diff = HO_Hashes_.at(i+1)-HO_Hashes_.at(i);
445  if (diff==0) numfails[3]++;
446  else if (diff>1) numnotdense[3]++;
447  else numpass[3]++;
448  }
449  for(unsigned int i = 0; i<CALIBHX_Hashes_.size()-1; i++) {
450  int diff = CALIBHX_Hashes_.at(i+1)-CALIBHX_Hashes_.at(i);
451  if (diff==0) numfails[4]++;
452  else if (diff>1) numnotdense[4]++;
453  else numpass[4]++;
454  }
455  for(unsigned int i = 0; i<ZDC_Hashes_.size()-1; i++) {
456  int diff = ZDC_Hashes_.at(i+1)-ZDC_Hashes_.at(i);
457  if (diff==0) numfails[5]++;
458  else if (diff>1) numnotdense[5]++;
459  else numpass[5]++;
460  }
461  for(unsigned int i = 0; i<HT_Hashes_.size()-1; i++) {
462  int diff = HT_Hashes_.at(i+1)-HT_Hashes_.at(i);
463  if (diff==0) numfails[6]++;
464  else if (diff>1) numnotdense[6]++;
465  else numpass[6]++;
466  }
467  cout << "HB HashIds (pass, collisions, non-dense) = (" << numpass[0] << "," << numfails[0] << "," << numnotdense[0] << ")" << endl;
468  cout << "HE HashIds (pass, collisions, non-dense) = (" << numpass[1] << "," << numfails[1] << "," << numnotdense[1] << ")" << endl;
469  cout << "HF HashIds (pass, collisions, non-dense) = (" << numpass[2] << "," << numfails[2] << "," << numnotdense[2] << ")" << endl;
470  cout << "HO HashIds (pass, collisions, non-dense) = (" << numpass[3] << "," << numfails[3] << "," << numnotdense[3] << ")" << endl;
471  cout << "CALIB/HX HashIds (pass, collisions, non-dense) = (" << numpass[4] << "," << numfails[4] << "," << numnotdense[4] << ")" << endl;
472  cout << "ZDC HashIds (pass, collisions, non-dense) = (" << numpass[5] << "," << numfails[5] << "," << numnotdense[5] << ")" << endl;
473  cout << "HT HashIds (pass, collisions, non-dense) = (" << numpass[6] << "," << numfails[6] << "," << numnotdense[6] << ")" << endl;
474 }
475 
477  std::vector<int> Electronics_Hashes_;
478 
479  int numfails = 0;
480  int numpass = 0;
481  int numnotdense = 0;
482 
483  cout << "\nRunning the hash checker for electronics Ids..." << endl;
484  for (std::vector<HBHEHFLogicalMapEntry>::iterator it = HBHEHFEntries_.begin(); it!=HBHEHFEntries_.end(); ++it) {
485  Electronics_Hashes_.push_back((it->getHcalElectronicsId()).linearIndex());
486  }
487  for (std::vector<ZDCLogicalMapEntry>::iterator it = ZDCEntries_.begin(); it!=ZDCEntries_.end(); ++it) {
488  Electronics_Hashes_.push_back((it->getHcalElectronicsId()).linearIndex());
489  }
490  for (std::vector<CALIBLogicalMapEntry>::iterator it = CALIBEntries_.begin(); it!=CALIBEntries_.end(); ++it) {
491  Electronics_Hashes_.push_back((it->getHcalElectronicsId()).linearIndex());
492  }
493  for (std::vector<HOHXLogicalMapEntry>::iterator it = HOHXEntries_.begin(); it!=HOHXEntries_.end(); ++it) {
494  Electronics_Hashes_.push_back((it->getHcalElectronicsId()).linearIndex());
495  }
496  for (std::vector<HTLogicalMapEntry>::iterator it = HTEntries_.begin(); it!=HTEntries_.end(); ++it) {
497  Electronics_Hashes_.push_back((it->getHcalTrigElectronicsId()).linearIndex());
498  }
499 
500  sort(Electronics_Hashes_.begin() , Electronics_Hashes_.end());
501 
502  for(unsigned int i = 0; i<Electronics_Hashes_.size()-1; i++) {
503  int diff = Electronics_Hashes_.at(i+1)-Electronics_Hashes_.at(i);
504  if (diff==0) numfails++;
505  else if (diff>1) numnotdense++;
506  else numpass++;
507  }
508  cout << "Electronics Id linearIndex (pass, collisions, nondense) = (" << numpass << "," << numfails << "," << numnotdense << ")" << endl;
509 }
510 
answer
Definition: submit.py:44
int i
Definition: DBlmapReader.cc:9
int hashedId(bool h2mode_=false) const
CalibDetType calibFlavor() const
get the flavor of this calibration detid
static uint32_t makeEntryNumber(bool, int, int)
void printCalibMap(FILE *calibmapfile)
void printHTMap(FILE *htmapfile)
void printHOXMap(FILE *hoxmapfile)
void printZDCMap(FILE *zdcmapfile)
bool mapEId2tId(HcalElectronicsId fElectronicsId, HcalTrigTowerDetId fTriggerId)
HcalElectronicsMap generateHcalElectronicsMap()
void checkElectronicsHashIds()
std::pair< std::string, MonitorElement * > entry
Definition: ME_MAP.h:8
void printMap(unsigned int mapIOV)
bool mapEId2chId(HcalElectronicsId fElectronicsId, DetId fId)
const HcalFrontEndId getHcalFrontEndId(const DetId &)
Definition: DetId.h:20
void printHBEFMap(FILE *hbefmapfile)
const DetId getDetId(const HcalElectronicsId &)
int linearIndex() const
get a fast, compact, unique index for linear lookups (maximum value = 16384)
HcalLogicalMap(std::vector< HBHEHFLogicalMapEntry > &, std::vector< HOHXLogicalMapEntry > &, std::vector< CALIBLogicalMapEntry > &, std::vector< ZDCLogicalMapEntry > &, std::vector< HTLogicalMapEntry > &, std::vector< uint32_t > &, std::vector< uint32_t > &, std::vector< uint32_t > &, std::vector< uint32_t > &, std::vector< uint32_t > &, std::vector< uint32_t > &, std::vector< uint32_t > &, std::vector< uint32_t > &)
tuple cout
Definition: gather_cfg.py:121
HcalGenericSubdetector genericSubdet() const
Readout chain identification for Hcal [31:26] Unused (so far) [25] Trigger-chain id flag [24:20] Read...