diff --git a/core/data/trd/CbmTrdCluster.cxx b/core/data/trd/CbmTrdCluster.cxx index 702c9152466bd5e3a1f77c7d400a8e7a9b325309..3def998b2bffff62b26c2a14f6114d4467144ae8 100644 --- a/core/data/trd/CbmTrdCluster.cxx +++ b/core/data/trd/CbmTrdCluster.cxx @@ -128,6 +128,25 @@ int32_t CbmTrdCluster::IsChannelInRange(int32_t ch) const return 0; } +//____________________________________________________________________ +uint16_t CbmTrdCluster::GetSize() const +{ + uint16_t size(0); + if (HasFaspDigis()) { + size = GetNCols() << 1; + if (HasOpenStart()) size--; + if (HasOpenStop()) size--; + if (size <= 0) { + LOG(warn) << GetName() << "::GetSize: Fasp cluster meta-info corrupt."; + std::cout << ToString(); + return 0; + } + } + else + size = GetNCols(); + return size; +} + //____________________________________________________________________ bool CbmTrdCluster::Merge(CbmTrdCluster* second, bool typ) { diff --git a/core/data/trd/CbmTrdCluster.h b/core/data/trd/CbmTrdCluster.h index a597001142295a8388ee6a07f23286290fc78e57..0ce0b3dc416a88a035fdd54125f3b18078f054aa 100644 --- a/core/data/trd/CbmTrdCluster.h +++ b/core/data/trd/CbmTrdCluster.h @@ -69,6 +69,7 @@ public: uint16_t GetNRows() const { return fNRows & 0x1f; } uint16_t GetEndCh() const { return fStartCh + fNCols - 1; } uint16_t GetRow() const { return GetNRows(); } + uint16_t GetSize() const; uint16_t GetStartCh() const { return fStartCh; } uint32_t GetStartTime() const { return fStartTime; } bool HasFaspDigis() const { return TESTBIT(fNRows, kFasp); }