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); }