30 offlineXMLfile_(offlineXMLfile),
31 Tier0Flag_(Tier0Flag) {
33 " Creating SiPixelActionExecutor " <<
"\n" ;
45 " Deleting SiPixelActionExecutor " <<
"\n" ;
56 else localPath =
string(
"DQM/SiPixelMonitorClient/test/sipixel_monitorelement_config.xml");
69 int& sum_grandbarrel_freq,
70 int& sum_grandendcap_freq,
77 else localPath =
string(
"DQM/SiPixelMonitorClient/test/sipixel_monitorelement_config.xml");
84 cout <<
"SiPixelActionExecutor::readConfiguration: Failed to read TrackerMap configuration parameters!! ";
88 edm::LogInfo(
"SiPixelActionExecutor") <<
"Failed to read Barrel Summary configuration parameters!! " <<
"\n" ;
92 edm::LogInfo(
"SiPixelActionExecutor") <<
"Failed to read Endcap Summary configuration parameters!! " <<
"\n" ;
96 edm::LogInfo(
"SiPixelActionExecutor") <<
"Failed to read Grand Barrel Summary configuration parameters!! " <<
"\n" ;
100 edm::LogInfo(
"SiPixelActionExecutor") <<
"Failed to read Grand Endcap Summary configuration parameters!! " <<
"\n" ;
104 edm::LogInfo(
"SiPixelActionExecutor") <<
"Failed to read QTest Message Limit" <<
"\n" ;
108 edm::LogInfo(
"SiPixelActionExecutor") <<
"Failed to read Source Type" <<
"\n" ;
112 edm::LogInfo(
"SiPixelActionExecutor") <<
"Failed to read Calib Type" <<
"\n" ;
123 else localPath =
string(
"DQM/SiPixelMonitorClient/test/sipixel_monitorelement_config.xml");
130 cout <<
"SiPixelActionExecutor::readConfiguration: Failed to read TrackerMap configuration parameters!! ";
134 edm::LogInfo(
"SiPixelActionExecutor") <<
"Failed to read Summary configuration parameters!! " <<
"\n" ;
146 string barrel_structure_name;
147 vector<string> barrel_me_names;
150 else localPath =
string(
"DQM/SiPixelMonitorClient/test/sipixel_monitorelement_config.xml");
157 cout <<
"SiPixelActionExecutor::createSummary: Failed to read Barrel Summary configuration parameters!! ";
164 fillSummary(iBooker, iGetter, barrel_structure_name, barrel_me_names,
true, isUpgrade);
167 string endcap_structure_name;
168 vector<string> endcap_me_names;
170 edm::LogInfo(
"SiPixelActionExecutor") <<
"Failed to read Endcap Summary configuration parameters!! " <<
"\n" ;
179 fillSummary(iBooker,iGetter, endcap_structure_name, endcap_me_names,
false, isUpgrade);
184 string federror_structure_name;
185 vector<string> federror_me_names;
187 cout <<
"SiPixelActionExecutor::createSummary: Failed to read FED Error Summary configuration parameters!! ";
205 if (isUpgrade) {nBPixModules=1184;}
else {nBPixModules=768;}
209 DEV_adc_Barrel = iBooker.
book1D(
"DEV_adc_Barrel",
"Deviation from reference;Module;<adc_ref>-<adc>",nBPixModules,0.,nBPixModules);
210 DEV_ndigis_Barrel = iBooker.
book1D(
"DEV_ndigis_Barrel",
"Deviation from reference;Module;<ndigis_ref>-<ndigis>",nBPixModules,0.,nBPixModules);
211 DEV_charge_Barrel = iBooker.
book1D(
"DEV_charge_Barrel",
"Deviation from reference;Module;<charge_ref>-<charge>",nBPixModules,0.,nBPixModules);
212 DEV_nclusters_Barrel = iBooker.
book1D(
"DEV_nclusters_Barrel",
"Deviation from reference;Module;<nclusters_ref>-<nclusters>",nBPixModules,0.,nBPixModules);
213 DEV_size_Barrel = iBooker.
book1D(
"DEV_size_Barrel",
"Deviation from reference;Module;<size_ref>-<size>",nBPixModules,0.,nBPixModules);
216 DEV_adc_Endcap = iBooker.
book1D(
"DEV_adc_Endcap",
"Deviation from reference;Module;<adc_ref>-<adc>",672,0.,672.);
217 DEV_ndigis_Endcap = iBooker.
book1D(
"DEV_ndigis_Endcap",
"Deviation from reference;Module;<ndigis_ref>-<ndigis>",672,0.,672.);
218 DEV_charge_Endcap = iBooker.
book1D(
"DEV_charge_Endcap",
"Deviation from reference;Module;<charge_ref>-<charge>",672,0.,672.);
219 DEV_nclusters_Endcap = iBooker.
book1D(
"DEV_nclusters_Endcap",
"Deviation from reference;Module;<nclusters_ref>-<nclusters>",672,0.,672.);
220 DEV_size_Endcap = iBooker.
book1D(
"DEV_size_Endcap",
"Deviation from reference;Module;<size_ref>-<size>",672,0.,672.);
230 TH1* ref1; TH1* ref2;
231 TH1* ref3; TH1* ref4;
236 me1 = iGetter.
get(
"Pixel/Barrel/SUMDIG_adc_Barrel");
238 dev1 = iGetter.
get(
"Pixel/Barrel/DEV_adc_Barrel");
239 me2 = iGetter.
get(
"Pixel/Barrel/SUMDIG_ndigis_Barrel");
241 dev2 = iGetter.
get(
"Pixel/Barrel/DEV_ndigis_Barrel");
242 me3 = iGetter.
get(
"Pixel/Barrel/SUMCLU_charge_Barrel");
244 dev3 = iGetter.
get(
"Pixel/Barrel/DEV_charge_Barrel");
245 me4 = iGetter.
get(
"Pixel/Barrel/SUMCLU_nclusters_Barrel");
247 dev4 = iGetter.
get(
"Pixel/Barrel/DEV_nclusters_Barrel");
248 me5 = iGetter.
get(
"Pixel/Barrel/SUMCLU_size_Barrel");
250 dev5 = iGetter.
get(
"Pixel/Barrel/DEV_size_Barrel");
251 for(
int i=1;
i!=n+1;
i++){
252 float ref_value;
float new_value;
254 if(me1)
if(ref1)
if(dev1){
256 ref_value = ref1->GetBinContent(
i);
260 if(me2)
if(ref2)
if(dev2){
262 ref_value = ref2->GetBinContent(
i);
266 if(me3)
if(ref3)
if(dev3){
268 ref_value = ref3->GetBinContent(
i);
272 if(me4)
if(ref4)
if(dev4){
274 ref_value = ref4->GetBinContent(
i);
278 if(me5)
if(ref5)
if(dev5){
280 ref_value = ref5->GetBinContent(
i);
289 TH1* ref11; TH1* ref12;
290 TH1* ref13; TH1* ref14;
295 me11 = iGetter.
get(
"Pixel/Endcap/SUMDIG_adc_Endcap");
297 dev11 = iGetter.
get(
"Pixel/Endcap/DEV_adc_Endcap");
298 me12 = iGetter.
get(
"Pixel/Endcap/SUMDIG_ndigis_Endcap");
300 dev12 = iGetter.
get(
"Pixel/Endcap/DEV_ndigis_Endcap");
301 me13 = iGetter.
get(
"Pixel/Endcap/SUMCLU_charge_Endcap");
303 dev13 = iGetter.
get(
"Pixel/Endcap/DEV_charge_Endcap");
304 me14 = iGetter.
get(
"Pixel/Endcap/SUMCLU_nclusters_Endcap");
306 dev14 = iGetter.
get(
"Pixel/Endcap/DEV_nclusters_Endcap");
307 me15 = iGetter.
get(
"Pixel/Endcap/SUMCLU_size_Endcap");
309 dev15 = iGetter.
get(
"Pixel/Endcap/DEV_size_Endcap");
310 for(
int i=1;
i!=nn+1;
i++){
311 float ref_value;
float new_value;
313 if(me11)
if(ref11)
if(dev11){
315 ref_value = ref11->GetBinContent(
i);
319 if(me12)
if(ref12)
if(dev12){
321 ref_value = ref12->GetBinContent(
i);
325 if(me13)
if(ref13)
if(dev13){
327 ref_value = ref13->GetBinContent(
i);
331 if(me14)
if(ref14)
if(dev14){
333 ref_value = ref14->GetBinContent(
i);
337 if(me15)
if(ref15)
if(dev15){
339 ref_value = ref15->GetBinContent(
i);
349 blade_subdirs.clear();
352 for (vector<string>::const_iterator it = panels.begin(); it != panels.end(); it++) {
356 for (vector<string>::const_iterator m_it = modules.begin(); m_it != modules.end(); m_it++) {
357 blade_subdirs.push_back(*m_it);
370 string currDir = iBooker.
pwd();
379 if (currDir.find(dir_name) != string::npos) {
380 vector<MonitorElement*> sum_mes;
381 for (vector<string>::const_iterator iv = me_names.begin();
382 iv != me_names.end(); iv++) {
384 if((*iv)==
"errorType"||(*iv)==
"NErrors"||(*iv)==
"fullType"||(*iv)==
"chanNmbr"||
385 (*iv)==
"TBMType"||(*iv)==
"EvtNbr"||(*iv)==
"evtSize"||(*iv)==
"linkId"||
386 (*iv)==
"ROCId"||(*iv)==
"DCOLId"||(*iv)==
"PXId"||(*iv)==
"ROCNmbr"||
387 (*iv)==
"TBMMessage"||(*iv)==
"Type36Hitmap")
389 else if((*iv)==
"ndigis"||(*iv)==
"adc")
391 else if((*iv)==
"nclusters"||(*iv)==
"x"||(*iv)==
"y"||(*iv)==
"charge"||
392 (*iv)==
"size"||(*iv)==
"sizeX"||(*iv)==
"sizeY"||(*iv)==
"minrow"||
393 (*iv)==
"maxrow"||(*iv)==
"mincol"||(*iv)==
"maxcol")
395 if(currDir.find(
"Track")!=string::npos) prefix=
"SUMTRK";
396 else if((*iv)==
"residualX"||(*iv)==
"residualY")
398 else if((*iv)==
"ClustX"||(*iv)==
"ClustY"||(*iv)==
"nRecHits"||(*iv)==
"ErrorX"||(*iv)==
"ErrorY")
400 else if((*iv)==
"Gain1d"||(*iv)==
"GainChi2NDF1d"||
401 (*iv)==
"GainChi2Prob1d"||(*iv)==
"Pedestal1d"||
402 (*iv)==
"GainNPoints1d"||(*iv)==
"GainHighPoint1d"||
403 (*iv)==
"GainLowPoint1d"||(*iv)==
"GainEndPoint1d"||
404 (*iv)==
"GainFitResult2d"||(*iv)==
"GainDynamicRange2d"||
405 (*iv)==
"GainSaturate2d"||
406 (*iv)==
"ScurveChi2ProbSummary"||(*iv)==
"ScurveFitResultSummary"||
407 (*iv)==
"ScurveSigmasSummary"||(*iv)==
"ScurveThresholdSummary"||
408 (*iv)==
"pixelAliveSummary" || (*iv) ==
"SiPixelErrorsCalibDigis")
412 if((*iv).find(
"residual")!=string::npos){
413 tag = prefix +
"_" + (*iv) +
"_mean_"
414 + currDir.substr(currDir.find(dir_name));
416 sum_mes.push_back(temp);
417 tag = prefix +
"_" + (*iv) +
"_RMS_"
418 + currDir.substr(currDir.find(dir_name));
420 sum_mes.push_back(temp);
421 }
else if(prefix ==
"SUMCAL"){
422 if((*iv)==
"Gain1d" || (*iv)==
"GainChi2NDF1d" || (*iv)==
"GainChi2Prob1d" ||
423 (*iv)==
"GainNPoints1d" || (*iv)==
"GainHighPoint1d" ||
424 (*iv)==
"GainLowPoint1d" || (*iv)==
"GainEndPoint1d" ||
425 (*iv)==
"GainDynamicRange2d" || (*iv)==
"GainSaturate2d" ||
426 (*iv)==
"Pedestal1d" ||
427 (*iv)==
"ScurveChi2ProbSummary" || (*iv)==
"ScurveFitResultSummary" ||
428 (*iv)==
"ScurveSigmasSummary" || (*iv)==
"ScurveThresholdSummary"){
429 tag = prefix +
"_" + (*iv) +
"_mean_"
430 + currDir.substr(currDir.find(dir_name));
432 sum_mes.push_back(temp);
433 tag = prefix +
"_" + (*iv) +
"_RMS_"
434 + currDir.substr(currDir.find(dir_name));
436 sum_mes.push_back(temp);
437 }
else if((*iv) ==
"SiPixelErrorsCalibDigis"){
438 tag = prefix +
"_" + (*iv) +
"_NCalibErrors_"
439 + currDir.substr(currDir.find(dir_name));
441 sum_mes.push_back(temp);
442 }
else if((*iv)==
"GainFitResult2d"){
443 tag = prefix +
"_" + (*iv) +
"_NNegativeFits_"
444 + currDir.substr(currDir.find(dir_name));
446 sum_mes.push_back(temp);
447 }
else if((*iv)==
"pixelAliveSummary"){
448 tag = prefix +
"_" + (*iv) +
"_FracOfPerfectPix_"
449 + currDir.substr(currDir.find(dir_name));
451 sum_mes.push_back(temp);
452 tag = prefix +
"_" + (*iv) +
"_mean_"
453 + currDir.substr(currDir.find(dir_name));
455 sum_mes.push_back(temp);
458 tag = prefix +
"_" + (*iv) +
"_" + currDir.substr(currDir.find(dir_name));
460 sum_mes.push_back(temp);
462 tag = prefix +
"_" + (*iv) +
"FREQ_"
463 + currDir.substr(currDir.find(dir_name));
465 sum_mes.push_back(temp);
467 if(prefix==
"SUMDIG" && (*iv)==
"adc"){
468 tag =
"ALLMODS_" + (*iv) +
"COMB_" + currDir.substr(currDir.find(dir_name));
470 string fullpathname = iBooker.
pwd() +
"/" +
tag;
471 temp = iGetter.
get(fullpathname);
475 temp = iBooker.
book1D(tag.c_str(), tag.c_str(),128, 0., 256.);
477 sum_mes.push_back(temp);
479 if(prefix==
"SUMCLU" && (*iv)==
"charge"){
480 tag =
"ALLMODS_" + (*iv) +
"COMB_" + currDir.substr(currDir.find(dir_name));
482 string fullpathname = iBooker.
pwd() +
"/" +
tag;
483 temp = iGetter.
get(fullpathname);
487 temp = iBooker.
book1D(tag.c_str(), tag.c_str(),100, 0., 200.);
489 sum_mes.push_back(temp);
493 if (sum_mes.size() == 0) {
494 edm::LogInfo(
"SiPixelActionExecutor") <<
" Summary MEs can not be created" <<
"\n" ;
497 vector<string> subdirs = iGetter.
getSubdirs();
499 if(dir_name.find(
"Blade_") == 0)
GetBladeSubdirs(iBooker, iGetter, subdirs);
502 for (vector<string>::const_iterator it = subdirs.begin();
503 it != subdirs.end(); it++) {
504 if (prefix!=
"SUMOFF" && (*it).find(
"Module_") == string::npos)
continue;
505 if (prefix==
"SUMOFF" && (*it).find(isbarrel?
"Layer_":
"Disk_") == string::npos)
continue;
512 for (vector<MonitorElement*>::const_iterator
isum = sum_mes.begin();
514 for (vector<string>::const_iterator im = contents.begin();
515 im != contents.end(); im++) {
516 string sname = ((*isum)->getName());
518 tname = sname.substr(7,(sname.find(
"_",7)-6));
519 if(sname.find(
"ALLMODS_adcCOMB_")!=string::npos) tname =
"adc_";
520 if(sname.find(
"ALLMODS_chargeCOMB_")!=string::npos) tname =
"charge_";
521 if(sname.find(
"_charge_")!=string::npos && sname.find(
"Track_")==string::npos) tname =
"charge_";
522 if(sname.find(
"_nclusters_")!=string::npos && sname.find(
"Track_")==string::npos) tname =
"nclusters_";
523 if(sname.find(
"_size_")!=string::npos && sname.find(
"Track_")==string::npos) tname =
"size_";
524 if(sname.find(
"_charge_OffTrack_")!=string::npos) tname =
"charge_OffTrack_";
525 if(sname.find(
"_nclusters_OffTrack_")!=string::npos) tname =
"nclusters_OffTrack_";
526 if(sname.find(
"_size_OffTrack_")!=string::npos) tname =
"size_OffTrack_";
527 if(sname.find(
"_sizeX_OffTrack_")!=string::npos) tname =
"sizeX_OffTrack_";
528 if(sname.find(
"_sizeY_OffTrack_")!=string::npos) tname =
"sizeY_OffTrack_";
529 if(sname.find(
"_charge_OnTrack_")!=string::npos) tname =
"charge_OnTrack_";
530 if(sname.find(
"_nclusters_OnTrack_")!=string::npos) tname =
"nclusters_OnTrack_";
531 if(sname.find(
"_size_OnTrack_")!=string::npos) tname =
"size_OnTrack_";
532 if(sname.find(
"_sizeX_OnTrack_")!=string::npos) tname =
"sizeX_OnTrack_";
533 if(sname.find(
"_sizeY_OnTrack_")!=string::npos) tname =
"sizeY_OnTrack_";
534 if(tname.find(
"FREQ")!=string::npos) tname =
"ndigis_";
535 if (((*im)).find(tname) == 0) {
536 string fullpathname = iBooker.
pwd() +
"/" + (*im);
540 if(sname.find(
"_charge")!=string::npos && sname.find(
"Track_")==string::npos && me->
getName().find(
"Track_")!=string::npos)
continue;
541 if(sname.find(
"_nclusters_")!=string::npos && sname.find(
"Track_")==string::npos && me->
getName().find(
"Track_")!=string::npos)
continue;
542 if(sname.find(
"_size")!=string::npos && sname.find(
"Track_")==string::npos && me->
getName().find(
"Track_")!=string::npos)
continue;
544 if (sname.find(
"_RMS_")!=string::npos &&
545 sname.find(
"GainDynamicRange2d")==string::npos &&
546 sname.find(
"GainSaturate2d")==string::npos){
548 }
else if (sname.find(
"GainDynamicRange2d")!=string::npos ||
549 sname.find(
"GainSaturate2d")!=string::npos){
550 float SumOfEntries=0.;
float SumOfSquaredEntries=0.;
int SumOfPixels=0;
557 float MeanInZ = SumOfEntries / float(SumOfPixels);
558 float RMSInZ =
sqrt(SumOfSquaredEntries/
float(SumOfPixels));
559 if(sname.find(
"_mean_")!=string::npos) (*isum)->Fill(ndet, MeanInZ);
560 if(sname.find(
"_RMS_")!=string::npos) (*isum)->Fill(ndet, RMSInZ);
561 }
else if (sname.find(
"_FracOfPerfectPix_")!=string::npos){
563 float nall = (me->
getTH1F())->Integral(1,11);
564 (*isum)->Fill(ndet, nlast/nall);
565 }
else if (sname.find(
"_NCalibErrors_")!=string::npos ||
566 sname.find(
"FREQ_")!=string::npos){
568 (*isum)->Fill(ndet, nall);
569 }
else if (sname.find(
"GainFitResult2d")!=string::npos){
574 (*isum)->Fill(ndet,
float(NegFitPixels));
575 }
else if (sname.find(
"ALLMODS_adcCOMB_")!=string::npos ||
576 (sname.find(
"ALLMODS_chargeCOMB_")!=string::npos && me->
getName().find(
"Track_")==string::npos)){
577 (*isum)->getTH1F()->Add(me->
getTH1F());
578 }
else if (sname.find(
"_NErrors_")!=string::npos){
579 string path1 = fullpathname;
580 path1 = path1.replace(path1.find(
"NErrors"),7,
"errorType");
584 for(
int jj=1;
jj<16;
jj++){
587 string path2 = path1;
588 path2 = path2.replace(path2.find(
"errorType"),9,
"TBMMessage");
596 }
else if ((sname.find(
"_charge_")!=string::npos && sname.find(
"Track_")==string::npos &&
597 me->
getName().find(
"Track_")==string::npos) ||
598 (sname.find(
"_charge_")!=string::npos && sname.find(
"_OnTrack_")!=string::npos &&
599 me->
getName().find(
"_OnTrack_")!=string::npos) ||
600 (sname.find(
"_charge_")!=string::npos && sname.find(
"_OffTrack_")!=string::npos &&
601 me->
getName().find(
"_OffTrack_")!=string::npos) ||
602 (sname.find(
"_nclusters_")!=string::npos && sname.find(
"Track_")==string::npos &&
603 me->
getName().find(
"Track_")==string::npos) ||
604 (sname.find(
"_nclusters_")!=string::npos && sname.find(
"_OnTrack_")!=string::npos &&
605 me->
getName().find(
"_OnTrack_")!=string::npos) ||
606 (sname.find(
"_nclusters_")!=string::npos && sname.find(
"_OffTrack_")!=string::npos &&
607 me->
getName().find(
"_OffTrack_")!=string::npos) ||
608 (sname.find(
"_size")!=string::npos && sname.find(
"Track_")==string::npos &&
609 me->
getName().find(
"Track_")==string::npos) ||
610 (sname.find(
"_size")!=string::npos && sname.find(
"_OnTrack_")!=string::npos &&
611 me->
getName().find(
"_OnTrack_")!=string::npos) ||
612 (sname.find(
"_size")!=string::npos && sname.find(
"_OffTrack_")!=string::npos &&
613 me->
getName().find(
"_OffTrack_")!=string::npos)){
614 (*isum)->Fill(ndet, me->
getMean());
615 }
else if(sname.find(
"_charge_")==string::npos && sname.find(
"_nclusters_")==string::npos && sname.find(
"_size")==string::npos){
616 (*isum)->Fill(ndet, me->
getMean());
620 if(prefix==
"SUMOFF"){
621 (*isum)->setAxisTitle(isbarrel?
"Ladders":
"Blades",1);
622 }
else if(sname.find(
"ALLMODS_adcCOMB_")!=string::npos){
623 (*isum)->setAxisTitle(
"Digi charge [ADC]",1);
624 }
else if(sname.find(
"ALLMODS_chargeCOMB_")!=string::npos){
625 (*isum)->setAxisTitle(
"Cluster charge [kilo electrons]",1);
627 (*isum)->setAxisTitle(
"Modules",1);
630 if (sname.find(
"_RMS_")!=string::npos){
631 title =
"RMS of " + sname.substr(7,(sname.find(
"_",7)-7)) +
" per module";
632 }
else if (sname.find(
"_FracOfPerfectPix_")!=string::npos){
633 title =
"FracOfPerfectPix " + sname.substr(7,(sname.find(
"_",7)-7)) +
" per module";
634 }
else if(sname.find(
"_NCalibErrors_")!=string::npos){
635 title =
"Number of CalibErrors " + sname.substr(7,(sname.find(
"_",7)-7)) +
" per module";
636 }
else if(sname.find(
"_NNegativeFits_")!=string::npos){
637 title =
"Number of pixels with neg. fit result " + sname.substr(7,(sname.find(
"_",7)-7)) +
" per module";
638 }
else if (sname.find(
"FREQ_")!=string::npos){
639 title =
"NEvents with digis per module";
640 }
else if (sname.find(
"ALLMODS_adcCOMB_")!=string::npos){
642 }
else if (sname.find(
"ALLMODS_chargeCOMB_")!=string::npos){
644 }
else if (sname.find(
"_NErrors_")!=string::npos){
645 if(prefix==
"SUMOFF" && isbarrel) title =
"Total number of errors per Ladder";
646 else if(prefix==
"SUMOFF" && !isbarrel) title =
"Total number of errors per Blade";
647 else title =
"Total number of errors per Module";
649 if(prefix==
"SUMOFF") title =
"Mean " + sname.substr(7,(sname.find(
"_",7)-7)) + (isbarrel?
" per Ladder":
" per Blade");
650 else title =
"Mean " + sname.substr(7,(sname.find(
"_",7)-7)) +
" per Module";
652 (*isum)->setAxisTitle(title,2);
660 if(dir_name.find(
"Blade") == 0) {
666 vector<string> subdirs = iGetter.
getSubdirs();
671 for (vector<string>::const_iterator it = subdirs.begin();
672 it != subdirs.end(); it++) {
674 if((iBooker.
pwd()).
find(
"Endcap")!=string::npos ||
675 (iBooker.
pwd()).
find(
"AdditionalPixelErrors")!=string::npos) {
681 if((*it).find(
"Endcap")!=string::npos ||
682 (*it).find(
"AdditionalPixelErrors")!=string::npos)
continue;
683 fillSummary(iBooker, iGetter, dir_name, me_names,
true, isUpgrade);
687 string grandbarrel_structure_name;
688 vector<string> grandbarrel_me_names;
690 cout <<
"SiPixelActionExecutor::createSummary: Failed to read Grand Barrel Summary configuration parameters!! ";
699 for (vector<string>::const_iterator it = subdirs.begin();
700 it != subdirs.end(); it++) {
701 if((iBooker.
pwd()).
find(
"Barrel")!=string::npos ||
702 (iBooker.
pwd()).
find(
"AdditionalPixelErrors")!=string::npos){
708 if ((*it).find(
"Barrel")!=string::npos ||
709 (*it).find(
"AdditionalPixelErrors")!=string::npos)
continue;
710 fillSummary(iBooker, iGetter, dir_name, me_names,
false, isUpgrade);
714 string grandendcap_structure_name;
715 vector<string> grandendcap_me_names;
717 cout <<
"SiPixelActionExecutor::createSummary: Failed to read Grand Endcap Summary configuration parameters!! ";
733 vector<string>& me_names) {
735 string currDir = iBooker.
pwd();
740 if (currDir.find(dir_name) != string::npos) {
741 vector<MonitorElement*> sum_mes;
742 for (vector<string>::const_iterator iv = me_names.begin();
743 iv != me_names.end(); iv++) {
744 bool isBooked =
false;
746 for (vector<string>::const_iterator im = contents.begin(); im != contents.end(); im++)
747 if ((*im).find(*iv) != string::npos) isBooked =
true;
749 if((*iv)==
"errorType"||(*iv)==
"NErrors"||(*iv)==
"fullType"||(*iv)==
"chanNmbr"||
750 (*iv)==
"TBMType"||(*iv)==
"EvtNbr"||(*iv)==
"evtSize"||(*iv)==
"linkId"||
751 (*iv)==
"ROCId"||(*iv)==
"DCOLId"||(*iv)==
"PXId"||(*iv)==
"ROCNmbr"||
752 (*iv)==
"TBMMessage"||(*iv)==
"Type36Hitmap"||
753 (*iv)==
"FedChLErr"||(*iv)==
"FedChNErr"||(*iv)==
"FedETypeNErr")
756 if((*iv)==
"errorType"||(*iv)==
"NErrors"||(*iv)==
"fullType"||(*iv)==
"chanNmbr"||
757 (*iv)==
"TBMType"||(*iv)==
"EvtNbr"||(*iv)==
"evtSize"||(*iv)==
"linkId"||
758 (*iv)==
"ROCId"||(*iv)==
"DCOLId"||(*iv)==
"PXId"||(*iv)==
"ROCNmbr"||
759 (*iv)==
"TBMMessage"||(*iv)==
"Type36Hitmap"){
760 string tag = prefix +
"_" + (*iv) +
"_FEDErrors";
762 sum_mes.push_back(temp);
763 }
else if((*iv)==
"FedChLErr"||(*iv)==
"FedChNErr"||(*iv)==
"FedETypeNErr"){
764 string tag = prefix +
"_" + (*iv);
766 if((*iv)==
"FedChLErr") {
if (!isBooked) temp = iBooker.
book2D(
"FedChLErr",
"Type of last error",40,-0.5,39.5,37,0.,37.);
768 string fullpathname = iBooker.
pwd() +
"/" + (*iv);
769 temp = iGetter.
get(fullpathname);
771 if((*iv)==
"FedChNErr") {
if (!isBooked) temp = iBooker.
book2D(
"FedChNErr",
"Total number of errors",40,-0.5,39.5,37,0.,37.);
773 string fullpathname = iBooker.
pwd() +
"/" + (*iv);
774 temp = iGetter.
get(fullpathname);
776 if((*iv)==
"FedETypeNErr"){
778 temp = iBooker.
book2D(
"FedETypeNErr",
"Number of each error type",40,-0.5,39.5,21,0.,21.);
802 string fullpathname = iBooker.
pwd() +
"/" + (*iv);
803 temp = iGetter.
get(fullpathname);
806 sum_mes.push_back(temp);
809 if (sum_mes.size() == 0) {
810 edm::LogInfo(
"SiPixelActionExecutor") <<
" Summary MEs can not be created" <<
"\n" ;
813 vector<string> subdirs = iGetter.
getSubdirs();
815 for (vector<string>::const_iterator it = subdirs.begin();
816 it != subdirs.end(); it++) {
817 if ( (*it).find(
"FED_") == string::npos)
continue;
820 string fedid = (*it).substr((*it).find(
"_")+1);
821 std::istringstream isst;
826 for (vector<MonitorElement*>::const_iterator
isum = sum_mes.begin();
828 for (vector<string>::const_iterator im = contents.begin();
829 im != contents.end(); im++) {
830 if(((*im).find(
"FedChNErr")!=std::string::npos && (*isum)->getName().find(
"FedChNErr")!=std::string::npos) ||
831 ((*im).find(
"FedChLErr")!=std::string::npos && (*isum)->getName().find(
"FedChLErr")!=std::string::npos) ||
832 ((*im).find(
"FedETypeNErr")!=std::string::npos && (*isum)->getName().find(
"FedETypeNErr")!=std::string::npos)){
833 string fullpathname = iBooker.
pwd() +
"/" + (*im);
836 for(
int i=0;
i!=37;
i++){
837 if((*im).find(
"FedETypeNErr")!=std::string::npos &&
i<21) (*isum)->
Fill(ndet-1,
i,me->
getBinContent(
i+1));
842 string sname = ((*isum)->getName());
844 tname = sname.substr(7,(sname.find(
"_",7)-6));
845 if (((*im)).
find(tname) == 0) {
846 string fullpathname = iBooker.
pwd() +
"/" + (*im);
851 if (sname.find(
"_NErrors_")!=string::npos){
852 string path1 = fullpathname;
853 path1 = path1.replace(path1.find(
"NErrors"),7,
"errorType");
857 for(
int jj=1;
jj<16;
jj++){
860 string path2 = path1;
861 path2 = path2.replace(path2.find(
"errorType"),9,
"TBMMessage");
869 }
else (*isum)->setBinContent(ndet, (*isum)->getBinContent(ndet) + me->
getEntries());
871 (*isum)->setAxisTitle(
"FED #",1);
873 title = sname.substr(7,(sname.find(
"_",7)-7)) +
" per FED";
874 (*isum)->setAxisTitle(title,2);
884 vector<string> subdirs = iGetter.
getSubdirs();
885 for (vector<string>::const_iterator it = subdirs.begin();
886 it != subdirs.end(); it++) {
887 if((*it).find(
"Endcap")!=string::npos ||
888 (*it).find(
"Barrel")!=string::npos)
continue;
903 vector<string>& me_names,
906 vector<MonitorElement*> gsum_mes;
907 string currDir = iBooker.
pwd();
909 string dir_name = path_name.substr(path_name.find_last_of(
"/")+1);
910 if ((dir_name.find(
"DQMData") == 0) ||
911 (dir_name.find(
"Pixel") == 0) ||
912 (dir_name.find(
"AdditionalPixelErrors") == 0) ||
913 (dir_name.find(
"Endcap") == 0) ||
914 (dir_name.find(
"HalfCylinder") == 0) ||
915 (dir_name.find(
"Disk") == 0) ||
916 (dir_name.find(
"Blade") == 0) ||
917 (dir_name.find(
"Panel") == 0) )
return;
918 vector<string> subdirs = iGetter.
getSubdirs();
919 int nDirs = subdirs.size();
925 bool first_subdir =
true;
926 for (vector<string>::const_iterator it = subdirs.begin();
927 it != subdirs.end(); it++) {
946 for (vector<string>::const_iterator im = contents.begin();
947 im != contents.end(); im++) {
948 for (vector<string>::const_iterator iv = me_names.begin();
949 iv != me_names.end(); iv++) {
950 string var =
"_" + (*iv) +
"_";
951 if ((*im).find(var) != string::npos) {
952 if((var==
"_charge_" || var==
"_nclusters_" || var==
"_size_" || var==
"_sizeX_" || var==
"_sizeY_") &&
953 (*im).find(
"Track_")!=string::npos)
continue;
954 string full_path = (*it) +
"/" +(*im);
958 if((*iv)==
"errorType"||(*iv)==
"NErrors"||(*iv)==
"fullType"||(*iv)==
"chanNmbr"||
959 (*iv)==
"TBMType"||(*iv)==
"EvtNbr"||(*iv)==
"evtSize"||(*iv)==
"linkId"||
960 (*iv)==
"ROCId"||(*iv)==
"DCOLId"||(*iv)==
"PXId"||(*iv)==
"ROCNmbr"||
961 (*iv)==
"TBMMessage"||(*iv)==
"Type36Hitmap")
963 else if((*iv)==
"ndigis"||(*iv)==
"adc" ||
964 (*iv)==
"ndigisFREQ" || (*iv)==
"adcCOMB")
966 else if((*iv)==
"nclusters"||(*iv)==
"x"||(*iv)==
"y"||(*iv)==
"charge"||(*iv)==
"chargeCOMB"||
967 (*iv)==
"size"||(*iv)==
"sizeX"||(*iv)==
"sizeY"||(*iv)==
"minrow"||
968 (*iv)==
"maxrow"||(*iv)==
"mincol"||(*iv)==
"maxcol")
970 if(currDir.find(
"Track")!=string::npos) prefix=
"SUMTRK";
971 else if((*iv)==
"residualX_mean"||(*iv)==
"residualY_mean"||
972 (*iv)==
"residualX_RMS"||(*iv)==
"residualY_RMS")
974 else if((*iv)==
"ClustX"||(*iv)==
"ClustY"||(*iv)==
"nRecHits"||(*iv)==
"ErrorX"||(*iv)==
"ErrorY")
976 else if((*iv)==
"Gain1d_mean"||(*iv)==
"GainChi2NDF1d_mean"||
977 (*iv)==
"GainChi2Prob1d_mean"||(*iv)==
"Pedestal1d_mean"||
978 (*iv)==
"ScurveChi2ProbSummary_mean"||(*iv)==
"ScurveFitResultSummary_mean"||
979 (*iv)==
"ScurveSigmasSummary_mean"||(*iv)==
"ScurveThresholdSummary_mean"||
980 (*iv)==
"Gain1d_RMS"||(*iv)==
"GainChi2NDF1d_RMS"||
981 (*iv)==
"GainChi2Prob1d_RMS"||(*iv)==
"Pedestal1d_RMS"||
982 (*iv)==
"GainNPoints1d_mean" || (*iv)==
"GainNPoints1d_RMS" ||
983 (*iv)==
"GainHighPoint1d_mean" || (*iv)==
"GainHighPoint1d_RMS" ||
984 (*iv)==
"GainLowPoint1d_mean" || (*iv)==
"GainLowPoint1d_RMS" ||
985 (*iv)==
"GainEndPoint1d_mean" || (*iv)==
"GainEndPoint1d_RMS" ||
986 (*iv)==
"GainFitResult2d_mean" || (*iv)==
"GainFitResult2d_RMS" ||
987 (*iv)==
"GainDynamicRange2d_mean" || (*iv)==
"GainDynamicRange2d_RMS" ||
988 (*iv)==
"GainSaturate2d_mean" || (*iv)==
"GainSaturate2d_RMS" ||
989 (*iv)==
"ScurveChi2ProbSummary_RMS"||(*iv)==
"ScurveFitResultSummary_RMS"||
990 (*iv)==
"ScurveSigmasSummary_RMS"||(*iv)==
"ScurveThresholdSummary_RMS"||
991 (*iv)==
"pixelAliveSummary_mean"||(*iv)==
"pixelAliveSummary_FracOfPerfectPix" ||
992 (*iv)==
"SiPixelErrorsCalibDigis_NCalibErrors" )
996 if (first_subdir && !isUpgrade){
997 nbin = me->
getTH1F()->GetNbinsX();
998 string me_name = prefix +
"_" + (*iv) +
"_" +
dir_name;
999 if((*iv)==
"adcCOMB"||(*iv)==
"chargeCOMB") me_name =
"ALLMODS_" + (*iv) +
"_" +
dir_name;
1000 else if(prefix==
"SUMOFF" && dir_name==
"Barrel") nbin=192;
1001 else if((*iv)==
"adcCOMB") nbin=256;
1002 else if(dir_name==
"Barrel") nbin=768;
1003 else if(prefix==
"SUMOFF" && dir_name.find(
"Shell")!=string::npos) nbin=48;
1004 else if(dir_name.find(
"Shell")!=string::npos) nbin=192;
1005 else nbin=nbin*nDirs;
1008 }
else if (first_subdir && isUpgrade){
1009 nbin = me->
getTH1F()->GetNbinsX();
1010 string me_name = prefix +
"_" + (*iv) +
"_" +
dir_name;
1011 if((*iv)==
"adcCOMB"||(*iv)==
"chargeCOMB") me_name =
"ALLMODS_" + (*iv) +
"_" +
dir_name;
1012 else if(prefix==
"SUMOFF" && dir_name==
"Barrel") nbin=296;
1013 else if((*iv)==
"adcCOMB") nbin=256;
1014 else if(dir_name==
"Barrel") nbin=1184;
1015 else if(prefix==
"SUMOFF" && dir_name.find(
"Shell")!=string::npos) nbin=74;
1016 else if(dir_name.find(
"Shell")!=string::npos) nbin=296;
1017 else nbin=nbin*nDirs;
1022 for (vector<MonitorElement*>::const_iterator igm = gsum_mes.begin();
1023 igm != gsum_mes.end(); igm++) {
1024 if ((*igm)->getName().find(var) != string::npos) {
1025 if(prefix==
"SUMOFF") (*igm)->setAxisTitle(
"Ladders",1);
1026 else if((*igm)->getName().find(
"adcCOMB_")!=string::npos) (*igm)->setAxisTitle(
"Digi charge [ADC]",1);
1027 else if((*igm)->getName().find(
"chargeCOMB_")!=string::npos) (*igm)->setAxisTitle(
"Cluster charge [kilo electrons]",1);
1028 else (*igm)->setAxisTitle(
"Modules",1);
1033 if((*igm)->getName().find(
"NErrors_") != string::npos && prefix==
"SUMOFF") title =
"Total number of errors per Ladder";
1034 else if((*igm)->getName().find(
"NErrors_") != string::npos && prefix==
"SUMRAW") title =
"Total number of errors per Module";
1035 else if(prefix==
"SUMOFF") title =
"mean " + (*iv) +
" per Ladder";
1036 else if((*igm)->getName().find(
"FREQ_") != string::npos && prefix!=
"SUMOFF") title =
"NEvents with digis per Module";
1037 else if((*igm)->getName().find(
"FREQ_") != string::npos && prefix==
"SUMOFF") title =
"NEvents with digis per Ladder/Blade";
1038 else if((*igm)->getName().find(
"adcCOMB_") != string::npos) title =
"NDigis";
1039 else if((*igm)->getName().find(
"chargeCOMB_") != string::npos) title =
"NClusters";
1040 else title =
"mean " + (*iv) +
" per Module";
1041 (*igm)->setAxisTitle(title,2);
1045 if((*igm)->getName().find(
"ALLMODS_adcCOMB_")!=string::npos){
1047 }
else if((*igm)->getName().find(
"ALLMODS_chargeCOMB_")!=string::npos){
1049 }
else if((*igm)->getName().find(
"Ladder") != string::npos){
1050 nbin_i=0; nbin_subdir=4;
1051 }
else if((*igm)->getName().find(
"Layer") != string::npos){
1052 nbin_i=(cnt-1)*4; nbin_subdir=4;
1053 }
else if((*igm)->getName().find(
"Shell") != string::npos){
1054 if(prefix!=
"SUMOFF"){
1055 if(iDir==0){ nbin_i=0; nbin_subdir=40; }
1056 else if(iDir==1){ nbin_i=40; nbin_subdir=64; }
1057 else if(iDir==2){ nbin_i=104; nbin_subdir=88; }
1059 if(iDir==0){ nbin_i=0; nbin_subdir=10; }
1060 else if(iDir==1){ nbin_i=10; nbin_subdir=16; }
1061 else if(iDir==2){ nbin_i=26; nbin_subdir=22; }
1063 }
else if((*igm)->getName().find(
"Barrel") != string::npos){
1064 if(prefix!=
"SUMOFF"){
1065 if(iDir==0){ nbin_i=0; nbin_subdir=192; }
1066 else if(iDir==1){ nbin_i=192; nbin_subdir=192; }
1067 else if(iDir==2){ nbin_i=384; nbin_subdir=192; }
1068 else if(iDir==3){ nbin_i=576; nbin_subdir=192; }
1070 if(iDir==0){ nbin_i=0; nbin_subdir=48; }
1071 else if(iDir==1){ nbin_i=48; nbin_subdir=48; }
1072 else if(iDir==2){ nbin_i=96; nbin_subdir=48; }
1073 else if(iDir==3){ nbin_i=144; nbin_subdir=48; }
1076 }
else if (isUpgrade) {
1077 if((*igm)->getName().find(
"ALLMODS_adcCOMB_")!=string::npos){
1079 }
else if((*igm)->getName().find(
"ALLMODS_chargeCOMB_")!=string::npos){
1081 }
else if((*igm)->getName().find(
"Ladder") != string::npos){
1082 nbin_i=0; nbin_subdir=4;
1083 }
else if((*igm)->getName().find(
"Layer") != string::npos){
1084 nbin_i=(cnt-1)*4; nbin_subdir=4;
1085 }
else if((*igm)->getName().find(
"Shell") != string::npos){
1086 if(prefix!=
"SUMOFF"){
1087 if(iDir==0){ nbin_i=0; nbin_subdir=24; }
1088 else if(iDir==1){ nbin_i=24; nbin_subdir=56; }
1089 else if(iDir==2){ nbin_i=80; nbin_subdir=88; }
1090 else if(iDir==3){ nbin_i=168; nbin_subdir=128; }
1092 if(iDir==0){ nbin_i=0; nbin_subdir=6; }
1093 else if(iDir==1){ nbin_i=6; nbin_subdir=14; }
1094 else if(iDir==2){ nbin_i=20; nbin_subdir=22; }
1095 else if(iDir==3){ nbin_i=42; nbin_subdir=32; }
1097 }
else if((*igm)->getName().find(
"Barrel") != string::npos){
1098 if(prefix!=
"SUMOFF"){
1099 if(iDir==0){ nbin_i=0; nbin_subdir=296; }
1100 else if(iDir==1){ nbin_i=296; nbin_subdir=296; }
1101 else if(iDir==2){ nbin_i=592; nbin_subdir=296; }
1102 else if(iDir==3){ nbin_i=888; nbin_subdir=296; }
1103 else if(iDir==4){ nbin_i=1184; nbin_subdir=296; }
1105 if(iDir==0){ nbin_i=0; nbin_subdir=74; }
1106 else if(iDir==1){ nbin_i=74; nbin_subdir=74; }
1107 else if(iDir==2){ nbin_i=148; nbin_subdir=74; }
1108 else if(iDir==3){ nbin_i=222; nbin_subdir=74; }
1109 else if(iDir==4){ nbin_i=296; nbin_subdir=74; }
1114 if((*igm)->getName().find(
"ndigisFREQ")==string::npos)
1116 if(((*igm)->getName().find(
"adcCOMB")!=string::npos && me->
getName().find(
"adcCOMB")!=string::npos)
1117 || ((*igm)->getName().find(
"chargeCOMB")!=string::npos && me->
getName().find(
"chargeCOMB")!=string::npos))
1119 (*igm)->getTH1F()->Add(me->
getTH1F());
1120 }
else if(((*igm)->getName().find(
"charge_")!=string::npos && (*igm)->getName().find(
"Track_")==string::npos &&
1121 me->
getName().find(
"charge_")!=string::npos && me->
getName().find(
"Track_")==string::npos) ||
1122 ((*igm)->getName().find(
"nclusters_")!=string::npos && (*igm)->getName().find(
"Track_")==string::npos &&
1123 me->
getName().find(
"nclusters_")!=string::npos && me->
getName().find(
"Track_")==string::npos) ||
1124 ((*igm)->getName().find(
"size_")!=string::npos && (*igm)->getName().find(
"Track_")==string::npos &&
1125 me->
getName().find(
"size_")!=string::npos && me->
getName().find(
"Track_")==string::npos) ||
1126 ((*igm)->getName().find(
"charge_OffTrack_")!=string::npos && me->
getName().find(
"charge_OffTrack_")!=string::npos) ||
1127 ((*igm)->getName().find(
"nclusters_OffTrack_")!=string::npos && me->
getName().find(
"nclusters_OffTrack_")!=string::npos) ||
1128 ((*igm)->getName().find(
"size_OffTrack_")!=string::npos && me->
getName().find(
"size_OffTrack_")!=string::npos) ||
1129 ((*igm)->getName().find(
"charge_OnTrack_")!=string::npos && me->
getName().find(
"charge_OnTrack_")!=string::npos) ||
1130 ((*igm)->getName().find(
"nclusters_OnTrack_")!=string::npos && me->
getName().find(
"nclusters_OnTrack_")!=string::npos) ||
1131 ((*igm)->getName().find(
"size_OnTrack_")!=string::npos && me->
getName().find(
"size_OnTrack_")!=string::npos) ||
1132 ((*igm)->getName().find(
"charge_")==string::npos && (*igm)->getName().find(
"nclusters_")==string::npos &&
1133 (*igm)->getName().find(
"size_")==string::npos)){
1137 else if(me->
getName().find(
"ndigisFREQ")!=string::npos)
1147 first_subdir =
false;
1155 vector<string>& me_names,
1158 vector<MonitorElement*> gsum_mes;
1159 string currDir = iBooker.
pwd();
1161 string dir_name = path_name.substr(path_name.find_last_of(
"/")+1);
1162 if ((dir_name.find(
"DQMData") == 0) ||
1163 (dir_name.find(
"Pixel") == 0) ||
1164 (dir_name.find(
"AdditionalPixelErrors") == 0) ||
1165 (dir_name.find(
"Barrel") == 0) ||
1166 (dir_name.find(
"Shell") == 0) ||
1167 (dir_name.find(
"Layer") == 0) ||
1168 (dir_name.find(
"Ladder") == 0) )
return;
1169 vector<string> subdirs = iGetter.
getSubdirs();
1173 int nbin_subdir = 0;
1175 bool first_subdir =
true;
1176 for (vector<string>::const_iterator it = subdirs.begin();
1177 it != subdirs.end(); it++) {
1194 for (vector<string>::const_iterator im = contents.begin();
1195 im != contents.end(); im++) {
1196 for (vector<string>::const_iterator iv = me_names.begin();
1197 iv != me_names.end(); iv++) {
1198 string var =
"_" + (*iv) +
"_";
1199 if ((*im).find(var) != string::npos) {
1200 if((var==
"_charge_" || var==
"_nclusters_" || var==
"_size_" || var==
"_sizeX_" || var==
"_sizeY_") &&
1201 (*im).find(
"Track_")!=string::npos)
continue;
1202 string full_path = (*it) +
"/" +(*im);
1206 if((*iv)==
"errorType"||(*iv)==
"NErrors"||(*iv)==
"fullType"||(*iv)==
"chanNmbr"||
1207 (*iv)==
"TBMType"||(*iv)==
"EvtNbr"||(*iv)==
"evtSize"||(*iv)==
"linkId"||
1208 (*iv)==
"ROCId"||(*iv)==
"DCOLId"||(*iv)==
"PXId"||(*iv)==
"ROCNmbr"||
1209 (*iv)==
"TBMMessage"||(*iv)==
"Type36Hitmap")
1211 else if((*iv)==
"ndigis"||(*iv)==
"adc" ||
1212 (*iv)==
"ndigisFREQ"||(*iv)==
"adcCOMB")
1214 else if((*iv)==
"nclusters"||(*iv)==
"x"||(*iv)==
"y"||(*iv)==
"charge"||(*iv)==
"chargeCOMB"||
1215 (*iv)==
"size"||(*iv)==
"sizeX"||(*iv)==
"sizeY"||(*iv)==
"minrow"||
1216 (*iv)==
"maxrow"||(*iv)==
"mincol"||(*iv)==
"maxcol")
1218 if(currDir.find(
"Track")!=string::npos) prefix=
"SUMTRK";
1219 else if((*iv)==
"residualX_mean"||(*iv)==
"residualY_mean"||
1220 (*iv)==
"residualX_RMS"||(*iv)==
"residualY_RMS")
1222 else if((*iv)==
"ClustX"||(*iv)==
"ClustY"||(*iv)==
"nRecHits"||(*iv)==
"ErrorX"||(*iv)==
"ErrorY")
1224 else if((*iv)==
"Gain1d_mean"||(*iv)==
"GainChi2NDF1d_mean"||
1225 (*iv)==
"GainChi2Prob1d_mean"||(*iv)==
"Pedestal1d_mean"||
1226 (*iv)==
"ScurveChi2ProbSummary_mean"||(*iv)==
"ScurveFitResultSummary_mean"||
1227 (*iv)==
"ScurveSigmasSummary_mean"||(*iv)==
"ScurveThresholdSummary_mean"||
1228 (*iv)==
"Gain1d_RMS"||(*iv)==
"GainChi2NDF1d_RMS"||
1229 (*iv)==
"GainChi2Prob1d_RMS"||(*iv)==
"Pedestal1d_RMS"||
1230 (*iv)==
"GainNPoints1d_mean" || (*iv)==
"GainNPoints1d_RMS" ||
1231 (*iv)==
"GainHighPoint1d_mean" || (*iv)==
"GainHighPoint1d_RMS" ||
1232 (*iv)==
"GainLowPoint1d_mean" || (*iv)==
"GainLowPoint1d_RMS" ||
1233 (*iv)==
"GainEndPoint1d_mean" || (*iv)==
"GainEndPoint1d_RMS" ||
1234 (*iv)==
"GainFitResult2d_mean" || (*iv)==
"GainFitResult2d_RMS" ||
1235 (*iv)==
"GainDynamicRange2d_mean" || (*iv)==
"GainDynamicRange2d_RMS" ||
1236 (*iv)==
"GainSaturate2d_mean" || (*iv)==
"GainSaturate2d_RMS" ||
1237 (*iv)==
"ScurveChi2ProbSummary_RMS"||(*iv)==
"ScurveFitResultSummary_RMS"||
1238 (*iv)==
"ScurveSigmasSummary_RMS"||(*iv)==
"ScurveThresholdSummary_RMS"||
1239 (*iv)==
"pixelAliveSummary_mean"||(*iv)==
"pixelAliveSummary_FracOfPerfectPix"||
1240 (*iv) ==
"SiPixelErrorsCalibDigis_NCalibErrors")
1244 if (first_subdir && !isUpgrade){
1245 nbin = me->
getTH1F()->GetNbinsX();
1246 string me_name = prefix +
"_" + (*iv) +
"_" +
dir_name;
1247 if((*iv)==
"adcCOMB"||(*iv)==
"chargeCOMB") me_name =
"ALLMODS_" + (*iv) +
"_" +
dir_name;
1248 else if(prefix==
"SUMOFF" && dir_name==
"Endcap") nbin=96;
1249 else if(dir_name==
"Endcap") nbin=672;
1250 else if(prefix==
"SUMOFF" && dir_name.find(
"HalfCylinder")!=string::npos) nbin=24;
1251 else if(dir_name.find(
"HalfCylinder")!=string::npos) nbin=168;
1252 else if(prefix==
"SUMOFF" && dir_name.find(
"Disk")!=string::npos) nbin=12;
1253 else if(dir_name.find(
"Disk")!=string::npos) nbin=84;
1254 else if(dir_name.find(
"Blade")!=string::npos) nbin=7;
1256 }
else if(first_subdir && isUpgrade){
1257 nbin = me->
getTH1F()->GetNbinsX();
1258 string me_name = prefix +
"_" + (*iv) +
"_" +
dir_name;
1259 if((*iv)==
"adcCOMB"||(*iv)==
"chargeCOMB") me_name =
"ALLMODS_" + (*iv) +
"_" +
dir_name;
1260 else if(prefix==
"SUMOFF" && dir_name==
"Endcap") nbin=336;
1261 else if(dir_name==
"Endcap") nbin=672;
1262 else if(prefix==
"SUMOFF" && dir_name.find(
"HalfCylinder")!=string::npos) nbin=84;
1263 else if(dir_name.find(
"HalfCylinder")!=string::npos) nbin=168;
1264 else if(prefix==
"SUMOFF" && dir_name.find(
"Disk")!=string::npos) nbin=28;
1265 else if(dir_name.find(
"Disk")!=string::npos) nbin=56;
1266 else if(dir_name.find(
"Blade")!=string::npos) nbin=2;
1270 for (vector<MonitorElement*>::const_iterator igm = gsum_mes.begin();
1271 igm != gsum_mes.end(); igm++) {
1272 if ((*igm)->getName().find(var) != string::npos) {
1273 if(prefix==
"SUMOFF") (*igm)->setAxisTitle(
"Blades",1);
1274 else if((*igm)->getName().find(
"adcCOMB_")!=string::npos) (*igm)->setAxisTitle(
"Digi charge [ADC]",1);
1275 else if((*igm)->getName().find(
"chargeCOMB_")!=string::npos) (*igm)->setAxisTitle(
"Cluster charge [kilo electrons]",1);
1276 else (*igm)->setAxisTitle(
"Modules",1);
1278 if((*igm)->getName().find(
"NErrors_") != string::npos && prefix==
"SUMOFF") title =
"Total number of errors per Blade";
1279 else if((*igm)->getName().find(
"NErrors_") != string::npos && prefix==
"SUMRAW") title =
"Total number of errors per Module";
1280 else if(prefix==
"SUMOFF") title =
"mean " + (*iv) +
" per Blade";
1281 else if((*igm)->getName().find(
"FREQ_") != string::npos) title =
"NEvents with digis per Module";
1282 else if((*igm)->getName().find(
"adcCOMB_")!=string::npos) title =
"NDigis";
1283 else if((*igm)->getName().find(
"chargeCOMB_")!=string::npos) title =
"NClusters";
1284 else title =
"mean " + (*iv) +
" per Module";
1285 (*igm)->setAxisTitle(title,2);
1288 if((*igm)->getName().find(
"ALLMODS_adcCOMB_")!=string::npos){
1290 }
else if((*igm)->getName().find(
"ALLMODS_chargeCOMB_")!=string::npos){
1292 }
else if((*igm)->getName().find(
"Panel_") != string::npos){
1294 }
else if((*igm)->getName().find(
"Blade") != string::npos){
1295 if((*im).find(
"_1") != string::npos) nbin_subdir=4;
1296 if((*im).find(
"_2") != string::npos) {nbin_i=4; nbin_subdir=3;}
1297 }
else if((*igm)->getName().find(
"Disk") != string::npos){
1298 nbin_i=((cnt-1)%12)*7; nbin_subdir=7;
1299 }
else if((*igm)->getName().find(
"HalfCylinder") != string::npos){
1300 if(prefix!=
"SUMOFF"){
1302 if((*im).find(
"_2") != string::npos) nbin_i=84;
1305 if((*im).find(
"_2") != string::npos) nbin_i=12;
1307 }
else if((*igm)->getName().find(
"Endcap") != string::npos){
1308 if(prefix!=
"SUMOFF"){
1310 if((*im).find(
"_mO") != string::npos) nbin_i=168;
1311 if((*im).find(
"_pI") != string::npos) nbin_i=336;
1312 if((*im).find(
"_pO") != string::npos) nbin_i=504;
1315 if((*im).find(
"_mO") != string::npos) nbin_i=24;
1316 if((*im).find(
"_pI") != string::npos) nbin_i=48;
1317 if((*im).find(
"_pO") != string::npos) nbin_i=72;
1320 }
else if (isUpgrade) {
1321 if((*igm)->getName().find(
"ALLMODS_adcCOMB_")!=string::npos){
1323 }
else if((*igm)->getName().find(
"ALLMODS_chargeCOMB_")!=string::npos){
1325 }
else if((*igm)->getName().find(
"Panel_") != string::npos){
1327 }
else if((*igm)->getName().find(
"Blade") != string::npos){
1328 if((*im).find(
"_1") != string::npos) nbin_subdir=1;
1329 if((*im).find(
"_2") != string::npos) {nbin_i=1; nbin_subdir=1;}
1330 }
else if((*igm)->getName().find(
"Disk") != string::npos){
1331 nbin_i=((cnt-1)%28)*2; nbin_subdir=2;
1332 }
else if((*igm)->getName().find(
"HalfCylinder") != string::npos){
1333 if(prefix!=
"SUMOFF"){
1335 if((*im).find(
"_2") != string::npos) nbin_i=56;
1336 if((*im).find(
"_3") != string::npos) nbin_i=112;
1339 if((*im).find(
"_2") != string::npos) nbin_i=28;
1340 if((*im).find(
"_3") != string::npos) nbin_i=56;
1342 }
else if((*igm)->getName().find(
"Endcap") != string::npos){
1343 if(prefix!=
"SUMOFF"){
1345 if((*im).find(
"_mO") != string::npos) nbin_i=168;
1346 if((*im).find(
"_pI") != string::npos) nbin_i=336;
1347 if((*im).find(
"_pO") != string::npos) nbin_i=504;
1350 if((*im).find(
"_mO") != string::npos) nbin_i=84;
1351 if((*im).find(
"_pI") != string::npos) nbin_i=168;
1352 if((*im).find(
"_pO") != string::npos) nbin_i=252;
1357 if((*igm)->getName().find(
"ndigisFREQ")==string::npos){
1358 if(((*igm)->getName().find(
"adcCOMB")!=string::npos && me->
getName().find(
"adcCOMB")!=string::npos) || ((*igm)->getName().find(
"chargeCOMB")!=string::npos && me->
getName().find(
"chargeCOMB")!=string::npos)){
1359 (*igm)->getTH1F()->Add(me->
getTH1F());
1360 }
else if(((*igm)->getName().find(
"charge_")!=string::npos && (*igm)->getName().find(
"Track_")==string::npos &&
1361 me->
getName().find(
"charge_")!=string::npos && me->
getName().find(
"Track_")==string::npos) ||
1362 ((*igm)->getName().find(
"nclusters_")!=string::npos && (*igm)->getName().find(
"Track_")==string::npos &&
1363 me->
getName().find(
"nclusters_")!=string::npos && me->
getName().find(
"Track_")==string::npos) ||
1364 ((*igm)->getName().find(
"size_")!=string::npos && (*igm)->getName().find(
"Track_")==string::npos &&
1365 me->
getName().find(
"size_")!=string::npos && me->
getName().find(
"Track_")==string::npos) ||
1366 ((*igm)->getName().find(
"charge_OffTrack_")!=string::npos && me->
getName().find(
"charge_OffTrack_")!=string::npos) ||
1367 ((*igm)->getName().find(
"nclusters_OffTrack_")!=string::npos && me->
getName().find(
"nclusters_OffTrack_")!=string::npos) ||
1368 ((*igm)->getName().find(
"size_OffTrack_")!=string::npos && me->
getName().find(
"size_OffTrack_")!=string::npos) ||
1369 ((*igm)->getName().find(
"charge_OnTrack_")!=string::npos && me->
getName().find(
"charge_OnTrack_")!=string::npos) ||
1370 ((*igm)->getName().find(
"nclusters_OnTrack_")!=string::npos && me->
getName().find(
"nclusters_OnTrack_")!=string::npos) ||
1371 ((*igm)->getName().find(
"size_OnTrack_")!=string::npos && me->
getName().find(
"size_OnTrack_")!=string::npos) ||
1372 ((*igm)->getName().find(
"charge_")==string::npos && (*igm)->getName().find(
"nclusters_")==string::npos &&
1373 (*igm)->getName().find(
"size_")==string::npos)){
1376 }
else if(me->
getName().find(
"ndigisFREQ")!=string::npos){
1388 first_subdir =
false;
1399 vector<MonitorElement*> & mes) {
1401 if((iBooker.
pwd()).
find(
"Pixel")==string::npos)
return;
1404 for (vector<string>::const_iterator it = contents.begin();
1405 it != contents.end(); it++) {
1407 if ((*it).find(me_name) == 0) {
1408 string fullpathname = iBooker.
pwd() +
"/" + me_name;
1420 if(me_name.find(
"ALLMODS_adcCOMB_")!=string::npos) temp_me = iBooker.
book1D(me_name.c_str(),me_name.c_str(),128,0,256);
1421 else if(me_name.find(
"ALLMODS_chargeCOMB_")!=string::npos) temp_me = iBooker.
book1D(me_name.c_str(),me_name.c_str(),100,0,200);
1422 else temp_me = iBooker.
book1D(me_name.c_str(),me_name.c_str(),nbin,1.,nbin+1.);
1423 if (temp_me) mes.push_back(temp_me);
1439 if((iBooker.
pwd()).
find(
"Pixel")==string::npos)
return me;
1442 for (vector<string>::const_iterator it = contents.begin();
1443 it != contents.end(); it++) {
1444 if ((*it).find(me_name) == 0) {
1445 string fullpathname = iBooker.
pwd() +
"/" + (*it);
1446 me = iGetter.
get(fullpathname);
1455 if(me_name.find(
"SUMOFF")==string::npos){
1456 if(me_name.find(
"Blade_")!=string::npos)me = iBooker.
book1D(me_name.c_str(), me_name.c_str(),7,1.,8.);
1457 else me = iBooker.
book1D(me_name.c_str(), me_name.c_str(),4,1.,5.);
1458 }
else if(me_name.find(
"Layer_1")!=string::npos){ me = iBooker.
book1D(me_name.c_str(), me_name.c_str(),10,1.,11.);
1459 }
else if(me_name.find(
"Layer_2")!=string::npos){ me = iBooker.
book1D(me_name.c_str(), me_name.c_str(),16,1.,17.);
1460 }
else if(me_name.find(
"Layer_3")!=string::npos){ me = iBooker.
book1D(me_name.c_str(), me_name.c_str(),22,1.,23.);
1461 }
else if(me_name.find(
"Disk_")!=string::npos){ me = iBooker.
book1D(me_name.c_str(), me_name.c_str(),12,1.,13.);
1464 else if (isUpgrade) {
1465 if(me_name.find(
"SUMOFF")==string::npos){
1466 if(me_name.find(
"Blade_")!=string::npos)me = iBooker.
book1D(me_name.c_str(), me_name.c_str(),2,1.,3.);
1467 else me = iBooker.
book1D(me_name.c_str(), me_name.c_str(),1,1.,2.);
1468 }
else if(me_name.find(
"Layer_1")!=string::npos){ me = iBooker.
book1D(me_name.c_str(), me_name.c_str(),6,1.,7.);
1469 }
else if(me_name.find(
"Layer_2")!=string::npos){ me = iBooker.
book1D(me_name.c_str(), me_name.c_str(),14,1.,15.);
1470 }
else if(me_name.find(
"Layer_3")!=string::npos){ me = iBooker.
book1D(me_name.c_str(), me_name.c_str(),22,1.,23.);
1471 }
else if(me_name.find(
"Layer_4")!=string::npos){ me = iBooker.
book1D(me_name.c_str(), me_name.c_str(),32,1.,33.);
1472 }
else if(me_name.find(
"Disk_")!=string::npos){ me = iBooker.
book1D(me_name.c_str(), me_name.c_str(),28,1.,29.);
1486 if((iBooker.
pwd()).
find(
"Pixel")==string::npos)
return me;
1489 for (vector<string>::const_iterator it = contents.begin();
1490 it != contents.end(); it++) {
1491 if ((*it).find(me_name) == 0) {
1492 string fullpathname = iBooker.
pwd() +
"/" + (*it);
1494 me = iGetter.
get(fullpathname);
1503 me = iBooker.
book1D(me_name.c_str(), me_name.c_str(),40,-0.5,39.5);
1512 vector<string> subdirs = iGetter.
getSubdirs();
1513 for (vector<string>::const_iterator it = subdirs.begin(); it != subdirs.end(); it++)
1515 if(isbarrel && (*it).find(
"Barrel")==string::npos)
continue;
1516 if(!isbarrel && (*it).find(
"Endcap")==string::npos)
continue;
1518 if((*it).find(
"Module_")!=string::npos)
continue;
1519 if((*it).find(
"Panel_")!=string::npos)
continue;
1520 if((*it).find(
"Ladder_")!=string::npos)
continue;
1521 if((*it).find(
"Blade_")!=string::npos)
continue;
1522 if((*it).find(
"Layer_")!=string::npos)
continue;
1523 if((*it).find(
"Disk_")!=string::npos)
continue;
1529 OccupancyMap = iBooker.
book2D((isbarrel?
"barrelOccupancyMap":
"endcapOccupancyMap"),
"Barrel Digi Occupancy Map (4 pix per bin)",isbarrel?208:130,0.,isbarrel?416.:260.,80,0.,160.);
1532 OccupancyMap = iBooker.
book2D((isbarrel?
"barrelOccupancyMap":
"endcapOccupancyMap"),
"Barrel Digi Occupancy Map (1 pix per bin)",isbarrel?416:260,0.,isbarrel?416.:260.,160,0.,160.);
1585 string currDir = iBooker.
pwd();
1586 string dname = currDir.substr(currDir.find_last_of(
"/")+1);
1588 if(dname.find(
"Layer_")!=string::npos || dname.find(
"Disk_")!=string::npos){
1589 vector<string> meVec = iGetter.
getMEs();
1590 for (vector<string>::const_iterator it = meVec.begin(); it != meVec.end(); it++) {
1591 string full_path = currDir +
"/" + (*it);
1592 if(full_path.find(
"hitmap_siPixelDigis")!=string::npos){
1595 string path = full_path;
1596 while (path.find_last_of(
"/") != 5)
1598 path = path.substr(0,path.find_last_of(
"/"));
1600 OccupancyMap = iGetter.
get(path +
"/" + (isbarrel?
"barrel":
"endcap") +
"OccupancyMap");
1615 vector<string> subdirs = iGetter.
getSubdirs();
1616 for (vector<string>::const_iterator it = subdirs.begin(); it != subdirs.end(); it++) {
1619 if(*it !=
"Pixel" && ((isbarrel && (*it).find(
"Barrel")==string::npos) || (!isbarrel && (*it).find(
"Endcap")==string::npos)))
continue;
1639 float totalDigisBPIX = 0.;
1640 float totalDigisFPIX = 0.;
1641 for (
int i = 1;
i !=41;
i++){
1645 float averageBPIXOcc = totalDigisBPIX/32.;
1646 float averageFPIXOcc = totalDigisFPIX/8.;
1647 for (
int i = 1;
i !=41;
i++){
1664 HitEfficiency_L1 = iBooker.
book2D(
"HitEfficiency_L1",
"Hit Efficiency in Barrel_Layer1;Module;Ladder",9,-4.5,4.5,21,-10.5,10.5);
1665 HitEfficiency_L2 = iBooker.
book2D(
"HitEfficiency_L2",
"Hit Efficiency in Barrel_Layer2;Module;Ladder",9,-4.5,4.5,33,-16.5,16.5);
1666 HitEfficiency_L3 = iBooker.
book2D(
"HitEfficiency_L3",
"Hit Efficiency in Barrel_Layer3;Module;Ladder",9,-4.5,4.5,45,-22.5,22.5);
1668 HitEfficiency_L1 = iBooker.
book2D(
"HitEfficiency_L1",
"Hit Efficiency in Barrel_Layer1;Module;Ladder",9,-4.5,4.5,21,-10.5,10.5);
1669 HitEfficiency_L2 = iBooker.
book2D(
"HitEfficiency_L2",
"Hit Efficiency in Barrel_Layer2;Module;Ladder",9,-4.5,4.5,33,-16.5,16.5);
1670 HitEfficiency_L3 = iBooker.
book2D(
"HitEfficiency_L3",
"Hit Efficiency in Barrel_Layer3;Module;Ladder",9,-4.5,4.5,45,-22.5,22.5);
1673 else if (isUpgrade) {
1675 HitEfficiency_L1 = iBooker.
book2D(
"HitEfficiency_L1",
"Hit Efficiency in Barrel_Layer1;z-side;Ladder",2,-1.,1.,12,-6.,6.);
1676 HitEfficiency_L2 = iBooker.
book2D(
"HitEfficiency_L2",
"Hit Efficiency in Barrel_Layer2;z-side;Ladder",2,-1.,1.,28,-14.,14.);
1677 HitEfficiency_L3 = iBooker.
book2D(
"HitEfficiency_L3",
"Hit Efficiency in Barrel_Layer3;z-side;Ladder",2,-1.,1.,44,-22.,22.);
1678 HitEfficiency_L4 = iBooker.
book2D(
"HitEfficiency_L4",
"Hit Efficiency in Barrel_Layer4;z-side;Ladder",2,-1.,1.,64,-32.,32.);
1680 HitEfficiency_L1 = iBooker.
book2D(
"HitEfficiency_L1",
"Hit Efficiency in Barrel_Layer1;Module;Ladder",8,-4.,4.,12,-6.,6.);
1681 HitEfficiency_L2 = iBooker.
book2D(
"HitEfficiency_L2",
"Hit Efficiency in Barrel_Layer2;Module;Ladder",8,-4.,4.,28,-14.,14.);
1682 HitEfficiency_L3 = iBooker.
book2D(
"HitEfficiency_L3",
"Hit Efficiency in Barrel_Layer3;Module;Ladder",8,-4.,4.,44,-22.,22.);
1683 HitEfficiency_L4 = iBooker.
book2D(
"HitEfficiency_L4",
"Hit Efficiency in Barrel_Layer4;Module;Ladder",8,-4.,4.,64,-32.,32.);
1691 HitEfficiency_Dp1 = iBooker.
book2D(
"HitEfficiency_Dp1",
"Hit Efficiency in Endcap_Disk_p1;Blade;Panel",26,-13.,13.,2,0.5,2.5);
1692 HitEfficiency_Dp2 = iBooker.
book2D(
"HitEfficiency_Dp2",
"Hit Efficiency in Endcap_Disk_p2;Blade;Panel",26,-13.,13.,2,0.5,2.5);
1693 HitEfficiency_Dm1 = iBooker.
book2D(
"HitEfficiency_Dm1",
"Hit Efficiency in Endcap_Disk_m1;Blade;Panel",26,-13.,13.,2,0.5,2.5);
1694 HitEfficiency_Dm2 = iBooker.
book2D(
"HitEfficiency_Dm2",
"Hit Efficiency in Endcap_Disk_m2;;Blade;Panel",26,-13.,13.,2,0.5,2.5);
1696 HitEfficiency_Dp1 = iBooker.
book2D(
"HitEfficiency_Dp1",
"Hit Efficiency in Endcap_Disk_p1;Blades;Modules",24,-12.,12.,7,1.,8.);
1697 HitEfficiency_Dp2 = iBooker.
book2D(
"HitEfficiency_Dp2",
"Hit Efficiency in Endcap_Disk_p2;Blades;Modules",24,-12.,12.,7,1.,8.);
1698 HitEfficiency_Dm1 = iBooker.
book2D(
"HitEfficiency_Dm1",
"Hit Efficiency in Endcap_Disk_m1;Blades;Modules",24,-12.,12.,7,1.,8.);
1699 HitEfficiency_Dm2 = iBooker.
book2D(
"HitEfficiency_Dm2",
"Hit Efficiency in Endcap_Disk_m2;Blades;Modules",24,-12.,12.,7,1.,8.);
1701 }
else if (isUpgrade) {
1703 HitEfficiency_Dp1 = iBooker.
book2D(
"HitEfficiency_Dp1",
"Hit Efficiency in Endcap_Disk_p1;Blades;",28,-17.,11.,1,0.,1.);
1704 HitEfficiency_Dp2 = iBooker.
book2D(
"HitEfficiency_Dp2",
"Hit Efficiency in Endcap_Disk_p2;Blades;",28,-17.,11.,1,0.,1.);
1705 HitEfficiency_Dp3 = iBooker.
book2D(
"HitEfficiency_Dp3",
"Hit Efficiency in Endcap_Disk_p3;Blades;",28,-17.,11.,1,0.,1.);
1706 HitEfficiency_Dm1 = iBooker.
book2D(
"HitEfficiency_Dm1",
"Hit Efficiency in Endcap_Disk_m1;Blades;",28,-17.,11.,1,0.,1.);
1707 HitEfficiency_Dm2 = iBooker.
book2D(
"HitEfficiency_Dm2",
"Hit Efficiency in Endcap_Disk_m2;Blades;",28,-17.,11.,1,0.,1.);
1708 HitEfficiency_Dm3 = iBooker.
book2D(
"HitEfficiency_Dm3",
"Hit Efficiency in Endcap_Disk_m3;Blades;",28,-17.,11.,1,0.,1.);
1710 HitEfficiency_Dp1 = iBooker.
book2D(
"HitEfficiency_Dp1",
"Hit Efficiency in Endcap_Disk_p1;Blades;Modules",28,-17.,11.,2,1.,3.);
1711 HitEfficiency_Dp2 = iBooker.
book2D(
"HitEfficiency_Dp2",
"Hit Efficiency in Endcap_Disk_p2;Blades;Modules",28,-17.,11.,2,1.,3.);
1712 HitEfficiency_Dp3 = iBooker.
book2D(
"HitEfficiency_Dp3",
"Hit Efficiency in Endcap_Disk_p3;Blades;Modules",28,-17.,11.,2,1.,3.);
1713 HitEfficiency_Dm1 = iBooker.
book2D(
"HitEfficiency_Dm1",
"Hit Efficiency in Endcap_Disk_m1;Blades;Modules",28,-17.,11.,2,1.,3.);
1714 HitEfficiency_Dm2 = iBooker.
book2D(
"HitEfficiency_Dm2",
"Hit Efficiency in Endcap_Disk_m2;Blades;Modules",28,-17.,11.,2,1.,3.);
1715 HitEfficiency_Dm3 = iBooker.
book2D(
"HitEfficiency_Dm3",
"Hit Efficiency in Endcap_Disk_m3;Blades;Modules",28,-17.,11.,2,1.,3.);
1719 iBooker.
cd(
"Pixel/");
1720 string bins[] = {
"Layer1",
"Layer2",
"Layer3",
"Disk1+",
"Disk2+",
"Disk1-",
"Disk2-"};
1724 for (
int i = 1;
i < 8;
i++){
1748 string lad=dname_.substr(dname_.find(
"Ladder_") + 7, 2);
1749 if(dname_.find(lad)!=string::npos){ biny_ = atoi(lad.c_str());}
1757 string blad=dname_.substr(dname_.find(
"Blade_") + 6, 2);
1758 if(dname_.find(blad)!=string::npos){ binx_ = atoi(blad.c_str());}
1766 string currDir = iBooker.
pwd();
1767 string dname = currDir.substr(currDir.find_last_of(
"/")+1);
1771 if(isbarrel && dname.find(
"Ladder_")!=string::npos){
1773 vector<string> meVec = iGetter.
getMEs();
1774 for (vector<string>::const_iterator it = meVec.begin(); it != meVec.end(); it++) {
1775 string full_path = currDir +
"/" + (*it);
1777 if(full_path.find(
"missingMod_")!=string::npos){
1781 if (!missing)
continue;
1782 string new_path = full_path.replace(full_path.find(
"missing"),7,
"valid");
1784 if (!valid)
continue;
1789 if(currDir.find(
"Shell_mO")!=string::npos || currDir.find(
"Shell_pO")!=string::npos){
1793 for(
int i=1;
i<nMod+1;
i++){
1794 float hitEfficiency = -1.0;
1795 float missingHits=0;
1798 if(currDir.find(
"Shell_m")!=string::npos) binx=-binx;
1802 if(validHits + missingHits > 0.) hitEfficiency = validHits / (validHits + missingHits);
1804 if(currDir.find(
"Layer_1")!=string::npos){
1808 else if(currDir.find(
"Layer_2")!=string::npos){
1812 else if(currDir.find(
"Layer_3")!=string::npos){
1822 else if (isUpgrade) {
1823 vector<string> meVec = iGetter.
getMEs();
1824 for (vector<string>::const_iterator it = meVec.begin(); it != meVec.end(); it++) {
1825 string full_path = currDir +
"/" + (*it);
1826 if(full_path.find(
"missing_")!=string::npos){
1830 string new_path = full_path.replace(full_path.find(
"missing"),7,
"valid");
1831 me = iGetter.
get(new_path);
1834 float hitEfficiency = -1.;
1835 if(validHits + missingHits > 0.) hitEfficiency = validHits / (validHits + missingHits);
1836 int binx = 0;
int biny = 0;
1838 if(currDir.find(
"Shell_mO")!=string::npos || currDir.find(
"Shell_pO")!=string::npos){
1841 if(currDir.find(
"Shell_m")!=string::npos){ binx = 1;}
else{ binx = 2;}
1842 if(currDir.find(
"Layer_1")!=string::npos){
1845 }
else if(currDir.find(
"Layer_2")!=string::npos){
1848 }
else if(currDir.find(
"Layer_3")!=string::npos){
1851 }
else if(currDir.find(
"Layer_4")!=string::npos){
1858 }
else if(!isbarrel && dname.find(
"Blade_")!=string::npos && !isUpgrade){
1859 vector<string> meVec = iGetter.
getMEs();
1860 for (vector<string>::const_iterator it = meVec.begin(); it != meVec.end(); it++) {
1861 string full_path = currDir +
"/" + (*it);
1862 if(full_path.find(
"missing_")!=string::npos){
1864 if (!missing)
continue;
1866 string new_path = full_path.replace(full_path.find(
"missing"),7,
"valid");
1868 if (!valid)
continue;
1870 int binx = 0;
int biny = 0;
1872 if(currDir.find(
"HalfCylinder_mI")!=string::npos || currDir.find(
"HalfCylinder_pI")!=string::npos){ binx = binx + 14;}
1873 else{ binx = 13 -binx;}
1875 for (
int i=1;
i<nPanel+1;
i++){
1876 float hitEfficiency = -1.;
1877 float missingHits=0;
1882 if(validHits + missingHits > 0.) hitEfficiency = validHits / (validHits + missingHits);
1883 if(currDir.find(
"Disk_1")!=string::npos && currDir.find(
"HalfCylinder_m")!=string::npos){
1886 }
else if(currDir.find(
"Disk_2")!=string::npos && currDir.find(
"HalfCylinder_m")!=string::npos){
1889 }
else if(currDir.find(
"Disk_1")!=string::npos && currDir.find(
"HalfCylinder_p")!=string::npos){
1892 }
else if(currDir.find(
"Disk_2")!=string::npos && currDir.find(
"HalfCylinder_p")!=string::npos){
1899 }
else if(!isbarrel && dname.find(
"Blade_")!=string::npos && isUpgrade){
1900 vector<string> meVec = iGetter.
getMEs();
1901 for (vector<string>::const_iterator it = meVec.begin(); it != meVec.end(); it++) {
1902 string full_path = currDir +
"/" + (*it);
1903 if(full_path.find(
"missing_")!=string::npos){
1907 string new_path = full_path.replace(full_path.find(
"missing"),7,
"valid");
1908 me = iGetter.
get(new_path);
1911 float hitEfficiency = -1.;
1912 if(validHits + missingHits > 0.) hitEfficiency = validHits / (validHits + missingHits);
1913 int binx = 0;
int biny = 1;
1915 if(currDir.find(
"HalfCylinder_mI")!=string::npos || currDir.find(
"HalfCylinder_pI")!=string::npos){ binx = binx + 12;}
1917 if(binx==1) binx = 17;
1918 else if(binx==2) binx = 16;
1919 else if(binx==3) binx = 15;
1920 else if(binx==4) binx = 14;
1921 else if(binx==5) binx = 13;
1922 else if(binx==6) binx = 12;
1923 else if(binx==7) binx = 11;
1924 else if(binx==8) binx = 10;
1925 else if(binx==9) binx = 9;
1926 else if(binx==10) binx = 8;
1927 else if(binx==11) binx = 7;
1928 else if(binx==12) binx = 6;
1929 else if(binx==13) binx = 5;
1930 else if(binx==14) binx = 4;
1931 else if(binx==15) binx = 3;
1932 else if(binx==16) binx = 2;
1933 else if(binx==17) binx = 1;
1935 if(currDir.find(
"Disk_1")!=string::npos && currDir.find(
"HalfCylinder_m")!=string::npos){
1938 }
else if(currDir.find(
"Disk_2")!=string::npos && currDir.find(
"HalfCylinder_m")!=string::npos){
1941 }
else if(currDir.find(
"Disk_3")!=string::npos && currDir.find(
"HalfCylinder_m")!=string::npos){
1944 }
else if(currDir.find(
"Disk_1")!=string::npos && currDir.find(
"HalfCylinder_p")!=string::npos){
1947 }
else if(currDir.find(
"Disk_2")!=string::npos && currDir.find(
"HalfCylinder_p")!=string::npos){
1950 }
else if(currDir.find(
"Disk_3")!=string::npos && currDir.find(
"HalfCylinder_p")!=string::npos){
1958 vector<string> subdirs = iGetter.
getSubdirs();
1959 for (vector<string>::const_iterator it = subdirs.begin(); it != subdirs.end(); it++) {
1962 if(*it !=
"Pixel" && ((isbarrel && (*it).find(
"Barrel")==string::npos) || (!isbarrel && (*it).find(
"Endcap")==string::npos)))
continue;
1969 if(dname.find(
"Module_")!=string::npos){
1970 vector<string> meVec = iGetter.
getMEs();
1971 for (vector<string>::const_iterator it = meVec.begin(); it != meVec.end(); it++) {
1972 string full_path = currDir +
"/" + (*it);
1973 if(full_path.find(
"missing_")!=string::npos){
1977 string new_path = full_path.replace(full_path.find(
"missing"),7,
"valid");
1978 me = iGetter.
get(new_path);
1981 float hitEfficiency = -1.;
1982 if(validHits + missingHits > 0.) hitEfficiency = validHits / (validHits + missingHits);
1983 int binx = 0;
int biny = 0;
1985 if(currDir.find(
"Shell_m")!=string::npos){
1986 if(currDir.find(
"Module_4")!=string::npos){ binx = 1;}
else if(currDir.find(
"Module_3")!=string::npos){ binx = 2;}
1987 if(currDir.find(
"Module_2")!=string::npos){ binx = 3;}
else if(currDir.find(
"Module_1")!=string::npos){ binx = 4;}
1988 }
else if(currDir.find(
"Shell_p")!=string::npos){
1989 if(currDir.find(
"Module_1")!=string::npos){ binx = 5;}
else if(currDir.find(
"Module_2")!=string::npos){ binx = 6;}
1990 if(currDir.find(
"Module_3")!=string::npos){ binx = 7;}
else if(currDir.find(
"Module_4")!=string::npos){ binx = 8;}
1993 if(currDir.find(
"01")!=string::npos){ biny = 1;}
else if(currDir.find(
"02")!=string::npos){ biny = 2;}
1994 else if(currDir.find(
"03")!=string::npos){ biny = 3;}
else if(currDir.find(
"04")!=string::npos){ biny = 4;}
1995 else if(currDir.find(
"05")!=string::npos){ biny = 5;}
else if(currDir.find(
"06")!=string::npos){ biny = 6;}
1996 else if(currDir.find(
"07")!=string::npos){ biny = 7;}
else if(currDir.find(
"08")!=string::npos){ biny = 8;}
1997 else if(currDir.find(
"09")!=string::npos){ biny = 9;}
else if(currDir.find(
"10")!=string::npos){ biny = 10;}
1998 else if(currDir.find(
"11")!=string::npos){ biny = 11;}
else if(currDir.find(
"12")!=string::npos){ biny = 12;}
1999 else if(currDir.find(
"13")!=string::npos){ biny = 13;}
else if(currDir.find(
"14")!=string::npos){ biny = 14;}
2000 else if(currDir.find(
"15")!=string::npos){ biny = 15;}
else if(currDir.find(
"16")!=string::npos){ biny = 16;}
2001 else if(currDir.find(
"17")!=string::npos){ biny = 17;}
else if(currDir.find(
"18")!=string::npos){ biny = 18;}
2002 else if(currDir.find(
"19")!=string::npos){ biny = 19;}
else if(currDir.find(
"20")!=string::npos){ biny = 20;}
2003 else if(currDir.find(
"21")!=string::npos){ biny = 21;}
else if(currDir.find(
"22")!=string::npos){ biny = 22;}
2004 if(currDir.find(
"Shell_mO")!=string::npos || currDir.find(
"Shell_pO")!=string::npos){
2005 if(currDir.find(
"Layer_1")!=string::npos){ biny = biny + 10;}
2006 else if(currDir.find(
"Layer_2")!=string::npos){ biny = biny + 16;}
2007 else if(currDir.find(
"Layer_3")!=string::npos){ biny = biny + 22;}
2010 else if (isUpgrade) {
2011 if(currDir.find(
"01")!=string::npos){ biny = 1;}
else if(currDir.find(
"02")!=string::npos){ biny = 2;}
2012 else if(currDir.find(
"03")!=string::npos){ biny = 3;}
else if(currDir.find(
"04")!=string::npos){ biny = 4;}
2013 else if(currDir.find(
"05")!=string::npos){ biny = 5;}
else if(currDir.find(
"06")!=string::npos){ biny = 6;}
2014 else if(currDir.find(
"07")!=string::npos){ biny = 7;}
else if(currDir.find(
"08")!=string::npos){ biny = 8;}
2015 else if(currDir.find(
"09")!=string::npos){ biny = 9;}
else if(currDir.find(
"10")!=string::npos){ biny = 10;}
2016 else if(currDir.find(
"11")!=string::npos){ biny = 11;}
else if(currDir.find(
"12")!=string::npos){ biny = 12;}
2017 else if(currDir.find(
"13")!=string::npos){ biny = 13;}
else if(currDir.find(
"14")!=string::npos){ biny = 14;}
2018 else if(currDir.find(
"15")!=string::npos){ biny = 15;}
else if(currDir.find(
"16")!=string::npos){ biny = 16;}
2019 else if(currDir.find(
"17")!=string::npos){ biny = 17;}
else if(currDir.find(
"18")!=string::npos){ biny = 18;}
2020 else if(currDir.find(
"19")!=string::npos){ biny = 19;}
else if(currDir.find(
"20")!=string::npos){ biny = 20;}
2021 else if(currDir.find(
"21")!=string::npos){ biny = 21;}
else if(currDir.find(
"22")!=string::npos){ biny = 22;}
2022 else if(currDir.find(
"23")!=string::npos){ biny = 23;}
else if(currDir.find(
"24")!=string::npos){ biny = 24;}
2023 else if(currDir.find(
"25")!=string::npos){ biny = 25;}
else if(currDir.find(
"25")!=string::npos){ biny = 25;}
2024 else if(currDir.find(
"26")!=string::npos){ biny = 26;}
else if(currDir.find(
"27")!=string::npos){ biny = 27;}
2025 else if(currDir.find(
"28")!=string::npos){ biny = 28;}
else if(currDir.find(
"29")!=string::npos){ biny = 29;}
2026 else if(currDir.find(
"30")!=string::npos){ biny = 30;}
else if(currDir.find(
"31")!=string::npos){ biny = 31;}
2027 else if(currDir.find(
"32")!=string::npos){ biny = 32;}
2028 if(currDir.find(
"Shell_mO")!=string::npos || currDir.find(
"Shell_pO")!=string::npos){
2029 if(currDir.find(
"Layer_1")!=string::npos){ biny = biny + 6;}
2030 else if(currDir.find(
"Layer_2")!=string::npos){ biny = biny + 14;}
2031 else if(currDir.find(
"Layer_3")!=string::npos){ biny = biny + 22;}
2032 else if(currDir.find(
"Layer_4")!=string::npos){ biny = biny + 32;}
2037 if(currDir.find(
"01")!=string::npos){ binx = 1;}
else if(currDir.find(
"02")!=string::npos){ binx = 2;}
2038 else if(currDir.find(
"03")!=string::npos){ binx = 3;}
else if(currDir.find(
"04")!=string::npos){ binx = 4;}
2039 else if(currDir.find(
"05")!=string::npos){ binx = 5;}
else if(currDir.find(
"06")!=string::npos){ binx = 6;}
2040 else if(currDir.find(
"07")!=string::npos){ binx = 7;}
else if(currDir.find(
"08")!=string::npos){ binx = 8;}
2041 else if(currDir.find(
"09")!=string::npos){ binx = 9;}
else if(currDir.find(
"10")!=string::npos){ binx = 10;}
2042 else if(currDir.find(
"11")!=string::npos){ binx = 11;}
else if(currDir.find(
"12")!=string::npos){ binx = 12;}
2043 if(currDir.find(
"HalfCylinder_mO")!=string::npos || currDir.find(
"HalfCylinder_pO")!=string::npos){ binx = binx + 12;}
2044 if(currDir.find(
"Panel_1/Module_1")!=string::npos){ biny = 1;}
else if(currDir.find(
"Panel_2/Module_1")!=string::npos){ biny = 2;}
2045 else if(currDir.find(
"Panel_1/Module_2")!=string::npos){ biny = 3;}
else if(currDir.find(
"Panel_2/Module_2")!=string::npos){ biny = 4;}
2046 else if(currDir.find(
"Panel_1/Module_3")!=string::npos){ biny = 5;}
else if(currDir.find(
"Panel_2/Module_3")!=string::npos){ biny = 6;}
2047 else if(currDir.find(
"Panel_1/Module_4")!=string::npos){ biny = 7;}
2048 }
else if (isUpgrade) {
2049 if(currDir.find(
"01")!=string::npos){ binx = 1;}
else if(currDir.find(
"02")!=string::npos){ binx = 2;}
2050 else if(currDir.find(
"03")!=string::npos){ binx = 3;}
else if(currDir.find(
"04")!=string::npos){ binx = 4;}
2051 else if(currDir.find(
"05")!=string::npos){ binx = 5;}
else if(currDir.find(
"06")!=string::npos){ binx = 6;}
2052 else if(currDir.find(
"07")!=string::npos){ binx = 7;}
else if(currDir.find(
"08")!=string::npos){ binx = 8;}
2053 else if(currDir.find(
"09")!=string::npos){ binx = 9;}
else if(currDir.find(
"10")!=string::npos){ binx = 10;}
2054 else if(currDir.find(
"11")!=string::npos){ binx = 11;}
else if(currDir.find(
"12")!=string::npos){ binx = 12;}
2055 else if(currDir.find(
"13")!=string::npos){ binx = 13;}
else if(currDir.find(
"14")!=string::npos){ binx = 14;}
2056 else if(currDir.find(
"15")!=string::npos){ binx = 15;}
else if(currDir.find(
"16")!=string::npos){ binx = 16;}
2057 else if(currDir.find(
"17")!=string::npos){ binx = 17;}
2058 if(currDir.find(
"HalfCylinder_mO")!=string::npos || currDir.find(
"HalfCylinder_pO")!=string::npos){ binx = binx + 17;}
2059 if(currDir.find(
"Panel_1/Module_1")!=string::npos){ biny = 1;}
else if(currDir.find(
"Panel_2/Module_1")!=string::npos){ biny = 2;}
2063 if(currDir.find(
"Layer_1")!=string::npos){
2066 }
else if(currDir.find(
"Layer_2")!=string::npos){
2069 }
else if(currDir.find(
"Layer_3")!=string::npos){
2072 }
else if( isUpgrade && (currDir.find(
"Layer_4")!=string::npos) ){
2075 }
else if(currDir.find(
"Disk_1")!=string::npos && currDir.find(
"HalfCylinder_m")!=string::npos){
2078 }
else if(currDir.find(
"Disk_2")!=string::npos && currDir.find(
"HalfCylinder_m")!=string::npos){
2081 }
else if(currDir.find(
"Disk_3")!=string::npos && currDir.find(
"HalfCylinder_m")!=string::npos){
2084 }
else if(currDir.find(
"Disk_1")!=string::npos && currDir.find(
"HalfCylinder_p")!=string::npos){
2087 }
else if(currDir.find(
"Disk_2")!=string::npos && currDir.find(
"HalfCylinder_p")!=string::npos){
2090 }
else if(currDir.find(
"Disk_3")!=string::npos && currDir.find(
"HalfCylinder_p")!=string::npos){
2098 vector<string> subdirs = iGetter.
getSubdirs();
2099 for (vector<string>::const_iterator it = subdirs.begin(); it != subdirs.end(); it++) {
2102 if(*it !=
"Pixel" && ((isbarrel && (*it).find(
"Barrel")==string::npos) || (!isbarrel && (*it).find(
"Endcap")==string::npos)))
continue;
2120 string hitEfficiencyPostfix[] = {
"L1",
"L2",
"L3",
"Dp1",
"Dp2",
"Dm1",
"Dm2"};
2121 std::vector<std::vector<float> > ignoreXBins = {{-4,2}, {4,4,-1,-3,3,-4,-3,-2,-1,-4,-3,-2,-1,1,-4}, {1,-4,1},{},{},{},{}};
2122 std::vector<std::vector<float> > ignoreYBins = {{-9,-3},{1,16,1,-13,-13,-5,-5,-5,-5,-6,-6,-6,-6,-8,-8},{3,14,6},{},{},{},{}};
2124 for (
int i = 0;
i < 7;
i++){
2125 string subdetName =
"Endcap/";
2126 if (
i < 3) subdetName =
"Barrel/";
2128 sprintf(meName,
"Pixel/%sHitEfficiency_%s",subdetName.c_str(),hitEfficiencyPostfix[
i].c_str());
2130 float totalEff = 0.;
2132 TH1 * hitEffMap = tempHitEffMap->
getTH1();
2133 for (
int xBin = 1; xBin < tempHitEffMap->getNbinsX() + 1; xBin++){
2134 if (fabs(hitEffMap->GetXaxis()->GetBinCenter(xBin)) < 1.)
continue;
2135 for (
int yBin = 1;
yBin < tempHitEffMap->getNbinsY() + 1;
yBin++){
2136 if (fabs(hitEffMap->GetYaxis()->GetBinCenter(
yBin)) < 0.5)
continue;
2137 bool ignoreBin =
false;
2138 for (
unsigned int j = 0;
j < ignoreXBins[
i].size();
j++){
2139 if (hitEffMap->GetXaxis()->GetBinCenter(xBin) == ignoreXBins[
i][
j] && hitEffMap->GetYaxis()->GetBinCenter(
yBin) == ignoreYBins[
i][
j]){
2144 if (ignoreBin)
continue;
2145 if (!(tempHitEffMap->getBinContent(xBin,
yBin) < 0.)) totalEff += tempHitEffMap->getBinContent(xBin,
yBin);
2149 float overalEff = 0.;
2151 if (totalBins > 0) overalEff = totalEff/float(totalBins);
const std::string & getName(void) const
get name of ME
void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * HitEfficiency_Dp3
TH1 * getRefTH1(void) const
void fillDeviations(DQMStore::IGetter &iGetter)
void getDocument(std::string configFile, bool UseDB=false)
Methor that parses the xml file configFile.
MonitorElement * get(const std::string &path)
void createEfficiency(DQMStore::IBooker &iBooker, DQMStore::IGetter &iGetter, bool isUpgrade)
static char const * tname
void getGrandSummaryME(DQMStore::IBooker &iBooker, DQMStore::IGetter &iGetter, int nbin, std::string &me_name, std::vector< MonitorElement * > &mes)
const std::string & pwd(void)
MonitorElement * HitEfficiency_L4
MonitorElement * getFEDSummaryME(DQMStore::IBooker &iBooker, DQMStore::IGetter &iGetter, std::string me_name)
void bookOccupancyPlots(DQMStore::IBooker &iBooker, DQMStore::IGetter &iGetter, bool hiRes, bool isbarrel)
MonitorElement * DEV_size_Barrel
MonitorElement * HitEfficiency_L3
void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
SiPixelConfigParser * configParser_
MonitorElement * DEV_nclusters_Barrel
void fillGrandEndcapSummaryHistos(DQMStore::IBooker &iBooker, DQMStore::IGetter &iGetter, std::vector< std::string > &me_names, bool isUpgrade)
bool getMENamesForEndcapSummary(std::string &structure_name, std::vector< std::string > &me_names)
MonitorElement * HitEfficiency_Dm2
double getEntries(void) const
get # of entries
double getMean(int axis=1) const
get mean value of histogram along x, y or z axis (axis=1, 2, 3 respectively)
MonitorElement * HitEfficiency_L2
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
int getBlade(const std::string &dname)
void normaliseAvDigiOcc(DQMStore::IBooker &iBooker, DQMStore::IGetter &iGetter)
bool getCalibType(int &u_freq)
int getNbinsY(void) const
get # of bins in Y-axis
void fillEfficiency(DQMStore::IBooker &iBooker, DQMStore::IGetter &iGetter, bool isbarrel, bool isUpgrade)
MonitorElement * OccupancyMap
bool getMENamesForGrandEndcapSummary(std::string &structure_name, std::vector< std::string > &me_names)
SiPixelConfigWriter * configWriter_
bool getFrequencyForGrandBarrelSummary(int &u_freq)
bool getFrequencyForEndcapSummary(int &u_freq)
bool getMENamesForFEDErrorSummary(std::string &structure_name, std::vector< std::string > &me_names)
void bookDeviations(DQMStore::IBooker &iBooker, bool isUpgrade)
void createSummary(DQMStore::IBooker &iBooker, DQMStore::IGetter &iGetter, bool isUpgrade)
MonitorElement * DEV_adc_Endcap
bool getMENamesForGrandBarrelSummary(std::string &structure_name, std::vector< std::string > &me_names)
bool getFrequencyForBarrelSummary(int &u_freq)
void fillFEDErrorSummary(DQMStore::IBooker &iBooker, DQMStore::IGetter &iGetter, std::string dir_name, std::vector< std::string > &me_names)
bool getFrequencyForGrandEndcapSummary(int &u_freq)
MonitorElement * DEV_charge_Endcap
MonitorElement * book1D(Args &&...args)
bool getMENamesForBarrelSummary(std::string &structure_name, std::vector< std::string > &me_names)
MonitorElement * getSummaryME(DQMStore::IBooker &iBooker, DQMStore::IGetter &iGetter, std::string me_name, bool isUpgrade)
int getLadder(const std::string &dname)
std::vector< std::string > getMEs(void)
void fillOccupancy(DQMStore::IBooker &iBooker, DQMStore::IGetter &iGetter, bool isbarrel)
SiPixelActionExecutor(bool offlineXMLfile, bool Tier0Flag)
MonitorElement * DEV_charge_Barrel
MonitorElement * HitEfficiency_Dm3
void setCurrentFolder(const std::string &fullpath)
MonitorElement * book2D(Args &&...args)
bool getMessageLimitForQTests(int &u_freq)
MonitorElement * HitEfficiency_L1
TH1F * getTH1F(void) const
MonitorElement * DEV_nclusters_Endcap
MonitorElement * HitEfficiency_Dp1
bool getSourceType(int &u_freq)
std::vector< std::string > getSubdirs(void)
MonitorElement * DEV_size_Endcap
void setCurrentFolder(const std::string &fullpath)
double getBinContent(int binx) const
get content of bin (1-D)
double getRMS(int axis=1) const
get RMS of histogram along x, y or z axis (axis=1, 2, 3 respectively)
MonitorElement * HitEfficiencySummary
int getNbinsX(void) const
get # of bins in X-axis
void fillEfficiencySummary(DQMStore::IBooker &iBooker, DQMStore::IGetter &iGetter)
void createOccupancy(DQMStore::IBooker &iBooker, DQMStore::IGetter &iGetter)
MonitorElement * HitEfficiency_Dp2
bool getFrequencyForTrackerMap(int &u_freq)
void fillGrandBarrelSummaryHistos(DQMStore::IBooker &iBooker, DQMStore::IGetter &iGetter, std::vector< std::string > &me_names, bool isUpgrade)
void fillSummary(DQMStore::IBooker &iBooker, DQMStore::IGetter &iGetter, std::string dir_name, std::vector< std::string > &me_names, bool isbarrel, bool isUpgrade)
TH2F * getTH2F(void) const
MonitorElement * DEV_ndigis_Endcap
void GetBladeSubdirs(DQMStore::IBooker &iBooker, DQMStore::IGetter &iGetter, std::vector< std::string > &blade_subdirs)
MonitorElement * HitEfficiency_Dm1
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
void Reset(void)
reset ME (ie. contents, errors, etc)
MonitorElement * DEV_ndigis_Barrel
void bookEfficiency(DQMStore::IBooker &iBooker, bool isUpgrade)
MonitorElement * DEV_adc_Barrel