From 2cfcfc276ce7211de722dcb87e9ea571fa585000 Mon Sep 17 00:00:00 2001 From: stefan-zugravel Date: Wed, 4 Dec 2024 11:32:47 +0100 Subject: [PATCH 01/11] [ZDC] bug fix and plot addition --- Modules/ZDC/include/ZDC/ZDCRawDataTask.h | 1 + Modules/ZDC/src/ZDCRawDataTask.cxx | 62 ++++++++ Modules/ZDC/src/ZDCRecDataPostProcessing.cxx | 2 +- Modules/ZDC/src/ZDCRecDataTask.cxx | 148 ++++++++++++++++++- 4 files changed, 204 insertions(+), 9 deletions(-) diff --git a/Modules/ZDC/include/ZDC/ZDCRawDataTask.h b/Modules/ZDC/include/ZDC/ZDCRawDataTask.h index 420d4e8af1..4866160339 100644 --- a/Modules/ZDC/include/ZDC/ZDCRawDataTask.h +++ b/Modules/ZDC/include/ZDC/ZDCRawDataTask.h @@ -141,6 +141,7 @@ class ZDCRawDataTask final : public TaskInterface std::string fNameChannel[o2::zdc::NModules][o2::zdc::NChPerModule]; std::vector fMatrixHistoBaseline[o2::zdc::NModules][o2::zdc::NChPerModule]; std::vector fMatrixHistoCounts[o2::zdc::NModules][o2::zdc::NChPerModule]; + std::vector fMatrixHistoCounts_a[o2::zdc::NModules][o2::zdc::NChPerModule]; std::vector fMatrixHistoSignal[o2::zdc::NModules][o2::zdc::NChPerModule]; std::vector fMatrixHistoBunch[o2::zdc::NModules][o2::zdc::NChPerModule]; diff --git a/Modules/ZDC/src/ZDCRawDataTask.cxx b/Modules/ZDC/src/ZDCRawDataTask.cxx index b6b2eaf311..3d763a77c8 100644 --- a/Modules/ZDC/src/ZDCRawDataTask.cxx +++ b/Modules/ZDC/src/ZDCRawDataTask.cxx @@ -76,6 +76,15 @@ void ZDCRawDataTask::startOfActivity(const Activity& activity) void ZDCRawDataTask::startOfCycle() { ILOG(Debug, Devel) << "startOfCycle" << ENDM; + + // Reset at each QC cycle of the trending plot data for the rate measurement + for (int i = 0; i < o2::zdc::NModules; i++) { + for (int j = 0; j < o2::zdc::NChPerModule; j++) { + for (int k = 0; k < (int)fMatrixHistoCounts_a[i][j].size(); k++) { + fMatrixHistoCounts_a[i][j].at(k).histo->Reset(); + } + } + } fNumCycle++; fNumCycleErr++; } @@ -324,6 +333,18 @@ void ZDCRawDataTask::initHisto() addNewHisto("COUNTS", "hcounts-ZEM1_TR", "Counts ZEM1", "ZEM1_TR", "LBC"); addNewHisto("COUNTS", "hcounts-ZEM2_TR", "Counts ZEM2", "ZEM2_TR", "LBC"); + + addNewHisto("COUNTSA", "hcounts_ZNA_TC_TR", "Counts ZNA TC istantaneous", "ZNA_TC_TR", "LBC"); + addNewHisto("COUNTSA", "hcounts_ZNA_SUM", "Counts ZNA SUM istantaneous", "ZNA_SUM", "LBC"); + addNewHisto("COUNTSA", "hcounts_ZNC_TC_TR", "Counts ZNC TC istantaneous", "ZNC_TC_TR", "LBC"); + addNewHisto("COUNTSA", "hcounts_ZNC_SUM", "Counts ZNC SUM istantaneous", "ZNC_SUM", "LBC"); + addNewHisto("COUNTSA", "hcounts_ZPA_TC_TR", "Counts ZPA TC istantaneous", "ZPA_TC_TR", "LBC"); + addNewHisto("COUNTSA", "hcounts_ZPA_SUM", "Counts ZPA SUM istantaneous", "ZPA_SUM", "LBC"); + addNewHisto("COUNTSA", "hcounts_ZPC_TC_TR", "Counts ZPC TC istantaneous", "ZPC_TC_TR", "LBC"); + addNewHisto("COUNTSA", "hcounts_ZPC_SUM", "Counts ZPC SUM istantaneous", "ZPC_SUM", "LBC"); + addNewHisto("COUNTSA", "hcounts_ZEM1_TR", "Counts ZEM1 istantaneous", "ZEM1_TR", "LBC"); + addNewHisto("COUNTSA", "hcounts_ZEM2_TR", "Counts ZEM2 istantaneous", "ZEM2_TR", "LBC"); + // Histograms Signal int nBCAheadTrig = 3; int nbx = (nBCAheadTrig + 1 + 12) * o2::zdc::NTimeBinsPerBC; @@ -780,10 +801,17 @@ int ZDCRawDataTask::process(const o2::zdc::EventChData& ch) if (fSummaryError && (f.error)) { fSummaryError->Fill(fMatrixAlign[f.board][f.ch].bin - 1, 0); } + + // Fill counts for (int i = 0; i < (int)fMatrixHistoCounts[f.board][f.ch].size(); i++) { fMatrixHistoCounts[f.board][f.ch].at(i).histo->Fill(f.hits & 0xfff); } + // Fill counts for trending + for (int i = 0; i < (int)fMatrixHistoCounts_a[f.board][f.ch].size(); i++) { + fMatrixHistoCounts_a[f.board][f.ch].at(i).histo->Fill(f.hits & 0xfff); + } + // Fill Summary if (fMapBinNameIdSummaryHisto.find(getNameChannel(f.board, f.ch)) != fMapBinNameIdSummaryHisto.end()) { if (fMatrixHistoBaseline[f.board][f.ch].size() > 0) { @@ -952,12 +980,46 @@ bool ZDCRawDataTask::addNewHisto(std::string type, std::string name, std::string return true; } } + + if (type == "COUNTSA") { + // Check if Histogram Exist + if (std::find(fNameHisto.begin(), fNameHisto.end(), name) == fNameHisto.end()) { + fNameHisto.push_back(name); + h1d.histo = new TH1F(hname, htit, fNumBinX, fMinBinX, fMaxBinX); + h1d.condHisto.push_back(condition); + ih = (int)fMatrixHistoCounts_a[mod][ch].size(); + fMatrixHistoCounts_a[mod][ch].push_back(h1d); + + if (ih < (int)fMatrixHistoCounts_a[mod][ch].size()) { + getObjectsManager()->startPublishing(fMatrixHistoCounts_a[mod][ch].at(ih).histo); + try { + getObjectsManager()->addMetadata(fMatrixHistoCounts_a[mod][ch].at(ih).histo->GetName(), fMatrixHistoCounts_a[mod][ch].at(ih).histo->GetName(), "34"); + return true; + } catch (...) { + ILOG(Warning, Support) << "Metadata could not be added to " << fMatrixHistoCounts_a[mod][ch].at(ih).histo->GetName() << ENDM; + return false; + } + + delete h1d.histo; + h1d.condHisto.clear(); + } + return true; + } else { + for (int i = 0; i < (int)fMatrixHistoCounts_a[mod][ch].size(); i++) { + fMatrixHistoCounts_a[mod][ch].at(i).histo->Reset(); + } + return true; + } + } + // SIGNAL if (type == "SIGNAL") { // Check if Histogram Exist if (std::find(fNameHisto.begin(), fNameHisto.end(), name) == fNameHisto.end()) { fNameHisto.push_back(name); h2d.histo = new TH2F(hname, htit, fNumBinX, fMinBinX, fMaxBinX, fNumBinY, fMinBinY, fMaxBinY); + h2d.histo->GetXaxis()->SetTitle("Sample number"); + h2d.histo->GetYaxis()->SetTitle("ADC units"); h2d.condHisto.push_back(condition); ih = (int)fMatrixHistoSignal[mod][ch].size(); fMatrixHistoSignal[mod][ch].push_back(h2d); diff --git a/Modules/ZDC/src/ZDCRecDataPostProcessing.cxx b/Modules/ZDC/src/ZDCRecDataPostProcessing.cxx index d3ef0301b9..d39d1dc755 100644 --- a/Modules/ZDC/src/ZDCRecDataPostProcessing.cxx +++ b/Modules/ZDC/src/ZDCRecDataPostProcessing.cxx @@ -357,7 +357,7 @@ void ZDCRecDataPostProcessing::updateSummaryPeak1pHistos(Trigger t, repository:: } else { maxBin1p = 250; } - h->GetXaxis()->SetRangeUser(2, 250); + h->GetXaxis()->SetRangeUser(minBin1p, maxBin1p); mSummaryPeak1pHisto->SetBinContent(bin, h->GetBinCenter(h->GetMaximumBin())); } } diff --git a/Modules/ZDC/src/ZDCRecDataTask.cxx b/Modules/ZDC/src/ZDCRecDataTask.cxx index baea99529d..b9bf9ad51d 100644 --- a/Modules/ZDC/src/ZDCRecDataTask.cxx +++ b/Modules/ZDC/src/ZDCRecDataTask.cxx @@ -165,6 +165,8 @@ void ZDCRecDataTask::initVecType() insertTypeVec("ADC"); insertTypeVec("TDCV"); insertTypeVec("TDCA"); + insertTypeVec("TDCAC"); + insertTypeVec("ADCAC"); insertTypeVec("BC"); insertTypeVec("INFO"); } @@ -292,6 +294,15 @@ void ZDCRecDataTask::initHisto() addNewHisto("ADC1D", "h_ADC_ZPC_TC_H", "ADC ZPC TC ZOOM", "ADC", "ZPCC", "", "", 0); addNewHisto("ADC1D", "h_ADC_ZPC_SUM_H", "ADC ZPC SUM ZOOM", "ADC", "ZPCS", "", "", 0); + addNewHisto("ADC1D", "h_ADC_ZPA_TC_H_CUT", "ADC ZPA TC ZOOM with cut", "ADCAC", "ZPAC", "", "", 0); + addNewHisto("ADC1D", "h_ADC_ZPA_SUM_H_CUT", "ADC ZPA SUM ZOOM with cut", "ADCAC", "ZPAS", "", "", 0); + addNewHisto("ADC1D", "h_ADC_ZPC_TC_H_CUT", "ADC ZPC TC ZOOM with cut", "ADCAC", "ZPCC", "", "", 0); + addNewHisto("ADC1D", "h_ADC_ZPC_SUM_H_CUT", "ADC ZPC SUM ZOOM with cut", "ADCAC", "ZPCS", "", "", 0); + addNewHisto("ADC1D", "h_ADC_ZNA_TC_H_CUT", "ADC ZNA TC ZOOM with cut", "ADCAC", "ZNAC", "", "", 0); + addNewHisto("ADC1D", "h_ADC_ZNA_SUM_H_CUT", "ADC ZNA SUM ZOOM with cut", "ADCAC", "ZNAS", "", "", 0); + addNewHisto("ADC1D", "h_ADC_ZNC_TC_H_CUT", "ADC ZNC TC ZOOM with cut", "ADCAC", "ZNCC", "", "", 0); + addNewHisto("ADC1D", "h_ADC_ZNC_SUM_H_CUT", "ADC ZNC SUM ZOOM with cut", "ADCAC", "ZNCS", "", "", 0); + if (auto param = mCustomParameters.find("TDCT"); param != mCustomParameters.end()) { ILOG(Debug, Devel) << "Custom parameter - TDCT: " << param->second << ENDM; tokenString = tokenLine(param->second, ";"); @@ -350,6 +361,16 @@ void ZDCRecDataTask::initHisto() addNewHisto("TDC1D", "h_TDC_ZNC_SUM_A_H", "TDC Amplitude ZNC SUM ZOOM", "TDCA", "ZNCS", "", "", 0); addNewHisto("TDC1D", "h_TDC_ZPC_TC_A_H", "TDC Amplitude ZPC TC ZOOM", "TDCA", "ZPCC", "", "", 0); addNewHisto("TDC1D", "h_TDC_ZPC_SUM_A_H", "TDC Amplitude ZPC SUM ZOOM", "TDCA", "ZPCS", "", "", 0); + + addNewHisto("TDC1D", "h_TDC_ZPA_TC_A_H_CUT", "TDC Amplitude ZPA TC ZOOM with cut", "TDCAC", "ZPAC", "", "", 0); + addNewHisto("TDC1D", "h_TDC_ZPA_SUM_A_H_CUT", "TDC Amplitude ZPA SUM ZOOM with cut", "TDCAC", "ZPAS", "", "", 0); + addNewHisto("TDC1D", "h_TDC_ZPC_TC_A_H_CUT", "TDC Amplitude ZPC TC ZOOM with cut", "TDCAC", "ZPCC", "", "", 0); + addNewHisto("TDC1D", "h_TDC_ZPC_SUM_A_H_CUT", "TDC Amplitude ZPC SUM ZOOM with cut", "TDCAC", "ZPCS", "", "", 0); + addNewHisto("TDC1D", "h_TDC_ZNA_TC_A_H_CUT", "TDC Amplitude ZNA TC ZOOM with cut", "TDCAC", "ZNAC", "", "", 0); + addNewHisto("TDC1D", "h_TDC_ZNA_SUM_A_H_CUT", "TDC Amplitude ZNA SUM ZOOM with cut", "TDCAC", "ZNAS", "", "", 0); + addNewHisto("TDC1D", "h_TDC_ZNC_TC_A_H_CUT", "TDC Amplitude ZNC TC ZOOM with cut", "TDCAC", "ZNCC", "", "", 0); + addNewHisto("TDC1D", "h_TDC_ZNC_SUM_A_H_CUT", "TDC Amplitude ZNC SUM ZOOM with cut", "TDCAC", "ZNCS", "", "", 0); + // Centroid ZPA if (auto param = mCustomParameters.find("CENTR_ZPA"); param != mCustomParameters.end()) { ILOG(Debug, Devel) << "Custom parameter - CENTR_ZPA: " << param->second << ENDM; @@ -521,6 +542,8 @@ void ZDCRecDataTask::initHisto() setBinHisto2D(200, -2, 2, 200, -2, 2); } addNewHisto("CENTR_ZNA", "h_CENTR_ZNA", "ZNA Centroid (cm)", "ADC", "CXZNA", "ADC", "CYZNA", 0); + addNewHisto("CENTR_ZNA", "h_CENTR_ZNA_cut_ZEM", "ZNA Centroid (cm)", "ADC", "CXZNA", "ADC", "CYZNA", 0); + // Centroid ZNC if (auto param = mCustomParameters.find("CENTR_ZNC"); param != mCustomParameters.end()) { ILOG(Debug, Devel) << "Custom parameter - CENTR_ZNC: " << param->second << ENDM; @@ -530,6 +553,7 @@ void ZDCRecDataTask::initHisto() setBinHisto2D(200, -2, 2, 200, -2, 2); } addNewHisto("CENTR_ZNC", "h_CENTR_ZNC", "ZNC Centroid (cm)", "ADC", "CXZNC", "ADC", "CYZNC", 0); + addNewHisto("CENTR_ZNC", "h_CENTR_ZNC_cut_ZEM", "ZNC Centroid (cm)", "ADC", "CXZNC", "ADC", "CYZNC", 0); } bool ZDCRecDataTask::add1DHisto(std::string typeH, std::string name, std::string title, std::string typeCh1, std::string ch1, int bin) @@ -638,8 +662,42 @@ int ZDCRecDataTask::process(const gsl::span& RecBC, // Histo 1D for (int i = 0; i < (int)mHisto1D.size(); i++) { // Fill ADC 1D - if (mHisto1D.at(i).typeh == "ADC1D" && mHisto1D.at(i).typech == "ADC") { - mHisto1D.at(i).histo->Fill(getADCRecValue(mHisto1D.at(i).typech, mHisto1D.at(i).ch)); + if (mHisto1D.at(i).typeh == "ADC1D" && (mHisto1D.at(i).typech == "ADC" || mHisto1D.at(i).typech == "ADCAC")) { + + if (mHisto1D.at(i).typech == "ADC") { + mHisto1D.at(i).histo->Fill(getADCRecValue(mHisto1D.at(i).typech, mHisto1D.at(i).ch)); + } + + if (mHisto1D.at(i).typech == "ADCAC") { + if (mHisto1D.at(i).ch == "ZPAC" || mHisto1D.at(i).ch == "ZPAS") { + if (mEv.NtdcA(o2::zdc::TDCZNAC) == 0 && mEv.NtdcA(o2::zdc::TDCZNAS) == 0) { + if (getADCRecValue("ADC", mHisto1D.at(i).ch) > -8000) { + mHisto1D.at(i).histo->Fill(getADCRecValue("ADC", mHisto1D.at(i).ch)); + } + } + } + if (mHisto1D.at(i).ch == "ZPCC" || mHisto1D.at(i).ch == "ZPCS") { + if (mEv.NtdcA(o2::zdc::TDCZNCC) == 0 && mEv.NtdcA(o2::zdc::TDCZNCS) == 0) { + if (getADCRecValue("ADC", mHisto1D.at(i).ch) > -8000) { + mHisto1D.at(i).histo->Fill(getADCRecValue("ADC", mHisto1D.at(i).ch)); + } + } + } + if (mHisto1D.at(i).ch == "ZNAC" || mHisto1D.at(i).ch == "ZNAS") { + if (mEv.NtdcA(o2::zdc::TDCZPAC) == 0 && mEv.NtdcA(o2::zdc::TDCZPAS) == 0) { + if (getADCRecValue("ADC", mHisto1D.at(i).ch) > -8000) { + mHisto1D.at(i).histo->Fill(getADCRecValue("ADC", mHisto1D.at(i).ch)); + } + } + } + if (mHisto1D.at(i).ch == "ZNCC" || mHisto1D.at(i).ch == "ZNCS") { + if (mEv.NtdcA(o2::zdc::TDCZPCC) == 0 && mEv.NtdcA(o2::zdc::TDCZPCS) == 0) { + if (getADCRecValue("ADC", mHisto1D.at(i).ch) > -8000) { + mHisto1D.at(i).histo->Fill(getADCRecValue("ADC", mHisto1D.at(i).ch)); + } + } + } + } } // Fill TDC 1D @@ -657,6 +715,65 @@ int ZDCRecDataTask::process(const gsl::span& RecBC, } } } + + // Fill TDCA with cut 1D + if (mHisto1D.at(i).typeh == "TDC1D" && (mHisto1D.at(i).typech == "TDCAC")) { + int tdcid = getIdTDCch("TDCA", mHisto1D.at(i).ch); + auto nhitv = mEv.NtdcV(tdcid); + if (tdcid == o2::zdc::TDCZPAC || tdcid == o2::zdc::TDCZPAS) { + if (mEv.NtdcA(o2::zdc::TDCZNAC) == 0 && mEv.NtdcA(o2::zdc::TDCZNAS) == 0) { + if (mEv.NtdcA(tdcid) == nhitv && nhitv > 0) { + for (int ihit = 0; ihit < nhitv; ihit++) { + if (mHisto1D.at(i).typech == "TDCAC") { + if ((mEv.tdcV(tdcid, ihit) > -2.5 && mEv.tdcV(tdcid, ihit) < 2.5)) { + mHisto1D.at(i).histo->Fill(mEv.tdcA(tdcid, ihit)); + } + } + } + } + } + } + if (tdcid == o2::zdc::TDCZPCC || tdcid == o2::zdc::TDCZPCS) { + if (mEv.NtdcA(o2::zdc::TDCZNCC) == 0 && mEv.NtdcA(o2::zdc::TDCZNCS) == 0) { + if (mEv.NtdcA(tdcid) == nhitv && nhitv > 0) { + for (int ihit = 0; ihit < nhitv; ihit++) { + if (mHisto1D.at(i).typech == "TDCAC") { + if ((mEv.tdcV(tdcid, ihit) > -2.5 && mEv.tdcV(tdcid, ihit) < 2.5)) { + mHisto1D.at(i).histo->Fill(mEv.tdcA(tdcid, ihit)); + } + } + } + } + } + } + if (tdcid == o2::zdc::TDCZNAC || tdcid == o2::zdc::TDCZNAS) { + if (mEv.NtdcA(o2::zdc::TDCZPAC) == 0 && mEv.NtdcA(o2::zdc::TDCZPAS) == 0) { + if (mEv.NtdcA(tdcid) == nhitv && nhitv > 0) { + for (int ihit = 0; ihit < nhitv; ihit++) { + if (mHisto1D.at(i).typech == "TDCAC") { + if ((mEv.tdcV(tdcid, ihit) > -2.5 && mEv.tdcV(tdcid, ihit) < 2.5)) { + mHisto1D.at(i).histo->Fill(mEv.tdcA(tdcid, ihit)); + } + } + } + } + } + } + if (tdcid == o2::zdc::TDCZNCC || tdcid == o2::zdc::TDCZNCS) { + if (mEv.NtdcA(o2::zdc::TDCZPCC) == 0 && mEv.NtdcA(o2::zdc::TDCZPCS) == 0) { + if (mEv.NtdcA(tdcid) == nhitv && nhitv > 0) { + for (int ihit = 0; ihit < nhitv; ihit++) { + if (mHisto1D.at(i).typech == "TDCAC") { + if ((mEv.tdcV(tdcid, ihit) > -2.5 && mEv.tdcV(tdcid, ihit) < 2.5)) { + mHisto1D.at(i).histo->Fill(mEv.tdcA(tdcid, ihit)); + } + } + } + } + } + } + } + // Fill CENTROID ZP if (mHisto1D.at(i).typeh == "CENTR_ZPA" && mHisto1D.at(i).typech == "ADC") { mHisto1D.at(i).histo->Fill(mEv.xZPA()); @@ -717,15 +834,30 @@ int ZDCRecDataTask::process(const gsl::span& RecBC, } } if (mHisto2D.at(i).typeh == "CENTR_ZNA" && mHisto2D.at(i).typech1 == "ADC" && mHisto2D.at(i).typech2 == "ADC") { - mEv.centroidZNA(x, y); - mHisto2D.at(i).histo->Fill(x, y); + if (mHisto2D.at(i).histo->GetName() == TString::Format("h_CENTR_ZNA")) { + mEv.centroidZNA(x, y); + mHisto2D.at(i).histo->Fill(x, y); + } else { + // if (( (float)o2::zdc::TDCZEM2 > -2.5 && (float)o2::zdc::TDCZEM2 < 2.5 ) && ( (float)o2::zdc::TDCZEM1 > -2.5 && (float)o2::zdc::TDCZEM1 < 2.5 ) ){ + if (((float)mEv.tdcV(5, 0) > -2.5 && (float)mEv.tdcV(5, 0) < 2.5) && ((float)mEv.tdcV(4, 0) > -2.5 && (float)mEv.tdcV(4, 0) < 2.5)) { + mEv.centroidZNA(x, y); + mHisto2D.at(i).histo->Fill(x, y); + } + } } if (mHisto2D.at(i).typeh == "CENTR_ZNC" && mHisto2D.at(i).typech1 == "ADC" && mHisto2D.at(i).typech2 == "ADC") { - mEv.centroidZNC(x, y); - mHisto2D.at(i).histo->Fill(x, y); + if (mHisto2D.at(i).histo->GetName() == TString::Format("h_CENTR_ZNC")) { + mEv.centroidZNC(x, y); + mHisto2D.at(i).histo->Fill(x, y); + } else { + if (((float)mEv.tdcV(5, 0) > -2.5 && (float)mEv.tdcV(5, 0) < 2.5) && ((float)mEv.tdcV(4, 0) > -2.5 && (float)mEv.tdcV(4, 0) < 2.5)) { + mEv.centroidZNC(x, y); + mHisto2D.at(i).histo->Fill(x, y); + } + } } } // for histo 2D - } // while + } // while return 0; } @@ -809,7 +941,7 @@ float ZDCRecDataTask::getADCRecValue(std::string typech, std::string ch) if (typech == "ADC" && ch == "ZEM2") { return mEv.EZEM2(); } - return 0.00; + return -9000.0; } int ZDCRecDataTask::getIdTDCch(std::string typech, std::string ch) From ca981b9762177905c85d0d6fc1a3435445dd0012 Mon Sep 17 00:00:00 2001 From: stefan-zugravel Date: Mon, 16 Dec 2024 10:15:48 +0100 Subject: [PATCH 02/11] Removed two comments to please clang-format --- Modules/ZDC/src/ZDCRecDataTask.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Modules/ZDC/src/ZDCRecDataTask.cxx b/Modules/ZDC/src/ZDCRecDataTask.cxx index b9bf9ad51d..0e8b74c0d2 100644 --- a/Modules/ZDC/src/ZDCRecDataTask.cxx +++ b/Modules/ZDC/src/ZDCRecDataTask.cxx @@ -856,8 +856,8 @@ int ZDCRecDataTask::process(const gsl::span& RecBC, } } } - } // for histo 2D - } // while + } + } return 0; } From 0bf868e8743f074cde13fe41d2ec8ffc93b745b6 Mon Sep 17 00:00:00 2001 From: stefan-zugravel Date: Sun, 22 Dec 2024 17:57:07 +0100 Subject: [PATCH 03/11] Added ZDCRecBeautifyPlots method, BCalignmentPlot RAW and configurable central event function --- Modules/ZDC/CMakeLists.txt | 3 +- Modules/ZDC/include/ZDC/LinkDef.h | 1 + Modules/ZDC/include/ZDC/ZDCRawDataTask.h | 6 + Modules/ZDC/include/ZDC/ZDCRecBeautifyPlots.h | 52 +++++++ Modules/ZDC/include/ZDC/ZDCRecDataTask.h | 12 ++ Modules/ZDC/src/ZDCRawDataTask.cxx | 86 +++++++++-- Modules/ZDC/src/ZDCRecBeautifyPlots.cxx | 98 ++++++++++++ Modules/ZDC/src/ZDCRecDataTask.cxx | 143 +++++++++++++----- 8 files changed, 348 insertions(+), 53 deletions(-) create mode 100644 Modules/ZDC/include/ZDC/ZDCRecBeautifyPlots.h create mode 100644 Modules/ZDC/src/ZDCRecBeautifyPlots.cxx diff --git a/Modules/ZDC/CMakeLists.txt b/Modules/ZDC/CMakeLists.txt index 85a783d92d..ce600bef8c 100644 --- a/Modules/ZDC/CMakeLists.txt +++ b/Modules/ZDC/CMakeLists.txt @@ -2,7 +2,7 @@ add_library(O2QcZDC) -target_sources(O2QcZDC PRIVATE src/ZDCRecDataCheck.cxx src/ZDCRecDataTask.cxx src/ZDCRecDataPostProcessing.cxx src/PostProcessingConfigZDC.cxx src/ZDCRawDataCheck.cxx src/ZDCRawDataTask.cxx ) +target_sources(O2QcZDC PRIVATE src/ZDCRecBeautifyPlots.cxx src/ZDCRecDataCheck.cxx src/ZDCRecDataTask.cxx src/ZDCRecDataPostProcessing.cxx src/PostProcessingConfigZDC.cxx src/ZDCRawDataCheck.cxx src/ZDCRawDataTask.cxx ) target_include_directories( O2QcZDC @@ -19,6 +19,7 @@ install(TARGETS O2QcZDC add_root_dictionary(O2QcZDC HEADERS + include/ZDC/ZDCRecBeautifyPlots.h include/ZDC/ZDCRecDataCheck.h include/ZDC/ZDCRecDataTask.h include/ZDC/ZDCRecDataPostProcessing.h diff --git a/Modules/ZDC/include/ZDC/LinkDef.h b/Modules/ZDC/include/ZDC/LinkDef.h index 5226c1c062..db4b3aceda 100644 --- a/Modules/ZDC/include/ZDC/LinkDef.h +++ b/Modules/ZDC/include/ZDC/LinkDef.h @@ -8,4 +8,5 @@ #pragma link C++ class o2::quality_control_modules::zdc::ZDCRecDataTask+; #pragma link C++ class o2::quality_control_modules::zdc::ZDCRecDataCheck+; #pragma link C++ class o2::quality_control_modules::zdc::ZDCRecDataPostProcessing+; +#pragma link C++ class o2::quality_control_modules::zdc::ZDCRecBeautifyPlots+; #endif diff --git a/Modules/ZDC/include/ZDC/ZDCRawDataTask.h b/Modules/ZDC/include/ZDC/ZDCRawDataTask.h index 4866160339..507c345f6e 100644 --- a/Modules/ZDC/include/ZDC/ZDCRawDataTask.h +++ b/Modules/ZDC/include/ZDC/ZDCRawDataTask.h @@ -156,6 +156,9 @@ class ZDCRawDataTask final : public TaskInterface TH2* fSummaryAlignShift; TH2* fSummaryError; TH1* fOverBc; + // Begin Stefan addition + TH2* fBCalignment; + // End Stefan addition std::vector fNameHisto; std::map fMapBinNameIdSummaryHisto; @@ -173,6 +176,9 @@ class ZDCRawDataTask final : public TaskInterface int fAlignCycle = 1; // param int fErrorCycle = 1; // param int fAlignNumEntries = 2000; + // Begin Stefan addition + int FirstEventBC = 0; + // End Stefan addition sAlignment fMatrixAlign[o2::zdc::NModules][o2::zdc::NChPerModule]; }; diff --git a/Modules/ZDC/include/ZDC/ZDCRecBeautifyPlots.h b/Modules/ZDC/include/ZDC/ZDCRecBeautifyPlots.h new file mode 100644 index 0000000000..d92c7efad4 --- /dev/null +++ b/Modules/ZDC/include/ZDC/ZDCRecBeautifyPlots.h @@ -0,0 +1,52 @@ +// Copyright 2019-2020 CERN and copyright holders of ALICE O2. +// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. +// All rights not expressly granted are reserved. +// +// This software is distributed under the terms of the GNU General Public +// License v3 (GPL Version 3), copied verbatim in the file "COPYING". +// +// In applying this license CERN does not waive the privileges and immunities +// granted to it by virtue of its status as an Intergovernmental Organization +// or submit itself to any jurisdiction. + +/// +/// \file ZDCRecBeautifyPlots.h +/// \author Stefan Cristi Zugravel +/// + +#ifndef QC_MODULE_ZDC_ZDCZDCRECBEAUTIFYPLOTS_H +#define QC_MODULE_ZDC_ZDCZDCRECBEAUTIFYPLOTS_H + +#include "QualityControl/CheckInterface.h" + +namespace o2::quality_control_modules::zdc +{ + +/// \brief Example QC Check +/// \author Stefan Cristi Zugravel +class ZDCRecBeautifyPlots : public o2::quality_control::checker::CheckInterface +{ + public: + /// Default constructor + ZDCRecBeautifyPlots() = default; + /// Destructor + ~ZDCRecBeautifyPlots() override = default; + + // Override interface + void configure() override; + Quality check(std::map>* moMap) override; + void beautify(std::shared_ptr mo, Quality checkResult = Quality::Null) override; + std::string getAcceptedType() override; + void reset() override; + void startOfActivity(const Activity& activity) override; + void endOfActivity(const Activity& activity) override; + + private: + std::shared_ptr mActivity; + + ClassDefOverride(ZDCRecBeautifyPlots, 3); +}; + +} // namespace o2::quality_control_modules::zdc + +#endif // QC_MODULE_ZDC_ZDCZDCRECBEAUTIFYPLOTS_H diff --git a/Modules/ZDC/include/ZDC/ZDCRecDataTask.h b/Modules/ZDC/include/ZDC/ZDCRecDataTask.h index 5637a419b5..2cb3d8698f 100644 --- a/Modules/ZDC/include/ZDC/ZDCRecDataTask.h +++ b/Modules/ZDC/include/ZDC/ZDCRecDataTask.h @@ -101,6 +101,14 @@ class ZDCRecDataTask final : public TaskInterface int process(const gsl::span& RecBC, const gsl::span& Energy, const gsl::span& TDCData, const gsl::span& Info); bool FillTDCValueHisto(); std::vector tokenLine(std::string Line, std::string Delimiter); + // Begin Stefan addition + bool IsEventCentral(); + void SetConfigCentralEvent(float tdcLimit, int centraleventconfigvalue); + void settdcLimit(float tdcv) { ftdcLimit = tdcv; }; + void setcentraleventconfigvalue(int centrentcfg) {fcentraleventconfigvalue = centrentcfg; }; + float gettdcLimit() { return ftdcLimit; }; + int getcentraleventconfigvalue() {return fcentraleventconfigvalue; }; + // End Stefan addition private: std::vector mVecCh; @@ -127,6 +135,10 @@ class ZDCRecDataTask final : public TaskInterface int fNumBinY = 0; double fMinBinY = 0; double fMaxBinY = 0; + // Begin Stefan addition + float ftdcLimit = 0; + int fcentraleventconfigvalue = 0; + // End Stefan addition // TH1F* mHistogram = nullptr; }; diff --git a/Modules/ZDC/src/ZDCRawDataTask.cxx b/Modules/ZDC/src/ZDCRawDataTask.cxx index 3d763a77c8..f7b84bdcbe 100644 --- a/Modules/ZDC/src/ZDCRawDataTask.cxx +++ b/Modules/ZDC/src/ZDCRawDataTask.cxx @@ -215,6 +215,11 @@ void ZDCRawDataTask::reset() if (fOverBc) { fOverBc->Reset(); } + // Begin Stefan addition + if (fBCalignment) { + fBCalignment->Reset(); + } + // End Stefan addition } void ZDCRawDataTask::initHisto() @@ -334,16 +339,16 @@ void ZDCRawDataTask::initHisto() addNewHisto("COUNTS", "hcounts-ZEM1_TR", "Counts ZEM1", "ZEM1_TR", "LBC"); addNewHisto("COUNTS", "hcounts-ZEM2_TR", "Counts ZEM2", "ZEM2_TR", "LBC"); - addNewHisto("COUNTSA", "hcounts_ZNA_TC_TR", "Counts ZNA TC istantaneous", "ZNA_TC_TR", "LBC"); - addNewHisto("COUNTSA", "hcounts_ZNA_SUM", "Counts ZNA SUM istantaneous", "ZNA_SUM", "LBC"); - addNewHisto("COUNTSA", "hcounts_ZNC_TC_TR", "Counts ZNC TC istantaneous", "ZNC_TC_TR", "LBC"); - addNewHisto("COUNTSA", "hcounts_ZNC_SUM", "Counts ZNC SUM istantaneous", "ZNC_SUM", "LBC"); - addNewHisto("COUNTSA", "hcounts_ZPA_TC_TR", "Counts ZPA TC istantaneous", "ZPA_TC_TR", "LBC"); - addNewHisto("COUNTSA", "hcounts_ZPA_SUM", "Counts ZPA SUM istantaneous", "ZPA_SUM", "LBC"); - addNewHisto("COUNTSA", "hcounts_ZPC_TC_TR", "Counts ZPC TC istantaneous", "ZPC_TC_TR", "LBC"); - addNewHisto("COUNTSA", "hcounts_ZPC_SUM", "Counts ZPC SUM istantaneous", "ZPC_SUM", "LBC"); - addNewHisto("COUNTSA", "hcounts_ZEM1_TR", "Counts ZEM1 istantaneous", "ZEM1_TR", "LBC"); - addNewHisto("COUNTSA", "hcounts_ZEM2_TR", "Counts ZEM2 istantaneous", "ZEM2_TR", "LBC"); + addNewHisto("COUNTSA", "hcounts_ZNA_TC_TR", "Counts ZNA TC istantaneous" , "ZNA_TC_TR", "LBC"); + addNewHisto("COUNTSA", "hcounts_ZNA_SUM" , "Counts ZNA SUM istantaneous", "ZNA_SUM" , "LBC"); + addNewHisto("COUNTSA", "hcounts_ZNC_TC_TR", "Counts ZNC TC istantaneous" , "ZNC_TC_TR", "LBC"); + addNewHisto("COUNTSA", "hcounts_ZNC_SUM" , "Counts ZNC SUM istantaneous", "ZNC_SUM" , "LBC"); + addNewHisto("COUNTSA", "hcounts_ZPA_TC_TR", "Counts ZPA TC istantaneous" , "ZPA_TC_TR", "LBC"); + addNewHisto("COUNTSA", "hcounts_ZPA_SUM" , "Counts ZPA SUM istantaneous", "ZPA_SUM" , "LBC"); + addNewHisto("COUNTSA", "hcounts_ZPC_TC_TR", "Counts ZPC TC istantaneous" , "ZPC_TC_TR", "LBC"); + addNewHisto("COUNTSA", "hcounts_ZPC_SUM" , "Counts ZPC SUM istantaneous", "ZPC_SUM" , "LBC"); + addNewHisto("COUNTSA", "hcounts_ZEM1_TR" , "Counts ZEM1 istantaneous" , "ZEM1_TR" , "LBC"); + addNewHisto("COUNTSA", "hcounts_ZEM2_TR" , "Counts ZEM2 istantaneous" , "ZEM2_TR" , "LBC"); // Histograms Signal int nBCAheadTrig = 3; @@ -543,6 +548,25 @@ void ZDCRawDataTask::initHisto() } else { fAlignNumEntries = 2000; } + + // Begin Stefan addition + if (auto param = mCustomParameters.find("CONFIG_BC_ALIGN"); param != mCustomParameters.end()) { + ILOG(Debug, Devel) << "Custom parameter - CONFIG_BC_ALIGN: " << param->second << ENDM; + tokenString = tokenLine(param->second, ";"); + FirstEventBC = atoi(param->second.c_str()); + } else { + FirstEventBC = 0; + } + + if (auto param = mCustomParameters.find("BC_ALIGN_PLOT"); param != mCustomParameters.end()) { + ILOG(Debug, Devel) << "Custom parameter - BC_ALIGN_PLOT: " << param->second << ENDM; + tokenString = tokenLine(param->second, ";"); + setBinHisto2D(atoi(tokenString.at(0).c_str()), atof(tokenString.at(1).c_str()), atof(tokenString.at(2).c_str()), atoi(tokenString.at(3).c_str()), atof(tokenString.at(4).c_str()), atof(tokenString.at(5).c_str())); + } else { + setBinHisto2D(26, 0.5, 26.5, 12, -0.5, 11.5); + } + addNewHisto("BC_ALIGN_PLOT", "hBCAlignPlot", "BC alignment Plot", "NONE", "NONE"); + // End Stefan addition } void ZDCRawDataTask::init() @@ -688,6 +712,14 @@ int ZDCRawDataTask::process(const o2::zdc::EventChData& ch) fNumCycle = 0; } + // Begin Stefan addiiton + if (fBCalignment && (f.bc > (FirstEventBC -7)) && (f.bc < (FirstEventBC +6))) { + if (f.Hit) { + fBCalignment->Fill(fMatrixAlign[f.board][f.ch].bin -1, f.bc); + } + } + // End Stefan addition + if ((f.Alice_0 || f.Auto_0 || f.Alice_1 || f.Auto_1 || f.Alice_2 || f.Auto_2 || f.Alice_3 || f.Auto_3 || f.Auto_m) && fTriggerBits && fTriggerBitsHits) { if (f.Alice_3) { fTriggerBits->Fill(itb, 9); @@ -918,6 +950,7 @@ bool ZDCRawDataTask::addNewHisto(std::string type, std::string name, std::string } TString hname = TString::Format("%s", name.c_str()); TString htit = TString::Format("%s", title.c_str()); + // BASELINE if (type == "BASELINE") { // Check if Histogram Exist @@ -981,6 +1014,7 @@ bool ZDCRawDataTask::addNewHisto(std::string type, std::string name, std::string } } + if (type == "COUNTSA") { // Check if Histogram Exist if (std::find(fNameHisto.begin(), fNameHisto.end(), name) == fNameHisto.end()) { @@ -1012,6 +1046,8 @@ bool ZDCRawDataTask::addNewHisto(std::string type, std::string name, std::string } } + + // SIGNAL if (type == "SIGNAL") { // Check if Histogram Exist @@ -1186,7 +1222,15 @@ bool ZDCRawDataTask::addNewHisto(std::string type, std::string name, std::string } } - if ((type == "SUMMARYBASELINE") || (type == "SUMMARYRATE") || (type == "SUMMARY_ALIGN") || (type == "SUMMARY_ALIGN_SHIFT") || (type == "SUMMARY_ERROR")) { + if ((type == "SUMMARYBASELINE") || (type == "SUMMARYRATE") || (type == "SUMMARY_ALIGN") || (type == "SUMMARY_ALIGN_SHIFT") || (type == "SUMMARY_ERROR") || (type == "BC_ALIGN_PLOT")) { + // Begin Stefan addition + if (type == "BC_ALIGN_PLOT"){ + fBCalignment = new TH2D(hname, htit, fNumBinX, fMinBinX, fMaxBinX, fNumBinY, FirstEventBC -7 - 0.5 , FirstEventBC + 6 - 0.5 ); + fBCalignment->GetXaxis()->LabelsOption("v"); + fBCalignment->SetStats(0); + fBCalignment->GetYaxis()->SetTitle("Bunch Crossing [#]"); + } + // End Stefan addition if (type == "SUMMARYBASELINE") { fSummaryPedestal = new TH1F(hname, htit, fNumBinX, fMinBinX, fMaxBinX); fSummaryPedestal->GetXaxis()->LabelsOption("v"); @@ -1220,6 +1264,11 @@ bool ZDCRawDataTask::addNewHisto(std::string type, std::string name, std::string continue; } else { i++; + // Begin Stefan addition + if (type == "BC_ALIGN_PLOT") { + fBCalignment->GetXaxis()->SetBinLabel(fMatrixAlign[imod][ich].bin, TString::Format("%s", fMatrixAlign[imod][ich].name_ch.c_str())); + } + // Begin Stefan addition if (type == "SUMMARYBASELINE") { fSummaryPedestal->GetXaxis()->SetBinLabel(i, TString::Format("%s", getNameChannel(imod, ich).c_str())); } @@ -1239,6 +1288,11 @@ bool ZDCRawDataTask::addNewHisto(std::string type, std::string name, std::string } } } + // Begin Stefan addition + if (type == "BC_ALIGN_PLOT") { + getObjectsManager()->startPublishing(fBCalignment); + } + // Begin Stefan addition if (type == "SUMMARYBASELINE") { getObjectsManager()->startPublishing(fSummaryPedestal); } @@ -1258,6 +1312,11 @@ bool ZDCRawDataTask::addNewHisto(std::string type, std::string name, std::string getObjectsManager()->startPublishing(fSummaryError); } try { + // Begin Stefan addition + if (type == "BC_ALIGN_PLOT") { + getObjectsManager()->addMetadata(fBCalignment->GetName(), fBCalignment->GetName(), "34"); + } + // Begin Stefan addition if (type == "SUMMARYBASELINE") { getObjectsManager()->addMetadata(fSummaryPedestal->GetName(), fSummaryPedestal->GetName(), "34"); } @@ -1275,6 +1334,11 @@ bool ZDCRawDataTask::addNewHisto(std::string type, std::string name, std::string } return true; } catch (...) { + // Begin Stefan addition + if (type == "BC_ALIGN_PLOT") { + ILOG(Warning, Support) << "Metadata could not be added to " << fBCalignment->GetName() << ENDM; + } + // Begin Stefan addition if (type == "SUMMARYBASELINE") { ILOG(Warning, Support) << "Metadata could not be added to " << fSummaryPedestal->GetName() << ENDM; } diff --git a/Modules/ZDC/src/ZDCRecBeautifyPlots.cxx b/Modules/ZDC/src/ZDCRecBeautifyPlots.cxx new file mode 100644 index 0000000000..69652212b5 --- /dev/null +++ b/Modules/ZDC/src/ZDCRecBeautifyPlots.cxx @@ -0,0 +1,98 @@ +// Copyright 2019-2020 CERN and copyright holders of ALICE O2. +// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. +// All rights not expressly granted are reserved. +// +// This software is distributed under the terms of the GNU General Public +// License v3 (GPL Version 3), copied verbatim in the file "COPYING". +// +// In applying this license CERN does not waive the privileges and immunities +// granted to it by virtue of its status as an Intergovernmental Organization +// or submit itself to any jurisdiction. + +/// +/// \file ZDCRecBeautifyPlots.cxx +/// \author My Name +/// + +#include "ZDC/ZDCRecBeautifyPlots.h" +#include "QualityControl/MonitorObject.h" +#include "QualityControl/Quality.h" +#include "QualityControl/QcInfoLogger.h" +// ROOT +#include +#include +#include +#include + +#include +#include + +using namespace std; +using namespace o2::quality_control; + +namespace o2::quality_control_modules::zdc +{ + +void ZDCRecBeautifyPlots::configure() +{ + // THUS FUNCTION BODY IS AN EXAMPLE. PLEASE REMOVE EVERYTHING YOU DO NOT NEED. + // This method is called whenever CustomParameters are set. + + // Example of retrieving a custom parameter + std::string parameter = mCustomParameters.atOrDefaultValue("myOwnKey1", "default"); +} + +Quality ZDCRecBeautifyPlots::check(std::map>* moMap) +{ + Quality result = Quality::Null; + return result; +} + +std::string ZDCRecBeautifyPlots::getAcceptedType() +{ + // This method is a remnant of early interface prototype and will be removed in the scope of ticket QC-373 + return "TH1"; +} + +void ZDCRecBeautifyPlots::beautify(std::shared_ptr mo, Quality checkResult) +{ + if (mo->getName() == "h_CENTR_ZNA" || mo->getName() == "h_CENTR_ZNC" || mo->getName() == "h_CENTR_ZNA_cut_ZEM" || mo->getName() == "h_CENTR_ZNC_cut_ZEM") { + auto* h = dynamic_cast(mo->getObject()); + if (h == nullptr) { + ILOG(Error, Support) << "could not cast '" << mo->getName() << "' to TH2*" << ENDM; + return; + } + auto* lineH = new TLine(0.5, 0, -0.5, 0); + auto* lineV = new TLine(0, 0.5, 0, -0.5); + auto* marker = new TMarker(h->GetMean(1),h->GetMean(2),20); + lineH->SetLineColor(kBlack); + lineV->SetLineColor(kBlack); + lineH->SetLineWidth(2); + lineV->SetLineWidth(2); + marker->SetMarkerColor(2); + h->GetListOfFunctions()->Add(lineH); + h->GetListOfFunctions()->Add(lineV); + h->GetListOfFunctions()->Add(marker); + } +} + +void ZDCRecBeautifyPlots::reset() +{ + // THUS FUNCTION BODY IS AN EXAMPLE. PLEASE REMOVE EVERYTHING YOU DO NOT NEED. + ILOG(Debug, Devel) << "ZDCRecBeautifyPlots::reset" << ENDM; + // please reset the state of the check here to allow for reuse between consecutive runs. +} + +void ZDCRecBeautifyPlots::startOfActivity(const Activity& activity) +{ + // THUS FUNCTION BODY IS AN EXAMPLE. PLEASE REMOVE EVERYTHING YOU DO NOT NEED. + ILOG(Debug, Devel) << "ZDCRecBeautifyPlots::start : " << activity.mId << ENDM; +} + +void ZDCRecBeautifyPlots::endOfActivity(const Activity& activity) +{ + // THUS FUNCTION BODY IS AN EXAMPLE. PLEASE REMOVE EVERYTHING YOU DO NOT NEED. + ILOG(Debug, Devel) << "ZDCRecBeautifyPlots::end : " << activity.mId << ENDM; +} + +} // namespace o2::quality_control_modules::zdc diff --git a/Modules/ZDC/src/ZDCRecDataTask.cxx b/Modules/ZDC/src/ZDCRecDataTask.cxx index 0e8b74c0d2..01d87ba0c6 100644 --- a/Modules/ZDC/src/ZDCRecDataTask.cxx +++ b/Modules/ZDC/src/ZDCRecDataTask.cxx @@ -198,6 +198,15 @@ void ZDCRecDataTask::setBinHisto2D(int numBinX, double minBinX, double maxBinX, setMaxBinY(maxBinY); } +// Begin Stefan addition +// CENTRAL_EVENT_CONFIG -> tdcLimit [ns] ; centraleventconfig [discrete value] +void ZDCRecDataTask::SetConfigCentralEvent(float tdcLimit, int centraleventconfig) +{ + settdcLimit(tdcLimit); + setcentraleventconfigvalue(centraleventconfig); +} +// End Stefan addition + void ZDCRecDataTask::dumpHistoStructure() { std::ofstream dumpFile; @@ -294,13 +303,13 @@ void ZDCRecDataTask::initHisto() addNewHisto("ADC1D", "h_ADC_ZPC_TC_H", "ADC ZPC TC ZOOM", "ADC", "ZPCC", "", "", 0); addNewHisto("ADC1D", "h_ADC_ZPC_SUM_H", "ADC ZPC SUM ZOOM", "ADC", "ZPCS", "", "", 0); - addNewHisto("ADC1D", "h_ADC_ZPA_TC_H_CUT", "ADC ZPA TC ZOOM with cut", "ADCAC", "ZPAC", "", "", 0); + addNewHisto("ADC1D", "h_ADC_ZPA_TC_H_CUT", "ADC ZPA TC ZOOM with cut", "ADCAC", "ZPAC", "", "", 0); addNewHisto("ADC1D", "h_ADC_ZPA_SUM_H_CUT", "ADC ZPA SUM ZOOM with cut", "ADCAC", "ZPAS", "", "", 0); - addNewHisto("ADC1D", "h_ADC_ZPC_TC_H_CUT", "ADC ZPC TC ZOOM with cut", "ADCAC", "ZPCC", "", "", 0); + addNewHisto("ADC1D", "h_ADC_ZPC_TC_H_CUT", "ADC ZPC TC ZOOM with cut", "ADCAC", "ZPCC", "", "", 0); addNewHisto("ADC1D", "h_ADC_ZPC_SUM_H_CUT", "ADC ZPC SUM ZOOM with cut", "ADCAC", "ZPCS", "", "", 0); - addNewHisto("ADC1D", "h_ADC_ZNA_TC_H_CUT", "ADC ZNA TC ZOOM with cut", "ADCAC", "ZNAC", "", "", 0); + addNewHisto("ADC1D", "h_ADC_ZNA_TC_H_CUT", "ADC ZNA TC ZOOM with cut", "ADCAC", "ZNAC", "", "", 0); addNewHisto("ADC1D", "h_ADC_ZNA_SUM_H_CUT", "ADC ZNA SUM ZOOM with cut", "ADCAC", "ZNAS", "", "", 0); - addNewHisto("ADC1D", "h_ADC_ZNC_TC_H_CUT", "ADC ZNC TC ZOOM with cut", "ADCAC", "ZNCC", "", "", 0); + addNewHisto("ADC1D", "h_ADC_ZNC_TC_H_CUT", "ADC ZNC TC ZOOM with cut", "ADCAC", "ZNCC", "", "", 0); addNewHisto("ADC1D", "h_ADC_ZNC_SUM_H_CUT", "ADC ZNC SUM ZOOM with cut", "ADCAC", "ZNCS", "", "", 0); if (auto param = mCustomParameters.find("TDCT"); param != mCustomParameters.end()) { @@ -371,6 +380,7 @@ void ZDCRecDataTask::initHisto() addNewHisto("TDC1D", "h_TDC_ZNC_TC_A_H_CUT", "TDC Amplitude ZNC TC ZOOM with cut", "TDCAC", "ZNCC", "", "", 0); addNewHisto("TDC1D", "h_TDC_ZNC_SUM_A_H_CUT", "TDC Amplitude ZNC SUM ZOOM with cut", "TDCAC", "ZNCS", "", "", 0); + // Centroid ZPA if (auto param = mCustomParameters.find("CENTR_ZPA"); param != mCustomParameters.end()) { ILOG(Debug, Devel) << "Custom parameter - CENTR_ZPA: " << param->second << ENDM; @@ -464,6 +474,8 @@ void ZDCRecDataTask::initHisto() setBinHisto2D(100, -10.5, 10.5, 100, -10.5, 10.5); } addNewHisto("TDC-DIFF", "h_TDC_ZNC_DIFF_ZNA_ZNC_SUM_ZNA_V", "TDC Time (ns) TDC ZNC + ZNA vs ZNC - ZNA", "TDCV", "ZNC-ZNA", "TDCV", "ZNC+ZNA", 0); + addNewHisto("TDC-DIFF", "h_TDC_ZNC_DIFF_ZNA_ZNC_SUM_ZNA_V_cut", "TDC Time (ns) TDC ZNC + ZNA vs ZNC - ZNA with cut on ZEMs", "TDCV", "ZNC-ZNA", "TDCV", "ZNC+ZNA", 0); + if (auto param = mCustomParameters.find("TDCAvsTDCT"); param != mCustomParameters.end()) { ILOG(Debug, Devel) << "Custom parameter - TDCAvsTDCT: " << param->second << ENDM; @@ -554,6 +566,17 @@ void ZDCRecDataTask::initHisto() } addNewHisto("CENTR_ZNC", "h_CENTR_ZNC", "ZNC Centroid (cm)", "ADC", "CXZNC", "ADC", "CYZNC", 0); addNewHisto("CENTR_ZNC", "h_CENTR_ZNC_cut_ZEM", "ZNC Centroid (cm)", "ADC", "CXZNC", "ADC", "CYZNC", 0); + + // Begin Stefan addition + // Here we set the parameters for the configuration of the logic which selects the central events + if (auto param = mCustomParameters.find("CENTRAL_EVENT_CONFIG"); param != mCustomParameters.end()) { + ILOG(Debug, Devel) << "Custom parameter - CENTRAL_EVENT_CONFIG: " << param->second << ENDM; + tokenString = tokenLine(param->second, ";"); + SetConfigCentralEvent(atof(tokenString.at(0).c_str()), atoi(tokenString.at(1).c_str())); + } else { + SetConfigCentralEvent(0.0,0); + } + // End Stefan addition } bool ZDCRecDataTask::add1DHisto(std::string typeH, std::string name, std::string title, std::string typeCh1, std::string ch1, int bin) @@ -588,6 +611,8 @@ bool ZDCRecDataTask::add1DHisto(std::string typeH, std::string name, std::string } } + + bool ZDCRecDataTask::add2DHisto(std::string typeH, std::string name, std::string title, std::string typeCh1, std::string ch1, std::string typeCh2, std::string ch2) { TString hname = TString::Format("%s", name.c_str()); @@ -600,6 +625,12 @@ bool ZDCRecDataTask::add2DHisto(std::string typeH, std::string name, std::string h2d.ch1 = ch1; h2d.typech2 = typeCh2; h2d.ch2 = ch2; + // Begin Stefan addition + if (typeH == "CENTR_ZNA"){ + //h2d.histo->GetXaxis()->SetTitle("test2"); + //h2d.histo->GetYaxis()->SetTitle("test2"); + } + // End Stefan Addition int ih = (int)mHisto2D.size(); mHisto2D.push_back(h2d); h2d.typeh.clear(); @@ -669,35 +700,36 @@ int ZDCRecDataTask::process(const gsl::span& RecBC, } if (mHisto1D.at(i).typech == "ADCAC") { - if (mHisto1D.at(i).ch == "ZPAC" || mHisto1D.at(i).ch == "ZPAS") { - if (mEv.NtdcA(o2::zdc::TDCZNAC) == 0 && mEv.NtdcA(o2::zdc::TDCZNAS) == 0) { - if (getADCRecValue("ADC", mHisto1D.at(i).ch) > -8000) { + if (mHisto1D.at(i).ch == "ZPAC" || mHisto1D.at(i).ch == "ZPAS" ){ + if (mEv.NtdcA(o2::zdc::TDCZNAC) == 0 && mEv.NtdcA(o2::zdc::TDCZNAS) == 0 ){ + if (getADCRecValue("ADC", mHisto1D.at(i).ch) > -8000){ mHisto1D.at(i).histo->Fill(getADCRecValue("ADC", mHisto1D.at(i).ch)); } } } - if (mHisto1D.at(i).ch == "ZPCC" || mHisto1D.at(i).ch == "ZPCS") { - if (mEv.NtdcA(o2::zdc::TDCZNCC) == 0 && mEv.NtdcA(o2::zdc::TDCZNCS) == 0) { - if (getADCRecValue("ADC", mHisto1D.at(i).ch) > -8000) { - mHisto1D.at(i).histo->Fill(getADCRecValue("ADC", mHisto1D.at(i).ch)); + if (mHisto1D.at(i).ch == "ZPCC" || mHisto1D.at(i).ch == "ZPCS" ){ + if (mEv.NtdcA(o2::zdc::TDCZNCC) == 0 && mEv.NtdcA(o2::zdc::TDCZNCS) == 0 ){ + if (getADCRecValue("ADC", mHisto1D.at(i).ch) > -8000){ + mHisto1D.at(i).histo->Fill(getADCRecValue("ADC", mHisto1D.at(i).ch)); } } } - if (mHisto1D.at(i).ch == "ZNAC" || mHisto1D.at(i).ch == "ZNAS") { - if (mEv.NtdcA(o2::zdc::TDCZPAC) == 0 && mEv.NtdcA(o2::zdc::TDCZPAS) == 0) { - if (getADCRecValue("ADC", mHisto1D.at(i).ch) > -8000) { - mHisto1D.at(i).histo->Fill(getADCRecValue("ADC", mHisto1D.at(i).ch)); + if (mHisto1D.at(i).ch == "ZNAC" || mHisto1D.at(i).ch == "ZNAS" ){ + if (mEv.NtdcA(o2::zdc::TDCZPAC) == 0 && mEv.NtdcA(o2::zdc::TDCZPAS) == 0 ){ + if (getADCRecValue("ADC", mHisto1D.at(i).ch) > -8000){ + mHisto1D.at(i).histo->Fill(getADCRecValue("ADC", mHisto1D.at(i).ch)); } } } - if (mHisto1D.at(i).ch == "ZNCC" || mHisto1D.at(i).ch == "ZNCS") { - if (mEv.NtdcA(o2::zdc::TDCZPCC) == 0 && mEv.NtdcA(o2::zdc::TDCZPCS) == 0) { - if (getADCRecValue("ADC", mHisto1D.at(i).ch) > -8000) { - mHisto1D.at(i).histo->Fill(getADCRecValue("ADC", mHisto1D.at(i).ch)); + if (mHisto1D.at(i).ch == "ZNCC" || mHisto1D.at(i).ch == "ZNCS" ){ + if (mEv.NtdcA(o2::zdc::TDCZPCC) == 0 && mEv.NtdcA(o2::zdc::TDCZPCS) == 0 ){ + if (getADCRecValue("ADC", mHisto1D.at(i).ch) > -8000){ + mHisto1D.at(i).histo->Fill(getADCRecValue("ADC", mHisto1D.at(i).ch)); } } } } + } // Fill TDC 1D @@ -720,12 +752,12 @@ int ZDCRecDataTask::process(const gsl::span& RecBC, if (mHisto1D.at(i).typeh == "TDC1D" && (mHisto1D.at(i).typech == "TDCAC")) { int tdcid = getIdTDCch("TDCA", mHisto1D.at(i).ch); auto nhitv = mEv.NtdcV(tdcid); - if (tdcid == o2::zdc::TDCZPAC || tdcid == o2::zdc::TDCZPAS) { - if (mEv.NtdcA(o2::zdc::TDCZNAC) == 0 && mEv.NtdcA(o2::zdc::TDCZNAS) == 0) { + if (tdcid == o2::zdc::TDCZPAC || tdcid == o2::zdc::TDCZPAS ){ + if (mEv.NtdcA(o2::zdc::TDCZNAC) == 0 && mEv.NtdcA(o2::zdc::TDCZNAS) == 0 ){ if (mEv.NtdcA(tdcid) == nhitv && nhitv > 0) { for (int ihit = 0; ihit < nhitv; ihit++) { if (mHisto1D.at(i).typech == "TDCAC") { - if ((mEv.tdcV(tdcid, ihit) > -2.5 && mEv.tdcV(tdcid, ihit) < 2.5)) { + if (( mEv.tdcV(tdcid, ihit) > -2.5 && mEv.tdcV(tdcid, ihit) < 2.5 )){ mHisto1D.at(i).histo->Fill(mEv.tdcA(tdcid, ihit)); } } @@ -733,12 +765,12 @@ int ZDCRecDataTask::process(const gsl::span& RecBC, } } } - if (tdcid == o2::zdc::TDCZPCC || tdcid == o2::zdc::TDCZPCS) { - if (mEv.NtdcA(o2::zdc::TDCZNCC) == 0 && mEv.NtdcA(o2::zdc::TDCZNCS) == 0) { + if (tdcid == o2::zdc::TDCZPCC || tdcid == o2::zdc::TDCZPCS ){ + if (mEv.NtdcA(o2::zdc::TDCZNCC) == 0 && mEv.NtdcA(o2::zdc::TDCZNCS) == 0 ){ if (mEv.NtdcA(tdcid) == nhitv && nhitv > 0) { for (int ihit = 0; ihit < nhitv; ihit++) { if (mHisto1D.at(i).typech == "TDCAC") { - if ((mEv.tdcV(tdcid, ihit) > -2.5 && mEv.tdcV(tdcid, ihit) < 2.5)) { + if (( mEv.tdcV(tdcid, ihit) > -2.5 && mEv.tdcV(tdcid, ihit) < 2.5 )){ mHisto1D.at(i).histo->Fill(mEv.tdcA(tdcid, ihit)); } } @@ -746,12 +778,12 @@ int ZDCRecDataTask::process(const gsl::span& RecBC, } } } - if (tdcid == o2::zdc::TDCZNAC || tdcid == o2::zdc::TDCZNAS) { - if (mEv.NtdcA(o2::zdc::TDCZPAC) == 0 && mEv.NtdcA(o2::zdc::TDCZPAS) == 0) { + if (tdcid == o2::zdc::TDCZNAC || tdcid == o2::zdc::TDCZNAS ){ + if (mEv.NtdcA(o2::zdc::TDCZPAC) == 0 && mEv.NtdcA(o2::zdc::TDCZPAS) == 0 ){ if (mEv.NtdcA(tdcid) == nhitv && nhitv > 0) { for (int ihit = 0; ihit < nhitv; ihit++) { if (mHisto1D.at(i).typech == "TDCAC") { - if ((mEv.tdcV(tdcid, ihit) > -2.5 && mEv.tdcV(tdcid, ihit) < 2.5)) { + if (( mEv.tdcV(tdcid, ihit) > -2.5 && mEv.tdcV(tdcid, ihit) < 2.5 )){ mHisto1D.at(i).histo->Fill(mEv.tdcA(tdcid, ihit)); } } @@ -759,12 +791,12 @@ int ZDCRecDataTask::process(const gsl::span& RecBC, } } } - if (tdcid == o2::zdc::TDCZNCC || tdcid == o2::zdc::TDCZNCS) { - if (mEv.NtdcA(o2::zdc::TDCZPCC) == 0 && mEv.NtdcA(o2::zdc::TDCZPCS) == 0) { + if (tdcid == o2::zdc::TDCZNCC || tdcid == o2::zdc::TDCZNCS ){ + if (mEv.NtdcA(o2::zdc::TDCZPCC) == 0 && mEv.NtdcA(o2::zdc::TDCZPCS) == 0 ){ if (mEv.NtdcA(tdcid) == nhitv && nhitv > 0) { for (int ihit = 0; ihit < nhitv; ihit++) { if (mHisto1D.at(i).typech == "TDCAC") { - if ((mEv.tdcV(tdcid, ihit) > -2.5 && mEv.tdcV(tdcid, ihit) < 2.5)) { + if (( mEv.tdcV(tdcid, ihit) > -2.5 && mEv.tdcV(tdcid, ihit) < 2.5 )){ mHisto1D.at(i).histo->Fill(mEv.tdcA(tdcid, ihit)); } } @@ -800,10 +832,20 @@ int ZDCRecDataTask::process(const gsl::span& RecBC, int znac_id = getIdTDCch("TDCV", "ZNAC"); auto nhit_zncc = mEv.NtdcV(zncc_id); auto nhit_znac = mEv.NtdcV(znac_id); - if ((mEv.NtdcA(zncc_id) == nhit_zncc && nhit_zncc > 0) && (mEv.NtdcA(znac_id) == nhit_znac && nhit_znac > 0)) { - auto sum = mEv.tdcV(zncc_id, 0) + mEv.tdcV(znac_id, 0); - auto diff = mEv.tdcV(zncc_id, 0) - mEv.tdcV(znac_id, 0); - mHisto2D.at(i).histo->Fill(diff, sum); + if (mHisto2D.at(i).histo->GetName() == TString::Format("h_TDC_ZNC_DIFF_ZNA_ZNC_SUM_ZNA_V")) { + if ((mEv.NtdcA(zncc_id) == nhit_zncc && nhit_zncc > 0) && (mEv.NtdcA(znac_id) == nhit_znac && nhit_znac > 0)) { + auto sum = mEv.tdcV(zncc_id, 0) + mEv.tdcV(znac_id, 0); + auto diff = mEv.tdcV(zncc_id, 0) - mEv.tdcV(znac_id, 0); + mHisto2D.at(i).histo->Fill(diff, sum); + } + } + if (mHisto2D.at(i).histo->GetName() == TString::Format("h_TDC_ZNC_DIFF_ZNA_ZNC_SUM_ZNA_V_cut")) { + // if (( (float)o2::zdc::TDCZEM2 > -2.5 && (float)o2::zdc::TDCZEM2 < 2.5 ) && ( (float)o2::zdc::TDCZEM1 > -2.5 && (float)o2::zdc::TDCZEM1 < 2.5 ) ){ + if ((mEv.NtdcA(zncc_id) == nhit_zncc && nhit_zncc > 0) && (mEv.NtdcA(znac_id) == nhit_znac && nhit_znac > 0) && ( (float)mEv.tdcV(5, 0) > -12.5 && (float)mEv.tdcV(5, 0) < 12.5 ) && ( (float)mEv.tdcV(4, 0) > -12.5 && (float)mEv.tdcV(4, 0) < 12.5 )) { + auto sum = mEv.tdcV(zncc_id, 0) + mEv.tdcV(znac_id, 0); + auto diff = mEv.tdcV(zncc_id, 0) - mEv.tdcV(znac_id, 0); + mHisto2D.at(i).histo->Fill(diff, sum); + } } } if (mHisto2D.at(i).typeh == "TDC_T_A" && mHisto2D.at(i).typech1 == "TDCV" && mHisto2D.at(i).typech2 == "TDCA") { @@ -837,9 +879,9 @@ int ZDCRecDataTask::process(const gsl::span& RecBC, if (mHisto2D.at(i).histo->GetName() == TString::Format("h_CENTR_ZNA")) { mEv.centroidZNA(x, y); mHisto2D.at(i).histo->Fill(x, y); - } else { - // if (( (float)o2::zdc::TDCZEM2 > -2.5 && (float)o2::zdc::TDCZEM2 < 2.5 ) && ( (float)o2::zdc::TDCZEM1 > -2.5 && (float)o2::zdc::TDCZEM1 < 2.5 ) ){ - if (((float)mEv.tdcV(5, 0) > -2.5 && (float)mEv.tdcV(5, 0) < 2.5) && ((float)mEv.tdcV(4, 0) > -2.5 && (float)mEv.tdcV(4, 0) < 2.5)) { + } + else { + if (IsEventCentral()){ //STEFAN mEv.centroidZNA(x, y); mHisto2D.at(i).histo->Fill(x, y); } @@ -849,17 +891,36 @@ int ZDCRecDataTask::process(const gsl::span& RecBC, if (mHisto2D.at(i).histo->GetName() == TString::Format("h_CENTR_ZNC")) { mEv.centroidZNC(x, y); mHisto2D.at(i).histo->Fill(x, y); - } else { - if (((float)mEv.tdcV(5, 0) > -2.5 && (float)mEv.tdcV(5, 0) < 2.5) && ((float)mEv.tdcV(4, 0) > -2.5 && (float)mEv.tdcV(4, 0) < 2.5)) { + } + else { + if (IsEventCentral()) { //STEFAN mEv.centroidZNC(x, y); mHisto2D.at(i).histo->Fill(x, y); } } } + } // for histo 2D + } // while + return 0; +} + +// Begin Stefan addition +bool ZDCRecDataTask::IsEventCentral() +{ + if (fcentraleventconfigvalue == 1) { + // Both ZEMs between a configurable value + if ( ((float)mEv.tdcV(5, 0) > -ftdcLimit && (float)mEv.tdcV(5, 0) < ftdcLimit) && ((float)mEv.tdcV(4, 0) > -ftdcLimit && (float)mEv.tdcV(4, 0) < ftdcLimit) ) { + return true; + } + else { + return false; + } } + else { + return false; } - return 0; } +// End Stefan addition float ZDCRecDataTask::getADCRecValue(std::string typech, std::string ch) { From c47203abde298da95314dd931d8acd264ad51fcd Mon Sep 17 00:00:00 2001 From: stefan-zugravel Date: Tue, 7 Jan 2025 10:15:01 +0100 Subject: [PATCH 04/11] Modification ZDC Raw QC BC shift plot --- Modules/ZDC/src/ZDCRawDataTask.cxx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Modules/ZDC/src/ZDCRawDataTask.cxx b/Modules/ZDC/src/ZDCRawDataTask.cxx index f7b84bdcbe..f391bd8032 100644 --- a/Modules/ZDC/src/ZDCRawDataTask.cxx +++ b/Modules/ZDC/src/ZDCRawDataTask.cxx @@ -715,7 +715,8 @@ int ZDCRawDataTask::process(const o2::zdc::EventChData& ch) // Begin Stefan addiiton if (fBCalignment && (f.bc > (FirstEventBC -7)) && (f.bc < (FirstEventBC +6))) { if (f.Hit) { - fBCalignment->Fill(fMatrixAlign[f.board][f.ch].bin -1, f.bc); + fBCalignment->Fill(fMatrixAlign[f.board][f.ch].bin , f.bc); + //fBCalignment->Fill(fMatrixAlign[f.board][f.ch].bin -1, f.bc); } } // End Stefan addition @@ -1225,7 +1226,7 @@ bool ZDCRawDataTask::addNewHisto(std::string type, std::string name, std::string if ((type == "SUMMARYBASELINE") || (type == "SUMMARYRATE") || (type == "SUMMARY_ALIGN") || (type == "SUMMARY_ALIGN_SHIFT") || (type == "SUMMARY_ERROR") || (type == "BC_ALIGN_PLOT")) { // Begin Stefan addition if (type == "BC_ALIGN_PLOT"){ - fBCalignment = new TH2D(hname, htit, fNumBinX, fMinBinX, fMaxBinX, fNumBinY, FirstEventBC -7 - 0.5 , FirstEventBC + 6 - 0.5 ); + fBCalignment = new TH2D(hname, htit, fNumBinX, fMinBinX, fMaxBinX, fNumBinY, FirstEventBC - 6 - 0.5 , FirstEventBC + 6 - 0.5 ); fBCalignment->GetXaxis()->LabelsOption("v"); fBCalignment->SetStats(0); fBCalignment->GetYaxis()->SetTitle("Bunch Crossing [#]"); From f66ef85968e4c9298f5699641371703e83a28429 Mon Sep 17 00:00:00 2001 From: stefan-zugravel Date: Fri, 10 Jan 2025 14:09:28 +0100 Subject: [PATCH 05/11] Added check for BCalignmentPlot --- Modules/ZDC/src/ZDCRawDataCheck.cxx | 73 +++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/Modules/ZDC/src/ZDCRawDataCheck.cxx b/Modules/ZDC/src/ZDCRawDataCheck.cxx index 63d93d34e7..4a311bc432 100644 --- a/Modules/ZDC/src/ZDCRawDataCheck.cxx +++ b/Modules/ZDC/src/ZDCRawDataCheck.cxx @@ -161,6 +161,38 @@ Quality ZDCRawDataCheck::check(std::mapgetName() == "hBCAlignPlot"){ + float noise_level_low = 0.15; + float noise_level_high = 20; + bool ratio_array[12]; + bool comparator_array[12] = {false,false,false,false,false,false,true,false,true,false,true,false}; + float ratio = 0.0; + auto* h = dynamic_cast(mo->getObject()); + if (h == nullptr) { + ILOG(Error, Support) << "could not cast herrorSummary to TH2*" << ENDM; + return Quality::Null; + } + if ((int)h->GetNbinsX() != (int)mVectHistoCheck.at(ih).paramch.size()) { + return Quality::Null; + } + for (int x = 0; x < h->GetNbinsX(); x++) { + for (int y = 0; y < h->GetNbinsY(); y++) { + ratio = (h->GetBinContent(x + 1, y + 1))/(h->GetBinContent(x + 1, 7)); + if ((ratio > noise_level_low) && (ratio < noise_level_high)){ + ratio_array[y] = true; + } + else { + ratio_array[y] = false; + } + } + if (!std::equal(std::begin(ratio_array), std::end(ratio_array), std::begin(comparator_array))) { + mVectHistoCheck.at(ih).numE += 1; + mVectHistoCheck.at(ih).stringE = mVectHistoCheck.at(ih).stringE + mVectHistoCheck.at(ih).paramch.at(x).ch + " "; + } + } + } + // End Stefan Addition // check result check if (mVectHistoCheck.at(ih).numW == 0 && mVectHistoCheck.at(ih).numE == 0) { result = Quality::Good; @@ -198,6 +230,44 @@ void ZDCRawDataCheck::beautify(std::shared_ptr mo, Quality checkR ILOG(Error, Support) << "could not cast '" << mo->getName() << "' to TH1*" << ENDM; return; } + //Begin Stefan addition + if (mo->getName() == "hBCAlignPlot"){ + float noise_level_low = 0.15; + float noise_level_high = 20; + //bool ratio_array[12]; + //bool comparator_array[12] = {false,false,false,false,false,false,true,false,true,false,true,false}; + float ratio = 0.0; + for (int x = 0; x < h->GetNbinsX(); x++) { + for (int y = 0; y < h->GetNbinsY(); y++) { + ratio = (h->GetBinContent(x + 1, y + 1))/(h->GetBinContent(x + 1, 7)); + float xpos = h->GetXaxis()->GetBinCenter(x+1); + float ypos = h->GetYaxis()->GetBinCenter(y+1); + //std::string strValue = std::to_string(ratio); + std::string strValue = std::format("{:.2f}", ratio); + TLatex* msg = new TLatex(xpos-0.35, ypos-0.15, strValue.c_str()); + msg->SetTextSize(9); + if((ratio > noise_level_low) && (ratio < noise_level_high)){ + msg->SetTextColor(kGreen); + //ratio_array[y] = true; + } + else { + msg->SetTextColor(kRed); + //ratio_array[y] = false; + } + h->GetListOfFunctions()->Add(msg); + + //std::string strValue_ratio_array = ratio_array[y] ? "true" : "false"; + //std::string strValue_comparator_array = comparator_array[y] ? "true" : "false"; + //TLatex* msg2 = new TLatex(xpos-0.35, ypos-0.05, strValue_ratio_array.c_str()); + //msg2->SetTextSize(7); + //h->GetListOfFunctions()->Add(msg2); + //TLatex* msg3 = new TLatex(xpos-0.35, ypos+0.05, strValue_comparator_array.c_str()); + //msg3->SetTextSize(7); + //h->GetListOfFunctions()->Add(msg3); + } + } + } + //End Stefan addition if (mVectHistoCheck.at(ih).quality == 1) { std::string errorSt = getCurrentDataTime() + " Ok"; TLatex* msg = new TLatex(mVectHistoCheck.at(ih).posMsgX, mVectHistoCheck.at(ih).posMsgY, errorSt.c_str()); @@ -267,6 +337,9 @@ void ZDCRawDataCheck::init(const Activity& activity) setChCheck("hpedSummary", "TH1F", "PED", "PED_POS_MSG_X", "PED_POS_MSG_Y", activity); setChCheck("hAlignPlotShift", "TH2F", "ALIGN", "ALIGN_POS_MSG_X", "ALIGN_POS_MSG_Y", activity); setChCheck("herrorSummary", "TH2F", "ERROR", "ERROR_POS_MSG_X", "ERROR_POS_MSG_Y", activity); + //Begin Stefan Addition + setChCheck("hBCAlignPlot", "TH2F", "ALIGN", "ALIGN_POS_MSG_X", "ALIGN_POS_MSG_Y", activity); + //End Stefan Addition // dumpStruct(); } From de72e208eb25742b6a762a1e3bbf4173fe0149e9 Mon Sep 17 00:00:00 2001 From: stefan-zugravel Date: Fri, 10 Jan 2025 15:47:23 +0100 Subject: [PATCH 06/11] ADDED configurability from json BCalignmentPlot --- Modules/ZDC/include/ZDC/ZDCRawDataCheck.h | 6 +++ Modules/ZDC/src/ZDCRawDataCheck.cxx | 55 ++++++++++++++++++----- 2 files changed, 51 insertions(+), 10 deletions(-) diff --git a/Modules/ZDC/include/ZDC/ZDCRawDataCheck.h b/Modules/ZDC/include/ZDC/ZDCRawDataCheck.h index b5b9c931f8..a39808b972 100644 --- a/Modules/ZDC/include/ZDC/ZDCRawDataCheck.h +++ b/Modules/ZDC/include/ZDC/ZDCRawDataCheck.h @@ -75,6 +75,12 @@ class ZDCRawDataCheck : public o2::quality_control::checker::CheckInterface private: std::vector mVectHistoCheck; std::vector mVectch; + // Begin Stefan addition + float NOISE_LEVEL_LOW = 0.0; + float NOISE_LEVEL_HIGH = 2.0; + bool COMPARATOR_ARRAY[12]; + int REFERENCE_BIN = 7; + // End Stefan addition // std::string mStringW = "List channels Warning Quality: "; // std::string mStringE = "List channels Bad Quality: "; diff --git a/Modules/ZDC/src/ZDCRawDataCheck.cxx b/Modules/ZDC/src/ZDCRawDataCheck.cxx index 4a311bc432..ad3849a476 100644 --- a/Modules/ZDC/src/ZDCRawDataCheck.cxx +++ b/Modules/ZDC/src/ZDCRawDataCheck.cxx @@ -163,10 +163,7 @@ Quality ZDCRawDataCheck::check(std::mapgetName() == "hBCAlignPlot"){ - float noise_level_low = 0.15; - float noise_level_high = 20; bool ratio_array[12]; - bool comparator_array[12] = {false,false,false,false,false,false,true,false,true,false,true,false}; float ratio = 0.0; auto* h = dynamic_cast(mo->getObject()); if (h == nullptr) { @@ -178,15 +175,15 @@ Quality ZDCRawDataCheck::check(std::mapGetNbinsX(); x++) { for (int y = 0; y < h->GetNbinsY(); y++) { - ratio = (h->GetBinContent(x + 1, y + 1))/(h->GetBinContent(x + 1, 7)); - if ((ratio > noise_level_low) && (ratio < noise_level_high)){ + ratio = (h->GetBinContent(x + 1, y + 1))/(h->GetBinContent(x + 1, REFERENCE_BIN)); + if ((ratio > NOISE_LEVEL_LOW) && (ratio < NOISE_LEVEL_HIGH)){ ratio_array[y] = true; } else { ratio_array[y] = false; } } - if (!std::equal(std::begin(ratio_array), std::end(ratio_array), std::begin(comparator_array))) { + if (!std::equal(std::begin(ratio_array), std::end(ratio_array), std::begin(COMPARATOR_ARRAY))) { mVectHistoCheck.at(ih).numE += 1; mVectHistoCheck.at(ih).stringE = mVectHistoCheck.at(ih).stringE + mVectHistoCheck.at(ih).paramch.at(x).ch + " "; } @@ -232,21 +229,21 @@ void ZDCRawDataCheck::beautify(std::shared_ptr mo, Quality checkR } //Begin Stefan addition if (mo->getName() == "hBCAlignPlot"){ - float noise_level_low = 0.15; - float noise_level_high = 20; + //float NOISE_LEVEL_LOW = 0.15; + //float NOISE_LEVEL_HIGH = 20; //bool ratio_array[12]; //bool comparator_array[12] = {false,false,false,false,false,false,true,false,true,false,true,false}; float ratio = 0.0; for (int x = 0; x < h->GetNbinsX(); x++) { for (int y = 0; y < h->GetNbinsY(); y++) { - ratio = (h->GetBinContent(x + 1, y + 1))/(h->GetBinContent(x + 1, 7)); + ratio = (h->GetBinContent(x + 1, y + 1))/(h->GetBinContent(x + 1, REFERENCE_BIN)); float xpos = h->GetXaxis()->GetBinCenter(x+1); float ypos = h->GetYaxis()->GetBinCenter(y+1); //std::string strValue = std::to_string(ratio); std::string strValue = std::format("{:.2f}", ratio); TLatex* msg = new TLatex(xpos-0.35, ypos-0.15, strValue.c_str()); msg->SetTextSize(9); - if((ratio > noise_level_low) && (ratio < noise_level_high)){ + if((ratio > NOISE_LEVEL_LOW) && (ratio < NOISE_LEVEL_HIGH)){ msg->SetTextColor(kGreen); //ratio_array[y] = true; } @@ -339,6 +336,44 @@ void ZDCRawDataCheck::init(const Activity& activity) setChCheck("herrorSummary", "TH2F", "ERROR", "ERROR_POS_MSG_X", "ERROR_POS_MSG_Y", activity); //Begin Stefan Addition setChCheck("hBCAlignPlot", "TH2F", "ALIGN", "ALIGN_POS_MSG_X", "ALIGN_POS_MSG_Y", activity); + std::vector tokenString; + if (auto param = mCustomParameters.find("REFERENCE_BIN"); param != mCustomParameters.end()) { + ILOG(Debug, Devel) << "Custom parameter - REFERENCE_BIN: " << param->second << ENDM; + tokenString = tokenLine(param->second, ";"); + REFERENCE_BIN = atoi(param->second.c_str()); + } else { + REFERENCE_BIN = 7; + } + if (auto param = mCustomParameters.find("NOISE_LEVEL_LOW"); param != mCustomParameters.end()) { + ILOG(Debug, Devel) << "Custom parameter - NOISE_LEVEL_LOW: " << param->second << ENDM; + tokenString = tokenLine(param->second, ";"); + NOISE_LEVEL_LOW = atof(param->second.c_str()); + } else { + NOISE_LEVEL_LOW = 0.0; + } + if (auto param = mCustomParameters.find("NOISE_LEVEL_HIGH"); param != mCustomParameters.end()) { + ILOG(Debug, Devel) << "Custom parameter - NOISE_LEVEL_HIGH: " << param->second << ENDM; + tokenString = tokenLine(param->second, ";"); + NOISE_LEVEL_HIGH = atof(param->second.c_str()); + } else { + NOISE_LEVEL_HIGH = 2.0; + } + if (auto param = mCustomParameters.find("COMPARATOR_ARRAY"); param != mCustomParameters.end()) { + ILOG(Debug, Devel) << "Custom parameter - COMPARATOR_ARRAY: " << param->second << ENDM; + tokenString = tokenLine(param->second, ";"); + for (int i = 0; i < 12; i++){ + if (atoi(tokenString.at(i).c_str()) == 1){ + COMPARATOR_ARRAY[i] = true; + } + else { + COMPARATOR_ARRAY[i] = false; + } + } + } else { + for (int i = 0; i < 12; i++){ + COMPARATOR_ARRAY[i] = false; + } + } //End Stefan Addition // dumpStruct(); } From 3c7bc14f10778fe7a7fe0ea40b898161355c18bc Mon Sep 17 00:00:00 2001 From: stefan-zugravel Date: Mon, 13 Jan 2025 16:54:09 +0100 Subject: [PATCH 07/11] Fixed check string hBCAlignPlot --- Modules/ZDC/include/ZDC/ZDCRawDataCheck.h | 2 - Modules/ZDC/src/ZDCRawDataCheck.cxx | 99 ++++++++++++++--------- 2 files changed, 62 insertions(+), 39 deletions(-) diff --git a/Modules/ZDC/include/ZDC/ZDCRawDataCheck.h b/Modules/ZDC/include/ZDC/ZDCRawDataCheck.h index a39808b972..d416c2fa5c 100644 --- a/Modules/ZDC/include/ZDC/ZDCRawDataCheck.h +++ b/Modules/ZDC/include/ZDC/ZDCRawDataCheck.h @@ -75,12 +75,10 @@ class ZDCRawDataCheck : public o2::quality_control::checker::CheckInterface private: std::vector mVectHistoCheck; std::vector mVectch; - // Begin Stefan addition float NOISE_LEVEL_LOW = 0.0; float NOISE_LEVEL_HIGH = 2.0; bool COMPARATOR_ARRAY[12]; int REFERENCE_BIN = 7; - // End Stefan addition // std::string mStringW = "List channels Warning Quality: "; // std::string mStringE = "List channels Bad Quality: "; diff --git a/Modules/ZDC/src/ZDCRawDataCheck.cxx b/Modules/ZDC/src/ZDCRawDataCheck.cxx index ad3849a476..b3db67dcca 100644 --- a/Modules/ZDC/src/ZDCRawDataCheck.cxx +++ b/Modules/ZDC/src/ZDCRawDataCheck.cxx @@ -56,12 +56,27 @@ Quality ZDCRawDataCheck::check(std::map Histo to check for (int ih = 0; ih < (int)mVectHistoCheck.size(); ih++) { - mVectHistoCheck.at(ih).numE = 0; - mVectHistoCheck.at(ih).numW = 0; - mVectHistoCheck.at(ih).stringW = ""; - mVectHistoCheck.at(ih).stringE = ""; if (mo->getName() == mVectHistoCheck.at(ih).nameHisto) { + //std::ofstream debugFile; + //debugFile.open("debug.txt", std::ios::app); + //if (debugFile.good()) { + // debugFile << mo->getName() << " "; + // debugFile << mVectHistoCheck.at(ih).nameHisto; + // debugFile << " = "; + // if (mo->getName() == mVectHistoCheck.at(ih).nameHisto) { + // debugFile << " equal "; + // } + // else { + // debugFile << " no equal "; + // } + // debugFile << "= \n"; + // debugFile.close(); + //} if ((mo->getName() == "hpedSummary")) { + mVectHistoCheck.at(ih).numE = 0; + mVectHistoCheck.at(ih).numW = 0; + mVectHistoCheck.at(ih).stringW = ""; + mVectHistoCheck.at(ih).stringE = ""; auto* h = dynamic_cast(mo->getObject()); if (h == nullptr) { ILOG(Error, Support) << "could not cast hpedSummary to TH1*" << ENDM; @@ -87,6 +102,10 @@ Quality ZDCRawDataCheck::check(std::mapgetName() == "hAlignPlot") || (mo->getName() == "hAlignPlotShift")) { + mVectHistoCheck.at(ih).numE = 0; + mVectHistoCheck.at(ih).numW = 0; + mVectHistoCheck.at(ih).stringW = ""; + mVectHistoCheck.at(ih).stringE = ""; int flag_ch_empty = 1; int flag_all_ch_empty = 1; auto* h = dynamic_cast(mo->getObject()); @@ -128,6 +147,10 @@ Quality ZDCRawDataCheck::check(std::mapgetName() == "herrorSummary") { + mVectHistoCheck.at(ih).numE = 0; + mVectHistoCheck.at(ih).numW = 0; + mVectHistoCheck.at(ih).stringW = ""; + mVectHistoCheck.at(ih).stringE = ""; int flag_ch_empty = 1; auto* h = dynamic_cast(mo->getObject()); if (h == nullptr) { @@ -161,8 +184,11 @@ Quality ZDCRawDataCheck::check(std::mapgetName() == "hBCAlignPlot"){ + if (mo->getName() == "hBCAlignPlot") { + mVectHistoCheck.at(ih).numE = 0; + mVectHistoCheck.at(ih).numW = 0; + mVectHistoCheck.at(ih).stringW = ""; + mVectHistoCheck.at(ih).stringE = ""; bool ratio_array[12]; float ratio = 0.0; auto* h = dynamic_cast(mo->getObject()); @@ -186,10 +212,18 @@ Quality ZDCRawDataCheck::check(std::map 0) { result = Quality::Bad; result.addFlag(FlagTypeFactory::Unknown(), - "It is bad because " + std::to_string(mVectHistoCheck.at(ih).numW) + " channels:" + mVectHistoCheck.at(ih).stringE + "have a value in the bad range"); + "It is bad because " + std::to_string(mVectHistoCheck.at(ih).numE) + " channels:" + mVectHistoCheck.at(ih).stringE + "have a value in the bad range"); mVectHistoCheck.at(ih).quality = 3; } } } } + //dumpStruct(); return result; } @@ -217,7 +252,7 @@ std::string ZDCRawDataCheck::getAcceptedType() { return "TH1"; } void ZDCRawDataCheck::beautify(std::shared_ptr mo, Quality checkResult) { - // dumpStruct(); + //dumpStruct(); for (int ih = 0; ih < (int)mVectHistoCheck.size(); ih++) { @@ -227,44 +262,26 @@ void ZDCRawDataCheck::beautify(std::shared_ptr mo, Quality checkR ILOG(Error, Support) << "could not cast '" << mo->getName() << "' to TH1*" << ENDM; return; } - //Begin Stefan addition if (mo->getName() == "hBCAlignPlot"){ - //float NOISE_LEVEL_LOW = 0.15; - //float NOISE_LEVEL_HIGH = 20; - //bool ratio_array[12]; - //bool comparator_array[12] = {false,false,false,false,false,false,true,false,true,false,true,false}; float ratio = 0.0; for (int x = 0; x < h->GetNbinsX(); x++) { for (int y = 0; y < h->GetNbinsY(); y++) { ratio = (h->GetBinContent(x + 1, y + 1))/(h->GetBinContent(x + 1, REFERENCE_BIN)); float xpos = h->GetXaxis()->GetBinCenter(x+1); float ypos = h->GetYaxis()->GetBinCenter(y+1); - //std::string strValue = std::to_string(ratio); std::string strValue = std::format("{:.2f}", ratio); - TLatex* msg = new TLatex(xpos-0.35, ypos-0.15, strValue.c_str()); - msg->SetTextSize(9); + TLatex* msgr = new TLatex(xpos-0.35, ypos-0.15, strValue.c_str()); + msgr->SetTextSize(9); if((ratio > NOISE_LEVEL_LOW) && (ratio < NOISE_LEVEL_HIGH)){ - msg->SetTextColor(kGreen); - //ratio_array[y] = true; + msgr->SetTextColor(kGreen); } else { - msg->SetTextColor(kRed); - //ratio_array[y] = false; + msgr->SetTextColor(kRed); } - h->GetListOfFunctions()->Add(msg); - - //std::string strValue_ratio_array = ratio_array[y] ? "true" : "false"; - //std::string strValue_comparator_array = comparator_array[y] ? "true" : "false"; - //TLatex* msg2 = new TLatex(xpos-0.35, ypos-0.05, strValue_ratio_array.c_str()); - //msg2->SetTextSize(7); - //h->GetListOfFunctions()->Add(msg2); - //TLatex* msg3 = new TLatex(xpos-0.35, ypos+0.05, strValue_comparator_array.c_str()); - //msg3->SetTextSize(7); - //h->GetListOfFunctions()->Add(msg3); + h->GetListOfFunctions()->Add(msgr); } } } - //End Stefan addition if (mVectHistoCheck.at(ih).quality == 1) { std::string errorSt = getCurrentDataTime() + " Ok"; TLatex* msg = new TLatex(mVectHistoCheck.at(ih).posMsgX, mVectHistoCheck.at(ih).posMsgY, errorSt.c_str()); @@ -276,7 +293,16 @@ void ZDCRawDataCheck::beautify(std::shared_ptr mo, Quality checkR h->SetFillColor(kGreen); msg->Draw(); } else if (mVectHistoCheck.at(ih).quality == 3) { - std::string errorSt = getCurrentDataTime() + " Errors --> Call the expert." + mVectHistoCheck.at(ih).stringE; + //std::ofstream debugFile; + //debugFile.open("debug.txt", std::ios::app); + //if (debugFile.good()) { + // debugFile << mVectHistoCheck.at(ih).numE << " "; + // debugFile << mVectHistoCheck.at(ih).stringE << " "; + // //debugFile << mVectHistoCheck.at(ih).paramch.at(x).ch << " "; + // debugFile << "= \n"; + // debugFile.close(); + //} + std::string errorSt = getCurrentDataTime() + " Errors --> Call the expert. " + mVectHistoCheck.at(ih).stringE; TLatex* msg = new TLatex(mVectHistoCheck.at(ih).posMsgX, mVectHistoCheck.at(ih).posMsgY, errorSt.c_str()); msg->SetNDC(); msg->SetTextSize(16); @@ -334,8 +360,8 @@ void ZDCRawDataCheck::init(const Activity& activity) setChCheck("hpedSummary", "TH1F", "PED", "PED_POS_MSG_X", "PED_POS_MSG_Y", activity); setChCheck("hAlignPlotShift", "TH2F", "ALIGN", "ALIGN_POS_MSG_X", "ALIGN_POS_MSG_Y", activity); setChCheck("herrorSummary", "TH2F", "ERROR", "ERROR_POS_MSG_X", "ERROR_POS_MSG_Y", activity); - //Begin Stefan Addition - setChCheck("hBCAlignPlot", "TH2F", "ALIGN", "ALIGN_POS_MSG_X", "ALIGN_POS_MSG_Y", activity); + setChCheck("hBCAlignPlot", "TH2F", "PED", "PED_POS_MSG_X", "PED_POS_MSG_Y", activity); + std::vector tokenString; if (auto param = mCustomParameters.find("REFERENCE_BIN"); param != mCustomParameters.end()) { ILOG(Debug, Devel) << "Custom parameter - REFERENCE_BIN: " << param->second << ENDM; @@ -374,8 +400,7 @@ void ZDCRawDataCheck::init(const Activity& activity) COMPARATOR_ARRAY[i] = false; } } - //End Stefan Addition - // dumpStruct(); + //dumpStruct(); } void ZDCRawDataCheck::setChName(std::string channel) From 426d0c9eb812d1d6218afec736c08a8795cb98fd Mon Sep 17 00:00:00 2001 From: Stefan Cristi Zugravel Date: Thu, 23 Jan 2025 12:12:08 +0100 Subject: [PATCH 08/11] Performed clang-format --- Modules/ZDC/include/ZDC/LinkDef.h | 12 +-- Modules/ZDC/include/ZDC/ZDCRecDataTask.h | 4 +- Modules/ZDC/src/ZDCRawDataCheck.cxx | 123 +++++++++++------------ Modules/ZDC/src/ZDCRawDataTask.cxx | 39 ++++--- Modules/ZDC/src/ZDCRecBeautifyPlots.cxx | 2 +- Modules/ZDC/src/ZDCRecDataTask.cxx | 97 ++++++++---------- 6 files changed, 131 insertions(+), 146 deletions(-) diff --git a/Modules/ZDC/include/ZDC/LinkDef.h b/Modules/ZDC/include/ZDC/LinkDef.h index db4b3aceda..6f06bdbd12 100644 --- a/Modules/ZDC/include/ZDC/LinkDef.h +++ b/Modules/ZDC/include/ZDC/LinkDef.h @@ -3,10 +3,10 @@ #pragma link off all classes; #pragma link off all functions; -#pragma link C++ class o2::quality_control_modules::zdc::ZDCRawDataTask+; -#pragma link C++ class o2::quality_control_modules::zdc::ZDCRawDataCheck+; -#pragma link C++ class o2::quality_control_modules::zdc::ZDCRecDataTask+; -#pragma link C++ class o2::quality_control_modules::zdc::ZDCRecDataCheck+; -#pragma link C++ class o2::quality_control_modules::zdc::ZDCRecDataPostProcessing+; -#pragma link C++ class o2::quality_control_modules::zdc::ZDCRecBeautifyPlots+; +#pragma link C++ class o2::quality_control_modules::zdc::ZDCRawDataTask + ; +#pragma link C++ class o2::quality_control_modules::zdc::ZDCRawDataCheck + ; +#pragma link C++ class o2::quality_control_modules::zdc::ZDCRecDataTask + ; +#pragma link C++ class o2::quality_control_modules::zdc::ZDCRecDataCheck + ; +#pragma link C++ class o2::quality_control_modules::zdc::ZDCRecDataPostProcessing + ; +#pragma link C++ class o2::quality_control_modules::zdc::ZDCRecBeautifyPlots + ; #endif diff --git a/Modules/ZDC/include/ZDC/ZDCRecDataTask.h b/Modules/ZDC/include/ZDC/ZDCRecDataTask.h index 2cb3d8698f..e726de3f5b 100644 --- a/Modules/ZDC/include/ZDC/ZDCRecDataTask.h +++ b/Modules/ZDC/include/ZDC/ZDCRecDataTask.h @@ -105,9 +105,9 @@ class ZDCRecDataTask final : public TaskInterface bool IsEventCentral(); void SetConfigCentralEvent(float tdcLimit, int centraleventconfigvalue); void settdcLimit(float tdcv) { ftdcLimit = tdcv; }; - void setcentraleventconfigvalue(int centrentcfg) {fcentraleventconfigvalue = centrentcfg; }; + void setcentraleventconfigvalue(int centrentcfg) { fcentraleventconfigvalue = centrentcfg; }; float gettdcLimit() { return ftdcLimit; }; - int getcentraleventconfigvalue() {return fcentraleventconfigvalue; }; + int getcentraleventconfigvalue() { return fcentraleventconfigvalue; }; // End Stefan addition private: diff --git a/Modules/ZDC/src/ZDCRawDataCheck.cxx b/Modules/ZDC/src/ZDCRawDataCheck.cxx index b3db67dcca..157e72b184 100644 --- a/Modules/ZDC/src/ZDCRawDataCheck.cxx +++ b/Modules/ZDC/src/ZDCRawDataCheck.cxx @@ -57,21 +57,21 @@ Quality ZDCRawDataCheck::check(std::map Histo to check for (int ih = 0; ih < (int)mVectHistoCheck.size(); ih++) { if (mo->getName() == mVectHistoCheck.at(ih).nameHisto) { - //std::ofstream debugFile; - //debugFile.open("debug.txt", std::ios::app); - //if (debugFile.good()) { - // debugFile << mo->getName() << " "; - // debugFile << mVectHistoCheck.at(ih).nameHisto; - // debugFile << " = "; - // if (mo->getName() == mVectHistoCheck.at(ih).nameHisto) { - // debugFile << " equal "; - // } - // else { - // debugFile << " no equal "; - // } - // debugFile << "= \n"; - // debugFile.close(); - //} + // std::ofstream debugFile; + // debugFile.open("debug.txt", std::ios::app); + // if (debugFile.good()) { + // debugFile << mo->getName() << " "; + // debugFile << mVectHistoCheck.at(ih).nameHisto; + // debugFile << " = "; + // if (mo->getName() == mVectHistoCheck.at(ih).nameHisto) { + // debugFile << " equal "; + // } + // else { + // debugFile << " no equal "; + // } + // debugFile << "= \n"; + // debugFile.close(); + // } if ((mo->getName() == "hpedSummary")) { mVectHistoCheck.at(ih).numE = 0; mVectHistoCheck.at(ih).numW = 0; @@ -201,26 +201,25 @@ Quality ZDCRawDataCheck::check(std::mapGetNbinsX(); x++) { for (int y = 0; y < h->GetNbinsY(); y++) { - ratio = (h->GetBinContent(x + 1, y + 1))/(h->GetBinContent(x + 1, REFERENCE_BIN)); - if ((ratio > NOISE_LEVEL_LOW) && (ratio < NOISE_LEVEL_HIGH)){ + ratio = (h->GetBinContent(x + 1, y + 1)) / (h->GetBinContent(x + 1, REFERENCE_BIN)); + if ((ratio > NOISE_LEVEL_LOW) && (ratio < NOISE_LEVEL_HIGH)) { ratio_array[y] = true; - } - else { + } else { ratio_array[y] = false; } } if (!std::equal(std::begin(ratio_array), std::end(ratio_array), std::begin(COMPARATOR_ARRAY))) { mVectHistoCheck.at(ih).numE += 1; mVectHistoCheck.at(ih).stringE = mVectHistoCheck.at(ih).stringE + mVectHistoCheck.at(ih).paramch.at(x).ch + " "; - //std::ofstream debugFile; - //debugFile.open("debug.txt", std::ios::app); - //if (debugFile.good()) { - // debugFile << mVectHistoCheck.at(ih).numE << " "; - // debugFile << mVectHistoCheck.at(ih).stringE << " "; - // //debugFile << mVectHistoCheck.at(ih).paramch.at(x).ch << " "; - // debugFile << "= \n"; - // debugFile.close(); - //} + // std::ofstream debugFile; + // debugFile.open("debug.txt", std::ios::app); + // if (debugFile.good()) { + // debugFile << mVectHistoCheck.at(ih).numE << " "; + // debugFile << mVectHistoCheck.at(ih).stringE << " "; + // //debugFile << mVectHistoCheck.at(ih).paramch.at(x).ch << " "; + // debugFile << "= \n"; + // debugFile.close(); + // } } } } @@ -244,7 +243,7 @@ Quality ZDCRawDataCheck::check(std::map mo, Quality checkResult) { - //dumpStruct(); + // dumpStruct(); for (int ih = 0; ih < (int)mVectHistoCheck.size(); ih++) { @@ -262,26 +261,25 @@ void ZDCRawDataCheck::beautify(std::shared_ptr mo, Quality checkR ILOG(Error, Support) << "could not cast '" << mo->getName() << "' to TH1*" << ENDM; return; } - if (mo->getName() == "hBCAlignPlot"){ - float ratio = 0.0; - for (int x = 0; x < h->GetNbinsX(); x++) { - for (int y = 0; y < h->GetNbinsY(); y++) { - ratio = (h->GetBinContent(x + 1, y + 1))/(h->GetBinContent(x + 1, REFERENCE_BIN)); - float xpos = h->GetXaxis()->GetBinCenter(x+1); - float ypos = h->GetYaxis()->GetBinCenter(y+1); - std::string strValue = std::format("{:.2f}", ratio); - TLatex* msgr = new TLatex(xpos-0.35, ypos-0.15, strValue.c_str()); - msgr->SetTextSize(9); - if((ratio > NOISE_LEVEL_LOW) && (ratio < NOISE_LEVEL_HIGH)){ - msgr->SetTextColor(kGreen); - } - else { - msgr->SetTextColor(kRed); - } - h->GetListOfFunctions()->Add(msgr); + if (mo->getName() == "hBCAlignPlot") { + float ratio = 0.0; + for (int x = 0; x < h->GetNbinsX(); x++) { + for (int y = 0; y < h->GetNbinsY(); y++) { + ratio = (h->GetBinContent(x + 1, y + 1)) / (h->GetBinContent(x + 1, REFERENCE_BIN)); + float xpos = h->GetXaxis()->GetBinCenter(x + 1); + float ypos = h->GetYaxis()->GetBinCenter(y + 1); + std::string strValue = std::format("{:.2f}", ratio); + TLatex* msgr = new TLatex(xpos - 0.35, ypos - 0.15, strValue.c_str()); + msgr->SetTextSize(9); + if ((ratio > NOISE_LEVEL_LOW) && (ratio < NOISE_LEVEL_HIGH)) { + msgr->SetTextColor(kGreen); + } else { + msgr->SetTextColor(kRed); } + h->GetListOfFunctions()->Add(msgr); } } + } if (mVectHistoCheck.at(ih).quality == 1) { std::string errorSt = getCurrentDataTime() + " Ok"; TLatex* msg = new TLatex(mVectHistoCheck.at(ih).posMsgX, mVectHistoCheck.at(ih).posMsgY, errorSt.c_str()); @@ -293,15 +291,15 @@ void ZDCRawDataCheck::beautify(std::shared_ptr mo, Quality checkR h->SetFillColor(kGreen); msg->Draw(); } else if (mVectHistoCheck.at(ih).quality == 3) { - //std::ofstream debugFile; - //debugFile.open("debug.txt", std::ios::app); - //if (debugFile.good()) { - // debugFile << mVectHistoCheck.at(ih).numE << " "; - // debugFile << mVectHistoCheck.at(ih).stringE << " "; - // //debugFile << mVectHistoCheck.at(ih).paramch.at(x).ch << " "; - // debugFile << "= \n"; - // debugFile.close(); - //} + // std::ofstream debugFile; + // debugFile.open("debug.txt", std::ios::app); + // if (debugFile.good()) { + // debugFile << mVectHistoCheck.at(ih).numE << " "; + // debugFile << mVectHistoCheck.at(ih).stringE << " "; + // //debugFile << mVectHistoCheck.at(ih).paramch.at(x).ch << " "; + // debugFile << "= \n"; + // debugFile.close(); + // } std::string errorSt = getCurrentDataTime() + " Errors --> Call the expert. " + mVectHistoCheck.at(ih).stringE; TLatex* msg = new TLatex(mVectHistoCheck.at(ih).posMsgX, mVectHistoCheck.at(ih).posMsgY, errorSt.c_str()); msg->SetNDC(); @@ -387,20 +385,19 @@ void ZDCRawDataCheck::init(const Activity& activity) if (auto param = mCustomParameters.find("COMPARATOR_ARRAY"); param != mCustomParameters.end()) { ILOG(Debug, Devel) << "Custom parameter - COMPARATOR_ARRAY: " << param->second << ENDM; tokenString = tokenLine(param->second, ";"); - for (int i = 0; i < 12; i++){ - if (atoi(tokenString.at(i).c_str()) == 1){ + for (int i = 0; i < 12; i++) { + if (atoi(tokenString.at(i).c_str()) == 1) { COMPARATOR_ARRAY[i] = true; - } - else { + } else { COMPARATOR_ARRAY[i] = false; } } } else { - for (int i = 0; i < 12; i++){ - COMPARATOR_ARRAY[i] = false; + for (int i = 0; i < 12; i++) { + COMPARATOR_ARRAY[i] = false; } } - //dumpStruct(); + // dumpStruct(); } void ZDCRawDataCheck::setChName(std::string channel) diff --git a/Modules/ZDC/src/ZDCRawDataTask.cxx b/Modules/ZDC/src/ZDCRawDataTask.cxx index f391bd8032..03119b3c74 100644 --- a/Modules/ZDC/src/ZDCRawDataTask.cxx +++ b/Modules/ZDC/src/ZDCRawDataTask.cxx @@ -339,16 +339,16 @@ void ZDCRawDataTask::initHisto() addNewHisto("COUNTS", "hcounts-ZEM1_TR", "Counts ZEM1", "ZEM1_TR", "LBC"); addNewHisto("COUNTS", "hcounts-ZEM2_TR", "Counts ZEM2", "ZEM2_TR", "LBC"); - addNewHisto("COUNTSA", "hcounts_ZNA_TC_TR", "Counts ZNA TC istantaneous" , "ZNA_TC_TR", "LBC"); - addNewHisto("COUNTSA", "hcounts_ZNA_SUM" , "Counts ZNA SUM istantaneous", "ZNA_SUM" , "LBC"); - addNewHisto("COUNTSA", "hcounts_ZNC_TC_TR", "Counts ZNC TC istantaneous" , "ZNC_TC_TR", "LBC"); - addNewHisto("COUNTSA", "hcounts_ZNC_SUM" , "Counts ZNC SUM istantaneous", "ZNC_SUM" , "LBC"); - addNewHisto("COUNTSA", "hcounts_ZPA_TC_TR", "Counts ZPA TC istantaneous" , "ZPA_TC_TR", "LBC"); - addNewHisto("COUNTSA", "hcounts_ZPA_SUM" , "Counts ZPA SUM istantaneous", "ZPA_SUM" , "LBC"); - addNewHisto("COUNTSA", "hcounts_ZPC_TC_TR", "Counts ZPC TC istantaneous" , "ZPC_TC_TR", "LBC"); - addNewHisto("COUNTSA", "hcounts_ZPC_SUM" , "Counts ZPC SUM istantaneous", "ZPC_SUM" , "LBC"); - addNewHisto("COUNTSA", "hcounts_ZEM1_TR" , "Counts ZEM1 istantaneous" , "ZEM1_TR" , "LBC"); - addNewHisto("COUNTSA", "hcounts_ZEM2_TR" , "Counts ZEM2 istantaneous" , "ZEM2_TR" , "LBC"); + addNewHisto("COUNTSA", "hcounts_ZNA_TC_TR", "Counts ZNA TC istantaneous", "ZNA_TC_TR", "LBC"); + addNewHisto("COUNTSA", "hcounts_ZNA_SUM", "Counts ZNA SUM istantaneous", "ZNA_SUM", "LBC"); + addNewHisto("COUNTSA", "hcounts_ZNC_TC_TR", "Counts ZNC TC istantaneous", "ZNC_TC_TR", "LBC"); + addNewHisto("COUNTSA", "hcounts_ZNC_SUM", "Counts ZNC SUM istantaneous", "ZNC_SUM", "LBC"); + addNewHisto("COUNTSA", "hcounts_ZPA_TC_TR", "Counts ZPA TC istantaneous", "ZPA_TC_TR", "LBC"); + addNewHisto("COUNTSA", "hcounts_ZPA_SUM", "Counts ZPA SUM istantaneous", "ZPA_SUM", "LBC"); + addNewHisto("COUNTSA", "hcounts_ZPC_TC_TR", "Counts ZPC TC istantaneous", "ZPC_TC_TR", "LBC"); + addNewHisto("COUNTSA", "hcounts_ZPC_SUM", "Counts ZPC SUM istantaneous", "ZPC_SUM", "LBC"); + addNewHisto("COUNTSA", "hcounts_ZEM1_TR", "Counts ZEM1 istantaneous", "ZEM1_TR", "LBC"); + addNewHisto("COUNTSA", "hcounts_ZEM2_TR", "Counts ZEM2 istantaneous", "ZEM2_TR", "LBC"); // Histograms Signal int nBCAheadTrig = 3; @@ -713,12 +713,12 @@ int ZDCRawDataTask::process(const o2::zdc::EventChData& ch) } // Begin Stefan addiiton - if (fBCalignment && (f.bc > (FirstEventBC -7)) && (f.bc < (FirstEventBC +6))) { - if (f.Hit) { - fBCalignment->Fill(fMatrixAlign[f.board][f.ch].bin , f.bc); - //fBCalignment->Fill(fMatrixAlign[f.board][f.ch].bin -1, f.bc); - } + if (fBCalignment && (f.bc > (FirstEventBC - 7)) && (f.bc < (FirstEventBC + 6))) { + if (f.Hit) { + fBCalignment->Fill(fMatrixAlign[f.board][f.ch].bin, f.bc); + // fBCalignment->Fill(fMatrixAlign[f.board][f.ch].bin -1, f.bc); } + } // End Stefan addition if ((f.Alice_0 || f.Auto_0 || f.Alice_1 || f.Auto_1 || f.Alice_2 || f.Auto_2 || f.Alice_3 || f.Auto_3 || f.Auto_m) && fTriggerBits && fTriggerBitsHits) { @@ -1015,7 +1015,6 @@ bool ZDCRawDataTask::addNewHisto(std::string type, std::string name, std::string } } - if (type == "COUNTSA") { // Check if Histogram Exist if (std::find(fNameHisto.begin(), fNameHisto.end(), name) == fNameHisto.end()) { @@ -1047,8 +1046,6 @@ bool ZDCRawDataTask::addNewHisto(std::string type, std::string name, std::string } } - - // SIGNAL if (type == "SIGNAL") { // Check if Histogram Exist @@ -1225,8 +1222,8 @@ bool ZDCRawDataTask::addNewHisto(std::string type, std::string name, std::string if ((type == "SUMMARYBASELINE") || (type == "SUMMARYRATE") || (type == "SUMMARY_ALIGN") || (type == "SUMMARY_ALIGN_SHIFT") || (type == "SUMMARY_ERROR") || (type == "BC_ALIGN_PLOT")) { // Begin Stefan addition - if (type == "BC_ALIGN_PLOT"){ - fBCalignment = new TH2D(hname, htit, fNumBinX, fMinBinX, fMaxBinX, fNumBinY, FirstEventBC - 6 - 0.5 , FirstEventBC + 6 - 0.5 ); + if (type == "BC_ALIGN_PLOT") { + fBCalignment = new TH2D(hname, htit, fNumBinX, fMinBinX, fMaxBinX, fNumBinY, FirstEventBC - 6 - 0.5, FirstEventBC + 6 - 0.5); fBCalignment->GetXaxis()->LabelsOption("v"); fBCalignment->SetStats(0); fBCalignment->GetYaxis()->SetTitle("Bunch Crossing [#]"); @@ -1293,7 +1290,7 @@ bool ZDCRawDataTask::addNewHisto(std::string type, std::string name, std::string if (type == "BC_ALIGN_PLOT") { getObjectsManager()->startPublishing(fBCalignment); } - // Begin Stefan addition + // Begin Stefan addition if (type == "SUMMARYBASELINE") { getObjectsManager()->startPublishing(fSummaryPedestal); } diff --git a/Modules/ZDC/src/ZDCRecBeautifyPlots.cxx b/Modules/ZDC/src/ZDCRecBeautifyPlots.cxx index 69652212b5..cad2813338 100644 --- a/Modules/ZDC/src/ZDCRecBeautifyPlots.cxx +++ b/Modules/ZDC/src/ZDCRecBeautifyPlots.cxx @@ -64,7 +64,7 @@ void ZDCRecBeautifyPlots::beautify(std::shared_ptr mo, Quality ch } auto* lineH = new TLine(0.5, 0, -0.5, 0); auto* lineV = new TLine(0, 0.5, 0, -0.5); - auto* marker = new TMarker(h->GetMean(1),h->GetMean(2),20); + auto* marker = new TMarker(h->GetMean(1), h->GetMean(2), 20); lineH->SetLineColor(kBlack); lineV->SetLineColor(kBlack); lineH->SetLineWidth(2); diff --git a/Modules/ZDC/src/ZDCRecDataTask.cxx b/Modules/ZDC/src/ZDCRecDataTask.cxx index 01d87ba0c6..38d074f37a 100644 --- a/Modules/ZDC/src/ZDCRecDataTask.cxx +++ b/Modules/ZDC/src/ZDCRecDataTask.cxx @@ -303,13 +303,13 @@ void ZDCRecDataTask::initHisto() addNewHisto("ADC1D", "h_ADC_ZPC_TC_H", "ADC ZPC TC ZOOM", "ADC", "ZPCC", "", "", 0); addNewHisto("ADC1D", "h_ADC_ZPC_SUM_H", "ADC ZPC SUM ZOOM", "ADC", "ZPCS", "", "", 0); - addNewHisto("ADC1D", "h_ADC_ZPA_TC_H_CUT", "ADC ZPA TC ZOOM with cut", "ADCAC", "ZPAC", "", "", 0); + addNewHisto("ADC1D", "h_ADC_ZPA_TC_H_CUT", "ADC ZPA TC ZOOM with cut", "ADCAC", "ZPAC", "", "", 0); addNewHisto("ADC1D", "h_ADC_ZPA_SUM_H_CUT", "ADC ZPA SUM ZOOM with cut", "ADCAC", "ZPAS", "", "", 0); - addNewHisto("ADC1D", "h_ADC_ZPC_TC_H_CUT", "ADC ZPC TC ZOOM with cut", "ADCAC", "ZPCC", "", "", 0); + addNewHisto("ADC1D", "h_ADC_ZPC_TC_H_CUT", "ADC ZPC TC ZOOM with cut", "ADCAC", "ZPCC", "", "", 0); addNewHisto("ADC1D", "h_ADC_ZPC_SUM_H_CUT", "ADC ZPC SUM ZOOM with cut", "ADCAC", "ZPCS", "", "", 0); - addNewHisto("ADC1D", "h_ADC_ZNA_TC_H_CUT", "ADC ZNA TC ZOOM with cut", "ADCAC", "ZNAC", "", "", 0); + addNewHisto("ADC1D", "h_ADC_ZNA_TC_H_CUT", "ADC ZNA TC ZOOM with cut", "ADCAC", "ZNAC", "", "", 0); addNewHisto("ADC1D", "h_ADC_ZNA_SUM_H_CUT", "ADC ZNA SUM ZOOM with cut", "ADCAC", "ZNAS", "", "", 0); - addNewHisto("ADC1D", "h_ADC_ZNC_TC_H_CUT", "ADC ZNC TC ZOOM with cut", "ADCAC", "ZNCC", "", "", 0); + addNewHisto("ADC1D", "h_ADC_ZNC_TC_H_CUT", "ADC ZNC TC ZOOM with cut", "ADCAC", "ZNCC", "", "", 0); addNewHisto("ADC1D", "h_ADC_ZNC_SUM_H_CUT", "ADC ZNC SUM ZOOM with cut", "ADCAC", "ZNCS", "", "", 0); if (auto param = mCustomParameters.find("TDCT"); param != mCustomParameters.end()) { @@ -380,7 +380,6 @@ void ZDCRecDataTask::initHisto() addNewHisto("TDC1D", "h_TDC_ZNC_TC_A_H_CUT", "TDC Amplitude ZNC TC ZOOM with cut", "TDCAC", "ZNCC", "", "", 0); addNewHisto("TDC1D", "h_TDC_ZNC_SUM_A_H_CUT", "TDC Amplitude ZNC SUM ZOOM with cut", "TDCAC", "ZNCS", "", "", 0); - // Centroid ZPA if (auto param = mCustomParameters.find("CENTR_ZPA"); param != mCustomParameters.end()) { ILOG(Debug, Devel) << "Custom parameter - CENTR_ZPA: " << param->second << ENDM; @@ -476,7 +475,6 @@ void ZDCRecDataTask::initHisto() addNewHisto("TDC-DIFF", "h_TDC_ZNC_DIFF_ZNA_ZNC_SUM_ZNA_V", "TDC Time (ns) TDC ZNC + ZNA vs ZNC - ZNA", "TDCV", "ZNC-ZNA", "TDCV", "ZNC+ZNA", 0); addNewHisto("TDC-DIFF", "h_TDC_ZNC_DIFF_ZNA_ZNC_SUM_ZNA_V_cut", "TDC Time (ns) TDC ZNC + ZNA vs ZNC - ZNA with cut on ZEMs", "TDCV", "ZNC-ZNA", "TDCV", "ZNC+ZNA", 0); - if (auto param = mCustomParameters.find("TDCAvsTDCT"); param != mCustomParameters.end()) { ILOG(Debug, Devel) << "Custom parameter - TDCAvsTDCT: " << param->second << ENDM; tokenString = tokenLine(param->second, ";"); @@ -574,7 +572,7 @@ void ZDCRecDataTask::initHisto() tokenString = tokenLine(param->second, ";"); SetConfigCentralEvent(atof(tokenString.at(0).c_str()), atoi(tokenString.at(1).c_str())); } else { - SetConfigCentralEvent(0.0,0); + SetConfigCentralEvent(0.0, 0); } // End Stefan addition } @@ -611,8 +609,6 @@ bool ZDCRecDataTask::add1DHisto(std::string typeH, std::string name, std::string } } - - bool ZDCRecDataTask::add2DHisto(std::string typeH, std::string name, std::string title, std::string typeCh1, std::string ch1, std::string typeCh2, std::string ch2) { TString hname = TString::Format("%s", name.c_str()); @@ -626,9 +622,9 @@ bool ZDCRecDataTask::add2DHisto(std::string typeH, std::string name, std::string h2d.typech2 = typeCh2; h2d.ch2 = ch2; // Begin Stefan addition - if (typeH == "CENTR_ZNA"){ - //h2d.histo->GetXaxis()->SetTitle("test2"); - //h2d.histo->GetYaxis()->SetTitle("test2"); + if (typeH == "CENTR_ZNA") { + // h2d.histo->GetXaxis()->SetTitle("test2"); + // h2d.histo->GetYaxis()->SetTitle("test2"); } // End Stefan Addition int ih = (int)mHisto2D.size(); @@ -700,36 +696,35 @@ int ZDCRecDataTask::process(const gsl::span& RecBC, } if (mHisto1D.at(i).typech == "ADCAC") { - if (mHisto1D.at(i).ch == "ZPAC" || mHisto1D.at(i).ch == "ZPAS" ){ - if (mEv.NtdcA(o2::zdc::TDCZNAC) == 0 && mEv.NtdcA(o2::zdc::TDCZNAS) == 0 ){ - if (getADCRecValue("ADC", mHisto1D.at(i).ch) > -8000){ + if (mHisto1D.at(i).ch == "ZPAC" || mHisto1D.at(i).ch == "ZPAS") { + if (mEv.NtdcA(o2::zdc::TDCZNAC) == 0 && mEv.NtdcA(o2::zdc::TDCZNAS) == 0) { + if (getADCRecValue("ADC", mHisto1D.at(i).ch) > -8000) { mHisto1D.at(i).histo->Fill(getADCRecValue("ADC", mHisto1D.at(i).ch)); } } } - if (mHisto1D.at(i).ch == "ZPCC" || mHisto1D.at(i).ch == "ZPCS" ){ - if (mEv.NtdcA(o2::zdc::TDCZNCC) == 0 && mEv.NtdcA(o2::zdc::TDCZNCS) == 0 ){ - if (getADCRecValue("ADC", mHisto1D.at(i).ch) > -8000){ - mHisto1D.at(i).histo->Fill(getADCRecValue("ADC", mHisto1D.at(i).ch)); + if (mHisto1D.at(i).ch == "ZPCC" || mHisto1D.at(i).ch == "ZPCS") { + if (mEv.NtdcA(o2::zdc::TDCZNCC) == 0 && mEv.NtdcA(o2::zdc::TDCZNCS) == 0) { + if (getADCRecValue("ADC", mHisto1D.at(i).ch) > -8000) { + mHisto1D.at(i).histo->Fill(getADCRecValue("ADC", mHisto1D.at(i).ch)); } } } - if (mHisto1D.at(i).ch == "ZNAC" || mHisto1D.at(i).ch == "ZNAS" ){ - if (mEv.NtdcA(o2::zdc::TDCZPAC) == 0 && mEv.NtdcA(o2::zdc::TDCZPAS) == 0 ){ - if (getADCRecValue("ADC", mHisto1D.at(i).ch) > -8000){ - mHisto1D.at(i).histo->Fill(getADCRecValue("ADC", mHisto1D.at(i).ch)); + if (mHisto1D.at(i).ch == "ZNAC" || mHisto1D.at(i).ch == "ZNAS") { + if (mEv.NtdcA(o2::zdc::TDCZPAC) == 0 && mEv.NtdcA(o2::zdc::TDCZPAS) == 0) { + if (getADCRecValue("ADC", mHisto1D.at(i).ch) > -8000) { + mHisto1D.at(i).histo->Fill(getADCRecValue("ADC", mHisto1D.at(i).ch)); } } } - if (mHisto1D.at(i).ch == "ZNCC" || mHisto1D.at(i).ch == "ZNCS" ){ - if (mEv.NtdcA(o2::zdc::TDCZPCC) == 0 && mEv.NtdcA(o2::zdc::TDCZPCS) == 0 ){ - if (getADCRecValue("ADC", mHisto1D.at(i).ch) > -8000){ - mHisto1D.at(i).histo->Fill(getADCRecValue("ADC", mHisto1D.at(i).ch)); + if (mHisto1D.at(i).ch == "ZNCC" || mHisto1D.at(i).ch == "ZNCS") { + if (mEv.NtdcA(o2::zdc::TDCZPCC) == 0 && mEv.NtdcA(o2::zdc::TDCZPCS) == 0) { + if (getADCRecValue("ADC", mHisto1D.at(i).ch) > -8000) { + mHisto1D.at(i).histo->Fill(getADCRecValue("ADC", mHisto1D.at(i).ch)); } } } } - } // Fill TDC 1D @@ -752,12 +747,12 @@ int ZDCRecDataTask::process(const gsl::span& RecBC, if (mHisto1D.at(i).typeh == "TDC1D" && (mHisto1D.at(i).typech == "TDCAC")) { int tdcid = getIdTDCch("TDCA", mHisto1D.at(i).ch); auto nhitv = mEv.NtdcV(tdcid); - if (tdcid == o2::zdc::TDCZPAC || tdcid == o2::zdc::TDCZPAS ){ - if (mEv.NtdcA(o2::zdc::TDCZNAC) == 0 && mEv.NtdcA(o2::zdc::TDCZNAS) == 0 ){ + if (tdcid == o2::zdc::TDCZPAC || tdcid == o2::zdc::TDCZPAS) { + if (mEv.NtdcA(o2::zdc::TDCZNAC) == 0 && mEv.NtdcA(o2::zdc::TDCZNAS) == 0) { if (mEv.NtdcA(tdcid) == nhitv && nhitv > 0) { for (int ihit = 0; ihit < nhitv; ihit++) { if (mHisto1D.at(i).typech == "TDCAC") { - if (( mEv.tdcV(tdcid, ihit) > -2.5 && mEv.tdcV(tdcid, ihit) < 2.5 )){ + if ((mEv.tdcV(tdcid, ihit) > -2.5 && mEv.tdcV(tdcid, ihit) < 2.5)) { mHisto1D.at(i).histo->Fill(mEv.tdcA(tdcid, ihit)); } } @@ -765,12 +760,12 @@ int ZDCRecDataTask::process(const gsl::span& RecBC, } } } - if (tdcid == o2::zdc::TDCZPCC || tdcid == o2::zdc::TDCZPCS ){ - if (mEv.NtdcA(o2::zdc::TDCZNCC) == 0 && mEv.NtdcA(o2::zdc::TDCZNCS) == 0 ){ + if (tdcid == o2::zdc::TDCZPCC || tdcid == o2::zdc::TDCZPCS) { + if (mEv.NtdcA(o2::zdc::TDCZNCC) == 0 && mEv.NtdcA(o2::zdc::TDCZNCS) == 0) { if (mEv.NtdcA(tdcid) == nhitv && nhitv > 0) { for (int ihit = 0; ihit < nhitv; ihit++) { if (mHisto1D.at(i).typech == "TDCAC") { - if (( mEv.tdcV(tdcid, ihit) > -2.5 && mEv.tdcV(tdcid, ihit) < 2.5 )){ + if ((mEv.tdcV(tdcid, ihit) > -2.5 && mEv.tdcV(tdcid, ihit) < 2.5)) { mHisto1D.at(i).histo->Fill(mEv.tdcA(tdcid, ihit)); } } @@ -778,12 +773,12 @@ int ZDCRecDataTask::process(const gsl::span& RecBC, } } } - if (tdcid == o2::zdc::TDCZNAC || tdcid == o2::zdc::TDCZNAS ){ - if (mEv.NtdcA(o2::zdc::TDCZPAC) == 0 && mEv.NtdcA(o2::zdc::TDCZPAS) == 0 ){ + if (tdcid == o2::zdc::TDCZNAC || tdcid == o2::zdc::TDCZNAS) { + if (mEv.NtdcA(o2::zdc::TDCZPAC) == 0 && mEv.NtdcA(o2::zdc::TDCZPAS) == 0) { if (mEv.NtdcA(tdcid) == nhitv && nhitv > 0) { for (int ihit = 0; ihit < nhitv; ihit++) { if (mHisto1D.at(i).typech == "TDCAC") { - if (( mEv.tdcV(tdcid, ihit) > -2.5 && mEv.tdcV(tdcid, ihit) < 2.5 )){ + if ((mEv.tdcV(tdcid, ihit) > -2.5 && mEv.tdcV(tdcid, ihit) < 2.5)) { mHisto1D.at(i).histo->Fill(mEv.tdcA(tdcid, ihit)); } } @@ -791,12 +786,12 @@ int ZDCRecDataTask::process(const gsl::span& RecBC, } } } - if (tdcid == o2::zdc::TDCZNCC || tdcid == o2::zdc::TDCZNCS ){ - if (mEv.NtdcA(o2::zdc::TDCZPCC) == 0 && mEv.NtdcA(o2::zdc::TDCZPCS) == 0 ){ + if (tdcid == o2::zdc::TDCZNCC || tdcid == o2::zdc::TDCZNCS) { + if (mEv.NtdcA(o2::zdc::TDCZPCC) == 0 && mEv.NtdcA(o2::zdc::TDCZPCS) == 0) { if (mEv.NtdcA(tdcid) == nhitv && nhitv > 0) { for (int ihit = 0; ihit < nhitv; ihit++) { if (mHisto1D.at(i).typech == "TDCAC") { - if (( mEv.tdcV(tdcid, ihit) > -2.5 && mEv.tdcV(tdcid, ihit) < 2.5 )){ + if ((mEv.tdcV(tdcid, ihit) > -2.5 && mEv.tdcV(tdcid, ihit) < 2.5)) { mHisto1D.at(i).histo->Fill(mEv.tdcA(tdcid, ihit)); } } @@ -841,7 +836,7 @@ int ZDCRecDataTask::process(const gsl::span& RecBC, } if (mHisto2D.at(i).histo->GetName() == TString::Format("h_TDC_ZNC_DIFF_ZNA_ZNC_SUM_ZNA_V_cut")) { // if (( (float)o2::zdc::TDCZEM2 > -2.5 && (float)o2::zdc::TDCZEM2 < 2.5 ) && ( (float)o2::zdc::TDCZEM1 > -2.5 && (float)o2::zdc::TDCZEM1 < 2.5 ) ){ - if ((mEv.NtdcA(zncc_id) == nhit_zncc && nhit_zncc > 0) && (mEv.NtdcA(znac_id) == nhit_znac && nhit_znac > 0) && ( (float)mEv.tdcV(5, 0) > -12.5 && (float)mEv.tdcV(5, 0) < 12.5 ) && ( (float)mEv.tdcV(4, 0) > -12.5 && (float)mEv.tdcV(4, 0) < 12.5 )) { + if ((mEv.NtdcA(zncc_id) == nhit_zncc && nhit_zncc > 0) && (mEv.NtdcA(znac_id) == nhit_znac && nhit_znac > 0) && ((float)mEv.tdcV(5, 0) > -12.5 && (float)mEv.tdcV(5, 0) < 12.5) && ((float)mEv.tdcV(4, 0) > -12.5 && (float)mEv.tdcV(4, 0) < 12.5)) { auto sum = mEv.tdcV(zncc_id, 0) + mEv.tdcV(znac_id, 0); auto diff = mEv.tdcV(zncc_id, 0) - mEv.tdcV(znac_id, 0); mHisto2D.at(i).histo->Fill(diff, sum); @@ -879,9 +874,8 @@ int ZDCRecDataTask::process(const gsl::span& RecBC, if (mHisto2D.at(i).histo->GetName() == TString::Format("h_CENTR_ZNA")) { mEv.centroidZNA(x, y); mHisto2D.at(i).histo->Fill(x, y); - } - else { - if (IsEventCentral()){ //STEFAN + } else { + if (IsEventCentral()) { // STEFAN mEv.centroidZNA(x, y); mHisto2D.at(i).histo->Fill(x, y); } @@ -891,16 +885,15 @@ int ZDCRecDataTask::process(const gsl::span& RecBC, if (mHisto2D.at(i).histo->GetName() == TString::Format("h_CENTR_ZNC")) { mEv.centroidZNC(x, y); mHisto2D.at(i).histo->Fill(x, y); - } - else { - if (IsEventCentral()) { //STEFAN + } else { + if (IsEventCentral()) { // STEFAN mEv.centroidZNC(x, y); mHisto2D.at(i).histo->Fill(x, y); } } } } // for histo 2D - } // while + } // while return 0; } @@ -909,14 +902,12 @@ bool ZDCRecDataTask::IsEventCentral() { if (fcentraleventconfigvalue == 1) { // Both ZEMs between a configurable value - if ( ((float)mEv.tdcV(5, 0) > -ftdcLimit && (float)mEv.tdcV(5, 0) < ftdcLimit) && ((float)mEv.tdcV(4, 0) > -ftdcLimit && (float)mEv.tdcV(4, 0) < ftdcLimit) ) { + if (((float)mEv.tdcV(5, 0) > -ftdcLimit && (float)mEv.tdcV(5, 0) < ftdcLimit) && ((float)mEv.tdcV(4, 0) > -ftdcLimit && (float)mEv.tdcV(4, 0) < ftdcLimit)) { return true; - } - else { + } else { return false; } - } - else { + } else { return false; } } From 37454c8f140f3e8329ed78d70c115f1f531ad70d Mon Sep 17 00:00:00 2001 From: stefan-zugravel Date: Tue, 18 Feb 2025 15:58:29 +0100 Subject: [PATCH 09/11] modificationfor clang-format --- Modules/ZDC/src/ZDCRecDataTask.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/ZDC/src/ZDCRecDataTask.cxx b/Modules/ZDC/src/ZDCRecDataTask.cxx index 7d56d22858..b3aa1decf3 100644 --- a/Modules/ZDC/src/ZDCRecDataTask.cxx +++ b/Modules/ZDC/src/ZDCRecDataTask.cxx @@ -564,7 +564,7 @@ void ZDCRecDataTask::initHisto() } addNewHisto("CENTR_ZNC", "h_CENTR_ZNC", "ZNC Centroid (cm)", "ADC", "CXZNC", "ADC", "CYZNC", 0); addNewHisto("CENTR_ZNC", "h_CENTR_ZNC_cut_ZEM", "ZNC Centroid (cm)", "ADC", "CXZNC", "ADC", "CYZNC", 0); - + // Begin Stefan addition // Here we set the parameters for the configuration of the logic which selects the central events if (auto param = mCustomParameters.find("CENTRAL_EVENT_CONFIG"); param != mCustomParameters.end()) { From df753bf3a0707fa07827fc316925396f5b0d60f9 Mon Sep 17 00:00:00 2001 From: stefan-zugravel Date: Tue, 18 Feb 2025 16:02:01 +0100 Subject: [PATCH 10/11] modification for clang-format 2 --- Modules/ZDC/src/ZDCRecDataTask.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Modules/ZDC/src/ZDCRecDataTask.cxx b/Modules/ZDC/src/ZDCRecDataTask.cxx index b3aa1decf3..0169936591 100644 --- a/Modules/ZDC/src/ZDCRecDataTask.cxx +++ b/Modules/ZDC/src/ZDCRecDataTask.cxx @@ -892,8 +892,8 @@ int ZDCRecDataTask::process(const gsl::span& RecBC, } } } - } // for histo 2D - } // while + } + } return 0; } From a0616f40b06e5f272a9630ec0e0dbe6b1da3fa47 Mon Sep 17 00:00:00 2001 From: stefan-zugravel Date: Tue, 25 Mar 2025 14:00:50 +0100 Subject: [PATCH 11/11] fix for code guidelines --- Modules/ZDC/include/ZDC/ZDCRecBeautifyPlots.h | 2 +- Modules/ZDC/src/ZDCRawDataCheck.cxx | 37 ------------------- Modules/ZDC/src/ZDCRecBeautifyPlots.cxx | 2 +- Modules/ZDC/src/ZDCRecDataTask.cxx | 16 +------- 4 files changed, 4 insertions(+), 53 deletions(-) diff --git a/Modules/ZDC/include/ZDC/ZDCRecBeautifyPlots.h b/Modules/ZDC/include/ZDC/ZDCRecBeautifyPlots.h index d92c7efad4..cc4483ad8c 100644 --- a/Modules/ZDC/include/ZDC/ZDCRecBeautifyPlots.h +++ b/Modules/ZDC/include/ZDC/ZDCRecBeautifyPlots.h @@ -22,7 +22,7 @@ namespace o2::quality_control_modules::zdc { -/// \brief Example QC Check +/// \brief ZDC Beautify for centroids plots /// \author Stefan Cristi Zugravel class ZDCRecBeautifyPlots : public o2::quality_control::checker::CheckInterface { diff --git a/Modules/ZDC/src/ZDCRawDataCheck.cxx b/Modules/ZDC/src/ZDCRawDataCheck.cxx index 157e72b184..db3cc36fb1 100644 --- a/Modules/ZDC/src/ZDCRawDataCheck.cxx +++ b/Modules/ZDC/src/ZDCRawDataCheck.cxx @@ -57,21 +57,6 @@ Quality ZDCRawDataCheck::check(std::map Histo to check for (int ih = 0; ih < (int)mVectHistoCheck.size(); ih++) { if (mo->getName() == mVectHistoCheck.at(ih).nameHisto) { - // std::ofstream debugFile; - // debugFile.open("debug.txt", std::ios::app); - // if (debugFile.good()) { - // debugFile << mo->getName() << " "; - // debugFile << mVectHistoCheck.at(ih).nameHisto; - // debugFile << " = "; - // if (mo->getName() == mVectHistoCheck.at(ih).nameHisto) { - // debugFile << " equal "; - // } - // else { - // debugFile << " no equal "; - // } - // debugFile << "= \n"; - // debugFile.close(); - // } if ((mo->getName() == "hpedSummary")) { mVectHistoCheck.at(ih).numE = 0; mVectHistoCheck.at(ih).numW = 0; @@ -211,15 +196,6 @@ Quality ZDCRawDataCheck::check(std::map mo, Quality checkResult) { - // dumpStruct(); - for (int ih = 0; ih < (int)mVectHistoCheck.size(); ih++) { if (mo->getName() == mVectHistoCheck.at(ih).nameHisto) { @@ -291,15 +264,6 @@ void ZDCRawDataCheck::beautify(std::shared_ptr mo, Quality checkR h->SetFillColor(kGreen); msg->Draw(); } else if (mVectHistoCheck.at(ih).quality == 3) { - // std::ofstream debugFile; - // debugFile.open("debug.txt", std::ios::app); - // if (debugFile.good()) { - // debugFile << mVectHistoCheck.at(ih).numE << " "; - // debugFile << mVectHistoCheck.at(ih).stringE << " "; - // //debugFile << mVectHistoCheck.at(ih).paramch.at(x).ch << " "; - // debugFile << "= \n"; - // debugFile.close(); - // } std::string errorSt = getCurrentDataTime() + " Errors --> Call the expert. " + mVectHistoCheck.at(ih).stringE; TLatex* msg = new TLatex(mVectHistoCheck.at(ih).posMsgX, mVectHistoCheck.at(ih).posMsgY, errorSt.c_str()); msg->SetNDC(); @@ -397,7 +361,6 @@ void ZDCRawDataCheck::init(const Activity& activity) COMPARATOR_ARRAY[i] = false; } } - // dumpStruct(); } void ZDCRawDataCheck::setChName(std::string channel) diff --git a/Modules/ZDC/src/ZDCRecBeautifyPlots.cxx b/Modules/ZDC/src/ZDCRecBeautifyPlots.cxx index cad2813338..01905d791f 100644 --- a/Modules/ZDC/src/ZDCRecBeautifyPlots.cxx +++ b/Modules/ZDC/src/ZDCRecBeautifyPlots.cxx @@ -11,7 +11,7 @@ /// /// \file ZDCRecBeautifyPlots.cxx -/// \author My Name +/// \author Stefan Cristi Zugravel /// #include "ZDC/ZDCRecBeautifyPlots.h" diff --git a/Modules/ZDC/src/ZDCRecDataTask.cxx b/Modules/ZDC/src/ZDCRecDataTask.cxx index 0169936591..a72ebc036f 100644 --- a/Modules/ZDC/src/ZDCRecDataTask.cxx +++ b/Modules/ZDC/src/ZDCRecDataTask.cxx @@ -198,14 +198,12 @@ void ZDCRecDataTask::setBinHisto2D(int numBinX, double minBinX, double maxBinX, setMaxBinY(maxBinY); } -// Begin Stefan addition // CENTRAL_EVENT_CONFIG -> tdcLimit [ns] ; centraleventconfig [discrete value] void ZDCRecDataTask::SetConfigCentralEvent(float tdcLimit, int centraleventconfig) { settdcLimit(tdcLimit); setcentraleventconfigvalue(centraleventconfig); } -// End Stefan addition void ZDCRecDataTask::dumpHistoStructure() { @@ -565,7 +563,6 @@ void ZDCRecDataTask::initHisto() addNewHisto("CENTR_ZNC", "h_CENTR_ZNC", "ZNC Centroid (cm)", "ADC", "CXZNC", "ADC", "CYZNC", 0); addNewHisto("CENTR_ZNC", "h_CENTR_ZNC_cut_ZEM", "ZNC Centroid (cm)", "ADC", "CXZNC", "ADC", "CYZNC", 0); - // Begin Stefan addition // Here we set the parameters for the configuration of the logic which selects the central events if (auto param = mCustomParameters.find("CENTRAL_EVENT_CONFIG"); param != mCustomParameters.end()) { ILOG(Debug, Devel) << "Custom parameter - CENTRAL_EVENT_CONFIG: " << param->second << ENDM; @@ -574,7 +571,6 @@ void ZDCRecDataTask::initHisto() } else { SetConfigCentralEvent(0.0, 0); } - // End Stefan addition } bool ZDCRecDataTask::add1DHisto(std::string typeH, std::string name, std::string title, std::string typeCh1, std::string ch1, int bin) @@ -621,12 +617,6 @@ bool ZDCRecDataTask::add2DHisto(std::string typeH, std::string name, std::string h2d.ch1 = ch1; h2d.typech2 = typeCh2; h2d.ch2 = ch2; - // Begin Stefan addition - if (typeH == "CENTR_ZNA") { - // h2d.histo->GetXaxis()->SetTitle("test2"); - // h2d.histo->GetYaxis()->SetTitle("test2"); - } - // End Stefan Addition int ih = (int)mHisto2D.size(); mHisto2D.push_back(h2d); h2d.typeh.clear(); @@ -875,7 +865,7 @@ int ZDCRecDataTask::process(const gsl::span& RecBC, mEv.centroidZNA(x, y); mHisto2D.at(i).histo->Fill(x, y); } else { - if (IsEventCentral()) { // STEFAN + if (IsEventCentral()) { mEv.centroidZNA(x, y); mHisto2D.at(i).histo->Fill(x, y); } @@ -886,7 +876,7 @@ int ZDCRecDataTask::process(const gsl::span& RecBC, mEv.centroidZNC(x, y); mHisto2D.at(i).histo->Fill(x, y); } else { - if (IsEventCentral()) { // STEFAN + if (IsEventCentral()) { mEv.centroidZNC(x, y); mHisto2D.at(i).histo->Fill(x, y); } @@ -897,7 +887,6 @@ int ZDCRecDataTask::process(const gsl::span& RecBC, return 0; } -// Begin Stefan addition bool ZDCRecDataTask::IsEventCentral() { if (fcentraleventconfigvalue == 1) { @@ -911,7 +900,6 @@ bool ZDCRecDataTask::IsEventCentral() return false; } } -// End Stefan addition float ZDCRecDataTask::getADCRecValue(std::string typech, std::string ch) {