diff --git a/TileCalorimeter/TileMonitoring/TileMonitoring/TileDigitsMonTool.h b/TileCalorimeter/TileMonitoring/TileMonitoring/TileDigitsMonTool.h index 93228b59b96dc72c325678ae6f06d6b54af457c1..6e67bf69d9bbafc9d17d8d5e1a0e0f335621fa7c 100644 --- a/TileCalorimeter/TileMonitoring/TileMonitoring/TileDigitsMonTool.h +++ b/TileCalorimeter/TileMonitoring/TileMonitoring/TileDigitsMonTool.h @@ -122,35 +122,40 @@ class TileDigitsMonTool: public TilePaterMonTool bool m_bigain; int m_nEvents; int m_nSamples; - double m_sumPed1[5][64][48][2]; - double m_sumPed2[5][64][48][2]; - double m_sumRms1[5][64][48][2]; - double m_sumRms2[5][64][48][2]; - double m_meanAmp[5][64][2][48]; - double m_meanAmp_ij[5][64][2][48][48]; - int m_nEvents_i[5][64][2][48]; - int m_nEvents_ij[5][64][2][48][48]; - double m_cov_ratio[5][64][2]; //covariance ratio printed in covariance plots - uint8_t m_stuck_probs[5][64][48][2][10]; - bool m_allHistsFilled; + // Factor these out to avoid triggering the ubsan sanity checks. + struct Data { + double m_sumPed1[5][64][48][2]; + double m_sumPed2[5][64][48][2]; + double m_sumRms1[5][64][48][2]; + double m_sumRms2[5][64][48][2]; + double m_meanAmp[5][64][2][48]; + double m_meanAmp_ij[5][64][2][48][48]; + int m_nEvents_i[5][64][2][48]; + int m_nEvents_ij[5][64][2][48][48]; + double m_cov_ratio[5][64][2]; //covariance ratio printed in covariance plots + uint8_t m_stuck_probs[5][64][48][2][10]; + + //vector to hold data corruption information + // std::vector<bool> corrup[5][64][2]; //ros, drawer, gain (index of each vector is channel) + bool m_corrup[5][64][2][16]; //ros, drawer, gain, DMU + + //Pointers to Histograms + std::vector<TH1S *> m_hist0[5][64]; // ros,drawer + std::vector<TH1S *> m_hist1[5][64][48][2]; // ros,drawer,channel,gain + std::vector<TH1I *> m_hist_DMUerr[5][64][48][2]; // ros,drawer,channel,gain for DMU BCID/CRC errors + std::vector<TH2F *> m_hist2[5][64][2]; + std::vector<TProfile *> m_histP[5][64][48][2]; + std::vector<TH1F *> m_final_hist1[5][64][2]; // ros, drawer, gain + std::vector<TH2F *> m_final_hist2[5][64][2]; + TH2C* m_final_hist_stucks[5][64][2]; // stuck bits, saturation: ros, drawer. gain + std::vector<TH1D *> m_outInHighGain; + + //shifted histos for DQMF + TH1S * m_shifted_hist[5][64][49][2]; // one extra histo for reference! - //vector to hold data corruption information - // std::vector<bool> corrup[5][64][2]; //ros, drawer, gain (index of each vector is channel) - bool m_corrup[5][64][2][16]; //ros, drawer, gain, DMU - - //Pointers to Histograms - std::vector<TH1S *> m_hist0[5][64]; // ros,drawer - std::vector<TH1S *> m_hist1[5][64][48][2]; // ros,drawer,channel,gain - std::vector<TH1I *> m_hist_DMUerr[5][64][48][2]; // ros,drawer,channel,gain for DMU BCID/CRC errors - std::vector<TH2F *> m_hist2[5][64][2]; - std::vector<TProfile *> m_histP[5][64][48][2]; - std::vector<TH1F *> m_final_hist1[5][64][2]; // ros, drawer, gain - std::vector<TH2F *> m_final_hist2[5][64][2]; - TH2C* m_final_hist_stucks[5][64][2]; // stuck bits, saturation: ros, drawer. gain - std::vector<TH1D *> m_outInHighGain; - - //shifted histos for DQMF - TH1S * m_shifted_hist[5][64][49][2]; // one extra histo for reference! + }; + std::unique_ptr<Data> m_data; + bool m_allHistsFilled; //For test //int hp; diff --git a/TileCalorimeter/TileMonitoring/TileMonitoring/TileRawChannelMonTool.h b/TileCalorimeter/TileMonitoring/TileMonitoring/TileRawChannelMonTool.h index bd62f79f7cc4d39274cb462e54a5db360e6b44ba..00b33e496558e5989e884fea43605b721277a080 100644 --- a/TileCalorimeter/TileMonitoring/TileMonitoring/TileRawChannelMonTool.h +++ b/TileCalorimeter/TileMonitoring/TileMonitoring/TileRawChannelMonTool.h @@ -136,23 +136,26 @@ class TileRawChannelMonTool: public TilePaterMonTool { bool m_bigain; int m_nEvents; - float m_rangeQ[2][2][3][48]; - double m_timeCov[5][64][48][2][2][6]; - double m_timeCovCorr[5][64][48][2][2][3]; //Lukas - - //Pointers to Histograms - std::vector<TH1S *> m_hist1[5][64][48][2]; // ros,drawer,channel,gain - std::vector<TH2S *> m_hist2[5][64][48][2]; - std::vector<TH1F *> m_finalHist1[5][64][2][2]; //ros, drawer,capacitor, gain - std::vector<TH2F *> m_finalHist2[256][2]; - - std::vector<TH1F *> m_histDsp1[5][64][48][2]; // ros,drawer,channel,gain - std::vector<TH2F *> m_histDsp2[5][64][48][2]; - std::vector<TH1F *> m_finalHistDsp1[5][64][2]; //ros,drawer,gain - std::vector<TH2F *> m_finalHistDsp2[5][64][2]; - std::vector<TH1F *> m_hBarDsp1[5][64][2]; // ros, drawer,gain - - std::vector<TH1F *> m_summaryPmts[5][64][2][2]; + struct Data { + float m_rangeQ[2][2][3][48]; + double m_timeCov[5][64][48][2][2][6]; + double m_timeCovCorr[5][64][48][2][2][3]; //Lukas + + //Pointers to Histograms + std::vector<TH1S *> m_hist1[5][64][48][2]; // ros,drawer,channel,gain + std::vector<TH2S *> m_hist2[5][64][48][2]; + std::vector<TH1F *> m_finalHist1[5][64][2][2]; //ros, drawer,capacitor, gain + std::vector<TH2F *> m_finalHist2[256][2]; + + std::vector<TH1F *> m_histDsp1[5][64][48][2]; // ros,drawer,channel,gain + std::vector<TH2F *> m_histDsp2[5][64][48][2]; + std::vector<TH1F *> m_finalHistDsp1[5][64][2]; //ros,drawer,gain + std::vector<TH2F *> m_finalHistDsp2[5][64][2]; + std::vector<TH1F *> m_hBarDsp1[5][64][2]; // ros, drawer,gain + + std::vector<TH1F *> m_summaryPmts[5][64][2][2]; + }; + std::unique_ptr<Data> m_data; TileRawChannelUnit::UNIT m_calibUnit; diff --git a/TileCalorimeter/TileMonitoring/src/TileDigitsMonTool.cxx b/TileCalorimeter/TileMonitoring/src/TileDigitsMonTool.cxx index 72b8c1f9128023572cc0277f0eacff7418e94f8f..f823d98163b262ce65a7b3d0ad297f728a8b4320 100644 --- a/TileCalorimeter/TileMonitoring/src/TileDigitsMonTool.cxx +++ b/TileCalorimeter/TileMonitoring/src/TileDigitsMonTool.cxx @@ -54,16 +54,6 @@ TileDigitsMonTool::TileDigitsMonTool(const std::string & type, const std::string , m_cispar(0) , m_nEvents(0) , m_nSamples(0) - , m_sumPed1{} - , m_sumPed2{} - , m_sumRms1{} - , m_sumRms2{} - , m_meanAmp{} - , m_meanAmp_ij{} - , m_nEvents_i{} - , m_nEvents_ij{} - , m_cov_ratio{} - , m_stuck_probs{} , m_allHistsFilled(false) //, hp(-1) //, hb(-1) @@ -103,15 +93,16 @@ StatusCode TileDigitsMonTool::initialize() m_nEvents = 0; m_allHistsFilled = false; - memset(m_sumPed1, 0, sizeof(m_sumPed1)); - memset(m_sumPed2, 0, sizeof(m_sumPed2)); - memset(m_sumRms1, 0, sizeof(m_sumRms1)); - memset(m_sumRms2, 0, sizeof(m_sumRms2)); - memset(m_meanAmp, 0, sizeof(m_meanAmp)); - memset(m_meanAmp_ij, 0, sizeof(m_meanAmp_ij)); - memset(m_nEvents_i, 0, sizeof(m_nEvents_i)); - memset(m_nEvents_ij, 0, sizeof(m_nEvents_ij)); - memset(m_stuck_probs, 0, sizeof(m_stuck_probs)); + m_data = std::make_unique<Data>(); + memset(m_data->m_sumPed1, 0, sizeof(m_data->m_sumPed1)); + memset(m_data->m_sumPed2, 0, sizeof(m_data->m_sumPed2)); + memset(m_data->m_sumRms1, 0, sizeof(m_data->m_sumRms1)); + memset(m_data->m_sumRms2, 0, sizeof(m_data->m_sumRms2)); + memset(m_data->m_meanAmp, 0, sizeof(m_data->m_meanAmp)); + memset(m_data->m_meanAmp_ij, 0, sizeof(m_data->m_meanAmp_ij)); + memset(m_data->m_nEvents_i, 0, sizeof(m_data->m_nEvents_i)); + memset(m_data->m_nEvents_ij, 0, sizeof(m_data->m_nEvents_ij)); + memset(m_data->m_stuck_probs, 0, sizeof(m_data->m_stuck_probs)); //For test stuck_bits_maker //hp = 1; @@ -138,7 +129,7 @@ StatusCode TileDigitsMonTool::bookHists() } } - m_outInHighGain.push_back(book1D("Summary", "OverFlowInHighGain", "Injected charge with overflow in high gain", 10010, -0.5, 1000.5)); + m_data->m_outInHighGain.push_back(book1D("Summary", "OverFlowInHighGain", "Injected charge with overflow in high gain", 10010, -0.5, 1000.5)); //SetBookStatus(true); @@ -189,7 +180,7 @@ void TileDigitsMonTool::bookHists(int ros, int drawer) sStr << moduleName << " DMU Header " << gain[3 + gn] << " errors"; histTitle = sStr.str(); - m_hist2[ros][drawer][adc].push_back(book2F(subDir, histName, histTitle, 16, 0., 16., 8, -0.5, 7.5)); + m_data->m_hist2[ros][drawer][adc].push_back(book2F(subDir, histName, histTitle, 16, 0., 16., 8, -0.5, 7.5)); } for (int ch = 0; ch < 48; ++ch) { @@ -213,7 +204,7 @@ void TileDigitsMonTool::bookHists(int ros, int drawer) sStr << moduleName << " CH " << ch << gain[3 + gn] << " sample[0]"; histTitle = sStr.str(); - m_hist1[ros][drawer][ch][adc].push_back(book1S(subDir, histName, histTitle, 151, -0.5, 150.5)); + m_data->m_hist1[ros][drawer][ch][adc].push_back(book1S(subDir, histName, histTitle, 151, -0.5, 150.5)); // RMS over samples in event sStr.str(""); @@ -224,7 +215,7 @@ void TileDigitsMonTool::bookHists(int ros, int drawer) sStr << moduleName << " CH " << ch << gain[3 + gn] << " mean RMS in event"; histTitle = sStr.str(); - m_hist1[ros][drawer][ch][adc].push_back(book1S(subDir, histName, histTitle, 101, -0.05, 10.05)); + m_data->m_hist1[ros][drawer][ch][adc].push_back(book1S(subDir, histName, histTitle, 101, -0.05, 10.05)); //all samples to find stuck bits sStr.str(""); @@ -235,7 +226,7 @@ void TileDigitsMonTool::bookHists(int ros, int drawer) sStr << moduleName << " CH " << ch << gain[3 + gn] << " all samples"; histTitle = sStr.str(); - m_hist1[ros][drawer][ch][adc].push_back(book1S(subDir, histName, histTitle, 1024, -0.5, 1023.5)); + m_data->m_hist1[ros][drawer][ch][adc].push_back(book1S(subDir, histName, histTitle, 1024, -0.5, 1023.5)); // average profile for a given channel/gain sStr.str(""); @@ -246,7 +237,7 @@ void TileDigitsMonTool::bookHists(int ros, int drawer) sStr << moduleName << " CH " << ch << gain[3 + gn] << " average profile"; histTitle = sStr.str(); - m_histP[ros][drawer][ch][adc].push_back(bookProfile(subDir, histName, histTitle, m_nSamples, 0.0, m_nSamples * 1.0, -0.5, 1023.5)); + m_data->m_histP[ros][drawer][ch][adc].push_back(bookProfile(subDir, histName, histTitle, m_nSamples, 0.0, m_nSamples * 1.0, -0.5, 1023.5)); // shifted samples histograms @@ -262,7 +253,7 @@ void TileDigitsMonTool::bookHists(int ros, int drawer) sStr << moduleName << " CH " << ch << gain[3 + gn] << " all samples shifted"; histTitle = sStr.str(); - m_shifted_hist[ros][drawer][ch][adc] = book1S(subDir, histName, histTitle, shiftnbins, shiftxmin, shiftxmax); + m_data->m_shifted_hist[ros][drawer][ch][adc] = book1S(subDir, histName, histTitle, shiftnbins, shiftxmin, shiftxmax); if (ch < 16) { // use first 16 channels to store BCID/CRC errors (one per TileDMU) @@ -278,7 +269,7 @@ void TileDigitsMonTool::bookHists(int ros, int drawer) sStr << moduleName << " DMU0 " << ch << gain[3 + gn] << " BCID"; histTitle = sStr.str(); - m_hist1[ros][drawer][ch][adc].push_back(book1S(subDir, histName, histTitle, 100, 2050.5, 2150.5)); + m_data->m_hist1[ros][drawer][ch][adc].push_back(book1S(subDir, histName, histTitle, 100, 2050.5, 2150.5)); sStr.str(""); sStr << moduleName << "_dmu_" << sDmu << gain[gn] << "_BCID_err"; @@ -288,7 +279,7 @@ void TileDigitsMonTool::bookHists(int ros, int drawer) sStr << moduleName << " DMU0 " << ch << gain[3 + gn] << " BCID errors"; histTitle = sStr.str(); - m_hist_DMUerr[ros][drawer][ch][adc].push_back(book1I(subDir, histName, histTitle, 3, -0.5, 2.5)); + m_data->m_hist_DMUerr[ros][drawer][ch][adc].push_back(book1I(subDir, histName, histTitle, 3, -0.5, 2.5)); if (adc) continue; // don't book CRC for high gain @@ -300,7 +291,7 @@ void TileDigitsMonTool::bookHists(int ros, int drawer) sStr << moduleName << " DMU0 " << ch << " CRC errors"; histTitle = sStr.str(); - m_hist_DMUerr[ros][drawer][ch][0].push_back(book1I(subDir, histName, histTitle, 5, -0.5, 4.5)); + m_data->m_hist_DMUerr[ros][drawer][ch][0].push_back(book1I(subDir, histName, histTitle, 5, -0.5, 4.5)); } } } @@ -316,7 +307,7 @@ void TileDigitsMonTool::bookHists(int ros, int drawer) sStr << moduleName << " global CRC errors"; histTitle = sStr.str(); - m_hist0[ros][drawer].push_back(book1S("Summary", histName, histTitle, 3, -0.5, 2.5)); + m_data->m_hist0[ros][drawer].push_back(book1S("Summary", histName, histTitle, 3, -0.5, 2.5)); } @@ -347,7 +338,7 @@ StatusCode TileDigitsMonTool::fillHists() int ros = m_tileHWID->ros(adc_id); int drawer = m_tileHWID->drawer(adc_id); - if (m_hist1[ros][drawer][0][0].size() == 0) { + if (m_data->m_hist1[ros][drawer][0][0].size() == 0) { m_bigain = true; m_nSamples = digitsCollection->front()->NtimeSamples(); if (!m_bookAll) bookHists(ros, drawer); @@ -362,10 +353,10 @@ StatusCode TileDigitsMonTool::fillHists() bin = 7.; } for (int dmu = 0; dmu < 16; dmu++) { - m_corrup[ros][drawer][0][dmu] = true; - m_corrup[ros][drawer][1][dmu] = true; - m_hist2[ros][drawer][0][0]->Fill(dmu + 0.5, bin, 1.); - m_hist2[ros][drawer][1][0]->Fill(dmu + 0.5, bin, 1.); + m_data->m_corrup[ros][drawer][0][dmu] = true; + m_data->m_corrup[ros][drawer][1][dmu] = true; + m_data->m_hist2[ros][drawer][0][0]->Fill(dmu + 0.5, bin, 1.); + m_data->m_hist2[ros][drawer][1][0]->Fill(dmu + 0.5, bin, 1.); } continue; } @@ -379,13 +370,13 @@ StatusCode TileDigitsMonTool::fillHists() } for (int dmu = 0; dmu < headsize; dmu++) { - m_corrup[ros][drawer][0][dmu] = DMUheaderCheck(&headerVec, ros, drawer, 0, dmu); //tests and fills - m_corrup[ros][drawer][1][dmu] = DMUheaderCheck(&headerVec, ros, drawer, 1, dmu); + m_data->m_corrup[ros][drawer][0][dmu] = DMUheaderCheck(&headerVec, ros, drawer, 0, dmu); //tests and fills + m_data->m_corrup[ros][drawer][1][dmu] = DMUheaderCheck(&headerVec, ros, drawer, 1, dmu); } for (int dmu = headsize; dmu < 16; dmu++) { - m_corrup[ros][drawer][0][dmu] = false; - m_corrup[ros][drawer][1][dmu] = false; + m_data->m_corrup[ros][drawer][0][dmu] = false; + m_data->m_corrup[ros][drawer][1][dmu] = false; } } @@ -397,7 +388,7 @@ StatusCode TileDigitsMonTool::fillHists() int ros = m_tileHWID->ros(adc_id); int drawer = m_tileHWID->drawer(adc_id); - if (m_hist1[ros][drawer][0][0].size() == 0) { + if (m_data->m_hist1[ros][drawer][0][0].size() == 0) { //m_bigain = (m_beamInfo->calibMode() == 1); // true if bi-gain run // For the time being, we fill both high and low gain plots, as it was requiered by Tomas m_bigain = true; @@ -440,36 +431,36 @@ StatusCode TileDigitsMonTool::fillHists() rmssamp += dig * dig; mean_tmp[chan][gain][i] = dig; - if (!m_corrup[ros][drawer][gain][chan / 3]) { + if (!m_data->m_corrup[ros][drawer][gain][chan / 3]) { if (m_runType != CisRun) { - m_histP[ros][drawer][chan][gain][0]->Fill(i + 0.1, dig, 1.0); - m_hist1[ros][drawer][chan][gain][2]->Fill(dig, 1.0); + m_data->m_histP[ros][drawer][chan][gain][0]->Fill(i + 0.1, dig, 1.0); + m_data->m_hist1[ros][drawer][chan][gain][2]->Fill(dig, 1.0); } else if (m_cispar[6] > 0. && (dig > 0 || gain < 1 || charge < 12.)) { //LF If CIS run, Protection to avoid zero amplitudes due to 0 injected charge - m_histP[ros][drawer][chan][gain][0]->Fill(i + 0.1, dig, 1.0); - m_hist1[ros][drawer][chan][gain][2]->Fill(dig, 1.0); + m_data->m_histP[ros][drawer][chan][gain][0]->Fill(i + 0.1, dig, 1.0); + m_data->m_hist1[ros][drawer][chan][gain][2]->Fill(dig, 1.0); } if (gain == 1 && dig > 1022.5) // overflow in high gain, find charge is it - m_outInHighGain[0]->Fill(charge); + m_data->m_outInHighGain[0]->Fill(charge); } } - if (dsize > 0 && !m_corrup[ros][drawer][gain][chan / 3]) { + if (dsize > 0 && !m_data->m_corrup[ros][drawer][gain][chan / 3]) { double ped = vdigits[0]; - m_hist1[ros][drawer][chan][gain][0]->Fill(ped, 1.0); - m_sumPed1[ros][drawer][chan][gain] += ped; - m_sumPed2[ros][drawer][chan][gain] += ped * ped; + m_data->m_hist1[ros][drawer][chan][gain][0]->Fill(ped, 1.0); + m_data->m_sumPed1[ros][drawer][chan][gain] += ped; + m_data->m_sumPed2[ros][drawer][chan][gain] += ped * ped; //if ( (chan==23)&&(ros==1)&&(drawer==18)&&(gain==0)) { - //std::cout << "ped=" << ped << "\tm_sumPed1=" << m_sumPed1[ros][drawer][chan][gain] << "\n"; - //std::cout << "ped^2=" << ped*ped << "\tm_sumPed2=" << m_sumPed2[ros][drawer][chan][gain] << "\n"; + //std::cout << "ped=" << ped << "\tm_sumPed1=" << m_data->m_sumPed1[ros][drawer][chan][gain] << "\n"; + //std::cout << "ped^2=" << ped*ped << "\tm_sumPed2=" << m_data->m_sumPed2[ros][drawer][chan][gain] << "\n"; //} if (dsize > 1) { meansamp /= dsize; rmssamp = rmssamp / dsize - meansamp * meansamp; rmssamp = (rmssamp > 0.0) ? sqrt(rmssamp * dsize / (dsize - 1)) : 0.0; - m_hist1[ros][drawer][chan][gain][1]->Fill(rmssamp, 1.0); - m_sumRms1[ros][drawer][chan][gain] += rmssamp; - m_sumRms2[ros][drawer][chan][gain] += rmssamp * rmssamp; + m_data->m_hist1[ros][drawer][chan][gain][1]->Fill(rmssamp, 1.0); + m_data->m_sumRms1[ros][drawer][chan][gain] += rmssamp; + m_data->m_sumRms2[ros][drawer][chan][gain] += rmssamp * rmssamp; } } } // digits @@ -478,13 +469,13 @@ StatusCode TileDigitsMonTool::fillHists() for (int sample = 0; sample < m_nSamples; ++sample) { for (int gain = 0; gain < 2; ++gain) { for (int ch_i = 0; ch_i < 48; ++ch_i) - if (!m_corrup[ros][drawer][gain][ch_i / 3]) { - m_nEvents_i[ros][drawer][gain][ch_i]++; - m_meanAmp[ros][drawer][gain][ch_i] += mean_tmp[ch_i][gain][sample]; + if (!m_data->m_corrup[ros][drawer][gain][ch_i / 3]) { + m_data->m_nEvents_i[ros][drawer][gain][ch_i]++; + m_data->m_meanAmp[ros][drawer][gain][ch_i] += mean_tmp[ch_i][gain][sample]; for (int ch_j = 0; ch_j < 48; ++ch_j) - if (!m_corrup[ros][drawer][gain][ch_j / 3]) { - m_nEvents_ij[ros][drawer][gain][ch_i][ch_j]++; - m_meanAmp_ij[ros][drawer][gain][ch_i][ch_j] += mean_tmp[ch_i][gain][sample] * mean_tmp[ch_j][gain][sample]; + if (!m_data->m_corrup[ros][drawer][gain][ch_j / 3]) { + m_data->m_nEvents_ij[ros][drawer][gain][ch_i][ch_j]++; + m_data->m_meanAmp_ij[ros][drawer][gain][ch_i][ch_j] += mean_tmp[ch_i][gain][sample] * mean_tmp[ch_j][gain][sample]; } } } @@ -495,17 +486,17 @@ StatusCode TileDigitsMonTool::fillHists() for (int ch = 0; ch < headsize; ++ch) { uint32_t bcid_ch = (headerVec[ch] & 0xFFF); - m_hist1[ros][drawer][ch][0][3]->Fill(bcid_ch, 1.0); + m_data->m_hist1[ros][drawer][ch][0][3]->Fill(bcid_ch, 1.0); if ((bcid_ch == bcid) || (bcid_ch == bcid - 1)) // Conservative condition to be consistent with both run before Feb07 and - m_hist_DMUerr[ros][drawer][ch][0][0]->Fill(1.0, 1.0); // runs after Feb07. Introducing a RunNum variable it could be more strict. + m_data->m_hist_DMUerr[ros][drawer][ch][0][0]->Fill(1.0, 1.0); // runs after Feb07. Introducing a RunNum variable it could be more strict. else if ((bcid == 0) && ((bcid_ch == 3563) || (bcid_ch == 3564))) // if bcid==0 then bcid_ch should be 3563 (0xDEB) - m_hist_DMUerr[ros][drawer][ch][0][0]->Fill(1.0, 1.0); // but sometimes 3564 (0xDEC) is observed. + m_data->m_hist_DMUerr[ros][drawer][ch][0][0]->Fill(1.0, 1.0); // but sometimes 3564 (0xDEC) is observed. // if (bcid_ch == bcid) // Now allow only exact bcid: ROD BCID = DMU BCID+1 - // m_hist_DMUerr[ros][drawer][ch][0][0]->Fill(1.0,1.0); // Apr 2013 + // m_data->m_hist_DMUerr[ros][drawer][ch][0][0]->Fill(1.0,1.0); // Apr 2013 // else if (bcid_ch == 0) - // m_hist_DMUerr[ros][drawer][ch][0][0]->Fill(0.0,1.0); + // m_data->m_hist_DMUerr[ros][drawer][ch][0][0]->Fill(0.0,1.0); // else - // m_hist_DMUerr[ros][drawer][ch][0][0]->Fill(2.0,1.0); + // m_data->m_hist_DMUerr[ros][drawer][ch][0][0]->Fill(2.0,1.0); } //DMUheaderCheck(&headerVec,headsize,ros,drawer,0); @@ -522,17 +513,17 @@ StatusCode TileDigitsMonTool::fillHists() // if monogain run with m_bigain==1, we fill the BCID plots we the same info for (int ch = 0; ch < headsize; ++ch) { uint32_t bcid_ch = (headerVec[ch] & 0xFFF); - m_hist1[ros][drawer][ch][1][3]->Fill(bcid_ch, 1.0); + m_data->m_hist1[ros][drawer][ch][1][3]->Fill(bcid_ch, 1.0); if ((bcid_ch == bcid) || (bcid_ch == bcid - 1)) // BCID from TileDMU should match BCID from ROD header or - m_hist_DMUerr[ros][drawer][ch][1][0]->Fill(1.0, 1.0); // bcid-1 for runs after Feb07. + m_data->m_hist_DMUerr[ros][drawer][ch][1][0]->Fill(1.0, 1.0); // bcid-1 for runs after Feb07. else if ((bcid == 0) && ((bcid_ch == 3563) || (bcid_ch == 3564))) // if bcid==0 then bcid_ch should be 3563 (0xDEB) - m_hist_DMUerr[ros][drawer][ch][1][0]->Fill(1.0, 1.0); // but sometimes 3564 (0xDEC) is observed. + m_data->m_hist_DMUerr[ros][drawer][ch][1][0]->Fill(1.0, 1.0); // but sometimes 3564 (0xDEC) is observed. // if (bcid_ch == bcid) // Now allow only exact bcid - // m_hist_DMUerr[ros][drawer][ch][0][0]->Fill(1.0,1.0); // Apr 2013 + // m_data->m_hist_DMUerr[ros][drawer][ch][0][0]->Fill(1.0,1.0); // Apr 2013 // else if (bcid_ch == 0) - // m_hist_DMUerr[ros][drawer][ch][1][0]->Fill(0.0,1.0); + // m_data->m_hist_DMUerr[ros][drawer][ch][1][0]->Fill(0.0,1.0); // else - // m_hist_DMUerr[ros][drawer][ch][1][0]->Fill(2.0,1.0); + // m_data->m_hist_DMUerr[ros][drawer][ch][1][0]->Fill(2.0,1.0); } //DMUheaderCheck(&headerVec,headsize,ros,drawer,1); @@ -582,7 +573,7 @@ StatusCode TileDigitsMonTool::finalHists() for (unsigned int ros = 1; ros < TileCalibUtils::MAX_ROS; ++ros) { for (unsigned int drawer = 0; drawer < TileCalibUtils::MAX_DRAWER ; ++drawer) { - if (m_hist1[ros][drawer][0][0].size() != 0) { + if (m_data->m_hist1[ros][drawer][0][0].size() != 0) { unsigned int drawerIdx = TileCalibUtils::getDrawerIdx(ros, drawer); std::ostringstream sStr; @@ -601,7 +592,7 @@ StatusCode TileDigitsMonTool::finalHists() sStr.str(""); sStr << moduleName << gain[3 + gn] << HistName[4 + type]; histTitle = sStr.str(); - m_final_hist1[ros][drawer][adc].push_back(book1F(subDir, histName, histTitle, 48, 0.0, 48.0)); + m_data->m_final_hist1[ros][drawer][adc].push_back(book1F(subDir, histName, histTitle, 48, 0.0, 48.0)); } // stuck bits and saturations / 0s @@ -611,13 +602,13 @@ StatusCode TileDigitsMonTool::finalHists() sStr.str(""); sStr << moduleName << gain[3 + gn] << " Stuck bits and saturation"; histTitle = sStr.str(); - m_final_hist_stucks[ros][drawer][adc] = book2C(subDir, histName, histTitle, 48, 0.0, 48.0, 6, 0., 6.); - m_final_hist_stucks[ros][drawer][adc]->GetYaxis()->SetBinLabel(1, "SB 0"); - m_final_hist_stucks[ros][drawer][adc]->GetYaxis()->SetBinLabel(2, "SB 1,2"); - m_final_hist_stucks[ros][drawer][adc]->GetYaxis()->SetBinLabel(3, "SB 3,4"); - m_final_hist_stucks[ros][drawer][adc]->GetYaxis()->SetBinLabel(4, "SB 5-9"); - m_final_hist_stucks[ros][drawer][adc]->GetYaxis()->SetBinLabel(5, "zeros"); - m_final_hist_stucks[ros][drawer][adc]->GetYaxis()->SetBinLabel(6, "saturation"); + m_data->m_final_hist_stucks[ros][drawer][adc] = book2C(subDir, histName, histTitle, 48, 0.0, 48.0, 6, 0., 6.); + m_data->m_final_hist_stucks[ros][drawer][adc]->GetYaxis()->SetBinLabel(1, "SB 0"); + m_data->m_final_hist_stucks[ros][drawer][adc]->GetYaxis()->SetBinLabel(2, "SB 1,2"); + m_data->m_final_hist_stucks[ros][drawer][adc]->GetYaxis()->SetBinLabel(3, "SB 3,4"); + m_data->m_final_hist_stucks[ros][drawer][adc]->GetYaxis()->SetBinLabel(4, "SB 5-9"); + m_data->m_final_hist_stucks[ros][drawer][adc]->GetYaxis()->SetBinLabel(5, "zeros"); + m_data->m_final_hist_stucks[ros][drawer][adc]->GetYaxis()->SetBinLabel(6, "saturation"); for (unsigned int channel = 0; channel < TileCalibUtils::MAX_CHAN; ++channel) { @@ -625,7 +616,7 @@ StatusCode TileDigitsMonTool::finalHists() double Ped = 0.0, PedRMS = 0.0, RMSHi = 0.0; - int nevents = int(m_hist1[ros][drawer][channel][adc][0]->GetEntries()); //ROOT GetEntries return a Double_t. + int nevents = int(m_data->m_hist1[ros][drawer][channel][adc][0]->GetEntries()); //ROOT GetEntries return a Double_t. bool fillPedAndRms = (nevents > 0); if ((nevents != 0) && (nevents != m_nEvents)) { @@ -641,7 +632,7 @@ StatusCode TileDigitsMonTool::finalHists() /// I use the latter for calculation porpouse. I could even use /// the histogram mean and RMS, but it is not necessary and I /// avoid problems in case of overflows. - ATH_MSG_VERBOSE( "Number of entries in histo " << m_hist1[ros][drawer][channel][adc][0]->GetTitle() + ATH_MSG_VERBOSE( "Number of entries in histo " << m_data->m_hist1[ros][drawer][channel][adc][0]->GetTitle() << " doesnt match n. of events! Using the first one in mean and RMS calculation" ); ATH_MSG_VERBOSE( "Number of entries in histo =" << nevents << "\tNumber of events= " << m_nEvents ); @@ -653,11 +644,11 @@ StatusCode TileDigitsMonTool::finalHists() if (fillPedAndRms) { if (nevents > 0) { - Ped = m_sumPed1[ros][drawer][channel][adc] / nevents; - RMSHi = m_sumRms1[ros][drawer][channel][adc] / nevents; + Ped = m_data->m_sumPed1[ros][drawer][channel][adc] / nevents; + RMSHi = m_data->m_sumRms1[ros][drawer][channel][adc] / nevents; if (nevents > 1) { - PedRMS = m_sumPed2[ros][drawer][channel][adc] / nevents - Ped * Ped; + PedRMS = m_data->m_sumPed2[ros][drawer][channel][adc] / nevents - Ped * Ped; PedRMS = (PedRMS > 0.0) ? sqrt(PedRMS * nevents / (nevents - 1)) : 0.0; } } @@ -665,7 +656,7 @@ StatusCode TileDigitsMonTool::finalHists() // if ( (pmt==24)&&(ros==1)&&(drawer==18)&&(adc==0)) { //std::cout << "Evt = " << m_nEvents << "\t channel=" << channel << " pmt=" << pmt << "\n"; //std::cout << "Ped = " << Ped << "\n"; - //std::cout << "E(x^2) = " << m_sumPed2[ros][drawer][channel][adc] << "\n"; + //std::cout << "E(x^2) = " << m_data->m_sumPed2[ros][drawer][channel][adc] << "\n"; //std::cout << "PedRMS = " << PedRMS << "\n"; //} @@ -673,24 +664,24 @@ StatusCode TileDigitsMonTool::finalHists() if (m_fillPedestalDifference) { if (!isDisconnected(ros, drawer, channel)) { - m_final_hist1[ros][drawer][adc][0]->SetBinContent(channel + 1, Ped - m_tileToolNoiseSample->getPed(drawerIdx, channel, adc)); - m_final_hist1[ros][drawer][adc][0]->SetBinError(channel + 1, PedRMS); + m_data->m_final_hist1[ros][drawer][adc][0]->SetBinContent(channel + 1, Ped - m_tileToolNoiseSample->getPed(drawerIdx, channel, adc)); + m_data->m_final_hist1[ros][drawer][adc][0]->SetBinError(channel + 1, PedRMS); } } else { - m_final_hist1[ros][drawer][adc][0]->SetBinContent(channel + 1, Ped); - m_final_hist1[ros][drawer][adc][0]->SetBinError(channel + 1, PedRMS); + m_data->m_final_hist1[ros][drawer][adc][0]->SetBinContent(channel + 1, Ped); + m_data->m_final_hist1[ros][drawer][adc][0]->SetBinError(channel + 1, PedRMS); } - m_final_hist1[ros][drawer][adc][1]->SetBinContent(channel + 1, PedRMS); - m_final_hist1[ros][drawer][adc][2]->SetBinContent(channel + 1, RMSHi); + m_data->m_final_hist1[ros][drawer][adc][1]->SetBinContent(channel + 1, PedRMS); + m_data->m_final_hist1[ros][drawer][adc][2]->SetBinContent(channel + 1, RMSHi); } // For tests - //stuckBits_maker(m_hist1[ros][drawer][channel][adc][2]); + //stuckBits_maker(m_data->m_hist1[ros][drawer][channel][adc][2]); - TH1S * hist = m_hist1[ros][drawer][channel][adc][2]; + TH1S * hist = m_data->m_hist1[ros][drawer][channel][adc][2]; double weight = 0.0; for (int i = 2; i < 1025; ++i) { // first bin is excluded weight += hist->GetBinContent(i); @@ -708,8 +699,8 @@ StatusCode TileDigitsMonTool::finalHists() weight += 1.0; // some stuck bits } } - m_final_hist1[ros][drawer][adc][3]->SetBinContent(channel + 1, weight); - stuckBits_Amp2(hist, adc, m_final_hist_stucks[ros][drawer][adc], channel, m_stuck_probs[ros][drawer][channel][adc]); + m_data->m_final_hist1[ros][drawer][adc][3]->SetBinContent(channel + 1, weight); + stuckBits_Amp2(hist, adc, m_data->m_final_hist_stucks[ros][drawer][adc], channel, m_data->m_stuck_probs[ros][drawer][channel][adc]); } // end of loop over channels // BCID @@ -719,7 +710,7 @@ StatusCode TileDigitsMonTool::finalHists() sStr.str(""); sStr << moduleName << gain[3 + gn] << ErrName[2]; histTitle = sStr.str(); - m_final_hist1[ros][drawer][adc].push_back(book1F(subDir, histName, histTitle, 16, 0.0, 16.0)); + m_data->m_final_hist1[ros][drawer][adc].push_back(book1F(subDir, histName, histTitle, 16, 0.0, 16.0)); // CRC only for one gain if (adc == 0) { @@ -729,7 +720,7 @@ StatusCode TileDigitsMonTool::finalHists() sStr.str(""); sStr << moduleName << ErrName[3]; histTitle = sStr.str(); - m_final_hist1[ros][drawer][adc].push_back(book1F(subDir, histName, histTitle, 16, 0.0, 16.0)); + m_data->m_final_hist1[ros][drawer][adc].push_back(book1F(subDir, histName, histTitle, 16, 0.0, 16.0)); } for (int ch = 0; ch < 16; ++ch) { @@ -738,12 +729,12 @@ StatusCode TileDigitsMonTool::finalHists() // BCID and CRC errors for (int id = 0; id < 2; ++id) { - int bin0 = lround(m_hist_DMUerr[ros][drawer][ch][adc][id]->GetBinContent(0)); - int bin1 = lround(m_hist_DMUerr[ros][drawer][ch][adc][id]->GetBinContent(1)); - int bin2 = lround(m_hist_DMUerr[ros][drawer][ch][adc][id]->GetBinContent(2)); - int bin3 = lround(m_hist_DMUerr[ros][drawer][ch][adc][id]->GetBinContent(3)); - int bin4 = lround(m_hist_DMUerr[ros][drawer][ch][adc][id]->GetBinContent(4)); - int bin5 = lround(m_hist_DMUerr[ros][drawer][ch][adc][id]->GetBinContent(5)); + int bin0 = lround(m_data->m_hist_DMUerr[ros][drawer][ch][adc][id]->GetBinContent(0)); + int bin1 = lround(m_data->m_hist_DMUerr[ros][drawer][ch][adc][id]->GetBinContent(1)); + int bin2 = lround(m_data->m_hist_DMUerr[ros][drawer][ch][adc][id]->GetBinContent(2)); + int bin3 = lround(m_data->m_hist_DMUerr[ros][drawer][ch][adc][id]->GetBinContent(3)); + int bin4 = lround(m_data->m_hist_DMUerr[ros][drawer][ch][adc][id]->GetBinContent(4)); + int bin5 = lround(m_data->m_hist_DMUerr[ros][drawer][ch][adc][id]->GetBinContent(5)); double weight = -1.0; if (bin0 + bin3 + bin4 + bin5 > 0) { @@ -765,7 +756,7 @@ StatusCode TileDigitsMonTool::finalHists() if (weight > 0.8) weight = 0.8; // to see clearly even one event with zeros } } - m_final_hist1[ros][drawer][adc][id + 4]->SetBinContent(dmu, weight); + m_data->m_final_hist1[ros][drawer][adc][id + 4]->SetBinContent(dmu, weight); if (adc) break; // no CRC histogram in high gain } @@ -781,17 +772,17 @@ StatusCode TileDigitsMonTool::finalHists() sStr.str(""); sStr << moduleName << gain[3 + gn] << HistName2[2 + type]; histTitle = sStr.str(); - m_final_hist2[ros][drawer][adc].push_back(book2F(subDir, histName, histTitle, 48, 0.0, 48.0, 48, 0.0, 48.0)); + m_data->m_final_hist2[ros][drawer][adc].push_back(book2F(subDir, histName, histTitle, 48, 0.0, 48.0, 48, 0.0, 48.0)); } if (m_nEvents * m_nSamples > 0) { for (int ch_i = 0; ch_i < 48; ++ch_i) { - if (m_nEvents_i[ros][drawer][adc][ch_i] > 0) - m_meanAmp[ros][drawer][adc][ch_i] /= m_nEvents_i[ros][drawer][adc][ch_i]; + if (m_data->m_nEvents_i[ros][drawer][adc][ch_i] > 0) + m_data->m_meanAmp[ros][drawer][adc][ch_i] /= m_data->m_nEvents_i[ros][drawer][adc][ch_i]; for (int ch_j = 0; ch_j < 48; ++ch_j) - if (m_nEvents_ij[ros][drawer][adc][ch_i][ch_j] > 0) - m_meanAmp_ij[ros][drawer][adc][ch_i][ch_j] /= m_nEvents_ij[ros][drawer][adc][ch_i][ch_j]; + if (m_data->m_nEvents_ij[ros][drawer][adc][ch_i][ch_j] > 0) + m_data->m_meanAmp_ij[ros][drawer][adc][ch_i][ch_j] /= m_data->m_nEvents_ij[ros][drawer][adc][ch_i][ch_j]; } double covar[48][48]; @@ -804,7 +795,7 @@ StatusCode TileDigitsMonTool::finalHists() // int pmt_i = abs(m_cabling->channel2hole(ros,ch_i))-1; for (int ch_j = 0; ch_j < 48; ++ch_j) { // int pmt_j = abs(m_cabling->channel2hole(ros,ch_j))-1; - covar[ch_i][ch_j] = m_meanAmp_ij[ros][drawer][adc][ch_i][ch_j] - m_meanAmp[ros][drawer][adc][ch_i] * m_meanAmp[ros][drawer][adc][ch_j]; + covar[ch_i][ch_j] = m_data->m_meanAmp_ij[ros][drawer][adc][ch_i][ch_j] - m_data->m_meanAmp[ros][drawer][adc][ch_i] * m_data->m_meanAmp[ros][drawer][adc][ch_j]; if (ch_j < ch_i) { mean_cov_ij += covar[ch_i][ch_j]; //LF: we take C_ij with its sign @@ -820,11 +811,11 @@ StatusCode TileDigitsMonTool::finalHists() } if (mean_cov_ii != 0.) { - m_cov_ratio[ros][drawer][adc] = (2. * mean_cov_ij) / (mean_cov_ii * 47.); //(2*cov_ij/(48*47))/(cov_ii/48) + m_data->m_cov_ratio[ros][drawer][adc] = (2. * mean_cov_ij) / (mean_cov_ii * 47.); //(2*cov_ij/(48*47))/(cov_ii/48) } else { - m_cov_ratio[ros][drawer][adc] = 0.; + m_data->m_cov_ratio[ros][drawer][adc] = 0.; } - // std::cout << "m_cov_ratio["<<adc<<"]= " << m_cov_ratio[ros][drawer][adc] << "\n"; + // std::cout << "m_cov_ratio["<<adc<<"]= " << m_data->m_cov_ratio[ros][drawer][adc] << "\n"; for (int i = 0; i < 48; ++i) { for (int j = 0; j < 48; ++j) { @@ -833,8 +824,8 @@ StatusCode TileDigitsMonTool::finalHists() } else { corr[i][j] = covar[i][j] / mean_rms[i] / mean_rms[j]; } - m_final_hist2[ros][drawer][adc][0]->SetBinContent(i + 1, j + 1, covar[i][j]); - m_final_hist2[ros][drawer][adc][1]->SetBinContent(i + 1, j + 1, corr[i][j]); + m_data->m_final_hist2[ros][drawer][adc][0]->SetBinContent(i + 1, j + 1, covar[i][j]); + m_data->m_final_hist2[ros][drawer][adc][1]->SetBinContent(i + 1, j + 1, corr[i][j]); } } } // end if m_nEvents > 0 @@ -849,7 +840,7 @@ StatusCode TileDigitsMonTool::finalHists() for (int gn = mingain; gn < maxgain; ++gn) { for (int i = 0; i < 48; ++i) { - TH1S *h = (TH1S*) m_hist1[ros][drawer][i][gn][2]->Clone("temphist"); + TH1S *h = (TH1S*) m_data->m_hist1[ros][drawer][i][gn][2]->Clone("temphist"); h->SetDirectory(0); shiftHisto(h, ros, drawer, i, gn); delete h; @@ -871,7 +862,7 @@ StatusCode TileDigitsMonTool::finalHists() s << moduleName << gain[3 + gn] << " all samples reference"; std::string histTitle = s.str(); - m_shifted_hist[ros][drawer][48][gn] = book1S(subDir, histName, histTitle, shiftnbins, shiftxmin, shiftxmax); + m_data->m_shifted_hist[ros][drawer][48][gn] = book1S(subDir, histName, histTitle, shiftnbins, shiftxmin, shiftxmax); statTestHistos(ros, drawer, gn); } // if runTYpe==CisRun @@ -889,7 +880,7 @@ StatusCode TileDigitsMonTool::finalHists() const uint8_t * TileDigitsMonTool::stuckBitProb (int ros, int module, int channel, int gain) const /*---------------------------------------------------------*/ { - return m_stuck_probs[ros][module][channel][gain]; + return m_data->m_stuck_probs[ros][module][channel][gain]; } @@ -1014,17 +1005,17 @@ void TileDigitsMonTool::drawHists(int ros, int drawer, std::string moduleName) } int ind = type * 2 + gain; - if (m_final_hist1[ros][drawer][gain][type]->GetMaximum() < 0.9 * maxy[ind]) //if maximum is below reasonable limit use a default scale - m_final_hist1[ros][drawer][gain][type]->SetMaximum(maxy[ind]); - if (m_final_hist1[ros][drawer][gain][type]->GetMinimum() > (miny[ind] + 0.1 * TMath::Abs(miny[ind]))) // if minimum is above reasonable limit - m_final_hist1[ros][drawer][gain][type]->SetMinimum(miny[ind]); // use a default scale + if (m_data->m_final_hist1[ros][drawer][gain][type]->GetMaximum() < 0.9 * maxy[ind]) //if maximum is below reasonable limit use a default scale + m_data->m_final_hist1[ros][drawer][gain][type]->SetMaximum(maxy[ind]); + if (m_data->m_final_hist1[ros][drawer][gain][type]->GetMinimum() > (miny[ind] + 0.1 * TMath::Abs(miny[ind]))) // if minimum is above reasonable limit + m_data->m_final_hist1[ros][drawer][gain][type]->SetMinimum(miny[ind]); // use a default scale - m_final_hist1[ros][drawer][gain][type]->SetMarkerStyle(21); - m_final_hist1[ros][drawer][gain][type]->SetMarkerSize(ms); - m_final_hist1[ros][drawer][gain][type]->SetLabelSize(0.08, "X"); - m_final_hist1[ros][drawer][gain][type]->SetLabelSize(0.08, "Y"); + m_data->m_final_hist1[ros][drawer][gain][type]->SetMarkerStyle(21); + m_data->m_final_hist1[ros][drawer][gain][type]->SetMarkerSize(ms); + m_data->m_final_hist1[ros][drawer][gain][type]->SetLabelSize(0.08, "X"); + m_data->m_final_hist1[ros][drawer][gain][type]->SetLabelSize(0.08, "Y"); if (do_plots) { - m_final_hist1[ros][drawer][gain][type]->Draw("P0"); + m_data->m_final_hist1[ros][drawer][gain][type]->Draw("P0"); if (type > 0) maxline[gain]->Draw(); } } @@ -1061,47 +1052,47 @@ void TileDigitsMonTool::drawHists(int ros, int drawer, std::string moduleName) if (type == 5 && gain == 1) { if (do_plots) pad->SetLogy(); - m_hist0[ros][drawer][0]->SetStats(kFALSE); + m_data->m_hist0[ros][drawer][0]->SetStats(kFALSE); gStyle->SetStatFontSize(0.1); - m_hist0[ros][drawer][0]->SetStats(kTRUE); - m_hist0[ros][drawer][0]->SetLabelSize(0.08, "X"); - m_hist0[ros][drawer][0]->SetLabelSize(0.08, "Y"); - if (do_plots) m_hist0[ros][drawer][0]->Draw(); // global CRC in bottom right corner + m_data->m_hist0[ros][drawer][0]->SetStats(kTRUE); + m_data->m_hist0[ros][drawer][0]->SetLabelSize(0.08, "X"); + m_data->m_hist0[ros][drawer][0]->SetLabelSize(0.08, "Y"); + if (do_plots) m_data->m_hist0[ros][drawer][0]->Draw(); // global CRC in bottom right corner } else { if (do_plots) pad->SetGridx(); - if (m_final_hist1[ros][drawer][gain][type]->GetMaximum() < 0.9 * maxy[ind]) //if maximum is below reasonable limit use a default scale - m_final_hist1[ros][drawer][gain][type]->SetMaximum(maxy[ind]); - if (m_final_hist1[ros][drawer][gain][type]->GetMinimum() > (miny[ind] + 0.1 * TMath::Abs(miny[ind]))) // if minimum is above reasonable limit - m_final_hist1[ros][drawer][gain][type]->SetMinimum(miny[ind]); // use a default scale + if (m_data->m_final_hist1[ros][drawer][gain][type]->GetMaximum() < 0.9 * maxy[ind]) //if maximum is below reasonable limit use a default scale + m_data->m_final_hist1[ros][drawer][gain][type]->SetMaximum(maxy[ind]); + if (m_data->m_final_hist1[ros][drawer][gain][type]->GetMinimum() > (miny[ind] + 0.1 * TMath::Abs(miny[ind]))) // if minimum is above reasonable limit + m_data->m_final_hist1[ros][drawer][gain][type]->SetMinimum(miny[ind]); // use a default scale - m_final_hist1[ros][drawer][gain][type]->SetMarkerStyle(21); - m_final_hist1[ros][drawer][gain][type]->SetMarkerSize(ms); - m_final_hist1[ros][drawer][gain][type]->SetStats(kFALSE); - m_final_hist1[ros][drawer][gain][type]->SetLabelSize(0.08, "X"); - m_final_hist1[ros][drawer][gain][type]->SetLabelSize(0.08, "Y"); + m_data->m_final_hist1[ros][drawer][gain][type]->SetMarkerStyle(21); + m_data->m_final_hist1[ros][drawer][gain][type]->SetMarkerSize(ms); + m_data->m_final_hist1[ros][drawer][gain][type]->SetStats(kFALSE); + m_data->m_final_hist1[ros][drawer][gain][type]->SetLabelSize(0.08, "X"); + m_data->m_final_hist1[ros][drawer][gain][type]->SetLabelSize(0.08, "Y"); if (type != 3) { - if (do_plots) m_final_hist1[ros][drawer][gain][type]->Draw("P0"); + if (do_plots) m_data->m_final_hist1[ros][drawer][gain][type]->Draw("P0"); } else { - m_final_hist_stucks[ros][drawer][gain]->SetStats(kFALSE); - m_final_hist_stucks[ros][drawer][gain]->SetMarkerSize(3.); - m_final_hist_stucks[ros][drawer][gain]->SetMarkerColor(4); - m_final_hist_stucks[ros][drawer][gain]->SetLabelSize(0.08, "X"); - m_final_hist_stucks[ros][drawer][gain]->SetLabelSize(0.1, "Y"); + m_data->m_final_hist_stucks[ros][drawer][gain]->SetStats(kFALSE); + m_data->m_final_hist_stucks[ros][drawer][gain]->SetMarkerSize(3.); + m_data->m_final_hist_stucks[ros][drawer][gain]->SetMarkerColor(4); + m_data->m_final_hist_stucks[ros][drawer][gain]->SetLabelSize(0.08, "X"); + m_data->m_final_hist_stucks[ros][drawer][gain]->SetLabelSize(0.1, "Y"); gStyle->SetNumberContours(m_NCont); if (do_plots) { - m_final_hist_stucks[ros][drawer][gain]->Draw("textzcol"); + m_data->m_final_hist_stucks[ros][drawer][gain]->Draw("textzcol"); ex_pal52->Draw(); - m_final_hist_stucks[ros][drawer][gain]->Draw("textcolzsame"); + m_data->m_final_hist_stucks[ros][drawer][gain]->Draw("textcolzsame"); pad->Update(); - TPaletteAxis *palette = (TPaletteAxis*) m_final_hist_stucks[ros][drawer][gain]->GetListOfFunctions()->FindObject("palette"); + TPaletteAxis *palette = (TPaletteAxis*) m_data->m_final_hist_stucks[ros][drawer][gain]->GetListOfFunctions()->FindObject("palette"); if (palette != NULL) palette->SetLabelSize(0.07); pad->Modified(); } } if (type == 4 || (type == 5 && gain == 0)) { - m_final_hist1[ros][drawer][gain][type]->GetYaxis()->SetLabelOffset(-0.85); // do not draw default lables + m_data->m_final_hist1[ros][drawer][gain][type]->GetYaxis()->SetLabelOffset(-0.85); // do not draw default lables if (do_plots) { t->DrawText(-0.2, 1., "all OK"); t->DrawText(-0.2, .0, "wrong"); @@ -1127,28 +1118,28 @@ void TileDigitsMonTool::drawHists(int ros, int drawer, std::string moduleName) pad->SetTopMargin(0.15); pad->SetGridx(); } - m_hist2[ros][drawer][gain][0]->SetMarkerSize(3.); - m_hist2[ros][drawer][gain][0]->SetMarkerColor(2); - m_hist2[ros][drawer][gain][0]->SetLabelSize(0.11, "Y"); - m_hist2[ros][drawer][gain][0]->SetLabelSize(0.08, "X"); - m_hist2[ros][drawer][gain][0]->SetStats(kFALSE); - m_hist2[ros][drawer][gain][0]->GetYaxis()->SetBinLabel(1, "OK "); - m_hist2[ros][drawer][gain][0]->GetYaxis()->SetBinLabel(2, "Format"); - m_hist2[ros][drawer][gain][0]->GetYaxis()->SetBinLabel(3, "Parity"); - m_hist2[ros][drawer][gain][0]->GetYaxis()->SetBinLabel(4, "Memory"); - m_hist2[ros][drawer][gain][0]->GetYaxis()->SetBinLabel(5, "SingleStr"); - m_hist2[ros][drawer][gain][0]->GetYaxis()->SetBinLabel(6, "DbleStr"); - m_hist2[ros][drawer][gain][0]->GetYaxis()->SetBinLabel(7, "DummyFrag"); - m_hist2[ros][drawer][gain][0]->GetYaxis()->SetBinLabel(8, "NoDataFrag"); - m_hist2[ros][drawer][gain][0]->GetYaxis()->SetTickLength(0.01); - m_hist2[ros][drawer][gain][0]->GetYaxis()->SetLabelOffset(0.001); + m_data->m_hist2[ros][drawer][gain][0]->SetMarkerSize(3.); + m_data->m_hist2[ros][drawer][gain][0]->SetMarkerColor(2); + m_data->m_hist2[ros][drawer][gain][0]->SetLabelSize(0.11, "Y"); + m_data->m_hist2[ros][drawer][gain][0]->SetLabelSize(0.08, "X"); + m_data->m_hist2[ros][drawer][gain][0]->SetStats(kFALSE); + m_data->m_hist2[ros][drawer][gain][0]->GetYaxis()->SetBinLabel(1, "OK "); + m_data->m_hist2[ros][drawer][gain][0]->GetYaxis()->SetBinLabel(2, "Format"); + m_data->m_hist2[ros][drawer][gain][0]->GetYaxis()->SetBinLabel(3, "Parity"); + m_data->m_hist2[ros][drawer][gain][0]->GetYaxis()->SetBinLabel(4, "Memory"); + m_data->m_hist2[ros][drawer][gain][0]->GetYaxis()->SetBinLabel(5, "SingleStr"); + m_data->m_hist2[ros][drawer][gain][0]->GetYaxis()->SetBinLabel(6, "DbleStr"); + m_data->m_hist2[ros][drawer][gain][0]->GetYaxis()->SetBinLabel(7, "DummyFrag"); + m_data->m_hist2[ros][drawer][gain][0]->GetYaxis()->SetBinLabel(8, "NoDataFrag"); + m_data->m_hist2[ros][drawer][gain][0]->GetYaxis()->SetTickLength(0.01); + m_data->m_hist2[ros][drawer][gain][0]->GetYaxis()->SetLabelOffset(0.001); if (do_plots) { gStyle->SetNumberContours(m_NCont); - m_hist2[ros][drawer][gain][0]->Draw("textzcol"); + m_data->m_hist2[ros][drawer][gain][0]->Draw("textzcol"); ex_pal51->Draw(); - m_hist2[ros][drawer][gain][0]->Draw("textzcolsame"); + m_data->m_hist2[ros][drawer][gain][0]->Draw("textzcolsame"); pad->Update(); - TPaletteAxis *palette = (TPaletteAxis*) m_hist2[ros][drawer][gain][0]->GetListOfFunctions()->FindObject("palette"); + TPaletteAxis *palette = (TPaletteAxis*) m_data->m_hist2[ros][drawer][gain][0]->GetListOfFunctions()->FindObject("palette"); if (palette != NULL) palette->SetLabelSize(0.07); pad->Modified(); } @@ -1192,13 +1183,13 @@ void TileDigitsMonTool::drawHists(int ros, int drawer, std::string moduleName) TVirtualPad * pad = Can->cd(type * maxgain + gain + 1); pad->SetTopMargin(0.15); } - m_final_hist2[ros][drawer][gain][type]->SetLabelSize(0.06, "X"); - m_final_hist2[ros][drawer][gain][type]->SetLabelSize(0.06, "Y"); + m_data->m_final_hist2[ros][drawer][gain][type]->SetLabelSize(0.06, "X"); + m_data->m_final_hist2[ros][drawer][gain][type]->SetLabelSize(0.06, "Y"); if (do_plots) { - m_final_hist2[ros][drawer][gain][type]->Draw("COLZ"); + m_data->m_final_hist2[ros][drawer][gain][type]->Draw("COLZ"); if (type == 0) { std::ostringstream label_text; - label_text << "<C_ij>/<C_ii>= " << std::setprecision(4) << m_cov_ratio[ros][drawer][gain] << std::setprecision(4); + label_text << "<C_ij>/<C_ii>= " << std::setprecision(4) << m_data->m_cov_ratio[ros][drawer][gain] << std::setprecision(4); covar_label[gain].SetLabel(label_text.str().c_str()); covar_label[gain].SetTextSize(0.4); covar_label[gain].Draw(); @@ -1542,7 +1533,7 @@ void TileDigitsMonTool::CRCcheck(uint32_t crc32, uint32_t crcMask, int headsize, //! are the result of the CRC check in the ROD (0xFFFF means all OK). // protection against non-exisitng histograms - if (m_hist0[ros][drawer].size() == 0) return; + if (m_data->m_hist0[ros][drawer].size() == 0) return; //LF CRC check //std::string ros_name[2] = {"LBA","LBC"}; @@ -1558,11 +1549,11 @@ void TileDigitsMonTool::CRCcheck(uint32_t crc32, uint32_t crcMask, int headsize, uint32_t crc0 = crc32 & 0xFFFF; uint32_t crc1 = crc32 >> 16; if (crc32 == 0) - m_hist0[ros][drawer][0]->Fill(0.0, 1.0); + m_data->m_hist0[ros][drawer][0]->Fill(0.0, 1.0); else if (crc0 == crc1) // two half-words should match - m_hist0[ros][drawer][0]->Fill(1.0, 1.0); + m_data->m_hist0[ros][drawer][0]->Fill(1.0, 1.0); else - m_hist0[ros][drawer][0]->Fill(2.0, 1.0); + m_data->m_hist0[ros][drawer][0]->Fill(2.0, 1.0); // CRC per TileDMU.For mono gain we have it from ROD and FE. // In bi gain, it is just a placeholder with global CRC information. @@ -1573,11 +1564,11 @@ void TileDigitsMonTool::CRCcheck(uint32_t crc32, uint32_t crcMask, int headsize, if (m_beamInfo->calibMode() == 1) { //!bigain: dummy information for (int ch = 0; ch < headsize; ++ch) { if (crc32 == 0) - m_hist_DMUerr[ros][drawer][ch][0][1]->Fill(0.0, 1.0); + m_data->m_hist_DMUerr[ros][drawer][ch][0][1]->Fill(0.0, 1.0); else if (crc0 == crc1) - m_hist_DMUerr[ros][drawer][ch][0][1]->Fill(1.0, 1.0); + m_data->m_hist_DMUerr[ros][drawer][ch][0][1]->Fill(1.0, 1.0); else - m_hist_DMUerr[ros][drawer][ch][0][1]->Fill(2.0, 1.0); + m_data->m_hist_DMUerr[ros][drawer][ch][0][1]->Fill(2.0, 1.0); } } else { //! monogain: meaningful information. @@ -1588,11 +1579,11 @@ void TileDigitsMonTool::CRCcheck(uint32_t crc32, uint32_t crcMask, int headsize, //! Fill 4 is FE and ROD crc is 0 if (crc32 == 0) { //std::cout << "Global crc is zero\n"; for (int ch = 0; ch < headsize; ++ch) { - m_hist_DMUerr[ros][drawer][ch][0][1]->Fill(0.0, 1.0); + m_data->m_hist_DMUerr[ros][drawer][ch][0][1]->Fill(0.0, 1.0); } } else if (crcMask == 0xFFFFFFFF) { for (int ch = 0; ch < headsize; ++ch) { - m_hist_DMUerr[ros][drawer][ch][0][1]->Fill(1.0, 1.0); + m_data->m_hist_DMUerr[ros][drawer][ch][0][1]->Fill(1.0, 1.0); } } else { uint32_t fe_crc = crcMask & 0xFFFF; @@ -1617,16 +1608,16 @@ void TileDigitsMonTool::CRCcheck(uint32_t crc32, uint32_t crcMask, int headsize, switch (flag) { case 0: //TileDMU is fine - m_hist_DMUerr[ros][drawer][ch][0][1]->Fill(1.0, 1.0); + m_data->m_hist_DMUerr[ros][drawer][ch][0][1]->Fill(1.0, 1.0); break; case 1: //fe error only - m_hist_DMUerr[ros][drawer][ch][0][1]->Fill(2.0, 1.0); + m_data->m_hist_DMUerr[ros][drawer][ch][0][1]->Fill(2.0, 1.0); break; case 2: // rod errors - m_hist_DMUerr[ros][drawer][ch][0][1]->Fill(3.0, 1.0); + m_data->m_hist_DMUerr[ros][drawer][ch][0][1]->Fill(3.0, 1.0); break; default: // fe+rod errors - m_hist_DMUerr[ros][drawer][ch][0][1]->Fill(4.0, 1.0); + m_data->m_hist_DMUerr[ros][drawer][ch][0][1]->Fill(4.0, 1.0); } // end switch case } // end loop on chips @@ -1664,31 +1655,31 @@ bool TileDigitsMonTool::DMUheaderCheck(std::vector<uint32_t>* headerVec, int ros bool err = false; if (DMUheaderFormatCheck((*headerVec)[dmu])) { - m_hist2[ros][drawer][gain][0]->Fill(dmu + 0.5, 1., 1.); + m_data->m_hist2[ros][drawer][gain][0]->Fill(dmu + 0.5, 1., 1.); err = true; return err; } if (DMUheaderParityCheck((*headerVec)[dmu])) { - m_hist2[ros][drawer][gain][0]->Fill(dmu + 0.5, 2., 1.); + m_data->m_hist2[ros][drawer][gain][0]->Fill(dmu + 0.5, 2., 1.); err = true; return err; } if (((*headerVec)[dmu] >> 25) & 0x1) { //Memory Parity Error - m_hist2[ros][drawer][gain][0]->Fill(dmu + 0.5, 3., 1.); + m_data->m_hist2[ros][drawer][gain][0]->Fill(dmu + 0.5, 3., 1.); err = true; } if (((*headerVec)[dmu] >> 24) & 0x1) { //Single Strobe Error - m_hist2[ros][drawer][gain][0]->Fill(dmu + 0.5, 4., 1.); + m_data->m_hist2[ros][drawer][gain][0]->Fill(dmu + 0.5, 4., 1.); err = true; } if (((*headerVec)[dmu] >> 23) & 0x1) { //Double Strobe Error - m_hist2[ros][drawer][gain][0]->Fill(dmu + 0.5, 5., 1.); + m_data->m_hist2[ros][drawer][gain][0]->Fill(dmu + 0.5, 5., 1.); err = true; } - if (!err) m_hist2[ros][drawer][gain][0]->Fill(dmu + 0.5, 0., 1.); + if (!err) m_data->m_hist2[ros][drawer][gain][0]->Fill(dmu + 0.5, 0., 1.); return err; } @@ -1750,7 +1741,7 @@ void TileDigitsMonTool::shiftHisto(TH1S *hist, int ros, int drawer, int ch, int int xmin = std::max(1, shift + 50); for (int bin = xmin; bin < xmax; ++bin) { double c = hist->GetBinContent(bin); - if (c > 0) m_shifted_hist[ros][drawer][ch][gain]->SetBinContent(bin - shift - 50, c); + if (c > 0) m_data->m_shifted_hist[ros][drawer][ch][gain]->SetBinContent(bin - shift - 50, c); } } } @@ -1769,7 +1760,7 @@ void TileDigitsMonTool::statTestHistos(int ros, int drawer, int gain) for (int i = 0; i < 48; i++) { - TH1S *h = m_shifted_hist[ros][drawer][i][gain]; + TH1S *h = m_data->m_shifted_hist[ros][drawer][i][gain]; float integ = h->Integral(200, 600); if (integ > 0) { refbld.push_back(h); @@ -1806,9 +1797,9 @@ void TileDigitsMonTool::statTestHistos(int ros, int drawer, int gain) // newrefbld->Add(ref1); if (ent > 6) - m_shifted_hist[ros][drawer][48][gain]->Add(ref1, 1.); + m_data->m_shifted_hist[ros][drawer][48][gain]->Add(ref1, 1.); else - m_shifted_hist[ros][drawer][48][gain]->Add(ref, 1.); + m_data->m_shifted_hist[ros][drawer][48][gain]->Add(ref, 1.); delete ref; delete ref1; @@ -1818,5 +1809,5 @@ void TileDigitsMonTool::statTestHistos(int ros, int drawer, int gain) void TileDigitsMonTool::saveStuckBitsProbabilities(TTree* tree) { - tree->Branch("StuckBitsProb", m_stuck_probs, "StuckBitsProb[5][64][48][2][10]/b"); + tree->Branch("StuckBitsProb", m_data->m_stuck_probs, "StuckBitsProb[5][64][48][2][10]/b"); } diff --git a/TileCalorimeter/TileMonitoring/src/TileRawChannelMonTool.cxx b/TileCalorimeter/TileMonitoring/src/TileRawChannelMonTool.cxx index 5df79bd222541037da1090d87556429df0e0befb..4c1fb5e2ac3f315a925633b875d8b46e5dbd98b9 100644 --- a/TileCalorimeter/TileMonitoring/src/TileRawChannelMonTool.cxx +++ b/TileCalorimeter/TileMonitoring/src/TileRawChannelMonTool.cxx @@ -90,14 +90,15 @@ StatusCode TileRawChannelMonTool::initialize() ATH_MSG_INFO("in initialize()"); + m_data = std::make_unique<Data>(); CHECK(m_beamInfo.retrieve()); CHECK(m_tileToolEmscale.retrieve()); m_nEvents = 0; - memset(m_timeCov, 0, sizeof(m_timeCov)); - memset(m_timeCovCorr, 0, sizeof(m_timeCovCorr)); + memset(m_data->m_timeCov, 0, sizeof(m_data->m_timeCov)); + memset(m_data->m_timeCovCorr, 0, sizeof(m_data->m_timeCovCorr)); CHECK(TilePaterMonTool::initialize()); @@ -197,9 +198,9 @@ void TileRawChannelMonTool::bookHists(int ros, int drawer) histTitle = sStr.str(); if (type < 2) - m_hist1[ros][drawer][ch][gn & 1].push_back(book1S(subDir, histName, histTitle, 101, -0.01, 2.01)); + m_data->m_hist1[ros][drawer][ch][gn & 1].push_back(book1S(subDir, histName, histTitle, 101, -0.01, 2.01)); else - m_hist1[ros][drawer][ch][gn & 1].push_back(book1S(subDir, histName, histTitle, 101, -101.0, 101.0)); + m_data->m_hist1[ros][drawer][ch][gn & 1].push_back(book1S(subDir, histName, histTitle, 101, -101.0, 101.0)); } if (m_book2D) { @@ -226,15 +227,15 @@ void TileRawChannelMonTool::bookHists(int ros, int drawer) switch (gn) { case 0: // low gain - m_hist2[ros][drawer][ch][gn & 1].push_back( + m_data->m_hist2[ros][drawer][ch][gn & 1].push_back( book2S(subDir, histName, histTitle, 51, LowX_low2D[type], HighX_low2D[type], 160, LowY_low2D[type], HighY_low2D[type])); break; case 1: // high gain - m_hist2[ros][drawer][ch][gn & 1].push_back( + m_data->m_hist2[ros][drawer][ch][gn & 1].push_back( book2S(subDir, histName, histTitle, 51, LowX_hi2D[type], HighX_hi2D[type], 160, LowY_hi2D[type], HighY_hi2D[type])); break; default: // single gain mode - m_hist2[ros][drawer][ch][gn & 1].push_back( + m_data->m_hist2[ros][drawer][ch][gn & 1].push_back( book2S(subDir, histName, histTitle, 51, LowX_hi2D[type], HighX_hi2D[type], 160, LowY_hi2D[type], HighY_hi2D[type])); } } //loop over type hist @@ -253,27 +254,27 @@ void TileRawChannelMonTool::bookHists(int ros, int drawer) if (m_runType == PedRun) { switch (gn) { case 0: // low gain - m_hist1[ros][drawer][ch][gn].push_back(book1S(subDir, histName, histTitle, 101, -10.1, 10.1)); + m_data->m_hist1[ros][drawer][ch][gn].push_back(book1S(subDir, histName, histTitle, 101, -10.1, 10.1)); break; case 1: // high gain - m_hist1[ros][drawer][ch][gn].push_back(book1S(subDir, histName, histTitle, 101, -0.404, 0.404)); + m_data->m_hist1[ros][drawer][ch][gn].push_back(book1S(subDir, histName, histTitle, 101, -0.404, 0.404)); break; default: // single gain mode - m_hist1[ros][drawer][ch][gn & 1].push_back(book1S(subDir, histName, histTitle, 101, -10.1, 10.1)); + m_data->m_hist1[ros][drawer][ch][gn & 1].push_back(book1S(subDir, histName, histTitle, 101, -10.1, 10.1)); } } else { switch (gn) { case 0: // low gain - m_hist1[ros][drawer][ch][gn].push_back(book1S(subDir, histName, histTitle, 1101, -50.5, 1050.5)); + m_data->m_hist1[ros][drawer][ch][gn].push_back(book1S(subDir, histName, histTitle, 1101, -50.5, 1050.5)); break; case 1: // high gain - m_hist1[ros][drawer][ch][gn].push_back(book1S(subDir, histName, histTitle, 826, -1.01, 15.51)); + m_data->m_hist1[ros][drawer][ch][gn].push_back(book1S(subDir, histName, histTitle, 826, -1.01, 15.51)); break; default: // single gain mode if (m_runType == PhysRun) { - m_hist1[ros][drawer][ch][gn & 1].push_back(book1S(subDir, histName, histTitle, 206, -0.55, 20.05)); + m_data->m_hist1[ros][drawer][ch][gn & 1].push_back(book1S(subDir, histName, histTitle, 206, -0.55, 20.05)); } else { - m_hist1[ros][drawer][ch][gn & 1].push_back(book1S(subDir, histName, histTitle, 801, -0.5, 800.5)); + m_data->m_hist1[ros][drawer][ch][gn & 1].push_back(book1S(subDir, histName, histTitle, 801, -0.5, 800.5)); } } } @@ -286,7 +287,7 @@ void TileRawChannelMonTool::bookHists(int ros, int drawer) sStr << moduleName << " CH " << ch << gain[3 + gn] << " time"; histTitle = sStr.str(); - m_hist1[ros][drawer][ch][gn & 1].push_back(book1S(subDir, histName, histTitle, 201, -100.5, 100.5)); + m_data->m_hist1[ros][drawer][ch][gn & 1].push_back(book1S(subDir, histName, histTitle, 201, -100.5, 100.5)); //Lukas sStr.str(""); sStr << moduleName << "_ch_" << sCh << gain[gn] << "_time_corr"; @@ -296,7 +297,7 @@ void TileRawChannelMonTool::bookHists(int ros, int drawer) sStr << moduleName << " CH " << ch << gain[3 + gn] << " time_corr"; histTitle = sStr.str(); - m_hist1[ros][drawer][ch][gn & 1].push_back(book1S(subDir, histName, histTitle, 201, -100.5, 100.5)); + m_data->m_hist1[ros][drawer][ch][gn & 1].push_back(book1S(subDir, histName, histTitle, 201, -100.5, 100.5)); //Lukas } } @@ -337,17 +338,17 @@ void TileRawChannelMonTool::bookDsp(int ros, int drawer) switch (gn) { case 0: // low gain - m_finalHistDsp2[ros][drawer][gn].push_back(book2F(finalsubDir, finalhistName, finalhistTitle, 200, -45.1, 855.1, 16, 0., 16.)); + m_data->m_finalHistDsp2[ros][drawer][gn].push_back(book2F(finalsubDir, finalhistName, finalhistTitle, 200, -45.1, 855.1, 16, 0., 16.)); break; case 1: // high gain - m_finalHistDsp2[ros][drawer][gn].push_back(book2F(finalsubDir, finalhistName, finalhistTitle, 150, -7.0, 12.0, 16, 0., 16.)); + m_data->m_finalHistDsp2[ros][drawer][gn].push_back(book2F(finalsubDir, finalhistName, finalhistTitle, 150, -7.0, 12.0, 16, 0., 16.)); break; default: // single gain mode if (m_runType == PhysRun) { - m_finalHistDsp2[ros][drawer][gn & 1].push_back(book2F(subDir, finalhistName, finalhistTitle, 150, -7.005, 7.005, 16, 0., 16.)); + m_data->m_finalHistDsp2[ros][drawer][gn & 1].push_back(book2F(subDir, finalhistName, finalhistTitle, 150, -7.005, 7.005, 16, 0., 16.)); } else { - m_finalHistDsp2[ros][drawer][gn & 1].push_back(book2F(subDir, finalhistName, finalhistTitle, 200, -45.1, 855.1, 16, 0., 16.)); + m_data->m_finalHistDsp2[ros][drawer][gn & 1].push_back(book2F(subDir, finalhistName, finalhistTitle, 200, -45.1, 855.1, 16, 0., 16.)); } } @@ -374,16 +375,16 @@ void TileRawChannelMonTool::bookDsp(int ros, int drawer) switch (gn) { case 0: // low gain - m_histDsp1[ros][drawer][ch][gn].push_back(book1F(subDir, histName, histTitle, 491, -50.5, 1049.34)); + m_data->m_histDsp1[ros][drawer][ch][gn].push_back(book1F(subDir, histName, histTitle, 491, -50.5, 1049.34)); break; case 1: // high gain - m_histDsp1[ros][drawer][ch][gn].push_back(book1F(subDir, histName, histTitle, 413, -1.01, 15.51)); + m_data->m_histDsp1[ros][drawer][ch][gn].push_back(book1F(subDir, histName, histTitle, 413, -1.01, 15.51)); break; default: // single gain mode if (m_runType == PhysRun) { - m_histDsp1[ros][drawer][ch][gn & 1].push_back(book1F(subDir, histName, histTitle, 100, -0.55, 20.05)); + m_data->m_histDsp1[ros][drawer][ch][gn & 1].push_back(book1F(subDir, histName, histTitle, 100, -0.55, 20.05)); } else { - m_histDsp1[ros][drawer][ch][gn & 1].push_back(book1F(subDir, histName, histTitle, 200, -0.5, 800.5)); + m_data->m_histDsp1[ros][drawer][ch][gn & 1].push_back(book1F(subDir, histName, histTitle, 200, -0.5, 800.5)); } } @@ -395,7 +396,7 @@ void TileRawChannelMonTool::bookDsp(int ros, int drawer) sStr << moduleName << " CH " << ch << gain[3 + gn] << " Dsp Time"; histTitle = sStr.str(); - m_histDsp1[ros][drawer][ch][gn & 1].push_back(book1F(subDir, histName, histTitle, 101, -100.5, 100.5)); + m_data->m_histDsp1[ros][drawer][ch][gn & 1].push_back(book1F(subDir, histName, histTitle, 101, -100.5, 100.5)); sStr.str(""); sStr << moduleName << "_ch_" << sCh << gain[gn] << "_dsp_chi2"; @@ -405,7 +406,7 @@ void TileRawChannelMonTool::bookDsp(int ros, int drawer) sStr << moduleName << " CH " << ch << gain[3 + gn] << " Dsp Chi2"; histTitle = sStr.str(); - m_histDsp1[ros][drawer][ch][gn & 1].push_back(book1F(subDir, histName, histTitle, 16, -0.5, 15.5)); + m_data->m_histDsp1[ros][drawer][ch][gn & 1].push_back(book1F(subDir, histName, histTitle, 16, -0.5, 15.5)); sStr.str(""); sStr << moduleName << "_ch_" << sCh << gain[gn] << "_dsp-fit_amp_diff"; @@ -417,16 +418,16 @@ void TileRawChannelMonTool::bookDsp(int ros, int drawer) switch (gn) { case 0: // low gain - m_histDsp1[ros][drawer][ch][gn].push_back(book1F(subDir, histName, histTitle, 404, -1.01, 1.01)); + m_data->m_histDsp1[ros][drawer][ch][gn].push_back(book1F(subDir, histName, histTitle, 404, -1.01, 1.01)); break; case 1: // high gain - m_histDsp1[ros][drawer][ch][gn].push_back(book1F(subDir, histName, histTitle, 404, -1.01, 1.01)); + m_data->m_histDsp1[ros][drawer][ch][gn].push_back(book1F(subDir, histName, histTitle, 404, -1.01, 1.01)); break; default: // single gain mode if (m_runType == PhysRun) { - m_histDsp1[ros][drawer][ch][gn & 1].push_back(book1F(subDir, histName, histTitle, 404, -1.01, 1.01)); + m_data->m_histDsp1[ros][drawer][ch][gn & 1].push_back(book1F(subDir, histName, histTitle, 404, -1.01, 1.01)); } else { - m_histDsp1[ros][drawer][ch][gn & 1].push_back(book1F(subDir, histName, histTitle, 404, -1.01, 1.01)); + m_data->m_histDsp1[ros][drawer][ch][gn & 1].push_back(book1F(subDir, histName, histTitle, 404, -1.01, 1.01)); } } sStr.str(""); @@ -437,7 +438,7 @@ void TileRawChannelMonTool::bookDsp(int ros, int drawer) sStr << moduleName << " CH " << ch << gain[3 + gn] << " Dsp-OF Time diff"; histTitle = sStr.str(); - m_histDsp1[ros][drawer][ch][gn & 1].push_back(book1F(subDir, histName, histTitle, 101, -2.02, 2.02)); + m_data->m_histDsp1[ros][drawer][ch][gn & 1].push_back(book1F(subDir, histName, histTitle, 101, -2.02, 2.02)); sStr.str(""); sStr << moduleName << "_ch_" << sCh << gain[gn] << "_chi2_amp"; @@ -449,16 +450,16 @@ void TileRawChannelMonTool::bookDsp(int ros, int drawer) switch (gn) { case 0: // low gain - m_histDsp2[ros][drawer][ch][gn].push_back(book2F(subDir, histName, histTitle, 200, -45.1, 855.1, 16, 0., 16.)); + m_data->m_histDsp2[ros][drawer][ch][gn].push_back(book2F(subDir, histName, histTitle, 200, -45.1, 855.1, 16, 0., 16.)); break; case 1: // high gain - m_histDsp2[ros][drawer][ch][gn].push_back(book2F(subDir, histName, histTitle, 150, -7.0, 12.0, 16, 0., 16.)); + m_data->m_histDsp2[ros][drawer][ch][gn].push_back(book2F(subDir, histName, histTitle, 150, -7.0, 12.0, 16, 0., 16.)); break; default: // single gain mode if (m_runType == PhysRun) { - m_histDsp2[ros][drawer][ch][gn & 1].push_back(book2F(subDir, histName, histTitle, 150, -7.005, 7.005, 16, 0., 16.)); + m_data->m_histDsp2[ros][drawer][ch][gn & 1].push_back(book2F(subDir, histName, histTitle, 150, -7.005, 7.005, 16, 0., 16.)); } else { - m_histDsp2[ros][drawer][ch][gn & 1].push_back(book2F(subDir, histName, histTitle, 200, -45.1, 855.1, 16, 0., 16.)); + m_data->m_histDsp2[ros][drawer][ch][gn & 1].push_back(book2F(subDir, histName, histTitle, 200, -45.1, 855.1, 16, 0., 16.)); } } @@ -546,7 +547,7 @@ StatusCode TileRawChannelMonTool::fillHists() int ros = m_tileHWID->ros(adc_id); int drawer = m_tileHWID->drawer(adc_id); - if (m_hist1[ros][drawer][0][0].size() == 0) { + if (m_data->m_hist1[ros][drawer][0][0].size() == 0) { // m_bigain = (m_beamInfo->calibMode() == 1); // true if bi-gain run // we fill both high and low gain plots m_bigain = true; @@ -610,7 +611,7 @@ StatusCode TileRawChannelMonTool::fillHists() double timeInj = m_cispar[5] * 0.104; if (m_book2D) { - m_hist2[ros][drawer][chan][gain][cap]->Fill(charge, amp); + m_data->m_hist2[ros][drawer][chan][gain][cap]->Fill(charge, amp); } if (charge > 1.0) { //! ignore first step with charge ~0.5 pCb @@ -627,10 +628,10 @@ StatusCode TileRawChannelMonTool::fillHists() //! do nothing for timeinj near the time slice change } else { - m_hist1[ros][drawer][chan][gain][0 + cap]->Fill(ratio); - m_hist1[ros][drawer][chan][gain][2 + cap]->Fill(time); + m_data->m_hist1[ros][drawer][chan][gain][0 + cap]->Fill(ratio); + m_data->m_hist1[ros][drawer][chan][gain][2 + cap]->Fill(time); if (m_book2D) { - m_hist2[ros][drawer][chan][gain][cap + 2]->Fill(timeInj, time); + m_data->m_hist2[ros][drawer][chan][gain][cap + 2]->Fill(timeInj, time); } /*TimeCov[ros][drawer][chan][gain][cap][0] += timeInj; @@ -638,24 +639,24 @@ StatusCode TileRawChannelMonTool::fillHists() TimeCov[ros][drawer][chan][gain][cap][2] += time; TimeCov[ros][drawer][chan][gain][cap][3] += time*time; TimeCov[ros][drawer][chan][gain][cap][4] += timeInj*time;*/ - ++m_timeCov[ros][drawer][chan][gain][cap][5]; + ++m_data->m_timeCov[ros][drawer][chan][gain][cap][5]; } } } //if k==0 //Lukas } else { // not CisRun if (k == 0) { //Lukas - m_hist1[ros][drawer][chan][gain][0]->Fill(amp, 1.0); + m_data->m_hist1[ros][drawer][chan][gain][0]->Fill(amp, 1.0); if (time != 0) { // we don't fill the time when it is exactly 0, which is a conventional value to say that it is not // calculated when the difference between the max(samples)-min(samples)< threshold - m_hist1[ros][drawer][chan][gain][1]->Fill(time, 1.0); + m_data->m_hist1[ros][drawer][chan][gain][1]->Fill(time, 1.0); } - m_timeCov[ros][drawer][chan][gain][0][0] += amp; - m_timeCov[ros][drawer][chan][gain][0][1] += amp * amp; - m_timeCov[ros][drawer][chan][gain][0][2] += time; - m_timeCov[ros][drawer][chan][gain][0][3] += time * time; + m_data->m_timeCov[ros][drawer][chan][gain][0][0] += amp; + m_data->m_timeCov[ros][drawer][chan][gain][0][1] += amp * amp; + m_data->m_timeCov[ros][drawer][chan][gain][0][2] += time; + m_data->m_timeCov[ros][drawer][chan][gain][0][3] += time * time; //TimeCov[ros][drawer][chan][gain][0][4] += amp*time; - ++m_timeCov[ros][drawer][chan][gain][0][5]; + ++m_data->m_timeCov[ros][drawer][chan][gain][0][5]; /* //Lukas if((ros==3 && drawer==14 && (chan==12 || chan==13 || chan==18 || chan==19))||(ros==4 && drawer==17 && (chan==12 || chan==13 || chan==18 || chan==19))){ @@ -682,11 +683,11 @@ StatusCode TileRawChannelMonTool::fillHists() if (isDisconnected(ros, drawer, chan) || amp < m_minAmpForCorrectedTime) continue; timeCorr = time - avgTimePerPart[ros]; //Lukas - m_hist1[ros][drawer][chan][gain][2]->Fill(timeCorr, 1.0); //Lukas + m_data->m_hist1[ros][drawer][chan][gain][2]->Fill(timeCorr, 1.0); //Lukas - m_timeCovCorr[ros][drawer][chan][gain][0][0] += timeCorr; //Lukas - m_timeCovCorr[ros][drawer][chan][gain][0][1] += timeCorr * timeCorr; //Lukas - ++m_timeCovCorr[ros][drawer][chan][gain][0][2]; //Lukas + m_data->m_timeCovCorr[ros][drawer][chan][gain][0][0] += timeCorr; //Lukas + m_data->m_timeCovCorr[ros][drawer][chan][gain][0][1] += timeCorr * timeCorr; //Lukas + ++m_data->m_timeCovCorr[ros][drawer][chan][gain][0][2]; //Lukas } //k==1 //Lukas } // end of nonCisRun @@ -762,7 +763,7 @@ StatusCode TileRawChannelMonTool::fillDsp(std::map<int, std::vector<double> > &e int ros = m_tileHWID->ros(adc_id); int drawer = m_tileHWID->drawer(adc_id); - if (m_histDsp1[ros][drawer][0][0].size() == 0) { + if (m_data->m_histDsp1[ros][drawer][0][0].size() == 0) { m_bigain = true; bookDsp(ros, drawer); } @@ -807,11 +808,11 @@ StatusCode TileRawChannelMonTool::fillDsp(std::map<int, std::vector<double> > &e double time = rch->time(); double chi2 = rch->quality(); - m_histDsp1[ros][drawer][chan][gain][Edsp]->Fill(amp, 1.0); - m_histDsp1[ros][drawer][chan][gain][Tdsp]->Fill(time, 1.0); - m_histDsp1[ros][drawer][chan][gain][chi2dsp]->Fill(chi2, 1.0); - m_histDsp2[ros][drawer][chan][gain][0]->Fill(amp, chi2, 1.0); - m_finalHistDsp2[ros][drawer][gain][0]->Fill(amp, chi2, 1.0); + m_data->m_histDsp1[ros][drawer][chan][gain][Edsp]->Fill(amp, 1.0); + m_data->m_histDsp1[ros][drawer][chan][gain][Tdsp]->Fill(time, 1.0); + m_data->m_histDsp1[ros][drawer][chan][gain][chi2dsp]->Fill(chi2, 1.0); + m_data->m_histDsp2[ros][drawer][chan][gain][0]->Fill(amp, chi2, 1.0); + m_data->m_finalHistDsp2[ros][drawer][gain][0]->Fill(amp, chi2, 1.0); std::map<int, std::vector<double> >::iterator it = efitMap.find(ros * 100 + drawer); if (it != efitMap.end()) { @@ -820,11 +821,11 @@ StatusCode TileRawChannelMonTool::fillDsp(std::map<int, std::vector<double> > &e double tfit = (*it).second.at(chan + gain * 48); //convert from pC to ADC counts if (TMath::Abs(efit) > m_efitThresh) { // fill the histogram only if the efit is above threshold - m_histDsp1[ros][drawer][chan][gain][Edsp_fit]->Fill((amp - efit) / efit, 1.0); + m_data->m_histDsp1[ros][drawer][chan][gain][Edsp_fit]->Fill((amp - efit) / efit, 1.0); } if (tfit != 0.) { - m_histDsp1[ros][drawer][chan][gain][Tdsp_fit]->Fill((time - tfit), 1.0); + m_data->m_histDsp1[ros][drawer][chan][gain][Tdsp_fit]->Fill((time - tfit), 1.0); } } @@ -876,7 +877,7 @@ void TileRawChannelMonTool::bookSummaryHistograms(int ros, int drawer) sStr.str(""); sStr << moduleName << gain[3 + gn] << HistName[3 + type] << CapName[2 + cap]; histTitle = sStr.str(); - m_finalHist1[ros][drawer][adc][cap].push_back(book1F(subDir, histName, histTitle, 48, 0, 48)); + m_data->m_finalHist1[ros][drawer][adc][cap].push_back(book1F(subDir, histName, histTitle, 48, 0, 48)); } } //end of loop over capacitors } //end of loop over gn @@ -904,43 +905,43 @@ void TileRawChannelMonTool::bookSummaryHistograms(int ros, int drawer) //sStr << moduleName << gain[3+gn] << HistName[4+type]; sStr << moduleName << gain[3 + gn] << HistName[5 + type]; //Lukas histTitle = sStr.str(); - m_finalHist1[ros][drawer][adc][0].push_back(book1F(subDir, histName, histTitle, 48, 0.0, 48.0)); + m_data->m_finalHist1[ros][drawer][adc][0].push_back(book1F(subDir, histName, histTitle, 48, 0.0, 48.0)); std::string hTitle(histTitle); if (m_doLaserSummaryVsPMT && m_runType == LasRun) { hTitle += " (Even PMTs)"; - m_summaryPmts[ros][drawer][adc][0].push_back(book1F(subDir + "/pmt", histName + "_pmt_even", hTitle, 49, -0.5, 48.5)); - m_summaryPmts[ros][drawer][adc][0].back()->SetMarkerStyle(22); - m_summaryPmts[ros][drawer][adc][0].back()->SetMarkerColor(2); - m_summaryPmts[ros][drawer][adc][0].back()->SetMarkerSize(0.75); + m_data->m_summaryPmts[ros][drawer][adc][0].push_back(book1F(subDir + "/pmt", histName + "_pmt_even", hTitle, 49, -0.5, 48.5)); + m_data->m_summaryPmts[ros][drawer][adc][0].back()->SetMarkerStyle(22); + m_data->m_summaryPmts[ros][drawer][adc][0].back()->SetMarkerColor(2); + m_data->m_summaryPmts[ros][drawer][adc][0].back()->SetMarkerSize(0.75); hTitle = histTitle; hTitle += " (Odd PMTs)"; - m_summaryPmts[ros][drawer][adc][1].push_back(book1F(subDir + "/pmt", histName + "_pmt_odd", hTitle, 49, -0.5, 48.5)); - m_summaryPmts[ros][drawer][adc][1].back()->SetMarkerStyle(23); - m_summaryPmts[ros][drawer][adc][1].back()->SetMarkerColor(4); - m_summaryPmts[ros][drawer][adc][1].back()->SetMarkerSize(0.75); + m_data->m_summaryPmts[ros][drawer][adc][1].push_back(book1F(subDir + "/pmt", histName + "_pmt_odd", hTitle, 49, -0.5, 48.5)); + m_data->m_summaryPmts[ros][drawer][adc][1].back()->SetMarkerStyle(23); + m_data->m_summaryPmts[ros][drawer][adc][1].back()->SetMarkerColor(4); + m_data->m_summaryPmts[ros][drawer][adc][1].back()->SetMarkerSize(0.75); - if (ros < 3 && m_summaryPmts[0][drawer][adc][0].size() < (unsigned int)(type + 1)) { + if (ros < 3 && m_data->m_summaryPmts[0][drawer][adc][0].size() < (unsigned int)(type + 1)) { histName.replace(histName.begin(), histName.begin() + 3, "LB"); histTitle.replace(histTitle.begin(), histTitle.begin() + 3, "LB"); hTitle = histTitle; hTitle += " (LBA even PMTs + LBC odd PMTs: negative)"; - m_summaryPmts[0][drawer][adc][0].push_back(book1F(subDir + "/pmt", histName + "_pmt_LBA-even_LBC-odd", hTitle, 97, -48.5, 48.5)); - m_summaryPmts[0][drawer][adc][0].back()->SetMarkerStyle(22); - m_summaryPmts[0][drawer][adc][0].back()->SetMarkerColor(2); - m_summaryPmts[0][drawer][adc][0].back()->SetMarkerSize(0.75); + m_data->m_summaryPmts[0][drawer][adc][0].push_back(book1F(subDir + "/pmt", histName + "_pmt_LBA-even_LBC-odd", hTitle, 97, -48.5, 48.5)); + m_data->m_summaryPmts[0][drawer][adc][0].back()->SetMarkerStyle(22); + m_data->m_summaryPmts[0][drawer][adc][0].back()->SetMarkerColor(2); + m_data->m_summaryPmts[0][drawer][adc][0].back()->SetMarkerSize(0.75); hTitle = histTitle; hTitle += " (LBA odd PMTs + LBC even PMTs: negative)"; - m_summaryPmts[0][drawer][adc][1].push_back(book1F(subDir + "/pmt", histName + "_pmt_LBA-odd_LBC-even", hTitle, 97, -48.5, 48.5)); - m_summaryPmts[0][drawer][adc][1].back()->SetMarkerStyle(23); - m_summaryPmts[0][drawer][adc][1].back()->SetMarkerColor(4); - m_summaryPmts[0][drawer][adc][1].back()->SetMarkerSize(0.75); + m_data->m_summaryPmts[0][drawer][adc][1].push_back(book1F(subDir + "/pmt", histName + "_pmt_LBA-odd_LBC-even", hTitle, 97, -48.5, 48.5)); + m_data->m_summaryPmts[0][drawer][adc][1].back()->SetMarkerStyle(23); + m_data->m_summaryPmts[0][drawer][adc][1].back()->SetMarkerColor(4); + m_data->m_summaryPmts[0][drawer][adc][1].back()->SetMarkerSize(0.75); } } } @@ -956,19 +957,19 @@ void TileRawChannelMonTool::resetSummaryHistograms() /*---------------------------------------------------------*/ { - memset(m_timeCov, 0, sizeof(m_timeCov)); - memset(m_timeCovCorr, 0, sizeof(m_timeCovCorr)); + memset(m_data->m_timeCov, 0, sizeof(m_data->m_timeCov)); + memset(m_data->m_timeCovCorr, 0, sizeof(m_data->m_timeCovCorr)); int mingain = (m_bigain) ? 0 : 2; int maxgain = (m_bigain) ? 2 : 3; for (int ros = 1; ros < 5; ++ros) { for (int drawer = 0; drawer < 64; ++drawer) { - if (m_hist1[ros][drawer][0][0].size() != 0) { + if (m_data->m_hist1[ros][drawer][0][0].size() != 0) { for (int ch = 0; ch < 48; ++ch) { for (int gn = mingain; gn < maxgain; ++gn) { - for (auto h : m_hist1[ros][drawer][ch][gn]) h->Reset(); - for (auto h : m_hist2[ros][drawer][ch][gn]) h->Reset(); + for (auto h : m_data->m_hist1[ros][drawer][ch][gn]) h->Reset(); + for (auto h : m_data->m_hist2[ros][drawer][ch][gn]) h->Reset(); } } } @@ -984,7 +985,7 @@ StatusCode TileRawChannelMonTool::fillSummaryHistograms() ATH_MSG_INFO("in fillFfinalHiststograms()"); - memset(m_rangeQ, 0, sizeof(m_rangeQ)); + memset(m_data->m_rangeQ, 0, sizeof(m_data->m_rangeQ)); TF1 * fit_gaus = new TF1("g", "gaus"); @@ -996,7 +997,7 @@ StatusCode TileRawChannelMonTool::fillSummaryHistograms() if ((m_runType == CisRun) || (m_runType == CisRamp)) { for (int ros = 1; ros < 5; ++ros) { for (int drawer = 0; drawer < 64; ++drawer) { - if (m_hist1[ros][drawer][0][0].size() != 0) { + if (m_data->m_hist1[ros][drawer][0][0].size() != 0) { for (int gn = mingain; gn < maxgain; ++gn) { int adc = gn & 1; @@ -1006,32 +1007,32 @@ StatusCode TileRawChannelMonTool::fillSummaryHistograms() // int pmt = abs(m_cabling->channel2hole(ros,ch)); // number in range [1,48] TF1* polyfunc = 0; - if (m_book2D) polyfunc = GetTimeFitFunc(m_hist2[ros][drawer][ch][adc][cap + 2]); + if (m_book2D) polyfunc = GetTimeFitFunc(m_data->m_hist2[ros][drawer][ch][adc][cap + 2]); if (polyfunc) { - m_finalHist1[ros][drawer][adc][cap][0]->SetBinContent(ch + 1, polyfunc->GetParameter(1)); + m_data->m_finalHist1[ros][drawer][adc][cap][0]->SetBinContent(ch + 1, polyfunc->GetParameter(1)); if (polyfunc->GetParError(1) > 5) { - m_finalHist1[ros][drawer][adc][cap][0]->SetBinError(ch + 1, 5.); + m_data->m_finalHist1[ros][drawer][adc][cap][0]->SetBinError(ch + 1, 5.); } else { - m_finalHist1[ros][drawer][adc][cap][0]->SetBinError(ch + 1, polyfunc->GetParError(1)); + m_data->m_finalHist1[ros][drawer][adc][cap][0]->SetBinError(ch + 1, polyfunc->GetParError(1)); } - m_finalHist1[ros][drawer][adc][cap][1]->SetBinContent(ch + 1, polyfunc->GetParameter(0)); + m_data->m_finalHist1[ros][drawer][adc][cap][1]->SetBinContent(ch + 1, polyfunc->GetParameter(0)); if (polyfunc->GetParError(0) > 5) { - m_finalHist1[ros][drawer][adc][cap][1]->SetBinError(ch + 1, 5.); + m_data->m_finalHist1[ros][drawer][adc][cap][1]->SetBinError(ch + 1, 5.); } else { - m_finalHist1[ros][drawer][adc][cap][1]->SetBinError(ch + 1, polyfunc->GetParError(0)); + m_data->m_finalHist1[ros][drawer][adc][cap][1]->SetBinError(ch + 1, polyfunc->GetParError(0)); } delete polyfunc; //important! } else { - m_finalHist1[ros][drawer][adc][cap][0]->SetBinContent(ch + 1, 0.); - m_finalHist1[ros][drawer][adc][cap][0]->SetBinError(ch + 1, 0.); - m_finalHist1[ros][drawer][adc][cap][1]->SetBinContent(ch + 1, 0.); - m_finalHist1[ros][drawer][adc][cap][1]->SetBinError(ch + 1, 0.); + m_data->m_finalHist1[ros][drawer][adc][cap][0]->SetBinContent(ch + 1, 0.); + m_data->m_finalHist1[ros][drawer][adc][cap][0]->SetBinError(ch + 1, 0.); + m_data->m_finalHist1[ros][drawer][adc][cap][1]->SetBinContent(ch + 1, 0.); + m_data->m_finalHist1[ros][drawer][adc][cap][1]->SetBinError(ch + 1, 0.); } - TH1S * hist = m_hist1[ros][drawer][ch][adc][cap]; + TH1S * hist = m_data->m_hist1[ros][drawer][ch][adc][cap]; int nbins = hist->GetNbinsX(); int minbin = 1; for (; minbin < nbins; ++minbin) { @@ -1058,11 +1059,11 @@ StatusCode TileRawChannelMonTool::fillSummaryHistograms() } //std::cout << hist->GetName() <<" mean-xmin= "<< mean-xmin <<"\n"; - m_rangeQ[adc][cap][0][ch] = mean; - m_rangeQ[adc][cap][1][ch] = std::max(0.0, mean - xmin); - m_rangeQ[adc][cap][2][ch] = std::max(0.0, xmax - mean); + m_data->m_rangeQ[adc][cap][0][ch] = mean; + m_data->m_rangeQ[adc][cap][1][ch] = std::max(0.0, mean - xmin); + m_data->m_rangeQ[adc][cap][2][ch] = std::max(0.0, xmax - mean); - m_finalHist1[ros][drawer][adc][cap][2]->SetBinContent(ch + 1, mean); + m_data->m_finalHist1[ros][drawer][adc][cap][2]->SetBinContent(ch + 1, mean); } } //end of loop over capacitors } //end of loop over gn @@ -1079,7 +1080,7 @@ StatusCode TileRawChannelMonTool::fillSummaryHistograms() for (int ros = 1; ros < 5; ++ros) { for (int drawer = 0; drawer < 64; ++drawer) { - if (m_hist1[ros][drawer][0][0].size() != 0) { + if (m_data->m_hist1[ros][drawer][0][0].size() != 0) { for (int gn = mingain; gn < maxgain; ++gn) { int adc = gn & 1; @@ -1089,15 +1090,15 @@ StatusCode TileRawChannelMonTool::fillSummaryHistograms() double Amp = 0.0, ErrA = 0.0, RMS = 0.0, ErrR = 0.0; double Time = 0.0, RMST = 0.0, Sigma = 0.0, ErrS = 0.0; - double NEvents = m_timeCov[ros][drawer][ch][adc][0][5]; + double NEvents = m_data->m_timeCov[ros][drawer][ch][adc][0][5]; double TimeCorr = 0.0, RMSTCorr = 0.0; //Lukas - double NEventsCorr = m_timeCovCorr[ros][drawer][ch][adc][0][2]; //Lukas + double NEventsCorr = m_data->m_timeCovCorr[ros][drawer][ch][adc][0][2]; //Lukas if (NEvents > 0.0) { - Amp = m_timeCov[ros][drawer][ch][adc][0][0] / NEvents; - RMS = m_timeCov[ros][drawer][ch][adc][0][1] / NEvents - Amp * Amp; + Amp = m_data->m_timeCov[ros][drawer][ch][adc][0][0] / NEvents; + RMS = m_data->m_timeCov[ros][drawer][ch][adc][0][1] / NEvents - Amp * Amp; if (RMS > 0.0) { RMS = sqrt(RMS); ErrA = RMS / sqrt(NEvents); @@ -1106,8 +1107,8 @@ StatusCode TileRawChannelMonTool::fillSummaryHistograms() RMS = 0.0; } - Time = m_timeCov[ros][drawer][ch][adc][0][2] / NEvents; - RMST = m_timeCov[ros][drawer][ch][adc][0][3] / NEvents - Time * Time; + Time = m_data->m_timeCov[ros][drawer][ch][adc][0][2] / NEvents; + RMST = m_data->m_timeCov[ros][drawer][ch][adc][0][3] / NEvents - Time * Time; if (RMST > 0.0) { RMST = sqrt(RMST); } else { @@ -1117,8 +1118,8 @@ StatusCode TileRawChannelMonTool::fillSummaryHistograms() //Lukas if (NEventsCorr > 0.0) { - TimeCorr = m_timeCovCorr[ros][drawer][ch][adc][0][0] / NEventsCorr; - RMSTCorr = m_timeCovCorr[ros][drawer][ch][adc][0][1] / NEventsCorr - TimeCorr * TimeCorr; + TimeCorr = m_data->m_timeCovCorr[ros][drawer][ch][adc][0][0] / NEventsCorr; + RMSTCorr = m_data->m_timeCovCorr[ros][drawer][ch][adc][0][1] / NEventsCorr - TimeCorr * TimeCorr; if (RMSTCorr > 0.0) { RMSTCorr = sqrt(RMSTCorr); } else { @@ -1127,22 +1128,22 @@ StatusCode TileRawChannelMonTool::fillSummaryHistograms() } //Lukas - if (m_hist1[ros][drawer][ch][adc][0]->GetEntries() > 0) { - m_hist1[ros][drawer][ch][adc][0]->Fit("g", "NQ"); + if (m_data->m_hist1[ros][drawer][ch][adc][0]->GetEntries() > 0) { + m_data->m_hist1[ros][drawer][ch][adc][0]->Fit("g", "NQ"); Sigma = fit_gaus->GetParameter(2); ErrS = fit_gaus->GetParError(2); } - m_finalHist1[ros][drawer][adc][0][0]->SetBinContent(ch + 1, Amp); - m_finalHist1[ros][drawer][adc][0][0]->SetBinError(ch + 1, ErrA); - m_finalHist1[ros][drawer][adc][0][1]->SetBinContent(ch + 1, RMS); - m_finalHist1[ros][drawer][adc][0][1]->SetBinError(ch + 1, ErrR); - m_finalHist1[ros][drawer][adc][0][2]->SetBinContent(ch + 1, Sigma); - m_finalHist1[ros][drawer][adc][0][2]->SetBinError(ch + 1, ErrS); - m_finalHist1[ros][drawer][adc][0][3]->SetBinContent(ch + 1, Time); - m_finalHist1[ros][drawer][adc][0][3]->SetBinError(ch + 1, RMST); - m_finalHist1[ros][drawer][adc][0][4]->SetBinContent(ch + 1, TimeCorr); //Lukas - m_finalHist1[ros][drawer][adc][0][4]->SetBinError(ch + 1, RMSTCorr); //Lukas + m_data->m_finalHist1[ros][drawer][adc][0][0]->SetBinContent(ch + 1, Amp); + m_data->m_finalHist1[ros][drawer][adc][0][0]->SetBinError(ch + 1, ErrA); + m_data->m_finalHist1[ros][drawer][adc][0][1]->SetBinContent(ch + 1, RMS); + m_data->m_finalHist1[ros][drawer][adc][0][1]->SetBinError(ch + 1, ErrR); + m_data->m_finalHist1[ros][drawer][adc][0][2]->SetBinContent(ch + 1, Sigma); + m_data->m_finalHist1[ros][drawer][adc][0][2]->SetBinError(ch + 1, ErrS); + m_data->m_finalHist1[ros][drawer][adc][0][3]->SetBinContent(ch + 1, Time); + m_data->m_finalHist1[ros][drawer][adc][0][3]->SetBinError(ch + 1, RMST); + m_data->m_finalHist1[ros][drawer][adc][0][4]->SetBinContent(ch + 1, TimeCorr); //Lukas + m_data->m_finalHist1[ros][drawer][adc][0][4]->SetBinError(ch + 1, RMSTCorr); //Lukas if (m_doLaserSummaryVsPMT && m_runType == LasRun) { @@ -1151,48 +1152,48 @@ StatusCode TileRawChannelMonTool::fillSummaryHistograms() int fiber = (pmt % 2); - m_summaryPmts[ros][drawer][adc][fiber][0]->SetBinContent(pmt + 1, Amp); - m_summaryPmts[ros][drawer][adc][fiber][0]->SetBinError(pmt + 1, ErrA); - m_summaryPmts[ros][drawer][adc][fiber][1]->SetBinContent(pmt + 1, RMS); - m_summaryPmts[ros][drawer][adc][fiber][1]->SetBinError(pmt + 1, ErrR); - m_summaryPmts[ros][drawer][adc][fiber][2]->SetBinContent(pmt + 1, Sigma); - m_summaryPmts[ros][drawer][adc][fiber][2]->SetBinError(pmt + 1, ErrS); - m_summaryPmts[ros][drawer][adc][fiber][3]->SetBinContent(pmt + 1, Time); - m_summaryPmts[ros][drawer][adc][fiber][3]->SetBinError(pmt + 1, RMST); - m_summaryPmts[ros][drawer][adc][fiber][4]->SetBinContent(pmt + 1, TimeCorr); //Lukas - m_summaryPmts[ros][drawer][adc][fiber][4]->SetBinError(pmt + 1, RMSTCorr); //Lukas + m_data->m_summaryPmts[ros][drawer][adc][fiber][0]->SetBinContent(pmt + 1, Amp); + m_data->m_summaryPmts[ros][drawer][adc][fiber][0]->SetBinError(pmt + 1, ErrA); + m_data->m_summaryPmts[ros][drawer][adc][fiber][1]->SetBinContent(pmt + 1, RMS); + m_data->m_summaryPmts[ros][drawer][adc][fiber][1]->SetBinError(pmt + 1, ErrR); + m_data->m_summaryPmts[ros][drawer][adc][fiber][2]->SetBinContent(pmt + 1, Sigma); + m_data->m_summaryPmts[ros][drawer][adc][fiber][2]->SetBinError(pmt + 1, ErrS); + m_data->m_summaryPmts[ros][drawer][adc][fiber][3]->SetBinContent(pmt + 1, Time); + m_data->m_summaryPmts[ros][drawer][adc][fiber][3]->SetBinError(pmt + 1, RMST); + m_data->m_summaryPmts[ros][drawer][adc][fiber][4]->SetBinContent(pmt + 1, TimeCorr); //Lukas + m_data->m_summaryPmts[ros][drawer][adc][fiber][4]->SetBinError(pmt + 1, RMSTCorr); //Lukas if (ros == 1) { - int bin = m_summaryPmts[0][drawer][adc][fiber][0]->FindBin(pmt); + int bin = m_data->m_summaryPmts[0][drawer][adc][fiber][0]->FindBin(pmt); - m_summaryPmts[0][drawer][adc][fiber][0]->SetBinContent(bin, Amp); - m_summaryPmts[0][drawer][adc][fiber][0]->SetBinError(bin, ErrA); - m_summaryPmts[0][drawer][adc][fiber][1]->SetBinContent(bin, RMS); - m_summaryPmts[0][drawer][adc][fiber][1]->SetBinError(bin, ErrR); - m_summaryPmts[0][drawer][adc][fiber][2]->SetBinContent(bin, Sigma); - m_summaryPmts[0][drawer][adc][fiber][2]->SetBinError(bin, ErrS); - m_summaryPmts[0][drawer][adc][fiber][3]->SetBinContent(bin, Time); - m_summaryPmts[0][drawer][adc][fiber][3]->SetBinError(bin, RMST); - m_summaryPmts[0][drawer][adc][fiber][4]->SetBinContent(bin, TimeCorr); //Lukas - m_summaryPmts[0][drawer][adc][fiber][4]->SetBinError(bin, RMSTCorr); //Lukas + m_data->m_summaryPmts[0][drawer][adc][fiber][0]->SetBinContent(bin, Amp); + m_data->m_summaryPmts[0][drawer][adc][fiber][0]->SetBinError(bin, ErrA); + m_data->m_summaryPmts[0][drawer][adc][fiber][1]->SetBinContent(bin, RMS); + m_data->m_summaryPmts[0][drawer][adc][fiber][1]->SetBinError(bin, ErrR); + m_data->m_summaryPmts[0][drawer][adc][fiber][2]->SetBinContent(bin, Sigma); + m_data->m_summaryPmts[0][drawer][adc][fiber][2]->SetBinError(bin, ErrS); + m_data->m_summaryPmts[0][drawer][adc][fiber][3]->SetBinContent(bin, Time); + m_data->m_summaryPmts[0][drawer][adc][fiber][3]->SetBinError(bin, RMST); + m_data->m_summaryPmts[0][drawer][adc][fiber][4]->SetBinContent(bin, TimeCorr); //Lukas + m_data->m_summaryPmts[0][drawer][adc][fiber][4]->SetBinError(bin, RMSTCorr); //Lukas } if (ros == 2) { - int bin = m_summaryPmts[0][drawer][adc][1 - fiber][0]->FindBin(-pmt); + int bin = m_data->m_summaryPmts[0][drawer][adc][1 - fiber][0]->FindBin(-pmt); - m_summaryPmts[0][drawer][adc][1 - fiber][0]->SetBinContent(bin, Amp); - m_summaryPmts[0][drawer][adc][1 - fiber][0]->SetBinError(bin, ErrA); - m_summaryPmts[0][drawer][adc][1 - fiber][1]->SetBinContent(bin, RMS); - m_summaryPmts[0][drawer][adc][1 - fiber][1]->SetBinError(bin, ErrR); - m_summaryPmts[0][drawer][adc][1 - fiber][2]->SetBinContent(bin, Sigma); - m_summaryPmts[0][drawer][adc][1 - fiber][2]->SetBinError(bin, ErrS); - m_summaryPmts[0][drawer][adc][1 - fiber][3]->SetBinContent(bin, Time); - m_summaryPmts[0][drawer][adc][1 - fiber][3]->SetBinError(bin, RMST); - m_summaryPmts[0][drawer][adc][1 - fiber][4]->SetBinContent(bin, TimeCorr); //Lukas - m_summaryPmts[0][drawer][adc][1 - fiber][4]->SetBinError(bin, RMSTCorr); //Lukas + m_data->m_summaryPmts[0][drawer][adc][1 - fiber][0]->SetBinContent(bin, Amp); + m_data->m_summaryPmts[0][drawer][adc][1 - fiber][0]->SetBinError(bin, ErrA); + m_data->m_summaryPmts[0][drawer][adc][1 - fiber][1]->SetBinContent(bin, RMS); + m_data->m_summaryPmts[0][drawer][adc][1 - fiber][1]->SetBinError(bin, ErrR); + m_data->m_summaryPmts[0][drawer][adc][1 - fiber][2]->SetBinContent(bin, Sigma); + m_data->m_summaryPmts[0][drawer][adc][1 - fiber][2]->SetBinError(bin, ErrS); + m_data->m_summaryPmts[0][drawer][adc][1 - fiber][3]->SetBinContent(bin, Time); + m_data->m_summaryPmts[0][drawer][adc][1 - fiber][3]->SetBinError(bin, RMST); + m_data->m_summaryPmts[0][drawer][adc][1 - fiber][4]->SetBinContent(bin, TimeCorr); //Lukas + m_data->m_summaryPmts[0][drawer][adc][1 - fiber][4]->SetBinError(bin, RMSTCorr); //Lukas } } @@ -1230,7 +1231,7 @@ StatusCode TileRawChannelMonTool::finalHists() if (m_summaryUpdateFrequency == 0) { for (int ros = 1; ros < 5; ++ros) { for (int drawer = 0; drawer < 64; ++drawer) { - if (m_hist1[ros][drawer][0][0].size() != 0) { + if (m_data->m_hist1[ros][drawer][0][0].size() != 0) { bookSummaryHistograms(ros, drawer); } } @@ -1249,7 +1250,7 @@ StatusCode TileRawChannelMonTool::finalDsp(int ros, int drawer) /*---------------------------------------------------------*/ { - if (m_histDsp1[ros][drawer][0][0].size() != 0) { + if (m_data->m_histDsp1[ros][drawer][0][0].size() != 0) { ///get algorithm and number of iterations from bsflags const TileRawChannelContainer* RawChannelCntDsp; @@ -1297,7 +1298,7 @@ StatusCode TileRawChannelMonTool::finalDsp(int ros, int drawer) sStr.str(""); sStr << moduleName << gain[2 + gn] << HistName[3 + type] << alg_name[algorithm] << "-" << iter_name[iteration] << HistName[6 + type]; histTitle = sStr.str(); - m_finalHistDsp1[ros][drawer][adc].push_back(book1F(subDir, histName, histTitle, 48, 0.0, 48.0)); + m_data->m_finalHistDsp1[ros][drawer][adc].push_back(book1F(subDir, histName, histTitle, 48, 0.0, 48.0)); } //Create hbar histograms to be used in drawDsp @@ -1308,7 +1309,7 @@ StatusCode TileRawChannelMonTool::finalDsp(int ros, int drawer) sStr << moduleName << gain[2 + gn] << " (DSP-" << alg_name[algorithm] << "-" << iter_name[iteration] << " - OFF-OF2-I) divided by OFF Amplitudes for all chans"; histTitle = sStr.str(); - m_hBarDsp1[ros][drawer][adc].push_back(book1F(subDir, histName, histTitle, 404, -1.01, 1.01)); + m_data->m_hBarDsp1[ros][drawer][adc].push_back(book1F(subDir, histName, histTitle, 404, -1.01, 1.01)); sStr.str(""); sStr << moduleName << gain[gn] << "_dspfit_timehbar"; @@ -1316,28 +1317,28 @@ StatusCode TileRawChannelMonTool::finalDsp(int ros, int drawer) sStr.str(""); sStr << moduleName << gain[2 + gn] << " (DSP-" << alg_name[algorithm] << "-" << iter_name[iteration] << " - OFF-OF2-I) Time for all chans"; histTitle = sStr.str(); - m_hBarDsp1[ros][drawer][adc].push_back(book1F(subDir, histName, histTitle, 101, -2.02, 2.02)); + m_data->m_hBarDsp1[ros][drawer][adc].push_back(book1F(subDir, histName, histTitle, 101, -2.02, 2.02)); for (int ch = 0; ch < 48; ++ch) { // int pmt = abs(m_cabling->channel2hole(ros,ch)); // number in range [1,48] - if (m_histDsp1[ros][drawer][ch][adc][Edsp_fit]->GetEntries() > 0) { - double dspmean = m_histDsp1[ros][drawer][ch][adc][Edsp]->GetMean(); - double dsprms = m_histDsp1[ros][drawer][ch][adc][Edsp]->GetRMS(); - double emean = m_histDsp1[ros][drawer][ch][adc][Edsp_fit]->GetMean(); - double erms = m_histDsp1[ros][drawer][ch][adc][Edsp_fit]->GetRMS(); - double tmean = m_histDsp1[ros][drawer][ch][adc][Tdsp_fit]->GetMean(); - double trms = m_histDsp1[ros][drawer][ch][adc][Tdsp_fit]->GetRMS(); + if (m_data->m_histDsp1[ros][drawer][ch][adc][Edsp_fit]->GetEntries() > 0) { + double dspmean = m_data->m_histDsp1[ros][drawer][ch][adc][Edsp]->GetMean(); + double dsprms = m_data->m_histDsp1[ros][drawer][ch][adc][Edsp]->GetRMS(); + double emean = m_data->m_histDsp1[ros][drawer][ch][adc][Edsp_fit]->GetMean(); + double erms = m_data->m_histDsp1[ros][drawer][ch][adc][Edsp_fit]->GetRMS(); + double tmean = m_data->m_histDsp1[ros][drawer][ch][adc][Tdsp_fit]->GetMean(); + double trms = m_data->m_histDsp1[ros][drawer][ch][adc][Tdsp_fit]->GetRMS(); - m_finalHistDsp1[ros][drawer][adc][sumEdsp]->SetBinContent(ch + 1, dspmean); - m_finalHistDsp1[ros][drawer][adc][sumEdsp]->SetBinError(ch + 1, dsprms); - m_finalHistDsp1[ros][drawer][adc][sumEdsp_fit]->SetBinContent(ch + 1, emean); - m_finalHistDsp1[ros][drawer][adc][sumEdsp_fit]->SetBinError(ch + 1, erms); - m_finalHistDsp1[ros][drawer][adc][sumTdsp_fit]->SetBinContent(ch + 1, tmean); - m_finalHistDsp1[ros][drawer][adc][sumTdsp_fit]->SetBinError(ch + 1, trms); + m_data->m_finalHistDsp1[ros][drawer][adc][sumEdsp]->SetBinContent(ch + 1, dspmean); + m_data->m_finalHistDsp1[ros][drawer][adc][sumEdsp]->SetBinError(ch + 1, dsprms); + m_data->m_finalHistDsp1[ros][drawer][adc][sumEdsp_fit]->SetBinContent(ch + 1, emean); + m_data->m_finalHistDsp1[ros][drawer][adc][sumEdsp_fit]->SetBinError(ch + 1, erms); + m_data->m_finalHistDsp1[ros][drawer][adc][sumTdsp_fit]->SetBinContent(ch + 1, tmean); + m_data->m_finalHistDsp1[ros][drawer][adc][sumTdsp_fit]->SetBinError(ch + 1, trms); - m_hBarDsp1[ros][drawer][adc][sumEdsp_fit]->Add(m_histDsp1[ros][drawer][ch][adc][Edsp_fit]); - m_hBarDsp1[ros][drawer][adc][sumTdsp_fit]->Add(m_histDsp1[ros][drawer][ch][adc][Tdsp_fit]); + m_data->m_hBarDsp1[ros][drawer][adc][sumEdsp_fit]->Add(m_data->m_histDsp1[ros][drawer][ch][adc][Edsp_fit]); + m_data->m_hBarDsp1[ros][drawer][adc][sumTdsp_fit]->Add(m_data->m_histDsp1[ros][drawer][ch][adc][Tdsp_fit]); } } @@ -1422,19 +1423,19 @@ void TileRawChannelMonTool::drawHists(int ros, int drawer, std::string moduleNam pad->SetGridx(); } - TGraphAsymmErrors * final_Egraph = bookGraphAsymmErrors(subDir, graphName, graphTitle, 48, X_axis, m_rangeQ[adc][cap][0], X_errors, X_errors, - m_rangeQ[adc][cap][1], m_rangeQ[adc][cap][2]); + TGraphAsymmErrors * final_Egraph = bookGraphAsymmErrors(subDir, graphName, graphTitle, 48, X_axis, m_data->m_rangeQ[adc][cap][0], X_errors, X_errors, + m_data->m_rangeQ[adc][cap][1], m_data->m_rangeQ[adc][cap][2]); grapherrVec.push_back(final_Egraph); - m_finalHist1[ros][drawer][adc][cap][2]->SetStats(kFALSE); - m_finalHist1[ros][drawer][adc][cap][2]->SetMarkerStyle(21); - m_finalHist1[ros][drawer][adc][cap][2]->SetMarkerSize(ms); - m_finalHist1[ros][drawer][adc][cap][2]->SetLabelSize(0.06, "X"); - m_finalHist1[ros][drawer][adc][cap][2]->SetLabelSize(0.06, "Y"); - m_finalHist1[ros][drawer][adc][cap][2]->SetMaximum(2.2); - m_finalHist1[ros][drawer][adc][cap][2]->SetMinimum(-0.2); - if (do_plots) m_finalHist1[ros][drawer][adc][cap][2]->Draw("P0"); - + m_data->m_finalHist1[ros][drawer][adc][cap][2]->SetStats(kFALSE); + m_data->m_finalHist1[ros][drawer][adc][cap][2]->SetMarkerStyle(21); + m_data->m_finalHist1[ros][drawer][adc][cap][2]->SetMarkerSize(ms); + m_data->m_finalHist1[ros][drawer][adc][cap][2]->SetLabelSize(0.06, "X"); + m_data->m_finalHist1[ros][drawer][adc][cap][2]->SetLabelSize(0.06, "Y"); + m_data->m_finalHist1[ros][drawer][adc][cap][2]->SetMaximum(2.2); + m_data->m_finalHist1[ros][drawer][adc][cap][2]->SetMinimum(-0.2); + if (do_plots) m_data->m_finalHist1[ros][drawer][adc][cap][2]->Draw("P0"); + final_Egraph->SetMarkerStyle(21); final_Egraph->SetMarkerSize(ms); final_Egraph->SetMaximum(2.2); @@ -1489,18 +1490,18 @@ void TileRawChannelMonTool::drawHists(int ros, int drawer, std::string moduleNam pad->SetGridx(); } - if (m_finalHist1[ros][drawer][adc][cap][type]->GetMaximum() < 0.9 * maxy[type]) - m_finalHist1[ros][drawer][adc][cap][type]->SetMaximum(maxy[type]); - if (m_finalHist1[ros][drawer][adc][cap][type]->GetMinimum() > (miny[type] + 0.1 * TMath::Abs(miny[type]))) - m_finalHist1[ros][drawer][adc][cap][type]->SetMinimum(miny[type]); + if (m_data->m_finalHist1[ros][drawer][adc][cap][type]->GetMaximum() < 0.9 * maxy[type]) + m_data->m_finalHist1[ros][drawer][adc][cap][type]->SetMaximum(maxy[type]); + if (m_data->m_finalHist1[ros][drawer][adc][cap][type]->GetMinimum() > (miny[type] + 0.1 * TMath::Abs(miny[type]))) + m_data->m_finalHist1[ros][drawer][adc][cap][type]->SetMinimum(miny[type]); - m_finalHist1[ros][drawer][adc][cap][type]->SetMarkerStyle(21); - m_finalHist1[ros][drawer][adc][cap][type]->SetMarkerSize(ms); - m_finalHist1[ros][drawer][adc][cap][type]->SetLabelSize(0.10, "X"); - m_finalHist1[ros][drawer][adc][cap][type]->SetLabelSize(0.10, "Y"); + m_data->m_finalHist1[ros][drawer][adc][cap][type]->SetMarkerStyle(21); + m_data->m_finalHist1[ros][drawer][adc][cap][type]->SetMarkerSize(ms); + m_data->m_finalHist1[ros][drawer][adc][cap][type]->SetLabelSize(0.10, "X"); + m_data->m_finalHist1[ros][drawer][adc][cap][type]->SetLabelSize(0.10, "Y"); if (do_plots) { - m_finalHist1[ros][drawer][adc][cap][type]->Draw("P0"); - + m_data->m_finalHist1[ros][drawer][adc][cap][type]->Draw("P0"); + line.SetLineColor(3); line.Draw(); } @@ -1537,14 +1538,14 @@ void TileRawChannelMonTool::drawHists(int ros, int drawer, std::string moduleNam for (int adc = 0; adc < maxgain; ++adc) { - double max0 = m_finalHist1[ros][drawer][adc][0][0]->GetMaximum(); - double max1 = m_finalHist1[ros][drawer][adc][0][1]->GetMaximum(); - double max2 = m_finalHist1[ros][drawer][adc][0][2]->GetMaximum(); - double max3 = m_finalHist1[ros][drawer][adc][0][3]->GetMaximum(); - double min0 = m_finalHist1[ros][drawer][adc][0][0]->GetMinimum(); - double min1 = m_finalHist1[ros][drawer][adc][0][1]->GetMinimum(); - double min2 = m_finalHist1[ros][drawer][adc][0][2]->GetMinimum(); - double min3 = m_finalHist1[ros][drawer][adc][0][3]->GetMinimum(); + double max0 = m_data->m_finalHist1[ros][drawer][adc][0][0]->GetMaximum(); + double max1 = m_data->m_finalHist1[ros][drawer][adc][0][1]->GetMaximum(); + double max2 = m_data->m_finalHist1[ros][drawer][adc][0][2]->GetMaximum(); + double max3 = m_data->m_finalHist1[ros][drawer][adc][0][3]->GetMaximum(); + double min0 = m_data->m_finalHist1[ros][drawer][adc][0][0]->GetMinimum(); + double min1 = m_data->m_finalHist1[ros][drawer][adc][0][1]->GetMinimum(); + double min2 = m_data->m_finalHist1[ros][drawer][adc][0][2]->GetMinimum(); + double min3 = m_data->m_finalHist1[ros][drawer][adc][0][3]->GetMinimum(); TVirtualPad * pad; if (do_plots) { @@ -1553,15 +1554,15 @@ void TileRawChannelMonTool::drawHists(int ros, int drawer, std::string moduleNam pad->SetGridx(); } - if (max0 < 0.9 * maxy[adc]) m_finalHist1[ros][drawer][adc][0][0]->SetMaximum(maxy[adc]); - if (min0 > (miny[adc] + 0.1 * TMath::Abs(miny[adc]))) m_finalHist1[ros][drawer][adc][0][0]->SetMinimum(miny[adc]); + if (max0 < 0.9 * maxy[adc]) m_data->m_finalHist1[ros][drawer][adc][0][0]->SetMaximum(maxy[adc]); + if (min0 > (miny[adc] + 0.1 * TMath::Abs(miny[adc]))) m_data->m_finalHist1[ros][drawer][adc][0][0]->SetMinimum(miny[adc]); - m_finalHist1[ros][drawer][adc][0][0]->SetMarkerStyle(21); - m_finalHist1[ros][drawer][adc][0][0]->SetMarkerSize(ms); - m_finalHist1[ros][drawer][adc][0][0]->SetLabelSize(0.08, "X"); - m_finalHist1[ros][drawer][adc][0][0]->SetLabelSize(0.08, "Y"); + m_data->m_finalHist1[ros][drawer][adc][0][0]->SetMarkerStyle(21); + m_data->m_finalHist1[ros][drawer][adc][0][0]->SetMarkerSize(ms); + m_data->m_finalHist1[ros][drawer][adc][0][0]->SetLabelSize(0.08, "X"); + m_data->m_finalHist1[ros][drawer][adc][0][0]->SetLabelSize(0.08, "Y"); if (do_plots) { - m_finalHist1[ros][drawer][adc][0][0]->Draw("E0"); + m_data->m_finalHist1[ros][drawer][adc][0][0]->Draw("E0"); } if (do_plots) { @@ -1573,39 +1574,39 @@ void TileRawChannelMonTool::drawHists(int ros, int drawer, std::string moduleNam // if (max2 > 5 * max1) max2 = 2 * max1; // don't put crazy fit results on plot if (max1 < maxy[2 + adc]) { if (max2 < maxy[2 + adc]) - m_finalHist1[ros][drawer][adc][0][1]->SetMaximum(maxy[2 + adc]); + m_data->m_finalHist1[ros][drawer][adc][0][1]->SetMaximum(maxy[2 + adc]); else - m_finalHist1[ros][drawer][adc][0][1]->SetMaximum(max2); + m_data->m_finalHist1[ros][drawer][adc][0][1]->SetMaximum(max2); } else { - if (max1 < max2) m_finalHist1[ros][drawer][adc][0][1]->SetMaximum(max2); + if (max1 < max2) m_data->m_finalHist1[ros][drawer][adc][0][1]->SetMaximum(max2); } if (min1 > miny[2 + adc]) { if (min2 > miny[2 + adc]) - m_finalHist1[ros][drawer][adc][0][1]->SetMinimum(miny[2 + adc]); + m_data->m_finalHist1[ros][drawer][adc][0][1]->SetMinimum(miny[2 + adc]); else - m_finalHist1[ros][drawer][adc][0][1]->SetMinimum(min2); + m_data->m_finalHist1[ros][drawer][adc][0][1]->SetMinimum(min2); } else { - if (min1 > min2) m_finalHist1[ros][drawer][adc][0][1]->SetMinimum(min2); + if (min1 > min2) m_data->m_finalHist1[ros][drawer][adc][0][1]->SetMinimum(min2); } - m_finalHist1[ros][drawer][adc][0][1]->SetMarkerStyle(21); - m_finalHist1[ros][drawer][adc][0][1]->SetMarkerSize(ms); - m_finalHist1[ros][drawer][adc][0][1]->SetLabelSize(0.08, "X"); - m_finalHist1[ros][drawer][adc][0][1]->SetLabelSize(0.08, "Y"); + m_data->m_finalHist1[ros][drawer][adc][0][1]->SetMarkerStyle(21); + m_data->m_finalHist1[ros][drawer][adc][0][1]->SetMarkerSize(ms); + m_data->m_finalHist1[ros][drawer][adc][0][1]->SetLabelSize(0.08, "X"); + m_data->m_finalHist1[ros][drawer][adc][0][1]->SetLabelSize(0.08, "Y"); if (do_plots) { - m_finalHist1[ros][drawer][adc][0][1]->Draw("P0"); + m_data->m_finalHist1[ros][drawer][adc][0][1]->Draw("P0"); } - m_finalHist1[ros][drawer][adc][0][2]->SetMaximum(m_finalHist1[ros][drawer][adc][0][1]->GetMaximum()); - m_finalHist1[ros][drawer][adc][0][2]->SetMinimum(m_finalHist1[ros][drawer][adc][0][1]->GetMinimum()); - m_finalHist1[ros][drawer][adc][0][2]->SetMarkerStyle(25); - m_finalHist1[ros][drawer][adc][0][2]->SetMarkerSize(ms); - m_finalHist1[ros][drawer][adc][0][2]->SetMarkerColor(4); - m_finalHist1[ros][drawer][adc][0][2]->SetLabelSize(0.08, "X"); - m_finalHist1[ros][drawer][adc][0][2]->SetLabelSize(0.08, "Y"); + m_data->m_finalHist1[ros][drawer][adc][0][2]->SetMaximum(m_data->m_finalHist1[ros][drawer][adc][0][1]->GetMaximum()); + m_data->m_finalHist1[ros][drawer][adc][0][2]->SetMinimum(m_data->m_finalHist1[ros][drawer][adc][0][1]->GetMinimum()); + m_data->m_finalHist1[ros][drawer][adc][0][2]->SetMarkerStyle(25); + m_data->m_finalHist1[ros][drawer][adc][0][2]->SetMarkerSize(ms); + m_data->m_finalHist1[ros][drawer][adc][0][2]->SetMarkerColor(4); + m_data->m_finalHist1[ros][drawer][adc][0][2]->SetLabelSize(0.08, "X"); + m_data->m_finalHist1[ros][drawer][adc][0][2]->SetLabelSize(0.08, "Y"); if (do_plots) { - m_finalHist1[ros][drawer][adc][0][2]->Draw("sameP0"); + m_data->m_finalHist1[ros][drawer][adc][0][2]->Draw("sameP0"); } if (do_plots) { @@ -1614,15 +1615,15 @@ void TileRawChannelMonTool::drawHists(int ros, int drawer, std::string moduleNam pad->SetGridx(); } - if (max3 < 0.9 * maxy[4 + adc]) m_finalHist1[ros][drawer][adc][0][3]->SetMaximum(maxy[4 + adc]); - if (min3 > (miny[4 + adc] + 0.1 * TMath::Abs(miny[4 + adc]))) m_finalHist1[ros][drawer][adc][0][3]->SetMinimum(miny[4 + adc]); + if (max3 < 0.9 * maxy[4 + adc]) m_data->m_finalHist1[ros][drawer][adc][0][3]->SetMaximum(maxy[4 + adc]); + if (min3 > (miny[4 + adc] + 0.1 * TMath::Abs(miny[4 + adc]))) m_data->m_finalHist1[ros][drawer][adc][0][3]->SetMinimum(miny[4 + adc]); - m_finalHist1[ros][drawer][adc][0][3]->SetMarkerStyle(21); - m_finalHist1[ros][drawer][adc][0][3]->SetMarkerSize(ms); - m_finalHist1[ros][drawer][adc][0][3]->SetLabelSize(0.08, "X"); - m_finalHist1[ros][drawer][adc][0][3]->SetLabelSize(0.08, "Y"); + m_data->m_finalHist1[ros][drawer][adc][0][3]->SetMarkerStyle(21); + m_data->m_finalHist1[ros][drawer][adc][0][3]->SetMarkerSize(ms); + m_data->m_finalHist1[ros][drawer][adc][0][3]->SetLabelSize(0.08, "X"); + m_data->m_finalHist1[ros][drawer][adc][0][3]->SetLabelSize(0.08, "Y"); if (do_plots) { - m_finalHist1[ros][drawer][adc][0][3]->Draw("E0"); + m_data->m_finalHist1[ros][drawer][adc][0][3]->Draw("E0"); } } //end of loop over gain @@ -1666,12 +1667,12 @@ void TileRawChannelMonTool::drawDsp(int ros, int drawer, std::string moduleName) double norm[2] = { 1., 1 }; for (int adc = 0; adc < maxgain; ++adc) { - double maxEdsp = m_finalHistDsp1[ros][drawer][adc][sumEdsp_fit]->GetMaximum(); - double minEdsp = m_finalHistDsp1[ros][drawer][adc][sumEdsp_fit]->GetMinimum(); - double maxTdsp = m_finalHistDsp1[ros][drawer][adc][sumTdsp_fit]->GetMaximum(); - double minTdsp = m_finalHistDsp1[ros][drawer][adc][sumTdsp_fit]->GetMinimum(); - double maxchidsp = m_finalHistDsp2[ros][drawer][adc][0]->GetMaximum(); - double minchidsp = m_finalHistDsp2[ros][drawer][adc][0]->GetMinimum(); + double maxEdsp = m_data->m_finalHistDsp1[ros][drawer][adc][sumEdsp_fit]->GetMaximum(); + double minEdsp = m_data->m_finalHistDsp1[ros][drawer][adc][sumEdsp_fit]->GetMinimum(); + double maxTdsp = m_data->m_finalHistDsp1[ros][drawer][adc][sumTdsp_fit]->GetMaximum(); + double minTdsp = m_data->m_finalHistDsp1[ros][drawer][adc][sumTdsp_fit]->GetMinimum(); + double maxchidsp = m_data->m_finalHistDsp2[ros][drawer][adc][0]->GetMaximum(); + double minchidsp = m_data->m_finalHistDsp2[ros][drawer][adc][0]->GetMinimum(); TVirtualPad * pad; if (do_plots) { @@ -1680,26 +1681,26 @@ void TileRawChannelMonTool::drawDsp(int ros, int drawer, std::string moduleName) pad->SetGridx(); } - if (maxEdsp < 0.9 * maxy[adc]) m_finalHistDsp1[ros][drawer][adc][sumEdsp_fit]->SetMaximum(maxy[adc]); - if (minEdsp > miny[adc] + 0.1 * TMath::Abs(miny[adc])) m_finalHistDsp1[ros][drawer][adc][sumEdsp_fit]->SetMinimum(miny[adc]); + if (maxEdsp < 0.9 * maxy[adc]) m_data->m_finalHistDsp1[ros][drawer][adc][sumEdsp_fit]->SetMaximum(maxy[adc]); + if (minEdsp > miny[adc] + 0.1 * TMath::Abs(miny[adc])) m_data->m_finalHistDsp1[ros][drawer][adc][sumEdsp_fit]->SetMinimum(miny[adc]); - m_finalHistDsp1[ros][drawer][adc][sumEdsp_fit]->SetMarkerStyle(21); - m_finalHistDsp1[ros][drawer][adc][sumEdsp_fit]->SetMarkerSize(ms); - m_finalHistDsp1[ros][drawer][adc][sumEdsp_fit]->SetLabelSize(0.08, "X"); - m_finalHistDsp1[ros][drawer][adc][sumEdsp_fit]->SetLabelSize(0.08, "Y"); - if (do_plots) m_finalHistDsp1[ros][drawer][adc][sumEdsp_fit]->Draw(""); + m_data->m_finalHistDsp1[ros][drawer][adc][sumEdsp_fit]->SetMarkerStyle(21); + m_data->m_finalHistDsp1[ros][drawer][adc][sumEdsp_fit]->SetMarkerSize(ms); + m_data->m_finalHistDsp1[ros][drawer][adc][sumEdsp_fit]->SetLabelSize(0.08, "X"); + m_data->m_finalHistDsp1[ros][drawer][adc][sumEdsp_fit]->SetLabelSize(0.08, "Y"); + if (do_plots) m_data->m_finalHistDsp1[ros][drawer][adc][sumEdsp_fit]->Draw(""); //Now we add the 1d histogram on the y-axis - if (m_hBarDsp1[ros][drawer][adc][sumEdsp_fit]->GetMaximum() > 0.1) { //normalize the scale to get into the frame - norm[sumEdsp_fit] = 47. / m_hBarDsp1[ros][drawer][adc][sumEdsp_fit]->GetMaximum(); + if (m_data->m_hBarDsp1[ros][drawer][adc][sumEdsp_fit]->GetMaximum() > 0.1) { //normalize the scale to get into the frame + norm[sumEdsp_fit] = 47. / m_data->m_hBarDsp1[ros][drawer][adc][sumEdsp_fit]->GetMaximum(); } - m_hBarDsp1[ros][drawer][adc][sumEdsp_fit]->Scale(norm[sumEdsp_fit]); + m_data->m_hBarDsp1[ros][drawer][adc][sumEdsp_fit]->Scale(norm[sumEdsp_fit]); //hbardsp1[ros][drawer][adc][sumEdsp_fit]->SetFillStyle(3350); - m_hBarDsp1[ros][drawer][adc][sumEdsp_fit]->SetFillColor(38); + m_data->m_hBarDsp1[ros][drawer][adc][sumEdsp_fit]->SetFillColor(38); if (do_plots) { - m_hBarDsp1[ros][drawer][adc][sumEdsp_fit]->Draw("hbar,same"); + m_data->m_hBarDsp1[ros][drawer][adc][sumEdsp_fit]->Draw("hbar,same"); - m_finalHistDsp1[ros][drawer][adc][sumEdsp_fit]->Draw("E0,same"); + m_data->m_finalHistDsp1[ros][drawer][adc][sumEdsp_fit]->Draw("E0,same"); line.Draw(); @@ -1708,25 +1709,25 @@ void TileRawChannelMonTool::drawDsp(int ros, int drawer, std::string moduleName) pad->SetGridx(); } - if (maxTdsp < 0.9 * maxy[2 + adc]) m_finalHistDsp1[ros][drawer][adc][sumTdsp_fit]->SetMaximum(maxy[2 + adc]); - if (minTdsp > miny[2 + adc] + 0.1 * TMath::Abs(miny[2 + adc])) m_finalHistDsp1[ros][drawer][adc][sumTdsp_fit]->SetMinimum(miny[2 + adc]); + if (maxTdsp < 0.9 * maxy[2 + adc]) m_data->m_finalHistDsp1[ros][drawer][adc][sumTdsp_fit]->SetMaximum(maxy[2 + adc]); + if (minTdsp > miny[2 + adc] + 0.1 * TMath::Abs(miny[2 + adc])) m_data->m_finalHistDsp1[ros][drawer][adc][sumTdsp_fit]->SetMinimum(miny[2 + adc]); - m_finalHistDsp1[ros][drawer][adc][sumTdsp_fit]->SetMarkerStyle(21); - m_finalHistDsp1[ros][drawer][adc][sumTdsp_fit]->SetMarkerSize(ms); - m_finalHistDsp1[ros][drawer][adc][sumTdsp_fit]->SetLabelSize(0.08, "X"); - m_finalHistDsp1[ros][drawer][adc][sumTdsp_fit]->SetLabelSize(0.08, "Y"); - if (do_plots) m_finalHistDsp1[ros][drawer][adc][sumTdsp_fit]->Draw(""); + m_data->m_finalHistDsp1[ros][drawer][adc][sumTdsp_fit]->SetMarkerStyle(21); + m_data->m_finalHistDsp1[ros][drawer][adc][sumTdsp_fit]->SetMarkerSize(ms); + m_data->m_finalHistDsp1[ros][drawer][adc][sumTdsp_fit]->SetLabelSize(0.08, "X"); + m_data->m_finalHistDsp1[ros][drawer][adc][sumTdsp_fit]->SetLabelSize(0.08, "Y"); + if (do_plots) m_data->m_finalHistDsp1[ros][drawer][adc][sumTdsp_fit]->Draw(""); - if (m_hBarDsp1[ros][drawer][adc][sumTdsp_fit]->GetMaximum() > 0.1) { //normalize the scale to get into the frame - norm[sumTdsp_fit] = 47. / m_hBarDsp1[ros][drawer][adc][sumTdsp_fit]->GetMaximum(); + if (m_data->m_hBarDsp1[ros][drawer][adc][sumTdsp_fit]->GetMaximum() > 0.1) { //normalize the scale to get into the frame + norm[sumTdsp_fit] = 47. / m_data->m_hBarDsp1[ros][drawer][adc][sumTdsp_fit]->GetMaximum(); } - m_hBarDsp1[ros][drawer][adc][sumTdsp_fit]->Scale(norm[sumTdsp_fit]); + m_data->m_hBarDsp1[ros][drawer][adc][sumTdsp_fit]->Scale(norm[sumTdsp_fit]); // hbardsp1[ros][drawer][adc][sumTdsp_fit]->SetFillStyle(3350); - m_hBarDsp1[ros][drawer][adc][sumTdsp_fit]->SetFillColor(38); + m_data->m_hBarDsp1[ros][drawer][adc][sumTdsp_fit]->SetFillColor(38); if (do_plots) { - m_hBarDsp1[ros][drawer][adc][sumTdsp_fit]->Draw("hbar,same"); + m_data->m_hBarDsp1[ros][drawer][adc][sumTdsp_fit]->Draw("hbar,same"); - m_finalHistDsp1[ros][drawer][adc][sumTdsp_fit]->Draw("E0,same"); + m_data->m_finalHistDsp1[ros][drawer][adc][sumTdsp_fit]->Draw("E0,same"); line.Draw(); @@ -1736,14 +1737,14 @@ void TileRawChannelMonTool::drawDsp(int ros, int drawer, std::string moduleName) pad->SetGridy(); } - if (maxchidsp < 0.9 * maxy[4 + adc]) m_finalHistDsp2[ros][drawer][adc][0]->SetMaximum(maxy[4 + adc]); - if (minchidsp > miny[4 + adc] + 0.1 * TMath::Abs(miny[4 + adc])) m_finalHistDsp2[ros][drawer][adc][0]->SetMinimum(miny[4 + adc]); + if (maxchidsp < 0.9 * maxy[4 + adc]) m_data->m_finalHistDsp2[ros][drawer][adc][0]->SetMaximum(maxy[4 + adc]); + if (minchidsp > miny[4 + adc] + 0.1 * TMath::Abs(miny[4 + adc])) m_data->m_finalHistDsp2[ros][drawer][adc][0]->SetMinimum(miny[4 + adc]); - m_finalHistDsp2[ros][drawer][adc][0]->SetLabelSize(0.08, "X"); - m_finalHistDsp2[ros][drawer][adc][0]->SetLabelSize(0.08, "Y"); + m_data->m_finalHistDsp2[ros][drawer][adc][0]->SetLabelSize(0.08, "X"); + m_data->m_finalHistDsp2[ros][drawer][adc][0]->SetLabelSize(0.08, "Y"); if (do_plots) { gStyle->SetPalette(1); - m_finalHistDsp2[ros][drawer][adc][0]->Draw("zcol"); + m_data->m_finalHistDsp2[ros][drawer][adc][0]->Draw("zcol"); } } //end of loop over gain @@ -1760,8 +1761,8 @@ void TileRawChannelMonTool::drawDsp(int ros, int drawer, std::string moduleName) if (do_plots) delete Can; for (int adc = 0; adc < maxgain; ++adc) { - m_hBarDsp1[ros][drawer][adc][sumEdsp_fit]->Scale(1 / norm[sumEdsp_fit]); //back to normal - m_hBarDsp1[ros][drawer][adc][sumTdsp_fit]->Scale(1 / norm[sumTdsp_fit]); //back to normal + m_data->m_hBarDsp1[ros][drawer][adc][sumEdsp_fit]->Scale(1 / norm[sumEdsp_fit]); //back to normal + m_data->m_hBarDsp1[ros][drawer][adc][sumTdsp_fit]->Scale(1 / norm[sumTdsp_fit]); //back to normal } } @@ -1946,13 +1947,13 @@ void TileRawChannelMonTool::LaserFancyPlotting(int ros, int drawer, int maxgain, std::ostringstream hn; hn << "empty_" << g; - final_empty[g] = new TH1F(hn.str().c_str(), m_finalHist1[ros][drawer][g][0][0]->GetTitle(), 48, 0, 48); + final_empty[g] = new TH1F(hn.str().c_str(), m_data->m_finalHist1[ros][drawer][g][0][0]->GetTitle(), 48, 0, 48); hn.str(""); hn << "odd_" << g; - final_odd[g] = new TH1F(hn.str().c_str(), m_finalHist1[ros][drawer][g][0][0]->GetTitle(), 48, 0, 48); + final_odd[g] = new TH1F(hn.str().c_str(), m_data->m_finalHist1[ros][drawer][g][0][0]->GetTitle(), 48, 0, 48); hn.str(""); hn << "even_" << g; - final_even[g] = new TH1F(hn.str().c_str(), m_finalHist1[ros][drawer][g][0][0]->GetTitle(), 48, 0, 48); + final_even[g] = new TH1F(hn.str().c_str(), m_data->m_finalHist1[ros][drawer][g][0][0]->GetTitle(), 48, 0, 48); //---- Histograms for the ratio Var/Mean // titles... @@ -1988,16 +1989,16 @@ void TileRawChannelMonTool::LaserFancyPlotting(int ros, int drawer, int maxgain, // loop over the 2 gains values for (int adc = 0; adc < maxgain; ++adc) { - double max0 = m_finalHist1[ros][drawer][adc][0][0]->GetMaximum(); + double max0 = m_data->m_finalHist1[ros][drawer][adc][0][0]->GetMaximum(); //double max1 = final_hist1[ros][drawer][adc][0][1]->GetMaximum(); //double max2 = final_hist1[ros][drawer][adc][0][2]->GetMaximum(); - double max3 = m_finalHist1[ros][drawer][adc][0][3]->GetMaximum(); - double max4 = m_finalHist1[ros][drawer][adc][0][4]->GetMaximum(); //Lukas - double min0 = m_finalHist1[ros][drawer][adc][0][0]->GetMinimum(); + double max3 = m_data->m_finalHist1[ros][drawer][adc][0][3]->GetMaximum(); + double max4 = m_data->m_finalHist1[ros][drawer][adc][0][4]->GetMaximum(); //Lukas + double min0 = m_data->m_finalHist1[ros][drawer][adc][0][0]->GetMinimum(); //double min1 = final_hist1[ros][drawer][adc][0][1]->GetMinimum(); //double min2 = final_hist1[ros][drawer][adc][0][2]->GetMinimum(); - double min3 = m_finalHist1[ros][drawer][adc][0][3]->GetMinimum(); - double min4 = m_finalHist1[ros][drawer][adc][0][4]->GetMinimum(); //Lukas + double min3 = m_data->m_finalHist1[ros][drawer][adc][0][3]->GetMinimum(); + double min4 = m_data->m_finalHist1[ros][drawer][adc][0][4]->GetMinimum(); //Lukas if (max0 > 0.) { final_empty[adc]->SetMaximum(1.05 * max0); @@ -2021,22 +2022,22 @@ void TileRawChannelMonTool::LaserFancyPlotting(int ros, int drawer, int maxgain, double Kapa = 1.30e-3; for (int ch = 0; ch < 48; ++ch) { if (isDisconnected(ros, drawer, ch)) { - final_empty[adc]->SetBinContent(ch + 1, m_finalHist1[ros][drawer][adc][0][0]->GetBinContent(ch + 1) + 0.01); - final_empty[adc]->SetBinError(ch + 1, m_finalHist1[ros][drawer][adc][0][0]->GetBinError(ch + 1) + 0.01); + final_empty[adc]->SetBinContent(ch + 1, m_data->m_finalHist1[ros][drawer][adc][0][0]->GetBinContent(ch + 1) + 0.01); + final_empty[adc]->SetBinError(ch + 1, m_data->m_finalHist1[ros][drawer][adc][0][0]->GetBinError(ch + 1) + 0.01); pmtGain_empty[adc]->SetBinContent(ch + 1, 0.01); pmtGain_empty[adc]->SetBinError(ch + 1, 0.01); } // connected channels else { - double mean = m_finalHist1[ros][drawer][adc][0][0]->GetBinContent(ch + 1); - double rms = m_finalHist1[ros][drawer][adc][0][1]->GetBinContent(ch + 1); - double dmean = m_finalHist1[ros][drawer][adc][0][0]->GetBinError(ch + 1); - double drms = m_finalHist1[ros][drawer][adc][0][1]->GetBinError(ch + 1); + double mean = m_data->m_finalHist1[ros][drawer][adc][0][0]->GetBinContent(ch + 1); + double rms = m_data->m_finalHist1[ros][drawer][adc][0][1]->GetBinContent(ch + 1); + double dmean = m_data->m_finalHist1[ros][drawer][adc][0][0]->GetBinError(ch + 1); + double drms = m_data->m_finalHist1[ros][drawer][adc][0][1]->GetBinError(ch + 1); // even pmts int pmt = abs(m_cabling->channel2hole(ros, ch)); //extra safe: abs should not be necessary, because channels are connected. if (pmt % 2 == 0) { - final_even[adc]->SetBinContent(ch + 1, m_finalHist1[ros][drawer][adc][0][0]->GetBinContent(ch + 1) + 0.001); - final_even[adc]->SetBinError(ch + 1, m_finalHist1[ros][drawer][adc][0][0]->GetBinError(ch + 1) + 0.001); + final_even[adc]->SetBinContent(ch + 1, m_data->m_finalHist1[ros][drawer][adc][0][0]->GetBinContent(ch + 1) + 0.001); + final_even[adc]->SetBinError(ch + 1, m_data->m_finalHist1[ros][drawer][adc][0][0]->GetBinError(ch + 1) + 0.001); // if (bin!=0) // log<<MSG::DEBUG<<"["<<ros<<"]["<<drawer+1<<"]["<<adc<<"]["<< bin <<"] : mean=" @@ -2051,8 +2052,8 @@ void TileRawChannelMonTool::LaserFancyPlotting(int ros, int drawer, int maxgain, } // odd pmts else { - final_odd[adc]->SetBinContent(ch + 1, m_finalHist1[ros][drawer][adc][0][0]->GetBinContent(ch + 1) + 0.001); - final_odd[adc]->SetBinError(ch + 1, m_finalHist1[ros][drawer][adc][0][0]->GetBinError(ch + 1) + 0.001); + final_odd[adc]->SetBinContent(ch + 1, m_data->m_finalHist1[ros][drawer][adc][0][0]->GetBinContent(ch + 1) + 0.001); + final_odd[adc]->SetBinError(ch + 1, m_data->m_finalHist1[ros][drawer][adc][0][0]->GetBinError(ch + 1) + 0.001); // log<<MSG::DEBUG<<"["<<ros<<"]["<<drawer+1<<"]["<<adc<<"]["<< bin <<"] : mean=" // << mean <<", var="<< rms*rms<<"\tVar/mean(corrected)="<< (rms*rms/mean) - Kapa*mean <<endreq; @@ -2125,20 +2126,20 @@ void TileRawChannelMonTool::LaserFancyPlotting(int ros, int drawer, int maxgain, pad->SetGridx(); } - m_finalHist1[ros][drawer][adc][0][1]->SetMarkerStyle(21); - m_finalHist1[ros][drawer][adc][0][1]->SetMarkerSize(ms); - m_finalHist1[ros][drawer][adc][0][1]->SetLabelSize(0.08, "X"); - m_finalHist1[ros][drawer][adc][0][1]->SetLabelSize(0.08, "Y"); - if (do_plots) m_finalHist1[ros][drawer][adc][0][1]->Draw("P0"); - - m_finalHist1[ros][drawer][adc][0][2]->SetMaximum(m_finalHist1[ros][drawer][adc][0][1]->GetMaximum()); - m_finalHist1[ros][drawer][adc][0][2]->SetMinimum(m_finalHist1[ros][drawer][adc][0][1]->GetMinimum()); - m_finalHist1[ros][drawer][adc][0][2]->SetMarkerStyle(25); - m_finalHist1[ros][drawer][adc][0][2]->SetMarkerSize(ms); - m_finalHist1[ros][drawer][adc][0][2]->SetMarkerColor(4); - m_finalHist1[ros][drawer][adc][0][2]->SetLabelSize(0.08, "X"); - m_finalHist1[ros][drawer][adc][0][2]->SetLabelSize(0.08, "Y"); - if (do_plots) m_finalHist1[ros][drawer][adc][0][2]->Draw("sameP0"); + m_data->m_finalHist1[ros][drawer][adc][0][1]->SetMarkerStyle(21); + m_data->m_finalHist1[ros][drawer][adc][0][1]->SetMarkerSize(ms); + m_data->m_finalHist1[ros][drawer][adc][0][1]->SetLabelSize(0.08, "X"); + m_data->m_finalHist1[ros][drawer][adc][0][1]->SetLabelSize(0.08, "Y"); + if (do_plots) m_data->m_finalHist1[ros][drawer][adc][0][1]->Draw("P0"); + + m_data->m_finalHist1[ros][drawer][adc][0][2]->SetMaximum(m_data->m_finalHist1[ros][drawer][adc][0][1]->GetMaximum()); + m_data->m_finalHist1[ros][drawer][adc][0][2]->SetMinimum(m_data->m_finalHist1[ros][drawer][adc][0][1]->GetMinimum()); + m_data->m_finalHist1[ros][drawer][adc][0][2]->SetMarkerStyle(25); + m_data->m_finalHist1[ros][drawer][adc][0][2]->SetMarkerSize(ms); + m_data->m_finalHist1[ros][drawer][adc][0][2]->SetMarkerColor(4); + m_data->m_finalHist1[ros][drawer][adc][0][2]->SetLabelSize(0.08, "X"); + m_data->m_finalHist1[ros][drawer][adc][0][2]->SetLabelSize(0.08, "Y"); + if (do_plots) m_data->m_finalHist1[ros][drawer][adc][0][2]->Draw("sameP0"); // Select pads 7 and 8 if (do_plots) { @@ -2147,14 +2148,14 @@ void TileRawChannelMonTool::LaserFancyPlotting(int ros, int drawer, int maxgain, pad->SetGridx(); } - if (max3 < 0.9 * maxy[4 + adc]) m_finalHist1[ros][drawer][adc][0][3]->SetMaximum(maxy[4 + adc]); - if (min3 > miny[4 + adc] + 0.1 * TMath::Abs(miny[4 + adc])) m_finalHist1[ros][drawer][adc][0][3]->SetMinimum(miny[4 + adc]); + if (max3 < 0.9 * maxy[4 + adc]) m_data->m_finalHist1[ros][drawer][adc][0][3]->SetMaximum(maxy[4 + adc]); + if (min3 > miny[4 + adc] + 0.1 * TMath::Abs(miny[4 + adc])) m_data->m_finalHist1[ros][drawer][adc][0][3]->SetMinimum(miny[4 + adc]); - m_finalHist1[ros][drawer][adc][0][3]->SetMarkerStyle(21); - m_finalHist1[ros][drawer][adc][0][3]->SetMarkerSize(ms); - m_finalHist1[ros][drawer][adc][0][3]->SetLabelSize(0.08, "X"); - m_finalHist1[ros][drawer][adc][0][3]->SetLabelSize(0.08, "Y"); - m_finalHist1[ros][drawer][adc][0][3]->Draw("E0"); + m_data->m_finalHist1[ros][drawer][adc][0][3]->SetMarkerStyle(21); + m_data->m_finalHist1[ros][drawer][adc][0][3]->SetMarkerSize(ms); + m_data->m_finalHist1[ros][drawer][adc][0][3]->SetLabelSize(0.08, "X"); + m_data->m_finalHist1[ros][drawer][adc][0][3]->SetLabelSize(0.08, "Y"); + m_data->m_finalHist1[ros][drawer][adc][0][3]->Draw("E0"); //Lukas // Select pads 9 and 10 @@ -2164,14 +2165,14 @@ void TileRawChannelMonTool::LaserFancyPlotting(int ros, int drawer, int maxgain, pad->SetGridx(); } - if (max4 < 0.9 * maxy[4 + adc]) m_finalHist1[ros][drawer][adc][0][4]->SetMaximum(maxy[4 + adc]); - if (min4 > miny[4 + adc] + 0.1 * TMath::Abs(miny[4 + adc])) m_finalHist1[ros][drawer][adc][0][4]->SetMinimum(miny[4 + adc]); + if (max4 < 0.9 * maxy[4 + adc]) m_data->m_finalHist1[ros][drawer][adc][0][4]->SetMaximum(maxy[4 + adc]); + if (min4 > miny[4 + adc] + 0.1 * TMath::Abs(miny[4 + adc])) m_data->m_finalHist1[ros][drawer][adc][0][4]->SetMinimum(miny[4 + adc]); - m_finalHist1[ros][drawer][adc][0][4]->SetMarkerStyle(21); - m_finalHist1[ros][drawer][adc][0][4]->SetMarkerSize(ms); - m_finalHist1[ros][drawer][adc][0][4]->SetLabelSize(0.08, "X"); - m_finalHist1[ros][drawer][adc][0][4]->SetLabelSize(0.08, "Y"); - if (do_plots) m_finalHist1[ros][drawer][adc][0][4]->Draw("E0"); + m_data->m_finalHist1[ros][drawer][adc][0][4]->SetMarkerStyle(21); + m_data->m_finalHist1[ros][drawer][adc][0][4]->SetMarkerSize(ms); + m_data->m_finalHist1[ros][drawer][adc][0][4]->SetLabelSize(0.08, "X"); + m_data->m_finalHist1[ros][drawer][adc][0][4]->SetLabelSize(0.08, "Y"); + if (do_plots) m_data->m_finalHist1[ros][drawer][adc][0][4]->Draw("E0"); //Lukas } //end of loop over gain