diff --git a/macro/run/run_unpack_tsa.C b/macro/run/run_unpack_tsa.C index 9cabe33e6196fb6d076238f03234050a71042203..4411051373384d08fcd61fb7514b165880fa0457 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 a07b0b54c7c99ae0be671b20dfc61a75db0f75c7..403d06387219764bf6d398da4a2978d15d83c6cd 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 3137f57c654cc76a1e06e89d46cccd65ea958894..035ece320c29f0dc7fb3ec2aba78922920be7ef0 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 369a50ffaed6ebb52f0d053a5121d08f94091a90..b62ff89b806019a563993b53c9d22c08bda468bf 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)