From 9c473694a52eb566312493e578198cf0fabaf1b9 Mon Sep 17 00:00:00 2001 From: Adrian Weber <adrian.a.weber@physik.uni-giessen.de> Date: Mon, 14 Feb 2022 11:39:03 +0100 Subject: [PATCH] add ToT offset correction setter to Rich unpacker. --- macro/run/run_unpack_tsa.C | 3 ++- reco/detectors/rich/unpack/CbmRichUnpackAlgoBase.h | 3 +++ reco/detectors/rich/unpack/CbmRichUnpackConfig.cxx | 1 + reco/detectors/rich/unpack/CbmRichUnpackConfig.h | 5 +++++ 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/macro/run/run_unpack_tsa.C b/macro/run/run_unpack_tsa.C index 9cabe33e61..4411051373 100644 --- a/macro/run/run_unpack_tsa.C +++ b/macro/run/run_unpack_tsa.C @@ -114,12 +114,13 @@ void run_unpack_tsa(std::vector<std::string> infile = {"test.tsa"}, UInt_t runid richconfig->SetMonitor(GetRichMonitor(outfilename, true)); } + richconfig->DoTotOffsetCorrection(); // correct ToT offset richconfig->SetDebugState(); richconfig->SetDoWriteOutput(); std::string parfilesbasepathRich = Form("%s/macro/beamtime/mcbm2021/", srcDir.Data()); richconfig->SetParFilesBasePath(parfilesbasepathRich); richconfig->SetSystemTimeOffset(256000 - 1200); // [ns] 1 MS and additional correction - if (runid > 1904) richconfig->SetSystemTimeOffset(-1200); + if (runid > 1904) richconfig->SetSystemTimeOffset(-1200); if (runid == 1588) richconfig->MaskDiRICH(0x7150); } // ------------- diff --git a/reco/detectors/rich/unpack/CbmRichUnpackAlgoBase.h b/reco/detectors/rich/unpack/CbmRichUnpackAlgoBase.h index a07b0b54c7..403d063872 100644 --- a/reco/detectors/rich/unpack/CbmRichUnpackAlgoBase.h +++ b/reco/detectors/rich/unpack/CbmRichUnpackAlgoBase.h @@ -228,6 +228,9 @@ public: /** @brief Set Addresses of DiRICH boards to be masked @param maskedDiRICHes vector of Addresses */ void SetMaskedDiRICHes(std::vector<Int_t>* maskedDiRICHes) { fMaskedDiRICHes = maskedDiRICHes; } + /** @brief (De-) Activate Tot offset correction of digis @param activate bool to activate the Tot offset correction */ + void DoTotOffsetCorrection(Bool_t activate = true) { fbDoToTCorr = activate; } + protected: double calculateTime(uint32_t epoch, uint32_t coarse, uint32_t fine); diff --git a/reco/detectors/rich/unpack/CbmRichUnpackConfig.cxx b/reco/detectors/rich/unpack/CbmRichUnpackConfig.cxx index 3137f57c65..035ece320c 100644 --- a/reco/detectors/rich/unpack/CbmRichUnpackConfig.cxx +++ b/reco/detectors/rich/unpack/CbmRichUnpackConfig.cxx @@ -27,6 +27,7 @@ void CbmRichUnpackConfig::InitAlgo() { if (fDoLog) LOG(info) << fName << "::Init - SetMaskedDiRICHes"; fAlgo->SetMaskedDiRICHes(&fMaskedDiRICHes); + fAlgo->DoTotOffsetCorrection(fbDoToTCorr); if (fMonitor) { fAlgo->SetMonitor(fMonitor); } diff --git a/reco/detectors/rich/unpack/CbmRichUnpackConfig.h b/reco/detectors/rich/unpack/CbmRichUnpackConfig.h index 369a50ffae..b62ff89b80 100644 --- a/reco/detectors/rich/unpack/CbmRichUnpackConfig.h +++ b/reco/detectors/rich/unpack/CbmRichUnpackConfig.h @@ -83,6 +83,9 @@ public: /** @brief Add a monitor to the unpacker. @param value CbmRichUnpackMonitor */ void SetMonitor(std::shared_ptr<CbmRichUnpackMonitor> value) { fMonitor = value; } + + /** @brief (De-) Activate Tot offset correction of digis @param activate bool to activate the Tot offset correction */ + void DoTotOffsetCorrection(Bool_t activate = true) { fbDoToTCorr = activate; } protected: /** @@ -99,6 +102,8 @@ protected: /** @brief Selector of Unpacker Version. */ CbmRichUnpackerVersion fUnpackerVersion = CbmRichUnpackerVersion::v02; + + Bool_t fbDoToTCorr = true; // kTRUE activates ToT correction from Parameterfile private: ClassDef(CbmRichUnpackConfig, 3) -- GitLab