123 std::string path =
getFullPath(geoPath,
"Misc",
"");
126 std::string name,title,xaxis,yaxis;
127 int highbound,lowbound,nbins;
130 name =
"h_csc_calib_numSignificant";
131 title =
"Number of significant results.";
133 yaxis =
"Num channels with bad value.";
136 m_h_numBad =
new TH1I(name.c_str(),title.c_str(),highbound-lowbound+1,lowbound,highbound+1);
137 m_h_numBad->GetYaxis()->SetTitle(yaxis.c_str());
138 m_h_numBad->GetXaxis()->SetTitle(xaxis.c_str());
139 std::stringstream pedBinTitle; pedBinTitle <<
"#Delta ped > " <<
m_pedMaxDiff;
141 std::stringstream noiseBinTitle; noiseBinTitle <<
"#Delta noise > "<<
m_noiseMaxDiff;
143 std::stringstream rmsBinTitle; rmsBinTitle <<
"#Delta RMS > " <<
m_rmsMaxDiff;
145 std::stringstream f001BinTitle; f001BinTitle <<
"#Delta F001 > " <<
m_f001MaxDiff;
147 std::stringstream statisticsBinTitle; statisticsBinTitle <<
"N Entries < " <<
m_minAmpHistEntries;
149 std::stringstream chiBinTitle; chiBinTitle <<
"#frac{#chi^{2}}{ndf} > " <<
m_chi2Max;
157 name =
"h_csc_calib_pedMissingChannels";
158 title =
"Channels Missing Data From Pedestal Run.";
159 xaxis =
"Channel (Hash ID)";
160 yaxis =
"Number of Parameter Types Missing";
171 std::string pedDataName =
"ped";
172 std::string pedDataTitle =
"Pedestals";
173 std::string pedSubDir =
"Ped";
175 std::string noiseDataName =
"noise";
176 std::string noiseDataTitle =
"Noise (ped sigma)";
177 std::string noiseSubDir =
"Noise";
179 std::string chi2DataName =
"chi2";
180 std::string chi2DataTitle =
"Chi^2/ndf for Pedestal Gaussian Fit";
181 std::string chi2SubDir =
"Chi2";
183 std::string rmsDataName =
"rms";
184 std::string rmsDataTitle =
"RMS from gaussian distribution";
185 std::string rmsSubDir =
"RMS";
187 std::string f001DataName =
"f001";
188 std::string f001DataTitle =
"F001";
189 std::string f001SubDir =
"F001";
191 std::string onlTHoldBreachDataName =
"onlTHoldBreach";
192 std::string onlTHoldBreachDataTitle =
"Online Threshold Breaches";
193 std::string onlTHoldBreachSubDir =
"OnlTHoldBreaches";
195 std::string nEntriesDataName =
"nEntries";
196 std::string nEntriesDataTitle =
"Number of Entries from Pedestal Amplitude Hist";
197 std::string nEntriesSubDir =
"NumEntries";
199 std::string maxBitCorrDataName =
"maxBitCorr";
200 std::string maxBitCorrDataTitle =
"Maximimum Bit Correlation";
201 std::string maxBitCorrSubDir =
"MaxBitCorr";
205 std::string newCatName =
"new";
206 std::string newCatTitle =
"New";
208 std::string oldCatName =
"old";
209 std::string oldCatTitle =
"COOL";
211 std::string diffCatName =
"diff";
212 std::string diffCatTitle =
"Change of ";
215 std::string pedAxisLabel =
"Pedestal Mean (ADC counts)";
216 std::string pedDiffAxisLabel =
"Pedestal Difference (ADC counts)";
218 float pedLowBound = 1900;
219 float pedHighBound = 2200;
221 std::string noiseAxisLabel =
"Pedestal Noise (ADC counts)";
222 std::string noiseDiffAxisLabel =
"Noise Difference (ADC counts)";
223 int noiseNumBins = 300;
224 float noiseLowBound = 0;
225 float noiseHighBound = 30;
227 std::string chi2AxisLabel =
"Chi^2/ndf";
228 int chi2NumBins = 500;
229 float chi2LowBound = 0;
230 float chi2HighBound = 500;
232 std::string rmsAxisLabel =
"RMS (ADC Counts)";
233 std::string rmsDiffAxisLabel =
"RMS Difference (ADC Counts)";
234 int rmsNumBins = 300;
235 float rmsLowBound =0;
236 float rmsHighBound = 30;
238 std::string f001AxisLabel =
"F001 (ADC)";
239 std::string f001DiffAxisLabel =
"F001 Difference (ADC)";
240 int f001NumBins = 350;
241 float f001LowBound =1950;
242 float f001HighBound = 2300;
244 std::string nEntriesAxisLabel =
"Number of Entries";
245 int nEntriesNumBins = 20;
246 float nEntriesLowBound = 0;
247 float nEntriesHighBound = 10000;
248 uint16_t nEntriesHistMask = 0x3F;
250 std::string maxBitCorrAxisLabel =
"Correlation";
251 int maxBitCorrNumBins = 300;
252 float maxBitCorrLowBound = -3;
253 float maxBitCorrHighBound = 3;
291 pedAxisLabel, pedNumBins, pedLowBound, pedHighBound, pedSubDir) );
295 pedAxisLabel, pedNumBins, pedLowBound, pedHighBound, pedSubDir) );
299 pedDiffAxisLabel, 100, -2, 2, pedSubDir) );
303 newCatTitle, noiseAxisLabel, noiseNumBins, noiseLowBound, noiseHighBound, noiseSubDir) );
307 oldCatTitle, noiseAxisLabel, 100, -2, 2, noiseSubDir) );
311 diffCatTitle, noiseDiffAxisLabel, noiseNumBins, -1*noiseHighBound, noiseHighBound,noiseSubDir) );
315 newCatTitle, rmsAxisLabel, rmsNumBins, rmsLowBound, rmsHighBound, rmsSubDir) );
319 oldCatTitle, rmsAxisLabel, rmsNumBins, rmsLowBound, rmsHighBound, rmsSubDir) );
323 diffCatTitle, rmsDiffAxisLabel, rmsNumBins, -1*rmsHighBound, rmsHighBound,rmsSubDir) );
327 newCatTitle, f001AxisLabel, f001NumBins, f001LowBound, f001HighBound, f001SubDir) );
331 oldCatTitle, f001AxisLabel, 100, -2, 2, f001SubDir) );
335 diffCatTitle, f001DiffAxisLabel, 60, -30, 30, f001SubDir) );
339 "" ,
"Number of Online THold Breachs", 100, 0, 1000, onlTHoldBreachSubDir) );
343 "", nEntriesAxisLabel, nEntriesNumBins, nEntriesLowBound, nEntriesHighBound, nEntriesSubDir, nEntriesHistMask) );
346 chi2AxisLabel, chi2NumBins, chi2LowBound, chi2HighBound, chi2SubDir) );
352 "",
"", maxBitCorrAxisLabel, maxBitCorrNumBins, maxBitCorrLowBound,
353 maxBitCorrHighBound, maxBitCorrSubDir) );
357 return StatusCode::SUCCESS;
530 std::string path =
getFullPath(geoPath,
"Misc",
"");
532 m_h2_rmsVnoiseEta =
new TH2I(
"rmsVsigma_eta",
"RMS versus sigma for #eta strips", 100, 0, 30, 100, 0,30) ;
537 m_h2_rmsVnoisePhi =
new TH2I(
"rmsVsigma_phi",
"RMS versus sigma for #phi strips", 100, 0, 30, 100, 0,30) ;
544 size_t nEntries = rmsVec.size();
545 if(nEntries != noiseVec.size()){
547 return StatusCode::FAILURE;
551 for(
unsigned int hashId = 0; hashId < nEntries; hashId++){
555 int measuresPhi =
m_idHelperSvc->cscIdHelper().measuresPhi(chanId);
575 <<
m_histKey <<
" aborting retrieving hists " );
576 return StatusCode::RECOVERABLE;
579 if(repCont->
size() != 1)
582 <<
" does not have a size of one. Do not know how to proceed, so aborting"
583 <<
" retrieving calibration histograms." );
584 return StatusCode::RECOVERABLE;
589 if((not pedReport) or (pedReport->
getLabel() !=
"pedAmps"))
592 <<
" Aborting hist retrieval." );
593 return StatusCode::RECOVERABLE;
599 <<
" Won't be in monitoring output file" );
603 ATH_MSG_INFO(
"No bit histogram vector found from calibration. "
604 <<
" Won't be in monitoring output file. " );
614 for(
unsigned int idItr = 0; idItr <=
m_maxHashId; idItr++)
619 <<
" is being retrieved." );
624 int stationSize =
m_idHelperSvc->cscIdHelper().stationName(chanId);
625 int stationEta =
m_idHelperSvc->cscIdHelper().stationEta(chanId);
626 int stationPhi =
m_idHelperSvc->cscIdHelper().stationPhi(chanId);
627 int wireLayer =
m_idHelperSvc->cscIdHelper().wireLayer(chanId);
628 int measuresPhi =
m_idHelperSvc->cscIdHelper().measuresPhi(chanId);
630 int sector =
getSector(stationPhi, stationSize);
632 std::string geoPath =
getGeoPath(stationEta, sector, wireLayer, measuresPhi);
634 std::string pedAmpPath =
getFullPath(geoPath,
"PedAmpHists",
"");
635 std::string sampPath =
getFullPath(geoPath,
"SampHists",
"");
636 std::string bitHistPath =
getFullPath(geoPath,
"BitHists",
"");
637 std::string bitCorrelationPath(
"");
639 bitCorrelationPath =
getFullPath(geoPath,
"BitCorrelations",
"");
641 ATH_MSG_DEBUG(
"Hash Id: " << idItr <<
". Booking channel histograms in paths : " << pedAmpPath <<
" and " << bitHistPath );
648 sourceHist =
const_cast<TH1I*
>((*pedAmpHists)[idItr]);
651 ATH_MSG_ERROR(
"There is no pedestal amplitude histogram with hashId "
653 return StatusCode::RECOVERABLE;
656 double nEntries = sourceHist->GetEntries();
661 <<
" but maximum m_nEntriesColl.data.size() == "
663 return StatusCode::RECOVERABLE;
675 std::stringstream name;
678 <<
"_sector_" << sector
679 <<
"_layer_" << wireLayer
680 <<
"_" << (measuresPhi ?
"trans" :
"prec")
682 << std::setfill (
'0') << std::setw (measuresPhi ? 2 : 3)
687 sourceHist->SetName(name.str().c_str());
696 size_t hNum = histVect->
size();
697 for(
size_t hCnt = 0; hCnt < hNum; hCnt++) {
698 sourceHist =
const_cast<TH1I*
>((*histVect)[hCnt]);
699 std::stringstream name;
702 <<
"_sector_" << sector
703 <<
"_layer_" << wireLayer
704 <<
"_" << (measuresPhi ?
"trans" :
"prec")
706 << std::setfill (
'0') << std::setw (measuresPhi ? 2 : 3)
710 sourceHist->SetName(name.str().c_str());
720 sourceHist =
const_cast<TH1I*
>((*bitHists)[idItr]);
724 << idItr <<
" Quiting out of detailed histogram loop." );
725 return StatusCode::RECOVERABLE;
728 std::stringstream name2;
731 <<
"_sector_" << sector
732 <<
"_layer_" << wireLayer
733 <<
"_" << (measuresPhi ?
"trans" :
"prec")
735 << std::setfill (
'0') << std::setw (measuresPhi ? 2 : 3)
737 sourceHist->SetName(name2.str().c_str());
745 TH2F* hist =
const_cast<TH2F*
>((*bitCorrelations)[idItr]);
750 size_t nx = hist->GetXaxis()->GetNbins();
751 size_t ny = hist->GetYaxis()->GetNbins();
752 size_t x_cut = nx -1;
753 size_t y_cut = ny -1;
754 for(
size_t xi = 1; xi < x_cut; xi++){
755 for(
size_t yi = 1; yi < y_cut; yi++){
758 float val = hist->GetBinContent(xi,yi);
770 ATH_MSG_DEBUG(
"No channels flagged for debug info retrieval" );
780 return StatusCode::SUCCESS;