From 22fd2674e12b69e53121f9f3e8869409ffbed569 Mon Sep 17 00:00:00 2001 From: Alexandru Bercuci <abercuci@niham.nipne.ro> Date: Wed, 2 Nov 2022 13:07:23 +0200 Subject: [PATCH] fix pad addressing in Trd2D for measured data. --- core/detectors/trd/CbmTrdParAsic.h | 4 ---- core/detectors/trd/CbmTrdParFasp.h | 6 +++--- reco/detectors/trd/unpack/CbmTrdUnpackFaspAlgo.cxx | 8 +++----- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/core/detectors/trd/CbmTrdParAsic.h b/core/detectors/trd/CbmTrdParAsic.h index 8f66342b8f..d8395bb14f 100644 --- a/core/detectors/trd/CbmTrdParAsic.h +++ b/core/detectors/trd/CbmTrdParAsic.h @@ -44,10 +44,6 @@ public: virtual size_t GetComponentId() const { return fComponentId; } virtual Int_t GetNchannels() const = 0; virtual Int_t GetFebGrouping() const { return fFebGrouping; } - virtual Int_t GetChannelAddress(Int_t ich) const - { - return ((ich < 0 || ich >= GetNchannels()) ? 0 : fChannelAddresses[ich]); - } virtual std::vector<Int_t> GetChannelAddresses() const { return fChannelAddresses; } virtual void LoadParams(FairParamList*) { ; } virtual void Print(Option_t* opt = "") const; diff --git a/core/detectors/trd/CbmTrdParFasp.h b/core/detectors/trd/CbmTrdParFasp.h index b97bb87057..9e023c0749 100644 --- a/core/detectors/trd/CbmTrdParFasp.h +++ b/core/detectors/trd/CbmTrdParFasp.h @@ -79,11 +79,11 @@ public: const CbmTrdParFaspChannel* GetChannel(Int_t pad_address, UChar_t pair) const; const CbmTrdParFaspChannel* GetChannel(Int_t ch_address) const; virtual Int_t GetNchannels() const { return NFASPCH; }; - - Int_t GetPadAddress(Int_t ich) const + virtual Int_t GetChannelAddress(Int_t ich) const { - return ((ich < 0 || ich >= GetNchannels()) ? 0 : 0.5 * fChannelAddresses[ich]); + return ((ich < 0 || ich >= GetNchannels()) ? 0 : fChannelAddresses[ich]); } + Int_t GetPadAddress(Int_t ich) const { return 0.5 * GetChannelAddress(ich); } Double_t GetSizeX() const { return fgSizeX; } Double_t GetSizeY() const { return fgSizeY; } Double_t GetSizeZ() const { return fgSizeZ; } diff --git a/reco/detectors/trd/unpack/CbmTrdUnpackFaspAlgo.cxx b/reco/detectors/trd/unpack/CbmTrdUnpackFaspAlgo.cxx index 56afd94e85..126f5ad995 100644 --- a/reco/detectors/trd/unpack/CbmTrdUnpackFaspAlgo.cxx +++ b/reco/detectors/trd/unpack/CbmTrdUnpackFaspAlgo.cxx @@ -59,13 +59,11 @@ Bool_t CbmTrdUnpackFaspAlgo::initParSet(FairParGenericSet* parset) if (strcmp(parset->ClassName(), "CbmTrdParSetAsic") == 0) { CbmTrdParSetAsic* setPar = static_cast<CbmTrdParSetAsic*>(parset); for (auto did : fModuleId) { - printf("AB :: check did %d\n", did); const CbmTrdParSetAsic* setDet = static_cast<const CbmTrdParSetAsic*>(setPar->GetModuleSet(did)); if (!setDet) continue; if (setDet->GetAsicType() != Int_t(CbmTrdDigi::eCbmTrdAsicType::kFASP)) continue; if (fMonitor) fMonitor->addParam(did, setDet); nModules++; - printf("AB :: register ASIC params for module %d\n", did); std::vector<Int_t> a; setDet->GetAsicAddresses(&a); for (auto add : a) { @@ -161,7 +159,7 @@ void CbmTrdUnpackFaspAlgo::PrintAsicMapping() for (auto imod : (*fFaspMap)) { printf("Mod [%6d] :", imod.first); for (int ifasp(0); ifasp < NFASPMOD; ifasp++) { - if (ifasp % 30 == 0) printf("\n"); + if (ifasp % 9 == 0) printf("\n"); int jfasp = imod.second[ifasp]; printf("%3d ", (jfasp == 0xff ? -1 : jfasp)); } @@ -248,13 +246,13 @@ bool CbmTrdUnpackFaspAlgo::pushDigis(std::vector<CbmTrdUnpackFaspAlgo::CbmTrdFas } // TODO temporary add DAQ time calibration for FASPRO. // Should be absorbed in the ASIC parameter definition - if (digiPar->GetPadRow(faspPar->GetChannelAddress(imess.ch)) % 2) tdaqOffset = 3; + if (digiPar->GetPadRow(faspPar->GetPadAddress(imess.ch)) % 2 == 0) tdaqOffset = 3; if (VERBOSE) faspPar->Print(); } if (VERBOSE) mess_prt(&imess); - pad = faspPar->GetChannelAddress(imess.ch); + pad = faspPar->GetPadAddress(imess.ch); chCalib = faspPar->GetChannel(imess.ch); ch = 2 * pad + chCalib->HasPairingR(); lTime = fTime + tdaqOffset + imess.tlab; -- GitLab