12 #include "DAQChannelMap/DAQChannelMap.h" 13 #include "DAQChannelMap/HardwareDisplay.h" 34 if (decoded==0)
return;
55 if (decoded==0)
return;
76 TObject*
h = gPad->GetSelected();
80 if (h->InheritsFrom(TH1::Class()))
fH1 = (TH1*)
h;
84 if (h->InheritsFrom(TH2::Class()))
fH2 = (TH2*)
h;
88 int px = gPad->GetEventX();
89 double xx = gPad->AbsPixeltoX(px);
91 fX = gPad->PadtoX(xx);
92 if (fX<fH1->
GetXaxis()->GetXmin())
return 0;
93 if (
fX>
fH1->GetXaxis()->GetXmax())
return 0;
102 int py = gPad->GetEventY();
103 double yy = gPad->AbsPixeltoY(py);
105 fY = gPad->PadtoY(yy);
107 double ymin =
fH2->GetYaxis()->GetXmin();
108 if (
fY<ymin)
return 0;
110 double ymax =
fH2->GetYaxis()->GetXmax();
111 if (
fY>ymax)
return 0;
131 sprintf(buff,
"Histogram %s: bin %d,%d (x=%.3f,y=%.3f) content=%.3f",
139 sprintf(buff,
"Histogram %s: Bin %d (x=%.3f) content=%.3f",
152 int ix = (
int)floor(
fX);
153 int iy = (
int)floor(
fY);
167 diblock, dcm, feb, pix);
175 "%s: Contents = %e\n" 176 "[Plane %d %s / Module %d] " 177 "[DB %.2d / DCM %.2d / FEB %2d]",
190 "%s: Contents = %e\n" 191 "[Plane n/a / Module n/a] " 192 "[DB %.2d / DCM %.2d / FEB %2d]",
205 diblock, dcm, feb, pix);
213 "%s: Contents = %e\n" 214 "[Block %.2d / Plane in block %d %s / Module %d] " 215 "[DB %.2d / DCM %.2d / FEB %2d]",
228 "%s: Contents = %e\n" 229 "[Block %.2d / Plane n/a / Module n/a] " 230 "[DB %.2d / DCM %.2d / FEB %2d]",
250 int ix = (
int)floor(
fX);
251 int iy = (
int)floor(
fY);
265 unsigned int n = sscanf(nm,
"%u_%u",&diblock,&dcm);
280 diblock, dcm, feb, pix);
288 "%s: Contents = %e\n" 289 "[Plane %d %s / Module %d / Cell %d] " 290 " [DB %.2d / DCM %.2d / FEB %2d / PIX %2d]",
305 "[Plane n/a / Module n/a / Cell n/a] " 306 "[DB %.2d / DCM %.2d / FEB %2d / PIX %2d]",
320 diblock, dcm, feb, pix);
328 "%s: Contents = %e\n" 329 "[Block %.2d / Plane in block %d %s / Module %d / Cell %d] " 330 " [DB %.2d / DCM %.2d / FEB %2d / PIX %2d]",
346 "[Block %.2d / Plane n/a / Module n/a / Cell n/a] " 347 "[DB %.2d / DCM %.2d / FEB %2d / PIX %2d]",
373 &diblock, &block, &dcm, &feb, &pix);
388 "%s: Contents = %e\n" 389 "[Plane %d V / Module %d / Cell %d] " 390 "[DB %.2d / DCM %.2d / FEB %2d / PIX %2d]",
403 "%s: Contents = %e\n" 419 "%s: Contents = %e\n" 420 "[Block %.2d / Plane in block %d V / Module %d / Cell %d] " 421 "[DB %.2d / DCM %.2d / FEB %2d / PIX %2d]",
435 "%s: Contents = %e\n" 458 &diblock, &block, &dcm, &feb, &pix);
473 "%s: Contents = %e\n" 474 "[Plane %d H / Module %d / Cell %d] " 475 "[DB %.2d / DCM %.2d / FEB %2d / PIX %2d]",
488 "%s: Contents = %e\n" 504 "%s: Contents = %e\n" 505 "[Block %.2d / Plane in block %d H / Module %d / Cell %d] " 506 "[DB %.2d / DCM %.2d / FEB %2d / PIX %2d]",
520 "%s: Contents = %e\n" 546 unsigned int n = sscanf(nm,
"%u",&diblock);
555 dcm = (
fYbin-1)/64+1;
567 diblock, dcm, feb, pix);
573 "%s: Contents = %e\n" 574 "[Plane %d %s / Module %d] " 575 "[DB %.2d / DCM %.2d / FEB %2d ]",
591 diblock, dcm, feb, pix);
597 "%s: Contents = %e\n" 598 "[Block %.2d / Plane in block %d %s / Module %d] " 599 "[DB %.2d / DCM %.2d / FEB %2d ]",
627 "%s: Contents = %e\n" 628 "[DB %.2d / DCM %.2d ]",
641 int ix = (
int)floor(
fX);
642 int iy = (
int)floor(
fY);
652 const std::string DCMHitRateMapHighADC(
"DCMHitRateMapHighADC");
653 const std::string DCMHitRateMapLowADC (
"DCMHitRateMapLowADC");
654 const std::string DCMHitRateMapMipADC (
"DCMHitRateMapMipADC");
656 const std::string FEBHitRateMapHighADC(
"FEBHitRateMapHighADC");
657 const std::string FEBHitRateMapLowADC (
"FEBHitRateMapLowADC");
658 const std::string FEBHitRateMapMipADC (
"FEBHitRateMapMipADC");
659 const std::string PixelHitRateMap (
"PixelHitRateMap");
662 const std::string DCMHitMapHighADC(
"DCMHitMapHighADC");
663 const std::string DCMHitMapLowADC (
"DCMHitMapLowADC");
664 const std::string DCMHitMapMipADC (
"DCMHitMapMipADC");
666 const std::string FEBHitMapHighADC(
"FEBHitMapHighADC");
667 const std::string FEBHitMapLowADC (
"FEBHitMapLowADC");
668 const std::string FEBHitMapMipADC (
"FEBHitMapMipADC");
671 const std::string TotADCFEBHitMap (
"TotADCFEBHitMap");
676 const std::string FEBFbyPixelDCM(
"FEBFbyPixelDCM");
677 const std::string FEBEbyPixelDCM(
"FEBEbyPixelDCM");
678 const std::string FIFObyPixelDCM(
"FIFObyPixelDCM");
679 const std::string TECCEnblbyPixelDCM(
"TECCEnblbyPixelDCM");
680 const std::string EDAQbyPixelDCM(
"EDAQbyPixelDCM");
682 const std::string TECCErrbyPixelDCM(
"TECCErrbyPixelDCM");
683 const std::string ADCEbyPixelDCM(
"ADCEbyPixelDCM");
706 sprintf(temp,
"DCM_%.2d_%.2d",diblock,dcm);
716 sprintf(hist,
"PixelsDCM_%.2d_%.2d",diblock,dcm);
723 sprintf(hist,
"HighADCPixelsDCM_%.2d_%.2d",diblock,dcm);
730 sprintf(hist,
"LowADCPixelsDCM_%.2d_%.2d",diblock,dcm);
737 sprintf(hist,
"MipADCPixelsDCM_%.2d_%.2d",diblock,dcm);
745 sprintf(hist,
"PixelsRateDCM_%.2d_%.2d",diblock,dcm);
752 sprintf(hist,
"HighADCPixelsRateDCM_%.2d_%.2d",diblock,dcm);
759 sprintf(hist,
"LowADCPixelsRateDCM_%.2d_%.2d",diblock,dcm);
766 sprintf(hist,
"MipADCPixelsRateDCM_%.2d_%.2d",diblock,dcm);
774 sprintf(hist,
"TotADCPixelsDCM_%.2d_%.2d",diblock,dcm);
782 sprintf(hist,
"DPEperDCM_%.2d_%.2d",diblock,dcm);
788 sprintf(hist,
"LSEperDCM_%.2d_%.2d",diblock,dcm);
794 sprintf(hist,
"DbMperDCM_%.2d_%.2d",diblock,dcm);
800 sprintf(hist,
"FEBFperDCM_%.2d_%.2d",diblock,dcm);
806 sprintf(hist,
"FEBEperDCM_%.2d_%.2d",diblock,dcm);
812 sprintf(hist,
"FIFOperDCM_%.2d_%.2d",diblock,dcm);
818 sprintf(hist,
"TECCEnblperDCM_%.2d_%.2d",diblock,dcm);
824 sprintf(hist,
"EDAQperDCM_%.2d_%.2d",diblock,dcm);
830 sprintf(hist,
"DDEperDCM_%.2d_%.2d",diblock,dcm);
836 sprintf(hist,
"TECCErrperDCM_%.2d_%.2d",diblock,dcm);
842 sprintf(hist,
"ADCEperDCM_%.2d_%.2d",diblock,dcm);
848 sprintf(hist,
"OFEperDCM_%.2d_%.2d",diblock,dcm);
854 sprintf(hist,
"PEperDCM_%.2d_%.2d",diblock,dcm);
860 sprintf(hist,
"CEperDCM_%.2d_%.2d",diblock,dcm);
866 sprintf(hist,
"BCperDCM_%.2d_%.2d",diblock,dcm);
void PlaneCellToDAQ(unsigned int plane, unsigned int *pinb, unsigned int *view, unsigned int *module, unsigned int cell, unsigned int *db, unsigned int *block, unsigned int *dcm, unsigned int *feb, unsigned int *pix)
void HwDetHistogramInfo()
diblock
print "ROW IS " print row
void DoubleClick(const PlotOptions &plotopt)
void DAQToPlaneInBlockModCell(unsigned int *block, unsigned int *pinb, unsigned int *view, unsigned int *module, unsigned int *cell, unsigned int db, unsigned int dcm, unsigned int feb, unsigned int pix)
void XYDCM(unsigned int *dcm, unsigned int iy)
unsigned int fNdcmSide
Number of DMC's per diblock on side of detector.
void HwPCHistogramInfoY()
void HwDCMHistogramInfo()
static constexpr Double_t nm
void XYToDAQ(unsigned int *db, unsigned int *dcm, unsigned int *feb, unsigned int *pix, unsigned int ix, unsigned int iy)
daqchannelmap::HardwareDisplay * fHwMap
Identifier for the Y measuring view of the detector (side)
double fX
X position of click.
block
print "ROW IS " print row
void DefaultHistogramInfo()
static GUIModel & Instance()
std::string fHistoName
Name of Current Histogram.
double fY
Y position of click.
correl_xv GetXaxis() -> SetDecimals()
Identifier for the X measuring view of the detector (top)
bool fHwLblDet
Apply hardware label to detector-wide plot.
void SetHistogramInfoText(const char *t)
unsigned int fNdcmTop
Number of DMC's per diblock on top of detector.
bool fHwLblPCX
Apply hardware labels to plane/cell plot (X-view)
void SingleClick(const PlotOptions &plotopt)
int fYbin
Y bin number of click.
bool fHwLblPCY
Apply hardware labels to plane/cell plot (Y-view)
const char * Current() const
void SetCurrentHistogram(const char *h)
CurrentHistogram fCurrentHistogram
void DAQToPlaneModCell(unsigned int *block, unsigned int *plane, unsigned int *view, unsigned int *module, unsigned int *cell, unsigned int db, unsigned int dcm, unsigned int feb, unsigned int pix)
bool fHwLblDCM
Apply hardware label to DCM plot.
TH2 * fH2
2D histogram clicked on
void HwPCHistogramInfoX()
const GUIModelData & Data() const
int fXbin
X bin number of click.
void XYDiblock(unsigned int *db, unsigned int ix)
Online Monitoring package header.
TH1 * fH1
1D histogram clicked on