From 4c1c2424309a404e73f6cda3524537dafe75e230 Mon Sep 17 00:00:00 2001 From: Alexandru Bercuci <abercuci@niham.nipne.ro> Date: Fri, 21 Jan 2022 09:42:27 +0200 Subject: [PATCH] nomenclature changes reflecting the possibility of having different chambers coupled with different FEEs --- core/data/trd/CbmTrdCluster.cxx | 22 +++++++++++----------- core/data/trd/CbmTrdCluster.h | 15 ++++++++------- core/data/trd/CbmTrdDigi.cxx | 2 +- core/data/trd/CbmTrdDigi.h | 2 +- 4 files changed, 21 insertions(+), 20 deletions(-) diff --git a/core/data/trd/CbmTrdCluster.cxx b/core/data/trd/CbmTrdCluster.cxx index 83d6c44cf9..fa24e48d8c 100644 --- a/core/data/trd/CbmTrdCluster.cxx +++ b/core/data/trd/CbmTrdCluster.cxx @@ -20,7 +20,7 @@ using std::string; using std::stringstream; using std::vector; //____________________________________________________________________ -CbmTrdCluster::CbmTrdCluster() : CbmCluster(), fNCols(0), fNRows(0xff), fStartCh(0xffff), fStartTime(0xffffffff) {} +CbmTrdCluster::CbmTrdCluster() : CbmCluster(), fNCols(0), fNRows(0x1f), fStartCh(0xffff), fStartTime(0xffffffff) {} //____________________________________________________________________ CbmTrdCluster::CbmTrdCluster(const CbmTrdCluster& ref) @@ -36,7 +36,7 @@ CbmTrdCluster::CbmTrdCluster(const CbmTrdCluster& ref) CbmTrdCluster::CbmTrdCluster(const std::vector<int32_t>& indices, int32_t address) : CbmCluster(indices, address) , fNCols(0) - , fNRows(0xff) + , fNRows(0x1f) , fStartCh(0xffff) , fStartTime(0xffffffff) { @@ -46,7 +46,7 @@ CbmTrdCluster::CbmTrdCluster(const std::vector<int32_t>& indices, int32_t addres CbmTrdCluster::CbmTrdCluster(int32_t address, int32_t idx, int32_t ch, int32_t row, int32_t time) : CbmCluster() , fNCols(0) - , fNRows(0xff) + , fNRows(0x1f) , fStartCh(0xffff) , fStartTime(0xffffffff) { @@ -104,7 +104,7 @@ void CbmTrdCluster::Clear(Option_t*) { CbmCluster::ClearDigis(); fNCols = 0; - fNRows = 0xff; + fNRows = 0x1f; fStartCh = 0xffff; fStartTime = 0xffffffff; } @@ -137,7 +137,7 @@ int32_t CbmTrdCluster::IsChannelInRange(int32_t ch) const } //____________________________________________________________________ -bool CbmTrdCluster::Merge(CbmTrdCluster* second) +bool CbmTrdCluster::Merge(CbmTrdCluster* second, bool typ) { if (GetRow() != second->GetRow()) return false; // time difference condition @@ -160,8 +160,8 @@ bool CbmTrdCluster::Merge(CbmTrdCluster* second) if (second->HasOpenStart()) SetProfileStart(); return true; } - // special care for FASP clusters which can be merged also on pairing neighboring - if (HasTrianglePads()) { + // special care for clusters which can be merged also on pairing neighboring on 2D read-out + if (typ) { if ((second->fStartCh + second->fNCols - 1 == fStartCh) && second->HasOpenStop() && HasOpenStart()) { // need to merge digi fStartCh = second->fStartCh; @@ -187,8 +187,8 @@ bool CbmTrdCluster::Merge(CbmTrdCluster* second) return true; } - // special care for FASP clusters which can be merged also on pairing neighboring - if (HasTrianglePads()) { + // special care for clusters which can be merged also on pairing neighboring on 2D read-out + if (typ) { if ((fStartCh + fNCols - 1 == second->fStartCh) && HasOpenStop() && second->HasOpenStart()) { // need to merge digi fNCols += second->fNCols - 1; fStartTime = std::min(fStartTime, second->fStartTime); @@ -206,8 +206,8 @@ string CbmTrdCluster::ToString() const { stringstream ss; ss << CbmCluster::ToString(); - ss << "CbmTrdCluster: mod=" << GetAddress() << " t0=" << fStartTime << " R=" << (int32_t) GetRow() << " " - << (HasTrianglePads() ? "T" : "R") << "Chs="; + ss << "CbmTrdCluster: mod=" << GetAddress() << " t0=" << fStartTime << " row=" << (int32_t) GetRow() << " " + << (HasFaspDigis() ? "Fasp " : "Spadic ") << "Chs="; ss << (HasOpenStart() ? "/" : "|"); for (int32_t i(0); i < fNCols; i++) ss << fStartCh + i << " "; diff --git a/core/data/trd/CbmTrdCluster.h b/core/data/trd/CbmTrdCluster.h index 812b81b70b..d7932433e6 100644 --- a/core/data/trd/CbmTrdCluster.h +++ b/core/data/trd/CbmTrdCluster.h @@ -26,9 +26,9 @@ */ class CbmTrdCluster : public CbmCluster { public: - enum CbmTrdClusterDef + enum eCbmTrdClusterDef { - kTriang = 5 ///< set type of pads on which the cluster is reconstructed + kFasp = 5 ///< set type of FEE digis contained , kProfileStart ///< only for triangular if no T in first col , @@ -71,7 +71,7 @@ public: uint16_t GetRow() const { return GetNRows(); } uint16_t GetStartCh() const { return fStartCh; } uint32_t GetStartTime() const { return fStartTime; } - bool HasTrianglePads() const { return TESTBIT(fNRows, kTriang); } + bool HasFaspDigis() const { return TESTBIT(fNRows, kFasp); } bool HasOpenStart() const { return TESTBIT(fNRows, kProfileStart); } bool HasOpenStop() const { return TESTBIT(fNRows, kProfileStop); } @@ -82,9 +82,10 @@ public: int32_t IsChannelInRange(int32_t ch) const; /** \brief Merge current cluster with info from second * \param[in] second cluster to be added + * \param[in] typ the type of pad-plane of the source chamber; true if Trd2d * \return success or fail */ - bool Merge(CbmTrdCluster* second); + bool Merge(CbmTrdCluster* second, bool typ = true); /** \brief Initialize basic parameters of the cluster * \param[in] address global module address * \param[in] row cluster row in the module @@ -98,7 +99,7 @@ public: fNRows &= (7 << 5); fNRows |= (nrows & 0x1f); } - void SetTrianglePads(bool set = true) { set ? SETBIT(fNRows, kTriang) : CLRBIT(fNRows, kTriang); } + void SetFaspDigis(bool set = true) { set ? SETBIT(fNRows, kFasp) : CLRBIT(fNRows, kFasp); } void SetProfileStart(bool set = true) { set ? SETBIT(fNRows, kProfileStart) : CLRBIT(fNRows, kProfileStart); } void SetProfileStop(bool set = true) { set ? SETBIT(fNRows, kProfileStop) : CLRBIT(fNRows, kProfileStop); } @@ -106,8 +107,8 @@ public: virtual std::string ToString() const; protected: - uint8_t fNCols; // number of columns with charge above threshold - uint8_t fNRows; // cluster row info plus extra. Use dedicated getters for the correct value + uint8_t fNCols; //! number of columns with charge above threshold + uint8_t fNRows; //! cluster row info plus extra meta data. Use dedicated getters for the correct value uint16_t fStartCh; //! channel address of first channel uint32_t fStartTime; //! start time of cluster in clk units wrt buffer start diff --git a/core/data/trd/CbmTrdDigi.cxx b/core/data/trd/CbmTrdDigi.cxx index 21f4269103..1119f54086 100644 --- a/core/data/trd/CbmTrdDigi.cxx +++ b/core/data/trd/CbmTrdDigi.cxx @@ -300,7 +300,7 @@ void CbmTrdDigi::SetTriggerType(const int32_t ttype) string CbmTrdDigi::ToString() const { stringstream ss; - ss << "CbmTrdDigi(" << (GetType() == eCbmTrdAsicType::kFASP ? "T)" : "R)") + ss << "CbmTrdDigi(" << (GetType() == eCbmTrdAsicType::kFASP ? "F)" : "S)") << " | moduleAddress=" << GetAddressModule() << " | layer=" << Layer() << " | moduleId=" << Module() << " | pad=" << GetAddressChannel() << " | time[ns]=" << std::fixed << std::setprecision(1) << GetTime(); if (GetType() == eCbmTrdAsicType::kFASP) { diff --git a/core/data/trd/CbmTrdDigi.h b/core/data/trd/CbmTrdDigi.h index 1b3bc9a0df..b23b440e38 100644 --- a/core/data/trd/CbmTrdDigi.h +++ b/core/data/trd/CbmTrdDigi.h @@ -34,7 +34,7 @@ public: kTrg2, kNTrg }; - enum CbmTrdDigiDef + enum eCbmTrdDigiDef { kFlag1 = 0 //< , -- GitLab