1 R__LOAD_LIBRARY(libDAQChannelMap.so)
36 #include <TMultiGraph.h> 37 #include <TPaveText.h> 46 #include "DAQChannelMap/DAQChannelMap.h" 47 #include "DAQChannelMap/HardwareDisplay.h" 48 #include "NovaDAQConventions/DAQConventions.h" 113 double issue_rate = 500.0;
114 double noisy_rate = 500.0;
115 double quiet_rate = 10.0;
119 const double rateloy = -0.05;
120 const double ratehiy = 1.35;
124 sprintf(datehigh,
"%s 23:59:59", datehi.c_str());
125 sprintf(datelow ,
"%s 00:00:01", datelo.c_str());
129 TDatime *TRangehi =
new TDatime(datehigh);
130 TDatime *TRangelo =
new TDatime(datelow);
132 gSystem->Setenv(
"TZ",
"UTC");
133 gStyle->SetTimeOffset(0);
181 detname =
"TestBeam";
204 inAPD.open(APDList.c_str());
207 std::map<int, int> fDBmap;
208 std::map<int, int> fDCMmap;
209 std::map<int, int> fFEBmap;
213 std::vector<int> HWmapIDs;
217 std::stringstream stringDBs;
219 std::stringstream stringDCMs;
221 std::stringstream stringFEBs;
224 inAPD >> thisDB >> thisDCM >> thisFEB;
225 if (inAPD.peek() == EOF)
break;
226 stringDBs << std::setfill(
'0') << std::setw(2) << thisDB;
227 stringDBs >> stringDB;
228 stringDCMs << std::setfill(
'0') << std::setw(2) << thisDCM;
229 stringDCMs >> stringDCM;
230 stringFEBs << std::setfill(
'0') << std::setw(2) << thisFEB;
231 stringFEBs >> stringFEB;
232 mapIDstring.append(stringDB);
233 mapIDstring.append(stringDCM);
234 mapIDstring.append(stringFEB);
235 int mapID = atoi(mapIDstring.c_str());
237 fDBmap[mapID] = thisDB;
238 fDCMmap[mapID] = thisDCM;
239 fFEBmap[mapID] = thisFEB;
240 HWmapIDs.push_back(mapID);
244 if (!inAPD.good())
break;
249 for (
unsigned int x = 0;
x < HWmapIDs.size() ;
x++){
250 std::cout <<
"(DB, DCM, FEB) = (" << std::setw(2) << std::setfill(
'0') << fDBmap[HWmapIDs[
x]]
251 <<
", " << std::setw(2) << std::setfill(
'0') << fDCMmap[HWmapIDs[
x]]
252 <<
", " << std::setw(2) << std::setfill(
'0') << fFEBmap[HWmapIDs[
x]]
262 in.open(OnMonFileList.c_str());
266 std::vector<std::string> newfiles;
270 newfiles.push_back(line);
274 const unsigned int DB_size = 16;
275 const unsigned int DCM_size = 13;
276 const unsigned int FEB_size = 64;
277 const unsigned int PIX_size = 33;
278 TH1D* PIXRatesSR[DB_size][DCM_size][FEB_size][PIX_size];
279 TH1D* PIXRatesTime[DB_size][DCM_size][FEB_size][PIX_size];
296 TH1D* FEBScoresSR[DB_size][DCM_size][FEB_size];
297 TH1D* FEBScoresTime[DB_size][DCM_size][FEB_size];
298 TH1D* FEBNoisySR[DB_size][DCM_size][FEB_size];
299 TH1D* FEBNoisyTime[DB_size][DCM_size][FEB_size];
300 TH1D* FEBQuietSR[DB_size][DCM_size][FEB_size];
301 TH1D* FEBQuietTime[DB_size][DCM_size][FEB_size];
302 TH1D* FEBNoneSR[DB_size][DCM_size][FEB_size];
303 TH1D* FEBNoneTime[DB_size][DCM_size][FEB_size];
304 TH1D* FEBLoADCSR[DB_size][DCM_size][FEB_size];
305 TH1D* FEBLoADCTime[DB_size][DCM_size][FEB_size];
306 TH1D* FEBHiADCSR[DB_size][DCM_size][FEB_size];
307 TH1D* FEBHiADCTime[DB_size][DCM_size][FEB_size];
308 TH1D* FEBDropSR[DB_size][DCM_size][FEB_size];
309 TH1D* FEBDropTime[DB_size][DCM_size][FEB_size];
315 int runbins = (runhi-runlo)/runsperbin;
316 int runhitbins = (runhi-runlo)*detMaxSR;
319 for(
unsigned int i = 0;
i < DB_size; ++
i) {
320 for(
unsigned int j = 0;
j < DCM_size; ++
j) {
321 for(
unsigned int k = 0; k < FEB_size; ++k) {
322 for(
unsigned int l = 0;
l < PIX_size; ++
l) {
323 PIXRatesSR[
i][
j][k][
l] = 0;
324 PIXRatesTime[
i][
j][k][
l] = 0;
340 FEBScoresSR[
i][
j][k] = 0;
341 FEBScoresTime[
i][
j][k] = 0;
342 FEBNoisySR[
i][
j][k] = 0;
343 FEBNoisyTime[
i][
j][k] = 0;
344 FEBQuietSR[
i][
j][k] = 0;
345 FEBQuietTime[
i][
j][k] = 0;
346 FEBNoneSR[
i][
j][k] = 0;
347 FEBNoneTime[
i][
j][k] = 0;
348 FEBLoADCSR[
i][
j][k] = 0;
349 FEBLoADCTime[
i][
j][k] = 0;
350 FEBHiADCSR[
i][
j][k] = 0;
351 FEBHiADCTime[
i][
j][k] = 0;
352 FEBDropSR[
i][
j][k] = 0;
353 FEBDropTime[
i][
j][k] = 0;
361 for (
unsigned int x = 0;
x < HWmapIDs.size();
x++ ){
362 for (
int y = 0;
y < numberOfPixels;
y++ ){
363 int x_db = fDBmap[HWmapIDs[
x]];
364 int x_dcm = fDCMmap[HWmapIDs[
x]];
365 int x_feb = fFEBmap[HWmapIDs[
x]];
367 if(FEBScoresTime[x_db][x_dcm][x_feb] == 0){
368 char febhistoname[30];
369 sprintf(febhistoname,
"ScoreFEBSR_%.2u_%.2u_%.2u_%.2u", x_db, x_dcm, x_feb,
y);
370 FEBScoresSR[x_db][x_dcm][x_feb] =
new TH1D(febhistoname,
"Issue Rates;run;Score", runhitbins, runlo, runhi);
371 sprintf(febhistoname,
"NoisyFEBSR_%.2u_%.2u_%.2u_%.2u", x_db, x_dcm, x_feb,
y);
372 FEBNoisySR[x_db][x_dcm][x_feb] =
new TH1D(febhistoname,
"Noisy Pixels per FEB;run;Number of Pixels", runhitbins, runlo, runhi);
373 sprintf(febhistoname,
"QuietFEBSR_%.2u_%.2u_%.2u_%.2u", x_db, x_dcm, x_feb,
y);
374 FEBQuietSR[x_db][x_dcm][x_feb] =
new TH1D(febhistoname,
"Quiet Pixels per FEB;run;Number of Pixels", runhitbins, runlo, runhi);
375 sprintf(febhistoname,
"NoneFEBSR_%.2u_%.2u_%.2u_%.2u", x_db, x_dcm, x_feb,
y);
376 FEBNoneSR[x_db][x_dcm][x_feb] =
new TH1D(febhistoname,
"None reporting Pixels per FEB;run;Number of Pixels", runhitbins, runlo, runhi);
377 sprintf(febhistoname,
"LoADCFEBSR_%.2u_%.2u_%.2u_%.2u", x_db, x_dcm, x_feb,
y);
378 FEBLoADCSR[x_db][x_dcm][x_feb] =
new TH1D(febhistoname,
"Low ADC Pixels per FEB;run;Number of Pixels", runhitbins, runlo, runhi);
379 sprintf(febhistoname,
"HiADCFEBSR_%.2u_%.2u_%.2u_%.2u", x_db, x_dcm, x_feb,
y);
380 FEBHiADCSR[x_db][x_dcm][x_feb] =
new TH1D(febhistoname,
"High ADC Pixels per FEB;run;Number of Pixels", runhitbins, runlo, runhi);
381 sprintf(febhistoname,
"DropFEBSR_%.2u_%.2u_%.2u_%.2u", x_db, x_dcm, x_feb,
y);
382 FEBDropSR[x_db][x_dcm][x_feb] =
new TH1D(febhistoname,
"Dropoffs;run;Number of Pixels", runhitbins, runlo, runhi);
384 char febhistonamedos[30];
385 sprintf(febhistonamedos,
"ScoreFEBTime_%.2u_%.2u_%.2u_%.2u", x_db, x_dcm, x_feb,
y);
386 FEBScoresTime[x_db][x_dcm][x_feb] =
new TH1D(febhistonamedos,
"Issue Rates;date;Score", runhitbins, TRangelo->Convert(), TRangehi->Convert());
387 sprintf(febhistonamedos,
"NoisyFEBTime_%.2u_%.2u_%.2u_%.2u", x_db, x_dcm, x_feb,
y);
388 FEBNoisyTime[x_db][x_dcm][x_feb] =
new TH1D(febhistonamedos,
"Number of Noisy Pixels;date;Number of Pixels", runhitbins, TRangelo->Convert(), TRangehi->Convert());
389 sprintf(febhistonamedos,
"QuietFEBTime_%.2u_%.2u_%.2u_%.2u", x_db, x_dcm, x_feb,
y);
390 FEBQuietTime[x_db][x_dcm][x_feb] =
new TH1D(febhistonamedos,
"Number of Quiet Pixels;date;Number of Pixels", runhitbins, TRangelo->Convert(), TRangehi->Convert());
391 sprintf(febhistonamedos,
"NoneFEBTime_%.2u_%.2u_%.2u_%.2u", x_db, x_dcm, x_feb,
y);
392 FEBNoneTime[x_db][x_dcm][x_feb] =
new TH1D(febhistonamedos,
"Number of None Reporting Pixels;date;Number of Pixels", runhitbins, TRangelo->Convert(), TRangehi->Convert());
393 sprintf(febhistonamedos,
"LoADCFEBTime_%.2u_%.2u_%.2u_%.2u", x_db, x_dcm, x_feb,
y);
394 FEBLoADCTime[x_db][x_dcm][x_feb] =
new TH1D(febhistonamedos,
"Number of Low ADC Pixels;date;Number of Pixels", runhitbins, TRangelo->Convert(), TRangehi->Convert());
395 sprintf(febhistonamedos,
"HiADCFEBTime_%.2u_%.2u_%.2u_%.2u", x_db, x_dcm, x_feb,
y);
396 FEBHiADCTime[x_db][x_dcm][x_feb] =
new TH1D(febhistonamedos,
"Number of High ADC Pixels;date;Number of Pixels", runhitbins, TRangelo->Convert(), TRangehi->Convert());
397 sprintf(febhistonamedos,
"DropFEBTime_%.2u_%.2u_%.2u_%.2u", x_db, x_dcm, x_feb,
y);
398 FEBDropTime[x_db][x_dcm][x_feb] =
new TH1D(febhistonamedos,
"Number of Dropoffs;date;Number of Dropoffs", runhitbins, TRangelo->Convert(), TRangehi->Convert());
401 if(PIXRatesSR[x_db][x_dcm][x_feb][
y] == 0){
403 sprintf(histoname,
"RatePIXSR_%.2u_%.2u_%.2u_%.2u", x_db, x_dcm, x_feb,
y);
404 PIXRatesSR[x_db][x_dcm][x_feb][
y] =
new TH1D(histoname,
"Hit Rate in Pixels;run;rate (Hz)", runhitbins, runlo, runhi);
419 char histonamedos[30];
420 sprintf(histonamedos,
"RatePIXTime_%.2u_%.2u_%.2u_%.2u", x_db, x_dcm, x_feb,
y);
421 PIXRatesTime[x_db][x_dcm][x_feb][
y] =
new TH1D(histonamedos,
"Hit Rate in Pixels;date;rate (Hz)", runhitbins, TRangelo->Convert(), TRangehi->Convert());
441 TH1D* AllRates =
new TH1D(
"AllPixelHitRates",
"Rate in all Pixels;log10(rate (Hz));pixels*subrun", 70, -1, 6);
442 TH2D* RatesPerRun =
new TH2D(
"RatesPerRun",
"Rate in all Pixels per run;run;log10(rate (Hz))",runbins, runlo, runhi, 70, -1, 7);
444 unsigned int xdb, ydb, xdcm, ydcm, xfeb, yfeb, xpix, ypix;
458 for(
unsigned int ifile=0; ifile<newfiles.size()-1; ifile++){
461 sprintf(filename,
"%s", newfiles[ifile].c_str());
462 TFile *thisfile =
new TFile(filename,
"READ");
464 TTree *
header = (TTree*)thisfile->Get(
"Header");
466 header->SetBranchAddress(
"Run", &run);
467 header->SetBranchAddress(
"Subrun", &subrun);
468 header->SetBranchAddress(
"StartYear", &startyear);
469 header->SetBranchAddress(
"StartMonth", &startmonth);
470 header->SetBranchAddress(
"StartDay", &startday);
471 header->SetBranchAddress(
"StartHour", &starthour);
474 runSR = (double)run + ((
double)subrun / detMaxSR);
478 std::cout <<
"Run: " << run <<
" Subrun: " << std::setw(2) << std::setfill(
'0') << subrun
479 <<
" (" << ifile <<
" of " << newfiles.size()-2 <<
" complete)" <<
std::endl;
488 srhour = (Int_t)
trunc(starthour);
489 srmin = (Int_t)
trunc((starthour-srhour)*60);
490 srsec = (Int_t)
trunc((((starthour-srhour)*60)-srmin)*60);
492 TDatime *subruntime =
new TDatime(startyear, startmonth, startday, srhour, srmin, srsec);
495 TH2D* HitRateHist = (TH2D*)thisfile->FindObjectAny(
"PixelHitRateMap");
496 TH2D* HitRateADCHist = (TH2D*)thisfile->FindObjectAny(
"PixelHitRateMapMipADC");
497 TH2D* HitLoADCHist = (TH2D*)thisfile->FindObjectAny(
"PixelHitRateMapLowADC");
498 TH2D* HitHiADCHist = (TH2D*)thisfile->FindObjectAny(
"PixelHitRateMapHighADC");
499 TH2D* FEBDropHist = (TH2D*)thisfile->FindObjectAny(
"FEBShutOff");
503 for (
unsigned int xID = 0; xID < HWmapIDs.size(); xID++ ){
504 int x_db = fDBmap[HWmapIDs[xID]];
505 int x_dcm = fDCMmap[HWmapIDs[xID]];
506 int x_feb = fFEBmap[HWmapIDs[xID]];
507 fHardwareMapping.
DiblockXY(x_db,&xdb,&ydb);
508 fHardwareMapping.
DCMXY(x_dcm,&xdcm,&ydcm);
509 fHardwareMapping.
FEBXY(x_feb,&xfeb,&yfeb);
510 for(
int y = 0;
y < numberOfPixels;
y++){
511 fHardwareMapping.
PixXY(
y,&xpix,&ypix);
512 pixhitrate = HitRateHist ->GetBinContent(HitRateHist ->FindFixBin(xdb+xdcm+xfeb+xpix,ydb+ydcm+yfeb+ypix));
513 pixadcrate = HitRateADCHist ->GetBinContent(HitRateADCHist ->FindFixBin(xdb+xdcm+xfeb+xpix,ydb+ydcm+yfeb+ypix));
514 pixloadc = HitLoADCHist ->GetBinContent(HitLoADCHist ->FindFixBin(xdb+xdcm+xfeb+xpix,ydb+ydcm+yfeb+ypix));
515 pixhiadc = HitHiADCHist ->GetBinContent(HitHiADCHist ->FindFixBin(xdb+xdcm+xfeb+xpix,ydb+ydcm+yfeb+ypix));
516 pixdrop = FEBDropHist ->GetBinContent(FEBDropHist ->FindFixBin(xdb+xdcm+xfeb+xpix,ydb+ydcm+yfeb+ypix));
518 PIXRatesSR[x_db][x_dcm][x_feb][
y] ->Fill(runSR, pixhitrate);
519 PIXRatesTime[x_db][x_dcm][x_feb][
y] ->Fill(subruntime->Convert(), pixhitrate);
523 if ( pixhitrate >= noisy_rate){
526 FEBNoisySR[x_db][x_dcm][x_feb] ->Fill(runSR, 1.0/32);
527 FEBNoisyTime[x_db][x_dcm][x_feb] ->Fill(subruntime->Convert(), 1.0/32);
529 if ( pixhitrate <= quiet_rate && pixhitrate > 0){
532 FEBQuietSR[x_db][x_dcm][x_feb] ->Fill(runSR, 1.0/32);
533 FEBQuietTime[x_db][x_dcm][x_feb] ->Fill(subruntime->Convert(), 1.0/32);
535 if ( pixhitrate == 0){
538 FEBNoneSR[x_db][x_dcm][x_feb] ->Fill(runSR, 1.0/32);
539 FEBNoneTime[x_db][x_dcm][x_feb] ->Fill(subruntime->Convert(), 1.0/32);
544 FEBLoADCSR[x_db][x_dcm][x_feb] ->Fill(runSR, 1.0/32);
545 FEBLoADCTime[x_db][x_dcm][x_feb] ->Fill(subruntime->Convert(), 1.0/32);
550 FEBHiADCSR[x_db][x_dcm][x_feb] ->Fill(runSR, 1.0/32);
551 FEBHiADCTime[x_db][x_dcm][x_feb] ->Fill(subruntime->Convert(), 1.0/32);
555 FEBDropSR[x_db][x_dcm][x_feb] ->Fill(runSR, 1.0/32);
556 FEBDropTime[x_db][x_dcm][x_feb] ->Fill(subruntime->Convert(), 1.0/32);
559 if ( pixhitrate >= issue_rate){
560 FEBScoresSR[x_db][x_dcm][x_feb]->Fill(runSR, 1.0/32.0);
561 FEBScoresTime[x_db][x_dcm][x_feb]->Fill(subruntime->Convert(), 1.0/32.0);
576 sprintf(outfilename,
"/nusoft/app/web/htdoc/nova/datacheck/nearline/HardwareWatchList/Onmon_ana-HistosPIXMin-run%.2u-%.2u.root",
578 TFile*
out_file =
new TFile(outfilename,
"RECREATE");
579 out_file->mkdir(
"PIXPlots");
581 out_file->cd(
"PIXPlots");
582 for(
unsigned int i = 1;
i < DB_size; ++
i) {
583 for(
unsigned int j = 1;
j < DCM_size; ++
j) {
584 for(
unsigned int k = 0; k < FEB_size; ++k) {
585 for(
unsigned int l = 0;
l < PIX_size; ++
l) {
586 if( PIXRatesSR[
i][
j][k][
l] !=0) {
587 PIXRatesSR[
i][
j][k][
l]->SetLineColor(colors[
l]);
588 PIXRatesSR[
i][
j][k][
l]->SetMarkerStyle(34);
589 PIXRatesSR[
i][
j][k][
l]->SetMarkerColor(colors[l]);
590 PIXRatesSR[
i][
j][k][
l]->SetAxisRange(0.01,1000000,
"Y");
591 PIXRatesSR[
i][
j][k][
l]->Write();
592 PIXRatesTime[
i][
j][k][
l]->SetLineColor(colors[l]);
593 PIXRatesTime[
i][
j][k][
l]->SetMarkerStyle(34);
594 PIXRatesTime[
i][
j][k][
l]->SetMarkerColor(colors[l]);
595 PIXRatesTime[
i][
j][k][
l]->SetAxisRange(0.01,1000000,
"Y");
596 PIXRatesTime[
i][
j][k][
l]->SetNdivisions(-7,
"X");
597 PIXRatesTime[
i][
j][k][
l]->GetXaxis()->SetNdivisions(-7);
598 PIXRatesTime[
i][
j][k][
l]->GetXaxis()->SetTimeDisplay(1);
599 PIXRatesTime[
i][
j][k][
l]->GetXaxis()->SetTimeFormat(
"%m/%d");
601 PIXRatesTime[
i][
j][k][
l]->SetNdivisions(-7,
"X");
602 PIXRatesTime[
i][
j][k][
l]->GetXaxis()->SetNdivisions(-7);
603 PIXRatesTime[
i][
j][k][
l]->Write();
616 for(
unsigned int x = 0;
x < HWmapIDs.size(); ++
x){
618 sprintf(name,
"PIXratesRunFEB_%.2u", HWmapIDs[
x]);
619 int x_db = fDBmap[HWmapIDs[
x]];
620 int x_dcm = fDCMmap[HWmapIDs[
x]];
621 int x_feb = fFEBmap[HWmapIDs[
x]];
623 std::cout <<
"Now creating plots for ID: " << HWmapIDs[
x]
624 <<
" (" << x+1 <<
" of " << HWmapIDs.size() <<
" complete)" <<
std::endl;
626 TCanvas* CanvasP =
new TCanvas(name,name,1167,335);
628 for(
int y = 0;
y <numberOfPixels;
y++){
629 PIXRatesSR[x_db][x_dcm][x_feb][
y]->SetMarkerStyle(34);
630 PIXRatesSR[x_db][x_dcm][x_feb][
y]->SetAxisRange(0.01,1000000,
"Y");
631 PIXRatesSR[x_db][x_dcm][x_feb][
y]->SetMarkerSize(.5);
632 PIXRatesSR[x_db][x_dcm][x_feb][
y]->SetMarkerColor(colors[
y]);
633 PIXRatesSR[x_db][x_dcm][x_feb][
y]->Draw(
"same, Phist");
634 PIXRatesSR[x_db][x_dcm][x_feb][
y]->GetYaxis()->SetTitleOffset(0.75);
635 PIXRatesSR[x_db][x_dcm][x_feb][
y]->SetStats(0);
637 TPaveText *
pt =
new TPaveText(0.12, 0.78, 0.25, 0.89,
"NDC");
638 pt->AddText(
"Hit Rate in Pixels");
640 sprintf(address,
"DB%.2u DCM%.2u FEB%.2u", x_db, x_dcm, x_feb);
641 pt->AddText(address);
642 pt->SetLineColor(kWhite);
643 pt->SetShadowColor(kWhite);
644 pt->SetFillColor(kWhite);
651 sprintf(pngFile,
"%s/pixratesrunfeb-%s_%.2u_%.2u_%.2u.png", plotDir.c_str(), datelo.c_str(), x_db, x_dcm, x_feb);
654 sprintf(pngFile,
"%s/pixratesrunfeb-%.2u_%.2u_%.2u.png", plotDir.c_str(), x_db, x_dcm, x_feb);
656 CanvasP->Print(pngFile);
660 sprintf(name2,
"PIXratesDateFEB_%.2u", HWmapIDs[x]);
661 TCanvas* CanvasP2 =
new TCanvas(name2,name2,1167,335);
663 for(
int y = 0;
y <numberOfPixels;
y++){
664 PIXRatesTime[x_db][x_dcm][x_feb][
y]->SetMarkerStyle(34);
665 PIXRatesTime[x_db][x_dcm][x_feb][
y]->SetAxisRange(0.01,1000000,
"Y");
666 PIXRatesTime[x_db][x_dcm][x_feb][
y]->SetMarkerSize(.5);
667 PIXRatesTime[x_db][x_dcm][x_feb][
y]->SetMarkerColor(colors[
y]);
668 PIXRatesTime[x_db][x_dcm][x_feb][
y]->Draw(
"same, Phist");
669 PIXRatesTime[x_db][x_dcm][x_feb][
y]->GetYaxis()->SetTitleOffset(0.75);
670 PIXRatesTime[x_db][x_dcm][x_feb][
y]->SetStats(0);
672 TPaveText *pt2 =
new TPaveText(0.12, 0.78, 0.25, 0.89,
"NDC");
673 pt2->AddText(
"Hit Rate in Pixels");
674 sprintf(address2,
"DB%.2u DCM%.2u FEB%.2u", x_db, x_dcm, x_feb);
675 pt2->AddText(address2);
676 pt2->SetLineColor(kWhite);
677 pt2->SetShadowColor(kWhite);
678 pt2->SetFillColor(kWhite);
680 pt2->SetTextFont(42);
684 sprintf(pngFile2,
"%s/pixratesdatefeb-%s_%.2u_%.2u_%.2u.png", plotDir.c_str(), datelo.c_str(), x_db, x_dcm, x_feb);
687 sprintf(pngFile2,
"%s/pixratesdatefeb-%.2u_%.2u_%.2u.png", plotDir.c_str(), x_db, x_dcm, x_feb);
689 CanvasP2->Print(pngFile2);
694 sprintf(name3,
"FEBscoresDateFEB_%.2u", HWmapIDs[x]);
695 TCanvas* CanvasP3 =
new TCanvas(name3,name3,1167,335);
696 FEBScoresTime[x_db][x_dcm][x_feb]->SetMarkerStyle(34);
697 FEBScoresTime[x_db][x_dcm][x_feb]->SetAxisRange(0,1,
"Y");
698 FEBScoresTime[x_db][x_dcm][x_feb]->SetMarkerSize(.5);
699 FEBScoresTime[x_db][x_dcm][x_feb]->SetLineColor(
kRed-3);
700 FEBScoresTime[x_db][x_dcm][x_feb]->SetMarkerColor(
kRed-3);
701 FEBScoresTime[x_db][x_dcm][x_feb]->Draw(
"same, Phist");
702 FEBScoresTime[x_db][x_dcm][x_feb]->GetYaxis()->SetTitleOffset(0.75);
703 FEBScoresTime[x_db][x_dcm][x_feb]->SetStats(0);
706 TPaveText *pt3 =
new TPaveText(0.12, 0.78, 0.25, 0.89,
"NDC");
707 pt3->AddText(
"Issue Scores");
708 sprintf(address2,
"DB%.2u DCM%.2u FEB%.2u", x_db, x_dcm, x_feb);
709 pt3->AddText(address2);
710 pt3->SetLineColor(kWhite);
711 pt3->SetShadowColor(kWhite);
712 pt3->SetFillColor(kWhite);
714 pt3->SetTextFont(42);
717 sprintf(pngFile3,
"%s/febscoresdatefeb-%s_%.2u_%.2u_%.2u.png", plotDir.c_str(), datelo.c_str(), x_db, x_dcm, x_feb);
720 sprintf(pngFile3,
"%s/febscoresdatefeb-%.2u_%.2u_%.2u.png", plotDir.c_str(), x_db, x_dcm, x_feb);
722 CanvasP3->Print(pngFile3);
730 sprintf(name5,
"FEBscoresallDateFEB_%.2u", HWmapIDs[x]);
731 TCanvas* CanvasP5 =
new TCanvas(name5,name5,1167,335);
732 FEBNoisyTime[x_db][x_dcm][x_feb]->SetTitle(
"Issue Rates");
733 FEBNoisyTime[x_db][x_dcm][x_feb]->SetMarkerStyle(21);
734 FEBNoisyTime[x_db][x_dcm][x_feb]->SetAxisRange(rateloy,ratehiy,
"Y");
735 FEBNoisyTime[x_db][x_dcm][x_feb]->SetNdivisions(-7,
"X");
736 FEBNoisyTime[x_db][x_dcm][x_feb]->GetXaxis()->SetNdivisions(-7);
737 FEBNoisyTime[x_db][x_dcm][x_feb]->GetXaxis()->SetTimeDisplay(1);
738 FEBNoisyTime[x_db][x_dcm][x_feb]->GetXaxis()->SetTimeFormat(
"%m/%d");
739 FEBNoisyTime[x_db][x_dcm][x_feb]->SetNdivisions(-7,
"X");
740 FEBNoisyTime[x_db][x_dcm][x_feb]->GetXaxis()->SetNdivisions(-7);
741 FEBNoisyTime[x_db][x_dcm][x_feb]->SetMarkerSize(.5);
742 FEBNoisyTime[x_db][x_dcm][x_feb]->SetLineColor(632);
743 FEBNoisyTime[x_db][x_dcm][x_feb]->SetMarkerColor(632);
744 FEBNoisyTime[x_db][x_dcm][x_feb]->Draw(
"same, Phist");
745 FEBNoisyTime[x_db][x_dcm][x_feb]->GetYaxis()->SetTitleOffset(0.75);
746 FEBNoisyTime[x_db][x_dcm][x_feb]->SetStats(0);
748 FEBQuietTime[x_db][x_dcm][x_feb]->SetMarkerStyle(20);
749 FEBQuietTime[x_db][x_dcm][x_feb]->SetAxisRange(rateloy,ratehiy,
"Y");
750 FEBQuietTime[x_db][x_dcm][x_feb]->SetNdivisions(-7,
"X");
751 FEBQuietTime[x_db][x_dcm][x_feb]->GetXaxis()->SetNdivisions(-7);
752 FEBQuietTime[x_db][x_dcm][x_feb]->GetXaxis()->SetTimeDisplay(1);
753 FEBQuietTime[x_db][x_dcm][x_feb]->GetXaxis()->SetTimeFormat(
"%m/%d");
754 FEBQuietTime[x_db][x_dcm][x_feb]->SetNdivisions(-7,
"X");
755 FEBQuietTime[x_db][x_dcm][x_feb]->GetXaxis()->SetNdivisions(-7);
756 FEBQuietTime[x_db][x_dcm][x_feb]->SetMarkerSize(.5);
757 FEBQuietTime[x_db][x_dcm][x_feb]->SetLineColor(600);
758 FEBQuietTime[x_db][x_dcm][x_feb]->SetMarkerColor(600);
759 FEBQuietTime[x_db][x_dcm][x_feb]->Draw(
"same, Phist");
760 FEBQuietTime[x_db][x_dcm][x_feb]->GetYaxis()->SetTitleOffset(0.75);
761 FEBQuietTime[x_db][x_dcm][x_feb]->SetStats(0);
763 FEBNoneTime[x_db][x_dcm][x_feb]->SetMarkerStyle(22);
764 FEBNoneTime[x_db][x_dcm][x_feb]->SetAxisRange(rateloy,ratehiy,
"Y");
765 FEBNoneTime[x_db][x_dcm][x_feb]->SetNdivisions(-7,
"X");
766 FEBNoneTime[x_db][x_dcm][x_feb]->GetXaxis()->SetNdivisions(-7);
767 FEBNoneTime[x_db][x_dcm][x_feb]->GetXaxis()->SetTimeDisplay(1);
768 FEBNoneTime[x_db][x_dcm][x_feb]->GetXaxis()->SetTimeFormat(
"%m/%d");
769 FEBNoneTime[x_db][x_dcm][x_feb]->SetNdivisions(-7,
"X");
770 FEBNoneTime[x_db][x_dcm][x_feb]->GetXaxis()->SetNdivisions(-7);
771 FEBNoneTime[x_db][x_dcm][x_feb]->SetMarkerSize(.5);
772 FEBNoneTime[x_db][x_dcm][x_feb]->SetLineColor(920);
773 FEBNoneTime[x_db][x_dcm][x_feb]->SetMarkerColor(920);
774 FEBNoneTime[x_db][x_dcm][x_feb]->Draw(
"same, Phist");
775 FEBNoneTime[x_db][x_dcm][x_feb]->GetYaxis()->SetTitleOffset(0.75);
776 FEBNoneTime[x_db][x_dcm][x_feb]->SetStats(0);
778 FEBLoADCTime[x_db][x_dcm][x_feb]->SetMarkerStyle(23);
779 FEBLoADCTime[x_db][x_dcm][x_feb]->SetAxisRange(rateloy,ratehiy,
"Y");
780 FEBLoADCTime[x_db][x_dcm][x_feb]->SetNdivisions(-7,
"X");
781 FEBLoADCTime[x_db][x_dcm][x_feb]->GetXaxis()->SetNdivisions(-7);
782 FEBLoADCTime[x_db][x_dcm][x_feb]->GetXaxis()->SetTimeDisplay(1);
783 FEBLoADCTime[x_db][x_dcm][x_feb]->GetXaxis()->SetTimeFormat(
"%m/%d");
784 FEBLoADCTime[x_db][x_dcm][x_feb]->SetNdivisions(-7,
"X");
785 FEBLoADCTime[x_db][x_dcm][x_feb]->GetXaxis()->SetNdivisions(-7);
786 FEBLoADCTime[x_db][x_dcm][x_feb]->SetMarkerSize(.5);
787 FEBLoADCTime[x_db][x_dcm][x_feb]->SetLineColor(880-5);
788 FEBLoADCTime[x_db][x_dcm][x_feb]->SetMarkerColor(880-5);
789 FEBLoADCTime[x_db][x_dcm][x_feb]->Draw(
"same, Phist");
790 FEBLoADCTime[x_db][x_dcm][x_feb]->GetYaxis()->SetTitleOffset(0.75);
791 FEBLoADCTime[x_db][x_dcm][x_feb]->SetStats(0);
793 FEBHiADCTime[x_db][x_dcm][x_feb]->SetMarkerStyle(29);
794 FEBHiADCTime[x_db][x_dcm][x_feb]->SetAxisRange(rateloy,ratehiy,
"Y");
795 FEBHiADCTime[x_db][x_dcm][x_feb]->SetNdivisions(-7,
"X");
796 FEBHiADCTime[x_db][x_dcm][x_feb]->GetXaxis()->SetNdivisions(-7);
797 FEBHiADCTime[x_db][x_dcm][x_feb]->GetXaxis()->SetTimeDisplay(1);
798 FEBHiADCTime[x_db][x_dcm][x_feb]->GetXaxis()->SetTimeFormat(
"%m/%d");
799 FEBHiADCTime[x_db][x_dcm][x_feb]->SetNdivisions(-7,
"X");
800 FEBHiADCTime[x_db][x_dcm][x_feb]->GetXaxis()->SetNdivisions(-7);
801 FEBHiADCTime[x_db][x_dcm][x_feb]->SetMarkerSize(.5);
802 FEBHiADCTime[x_db][x_dcm][x_feb]->SetLineColor(800+7);
803 FEBHiADCTime[x_db][x_dcm][x_feb]->SetMarkerColor(800+7);
804 FEBHiADCTime[x_db][x_dcm][x_feb]->Draw(
"same, Phist");
805 FEBHiADCTime[x_db][x_dcm][x_feb]->GetYaxis()->SetTitleOffset(0.75);
806 FEBHiADCTime[x_db][x_dcm][x_feb]->SetStats(0);
808 FEBDropTime[x_db][x_dcm][x_feb]->SetMarkerStyle(34);
809 FEBDropTime[x_db][x_dcm][x_feb]->SetAxisRange(rateloy,ratehiy,
"Y");
810 FEBDropTime[x_db][x_dcm][x_feb]->SetNdivisions(-7,
"X");
811 FEBDropTime[x_db][x_dcm][x_feb]->GetXaxis()->SetNdivisions(-7);
812 FEBDropTime[x_db][x_dcm][x_feb]->GetXaxis()->SetTimeDisplay(1);
813 FEBDropTime[x_db][x_dcm][x_feb]->GetXaxis()->SetTimeFormat(
"%m/%d");
814 FEBDropTime[x_db][x_dcm][x_feb]->SetNdivisions(-7,
"X");
815 FEBDropTime[x_db][x_dcm][x_feb]->GetXaxis()->SetNdivisions(-7);
816 FEBDropTime[x_db][x_dcm][x_feb]->SetMarkerSize(.5);
817 FEBDropTime[x_db][x_dcm][x_feb]->SetLineColor(632+2);
818 FEBDropTime[x_db][x_dcm][x_feb]->SetMarkerColor(632+2);
819 FEBDropTime[x_db][x_dcm][x_feb]->Draw(
"same, Phist");
820 FEBDropTime[x_db][x_dcm][x_feb]->GetYaxis()->SetTitleOffset(0.75);
821 FEBDropTime[x_db][x_dcm][x_feb]->SetStats(0);
823 TLegend *l5 =
new TLegend(0.79,0.45, 0.89, 0.65);
824 l5->AddEntry(FEBNoisyTime[x_db][x_dcm][x_feb],
"noisy",
"p");
825 l5->AddEntry(FEBQuietTime[x_db][x_dcm][x_feb],
"quiet",
"p");
826 l5->AddEntry(FEBNoneTime[x_db][x_dcm][x_feb],
"none-rep",
"p");
827 l5->AddEntry(FEBLoADCTime[x_db][x_dcm][x_feb],
"lowADC",
"p");
828 l5->AddEntry(FEBHiADCTime[x_db][x_dcm][x_feb],
"highADC",
"p");
829 l5->AddEntry(FEBDropTime[x_db][x_dcm][x_feb],
"dropout",
"p");
830 l5->SetTextSize(0.05);
832 l5->SetBorderSize(0);
836 TPaveText *pt5 =
new TPaveText(0.12, 0.78, 0.25, 0.89,
"NDC");
837 pt5->AddText(
"Issue Scores");
838 sprintf(address2,
"DB%.2u DCM%.2u FEB%.2u", x_db, x_dcm, x_feb);
839 pt5->AddText(address2);
840 pt5->SetLineColor(kWhite);
841 pt5->SetShadowColor(kWhite);
842 pt5->SetFillColor(kWhite);
844 pt5->SetTextFont(42);
847 sprintf(pngFile5,
"%s/feballscoresdatefeb-%s_%.2u_%.2u_%.2u.png", plotDir.c_str(), datelo.c_str(), x_db, x_dcm, x_feb);
850 sprintf(pngFile5,
"%s/feballscoresdatefeb-%.2u_%.2u_%.2u.png", plotDir.c_str(), x_db, x_dcm, x_feb);
852 CanvasP5->Print(pngFile5);
859 sprintf(name6,
"FEBallscoresRunFEB_%.2u", HWmapIDs[x]);
860 TCanvas* CanvasP6 =
new TCanvas(name6,name6,1167,335);
861 FEBNoisySR[x_db][x_dcm][x_feb]->SetTitle(
"Issue Rates");
862 FEBNoisySR[x_db][x_dcm][x_feb]->SetMarkerStyle(20);
863 FEBNoisySR[x_db][x_dcm][x_feb]->SetAxisRange(rateloy,ratehiy,
"Y");
864 FEBNoisySR[x_db][x_dcm][x_feb]->SetMarkerSize(.5);
865 FEBNoisySR[x_db][x_dcm][x_feb]->SetLineColor(632);
866 FEBNoisySR[x_db][x_dcm][x_feb]->SetMarkerColor(632);
867 FEBNoisySR[x_db][x_dcm][x_feb]->Draw(
"same, Phist");
868 FEBNoisySR[x_db][x_dcm][x_feb]->GetYaxis()->SetTitleOffset(0.75);
869 FEBNoisySR[x_db][x_dcm][x_feb]->SetStats(0);
871 FEBQuietSR[x_db][x_dcm][x_feb]->SetMarkerStyle(21);
872 FEBQuietSR[x_db][x_dcm][x_feb]->SetAxisRange(rateloy,ratehiy,
"Y");
873 FEBQuietSR[x_db][x_dcm][x_feb]->SetMarkerSize(.5);
874 FEBQuietSR[x_db][x_dcm][x_feb]->SetLineColor(600);
875 FEBQuietSR[x_db][x_dcm][x_feb]->SetMarkerColor(600);
876 FEBQuietSR[x_db][x_dcm][x_feb]->Draw(
"same, Phist");
877 FEBQuietSR[x_db][x_dcm][x_feb]->GetYaxis()->SetTitleOffset(0.75);
878 FEBQuietSR[x_db][x_dcm][x_feb]->SetStats(0);
880 FEBNoneSR[x_db][x_dcm][x_feb]->SetMarkerStyle(22);
881 FEBNoneSR[x_db][x_dcm][x_feb]->SetAxisRange(rateloy,ratehiy,
"Y");
882 FEBNoneSR[x_db][x_dcm][x_feb]->SetMarkerSize(.5);
883 FEBNoneSR[x_db][x_dcm][x_feb]->SetLineColor(kGray);
884 FEBNoneSR[x_db][x_dcm][x_feb]->SetMarkerColor(kGray);
885 FEBNoneSR[x_db][x_dcm][x_feb]->Draw(
"same, Phist");
886 FEBNoneSR[x_db][x_dcm][x_feb]->GetYaxis()->SetTitleOffset(0.75);
887 FEBNoneSR[x_db][x_dcm][x_feb]->SetStats(0);
889 FEBLoADCSR[x_db][x_dcm][x_feb]->SetMarkerStyle(23);
890 FEBLoADCSR[x_db][x_dcm][x_feb]->SetAxisRange(rateloy,ratehiy,
"Y");
891 FEBLoADCSR[x_db][x_dcm][x_feb]->SetMarkerSize(.5);
892 FEBLoADCSR[x_db][x_dcm][x_feb]->SetLineColor(880-5);
893 FEBLoADCSR[x_db][x_dcm][x_feb]->SetMarkerColor(880-5);
894 FEBLoADCSR[x_db][x_dcm][x_feb]->Draw(
"same, Phist");
895 FEBLoADCSR[x_db][x_dcm][x_feb]->GetYaxis()->SetTitleOffset(0.75);
896 FEBLoADCSR[x_db][x_dcm][x_feb]->SetStats(0);
898 FEBHiADCSR[x_db][x_dcm][x_feb]->SetMarkerStyle(29);
899 FEBHiADCSR[x_db][x_dcm][x_feb]->SetAxisRange(rateloy,ratehiy,
"Y");
900 FEBHiADCSR[x_db][x_dcm][x_feb]->SetMarkerSize(.5);
901 FEBHiADCSR[x_db][x_dcm][x_feb]->SetLineColor(800+7);
902 FEBHiADCSR[x_db][x_dcm][x_feb]->SetMarkerColor(800+7);
903 FEBHiADCSR[x_db][x_dcm][x_feb]->Draw(
"same, Phist");
904 FEBHiADCSR[x_db][x_dcm][x_feb]->GetYaxis()->SetTitleOffset(0.75);
905 FEBHiADCSR[x_db][x_dcm][x_feb]->SetStats(0);
907 FEBDropSR[x_db][x_dcm][x_feb]->SetMarkerStyle(34);
908 FEBDropSR[x_db][x_dcm][x_feb]->SetAxisRange(rateloy,ratehiy,
"Y");
909 FEBDropSR[x_db][x_dcm][x_feb]->SetMarkerSize(.5);
910 FEBDropSR[x_db][x_dcm][x_feb]->SetLineColor(632+2);
911 FEBDropSR[x_db][x_dcm][x_feb]->SetMarkerColor(632+2);
912 FEBDropSR[x_db][x_dcm][x_feb]->Draw(
"same, Phist");
913 FEBDropSR[x_db][x_dcm][x_feb]->GetYaxis()->SetTitleOffset(0.75);
914 FEBDropSR[x_db][x_dcm][x_feb]->SetStats(0);
916 TLegend *l6 =
new TLegend(0.79,0.45, 0.89, 0.65);
917 l6->AddEntry(FEBNoisyTime[x_db][x_dcm][x_feb],
"noisy",
"p");
918 l6->AddEntry(FEBQuietTime[x_db][x_dcm][x_feb],
"quiet",
"p");
919 l6->AddEntry(FEBNoneTime[x_db][x_dcm][x_feb],
"none-rep",
"p");
920 l6->AddEntry(FEBLoADCTime[x_db][x_dcm][x_feb],
"lowADC",
"p");
921 l6->AddEntry(FEBHiADCTime[x_db][x_dcm][x_feb],
"highADC",
"p");
922 l6->AddEntry(FEBDropTime[x_db][x_dcm][x_feb],
"dropout",
"p");
923 l6->SetTextSize(0.05);
925 l6->SetBorderSize(0);
929 TPaveText *pt6 =
new TPaveText(0.12, 0.78, 0.25, 0.89,
"NDC");
930 pt6->AddText(
"Issue Scores");
931 sprintf(address2,
"DB%.2u DCM%.2u FEB%.2u", x_db, x_dcm, x_feb);
932 pt6->AddText(address2);
933 pt6->SetLineColor(kWhite);
934 pt6->SetShadowColor(kWhite);
935 pt6->SetFillColor(kWhite);
937 pt6->SetTextFont(42);
940 sprintf(pngFile6,
"%s/feballscoresrunfeb-%s_%.2u_%.2u_%.2u.png", plotDir.c_str(), datelo.c_str(), x_db, x_dcm, x_feb);
943 sprintf(pngFile6,
"%s/feballscoresrunfeb-%.2u_%.2u_%.2u.png", plotDir.c_str(), x_db, x_dcm, x_feb);
945 CanvasP6->Print(pngFile6);
void OnMonAnaHistosPIX(int idet, int runlo, int runhi, const std::string &OnMonFileList, const std::string &APDList, const std::string datehi, const std::string datelo, const std::string plotDir, bool archiveMode)
fvar< T > trunc(const fvar< T > &x)
void DiblockXY(unsigned int db, unsigned int *ix, unsigned int *iy)
string outfilename
knobs that need extra care
out_file
Append EOF lines.
Far Detector at Ash River, MN.
Near Detector in the NuMI cavern.
void FEBXY(unsigned int feb, unsigned int *ix, unsigned int *iy)
void DCMXY(unsigned int dcm, unsigned int *ix, unsigned int *iy)
void PixXY(unsigned int pix, unsigned int *ix, unsigned int *iy)