diff --git a/core/data/trd/CbmTrdDigi.cxx b/core/data/trd/CbmTrdDigi.cxx
index 736797eb11e5c23577e8a90b0347a20dcc0d83cf..4b8b11863f08052e9cbeef64d0dbe2c1a1b2b884 100644
--- a/core/data/trd/CbmTrdDigi.cxx
+++ b/core/data/trd/CbmTrdDigi.cxx
@@ -149,12 +149,12 @@ int32_t CbmTrdDigi::GetAddressModule() const
 //_________________________________________________________________________________
 double CbmTrdDigi::GetCharge() const
 {
-  if (GetType() != eCbmTrdAsicType::kSPADIC) {
-    LOG(warn) << "CbmTrdDigi::GetCharge() : Use double GetCharge(double "
-                 "&tilt) instead.";
-    return 0;
+  if (GetType() == eCbmTrdAsicType::kSPADIC) {
+    return fCharge / fgPrecission[static_cast<size_t>(eCbmTrdAsicType::kSPADIC)];
+  }
+  else {
+    return (fCharge & 0xfff) / fgPrecission[static_cast<size_t>(eCbmTrdAsicType::kFASP)];
   }
-  return fCharge / fgPrecission[static_cast<size_t>(eCbmTrdAsicType::kSPADIC)];
 }
 
 //_________________________________________________________________________________
diff --git a/core/data/trd/CbmTrdDigi.h b/core/data/trd/CbmTrdDigi.h
index 2dee01c61e22b027e552df37b7b766f49fe06473..ebf60e2fe7b43cd3a919d9ce1cad38d7b41c8f51 100644
--- a/core/data/trd/CbmTrdDigi.h
+++ b/core/data/trd/CbmTrdDigi.h
@@ -118,7 +118,8 @@ public:
    * \return index of module in the experimental set-up. Should be dropped if data get organized module-wise
    */
   int32_t GetAddressModule() const;
-  /** \brief Charge getter for SPADIC*/
+  /** \brief Common purpose charge getter
+   * \return normal charge for SPADIC and rect paired charge for FASP */
   double GetCharge() const;
   /** \brief Charge getter for FASP
    * \param[out] tilt on returns contain the charge measured on tilted pads
diff --git a/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.cxx b/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.cxx
index 1f564f179014e42ea0ebab4581b060f8d1120eaa..ee6bacc49ce111c8f071586c7582c6b30a3dc91d 100644
--- a/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.cxx
+++ b/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.cxx
@@ -90,15 +90,6 @@ void CbmMcbmCheckTimingAlgo::CheckDataPresence(CheckTimingDetector detToCheck)
                     "Stopping there!";
     }  // if ( ! fpT0DigiVec )
   }    // if( ECbmModuleId::kT0 == detToCheck.detId )
-  /// Handle special case for TRD-2D as not yet supported in DigiManager
-  else if (ECbmModuleId::kTrd2d == detToCheck.detId) {
-    // Get a pointer to the previous already existing data level
-    fpTrd2dDigiVec = ioman->InitObjectAs<std::vector<CbmTrdDigi> const*>("TrdFaspDigi");
-    if (!fpTrd2dDigiVec) {
-      LOG(fatal) << "No storage with TRD-2D digis found while it should be used. "
-                    "Stopping there!";
-    }  // if ( ! fpTrd2dDigiVec )
-  }    // if( ECbmModuleId::kTrd2d == detToCheck.detId )
   else if (!fDigiMan->IsPresent(detToCheck.detId)) {
     LOG(fatal) << "No " << detToCheck.sName << " digis found while it should be used. Stopping there!";
   }  // else if ( ! fDigiMan->IsPresent( detToCheck.detId ) ) of if( ECbmModuleId::kT0 == detToCheck.detId )
@@ -253,10 +244,6 @@ void CbmMcbmCheckTimingAlgo::CheckInterSystemOffset()
       uNbRefDigis = fpT0DigiVec->size();
       break;
     }  // case ECbmModuleId::kT0
-    case ECbmModuleId::kTrd2d: {
-      uNbRefDigis = fpTrd2dDigiVec->size();
-      break;
-    }  // case ECbmModuleId::kTrd2d
     default: {
       uNbRefDigis = fDigiMan->GetNofDigis(fRefDet.detId);
       break;
@@ -277,12 +264,7 @@ void CbmMcbmCheckTimingAlgo::CheckInterSystemOffset()
     if (ECbmModuleId::kT0 == fRefDet.detId) {
       dRefTime   = fpT0DigiVec->at(uDigi).GetTime();
       dRefCharge = fpT0DigiVec->at(uDigi).GetCharge();
-    }  // if( ECbmModuleId::kT0 == fRefDet.detId )
-    else if (ECbmModuleId::kTrd2d == fRefDet.detId) {
-      dRefTime = fpTrd2dDigiVec->at(uDigi).GetTime();
-      //dRefCharge = fpTrd2dDigiVec->at(uDigi).GetCharge();
-      dRefCharge = 1;
-    }  // else if( ECbmModuleId::kTrd2d == fRefDet.detId )
+    }
     else {
       dRefTime   = fDigiMan->Get<DigiRef>(uDigi)->GetTime();
       dRefCharge = fDigiMan->Get<DigiRef>(uDigi)->GetCharge();
@@ -371,10 +353,6 @@ void CbmMcbmCheckTimingAlgo::FillTimeOffsetHistos(const Double_t dRefTime, const
       uNbDigis = fpT0DigiVec->size();
       break;
     }  // case ECbmModuleId::kT0
-    case ECbmModuleId::kTrd2d: {
-      uNbDigis = fpTrd2dDigiVec->size();
-      break;
-    }  // case ECbmModuleId::kTrd2d
     default: {
       uNbDigis = fDigiMan->GetNofDigis(fvDets[uDetIdx].detId);
       break;
@@ -391,11 +369,6 @@ void CbmMcbmCheckTimingAlgo::FillTimeOffsetHistos(const Double_t dRefTime, const
       dTime   = fpT0DigiVec->at(uDigiIdx).GetTime();
       dCharge = fpT0DigiVec->at(uDigiIdx).GetCharge();
     }  // if( ECbmModuleId::kT0 == fRefDet.detId )
-    else if (ECbmModuleId::kTrd2d == fvDets[uDetIdx].detId) {
-      dTime = fpTrd2dDigiVec->at(uDigiIdx).GetTime();
-      // dCharge = fpTrd2dDigiVec->at(uDigiIdx).GetCharge();
-      dCharge = 1;
-    }  // else if (ECbmModuleId::kTrd2d == fvDets[uDetIdx].detId)
     else {
       dTime   = fDigiMan->Get<Digi>(uDigiIdx)->GetTime();
       dCharge = fDigiMan->Get<Digi>(uDigiIdx)->GetCharge();
@@ -516,18 +489,6 @@ void CbmMcbmCheckTimingAlgo::WriteHistos()
         }
         break;
       }
-      case ECbmModuleId::kTrd2d: {
-        if (DetAverageSingle > 0) {
-          TF1* gs_trd2d = new TF1("gs_trd2d", "gaus(0)+pol0(3)", DetPeakPosSingle - 2 * fTrd2dPeakWidthNs,
-                                  DetPeakPosSingle + 2 * fTrd2dPeakWidthNs);
-          gs_trd2d->SetParameters(0.7 * DetAverageSingle, DetPeakPosSingle, fTrd2dPeakWidthNs, DetAverageSingle);
-          fvhDetToRefDiff[uDetIdx]->Fit("gs_trd2d", "R");
-          TF1* fitresult_trd2d = fvhDetToRefDiff[uDetIdx]->GetFunction("gs_trd2d");
-          LOG(debug) << fvDets[uDetIdx].sName << " parameters from Gauss fit = " << fitresult_trd2d->GetParameter(0)
-                     << ",  " << fitresult_trd2d->GetParameter(1) << ",  " << fitresult_trd2d->GetParameter(2);
-        }
-        break;
-      }
       case ECbmModuleId::kT0: {
         if (DetAverageSingle > 0) {
           TF1* gs_tof = new TF1("gs_tof", "gaus(0)+pol0(3)", DetPeakPosSingle - 2 * fTofPeakWidthNs,
diff --git a/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.h b/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.h
index 22271c385ddf8ecad8cc895aaa9048bfd3d377d9..0ca30a3c6df6d68f2fab7d2b4a3174274eb6adff 100644
--- a/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.h
+++ b/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.h
@@ -86,7 +86,6 @@ public:
   void RemoveCheckDetector(ECbmModuleId detIn);
 
   void SetTrdPeakWidthNs(Double_t val = 120.) { fTrdPeakWidthNs = val; }
-  void SetTrd2dPeakWidthNs(Double_t val = 120.) { fTrd2dPeakWidthNs = val; }
   void SetStsPeakWidthNs(Double_t val = 30.) { fStsPeakWidthNs = val; }
   void SetMuchPeakWidthNs(Double_t val = 100.) { fMuchPeakWidthNs = val; }
   void SetTofPeakWidthNs(Double_t val = 20.) { fTofPeakWidthNs = val; }
@@ -108,8 +107,6 @@ private:
 
   /** T0 is not included in CbmDigiManager, so add it explicitly here **/
   const std::vector<CbmTofDigi>* fpT0DigiVec = nullptr;  //!
-  /** TRD-2D is not included in CbmDigiManager, so add it explicitly here **/
-  const std::vector<CbmTrdDigi>* fpTrd2dDigiVec = nullptr;  //!
 
   /** @brief Pointer to the Timeslice start time used to write it to the output tree
       @remark since we hand this to the FairRootManager it also wants to delete it and we do not have to take care of deletion
@@ -138,7 +135,6 @@ private:
   Double_t DetPeakPosSingle;
   Double_t DetAverageSingle;
   Double_t fTrdPeakWidthNs   = 120.;
-  Double_t fTrd2dPeakWidthNs = 120.;
   Double_t fStsPeakWidthNs   = 30.;
   Double_t fMuchPeakWidthNs  = 100.;
   Double_t fTofPeakWidthNs   = 20.;
diff --git a/macro/beamtime/mcbm2021/check_timing_any.C b/macro/beamtime/mcbm2021/check_timing_any.C
index 7c9cab21f1756d520213b4a2d0a1fd754800044d..8bf151df0f9737f18ab7b941b7698eced064941d 100644
--- a/macro/beamtime/mcbm2021/check_timing_any.C
+++ b/macro/beamtime/mcbm2021/check_timing_any.C
@@ -75,7 +75,7 @@ void check_timing_any(TString fileName, UInt_t uRunId = 0, Int_t nEvents = 0, TS
   */
 
   /// Add detectors not in default list
-  timeChecker->AddCheckDetector(ECbmModuleId::kTrd2d, "Trd2d", -3000, 3000, 160 * 3);
+  //timeChecker->AddCheckDetector(ECbmModuleId::kTrd2d, "Trd2d", -3000, 3000, 160 * 3);
 
   if (0 < uRunId) timeChecker->SetOutFilename(Form("%s/HistosTimeCheck_%03u.root", outDir.Data(), uRunId));
   fRun->AddTask(timeChecker);