From ccfb2d2f31e036c0278bbe51ed948dd3aa70507c Mon Sep 17 00:00:00 2001 From: Adrian Weber <adrian.a.weber@physik.uni-giessen.de> Date: Wed, 2 Mar 2022 08:53:22 +0100 Subject: [PATCH] Add ToT histrograms of each DiRICH to mRICH monitoring --- .../rich/unpack/CbmRichUnpackAlgo2022.cxx | 1 + .../rich/unpack/CbmRichUnpackMonitor.cxx | 20 +++++++++++++++++-- .../rich/unpack/CbmRichUnpackMonitor.h | 5 +++++ 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/reco/detectors/rich/unpack/CbmRichUnpackAlgo2022.cxx b/reco/detectors/rich/unpack/CbmRichUnpackAlgo2022.cxx index 31aeaba0b1..1669fe9761 100644 --- a/reco/detectors/rich/unpack/CbmRichUnpackAlgo2022.cxx +++ b/reco/detectors/rich/unpack/CbmRichUnpackAlgo2022.cxx @@ -63,6 +63,7 @@ bool CbmRichUnpackAlgo2022::unpack(const fles::Timeslice* ts, std::uint16_t icom for (auto itHit = fOutputVec.begin(); itHit != fOutputVec.end(); ++itHit) { fMonitor->FillDigisTimeInRun(itHit->GetTime()); fMonitor->FillDigisToT(itHit->GetToT()); + fMonitor->FillDigisToTDiRICH(itHit->GetAddress(), itHit->GetToT()); } fMonitor->FillVectorSize(ts->index(), fOutputVec.size()); } diff --git a/reco/detectors/rich/unpack/CbmRichUnpackMonitor.cxx b/reco/detectors/rich/unpack/CbmRichUnpackMonitor.cxx index e0d07a42e1..bb7db17fc3 100644 --- a/reco/detectors/rich/unpack/CbmRichUnpackMonitor.cxx +++ b/reco/detectors/rich/unpack/CbmRichUnpackMonitor.cxx @@ -48,10 +48,17 @@ Bool_t CbmRichUnpackMonitor::CreateHistograms(CbmMcbm2018RichPar* pUnpackPar) fhDigisTimeInRun->SetCanExtend(TH1::kAllAxes); AddHistoToVector(fhDigisTimeInRun, ""); - fhDigisToT = new TH1F("hDigisToT", "fhDigisToT; ToT [ns]; Entries", 400, 0, 40.); - fhDigisTimeInRun->SetCanExtend(TH1::kAllAxes); + fhDigisToT = new TH1D("hDigisToT", "fhDigisToT; ToT [ns]; Entries", 400, 0, 40.); AddHistoToVector(fhDigisToT, ""); + for (Int_t i = 0; i < pUnpackPar->GetNaddresses(); ++i) { + auto DiRICH = pUnpackPar->GetAddress(i); + TH2* hist = new TH2D(Form("fhDigisToT_0x%04x", DiRICH), + Form("fhDigisToT_0x%04x; channel; ToT [ns]; Entries", DiRICH), 33, 0, 32, 450, 15, 30.); + fhDigisToTDiRICH.push_back(hist); + AddHistoToVector(fhDigisToTDiRICH.back(), ""); + } + fhVectorSize = new TH1I("fhVectorSize", "Size of the vector VS TS index; TS index; Size [bytes]", 10, 0, 10); fhVectorSize->SetCanExtend(TH1::kAllAxes); AddHistoToVector(fhVectorSize, ""); @@ -87,6 +94,14 @@ void CbmRichUnpackMonitor::FillPerTimesliceCountersHistos(double_t dTsStartTimeS // double_t dRatio = 0; } +void CbmRichUnpackMonitor::FillDigisToTDiRICH(Int_t Address, Double_t ToT) +{ + // Get Index from Address; + Int_t Fpga = (Address >> 16) & 0xFFFF; + Int_t channel = Address & 0xFFFF; + + fhDigisToTDiRICH.at(pUnpackParameters->GetAddressIdx(Fpga))->Fill(channel, ToT); +} // ------------------------------------------------------------------------- void CbmRichUnpackMonitor::PrintDebugInfo(const uint64_t MsStartTime, const size_t NrProcessedTs, @@ -97,6 +112,7 @@ void CbmRichUnpackMonitor::PrintDebugInfo(const uint64_t MsStartTime, const size // ---- Init ---- Bool_t CbmRichUnpackMonitor::Init(CbmMcbm2018RichPar* parset) { + pUnpackParameters = parset; /// Trigger histo creation on all associated monitors CreateHistograms(parset); if (fDebugMode) CreateDebugHistograms(parset); diff --git a/reco/detectors/rich/unpack/CbmRichUnpackMonitor.h b/reco/detectors/rich/unpack/CbmRichUnpackMonitor.h index eeed3467c3..e587695c8e 100644 --- a/reco/detectors/rich/unpack/CbmRichUnpackMonitor.h +++ b/reco/detectors/rich/unpack/CbmRichUnpackMonitor.h @@ -71,6 +71,7 @@ public: void FillDigisTimeInRun(Double_t Time) { fhDigisTimeInRun->Fill(Time * 1e-9); } void FillDigisToT(Double_t ToT) { fhDigisToT->Fill(ToT); } + void FillDigisToTDiRICH(Int_t Address, Double_t ToT); void FillPerTimesliceCountersHistos(double_t dTsStartTime); @@ -92,6 +93,10 @@ private: TH1* fhVectorSize = nullptr; TH1* fhVectorCapacity = nullptr; + std::vector<TH2*> fhDigisToTDiRICH; + + CbmMcbm2018RichPar* pUnpackParameters = nullptr; + /** @brief Flag if debug mode is active or not */ bool fDebugMode = false; -- GitLab