diff --git a/analysis/PWGHAD/hadron/CbmHadronAnalysis.cxx b/analysis/PWGHAD/hadron/CbmHadronAnalysis.cxx
index b0f5f48513a951dc5742bdd96d1a3a8a36775689..a2491996b6bdf210fc53967f8dc5abf92312c369 100644
--- a/analysis/PWGHAD/hadron/CbmHadronAnalysis.cxx
+++ b/analysis/PWGHAD/hadron/CbmHadronAnalysis.cxx
@@ -6289,80 +6289,6 @@ void CbmHadronAnalysis::ReconstructSecondaries() {
     }
   }
 
-  //2.a - confirm primary track hypothesis by TRD
-  if (nTrdHits > 0) {
-    for (Int_t i = 0; i < nTofHits; i++) {
-      Int_t j = iStsMin[i][1];  // index of STS hit in second plane
-      if (j < 0) continue;      // no STS assigned
-      CbmTofHit* pTofHit = (CbmTofHit*) fTofHits->At(i);
-      if (NULL == pTofHit) continue;
-      if (pTofHit->GetZ() == 0) continue;  // skip fake beam counter
-      CbmStsHit* pStsHit = (CbmStsHit*) fStsHits->At(j);
-      Double_t dDx       = pTofHit->GetX() - pStsHit->GetX();
-      Double_t dDy       = pTofHit->GetY() - pStsHit->GetY();
-      Double_t dDz       = pTofHit->GetZ() - pStsHit->GetZ();
-      LOG(DEBUG) << "Check for TRD hits between STS " << j << " and TOF " << i;
-
-      for (Int_t l = 0; l < nTrdHits; l++) {
-        CbmTrdHit* pTrdHit = (CbmTrdHit*) fTrdHits->At(l);
-        // calculate expected position in Trd layer
-        Double_t dXexp =
-          pStsHit->GetX() + dDx * (pTrdHit->GetZ() - pStsHit->GetZ()) / dDz;
-        Double_t dYexp =
-          pStsHit->GetY() + dDy * (pTrdHit->GetZ() - pStsHit->GetZ()) / dDz;
-        Double_t dDtrans =
-          TMath::Sqrt(TMath::Power(dXexp - pTrdHit->GetX(), 2)
-                      + TMath::Power(dYexp - pTrdHit->GetY(), 2));
-        UInt_t iTrdLayer = CbmTrdAddress::GetLayerId(pTrdHit->GetAddress());
-        LOG(DEBUG) << "Inspect TRD hit " << l << " in "
-                   << Form("Module 0x%08x, layer %d",
-                           pTrdHit->GetAddress(),
-                           CbmTrdAddress::GetLayerId(pTrdHit->GetAddress()))
-                   << " at z= " << pTrdHit->GetZ() << " dD  = " << dDtrans
-                   << " < " << fdDistTRD;
-        fhDTRDprim->Fill(dDtrans);
-        if (dDtrans < fdDistTRD
-            && dDtrans
-                 < dTrdDistMin
-                     [i]
-                     [iTrdLayer]) {  // check if acceptable and take best match
-          Int_t iMul = iTRD[i].size();
-          if (dTrdDistMin[i][iTrdLayer] < 1.E3) {  // modify previous entry
-            //find old entry in vector
-            Int_t ll = 0;
-            for (; ll < iMul; ll++)
-              if (CbmTrdAddress::GetLayerId(
-                    ((CbmTrdHit*) fTrdHits->At(iTRD[i][ll]))->GetAddress())
-                  == iTrdLayer)
-                break;
-            iTRD[i][ll] = l;
-          } else {  //add hit
-            dTrdDistMin[i][iTrdLayer] = dDtrans;
-            iTRD[i].resize(iMul + 1);
-            iTRD[i][iMul] = l;
-          }
-          LOG(DEBUG) << "assign TrdHit " << l << " to TofHit " << i
-                     << " in layer " << iTrdLayer << " with d = " << dDtrans
-                     << ", TrdMul" << iMul
-                     << ", dEdx = " << pTrdHit->GetELoss();
-        }
-      }
-    }
-    //2.b - monitor TRD dEdx
-    for (Int_t i = 0; i < nTofHits; i++) {
-      Int_t iMul = iTRD[i].size();
-      if (iMul > 0) {
-        Double_t ddEdx = 0.;
-        for (Int_t l = 0; l < iMul; l++) {
-          CbmTrdHit* pTrdHit = (CbmTrdHit*) fTrdHits->At(iTRD[i][l]);
-          ddEdx += pTrdHit->GetELoss();
-        }
-        ddEdx /= (Double_t) iMul;
-        fhdEdxMul->Fill((Double_t) iMul, ddEdx);
-      }
-    }
-  }
-
   //3. find secondary proton candidate
   for (Int_t i = 0; i < nTofHits; i++) {
     CbmTofHit* pTofHit = (CbmTofHit*) fTofHits->At(i);
@@ -6566,97 +6492,6 @@ void CbmHadronAnalysis::ReconstructSecondaries() {
           DX[i].SetXYZ(dDx, dDy, dDz);
           pion_cand++;
         }
-        //4.a - confirm secondary  track hypothesis by TRD
-        if (nTrdHits > 0) {
-          Double_t dDx = pTofHit->GetX() - pStsHit->GetX();
-          Double_t dDy = pTofHit->GetY() - pStsHit->GetY();
-          Double_t dDz = pTofHit->GetZ() - pStsHit->GetZ();
-          for (Int_t l = 0; l < nTrdHits; l++) {
-            CbmTrdHit* pTrdHit = (CbmTrdHit*) fTrdHits->At(l);
-            // calculate expected position in Trd layer
-            Double_t dXexp =
-              pStsHit->GetX() + dDx * (pTrdHit->GetZ() - pStsHit->GetZ()) / dDz;
-            Double_t dYexp =
-              pStsHit->GetY() + dDy * (pTrdHit->GetZ() - pStsHit->GetZ()) / dDz;
-            Double_t dDtrans =
-              TMath::Sqrt(TMath::Power(dXexp - pTrdHit->GetX(), 2)
-                          + TMath::Power(dYexp - pTrdHit->GetY(), 2));
-            UInt_t iTrdLayer = CbmTrdAddress::GetLayerId(pTrdHit->GetAddress());
-            fhDTRDsec->Fill(dDtrans);
-            LOG(DEBUG) << "Inspect sec. TRD hit " << l << " in "
-                       << Form("Module 0x%08x, layer %d",
-                               pTrdHit->GetAddress(),
-                               CbmTrdAddress::GetLayerId(pTrdHit->GetAddress()))
-                       << " at z= " << pTrdHit->GetZ() << " dD  = " << dDtrans
-                       << " < " << fdDistTRD;
-            if (
-              dDtrans < fdDistTRD
-              && dDtrans
-                   < dTrdDistMin
-                       [i]
-                       [iTrdLayer]) {  // check if acceptable and take best match
-              Int_t iMul = iTRD[i].size();
-              if (dTrdDistMin[i][iTrdLayer] < 1.E3) {  // modify previous entry
-                //find old entry in vector
-                Int_t ll = 0;
-                for (; ll < iMul; ll++)
-                  if (CbmTrdAddress::GetLayerId(
-                        ((CbmTrdHit*) fTrdHits->At(iTRD[i][ll]))->GetAddress())
-                      == iTrdLayer)
-                    break;
-                iTRD[i][ll] = l;
-              } else {  //add hit
-                dTrdDistMin[i][iTrdLayer] = dDtrans;
-                iTRD[i].resize(iMul + 1);
-                iTRD[i][iMul] = l;
-              }
-              LOG(DEBUG) << "assign TrdHit " << l << " to TofHit " << i
-                         << " in layer " << iTrdLayer << " with d = " << dDtrans
-                         << ", TrdMul" << iMul
-                         << ", dEdx = " << pTrdHit->GetELoss();
-            }
-          }
-          //4.b - monitor TRD dEdx
-          Int_t iMul = iTRD[i].size();
-          if (iMul > 0) {
-            Double_t ddEdx = 0.;
-            for (Int_t l = 0; l < iMul; l++) {
-              CbmTrdHit* pTrdHit = (CbmTrdHit*) fTrdHits->At(iTRD[i][l]);
-              ddEdx += pTrdHit->GetELoss();
-            }
-            ddEdx /= (Double_t) iMul;
-            fhdEdxMulsec->Fill((Double_t) iMul, ddEdx);
-          }
-        }  // (nTrdHits > 0) end
-        if ((Double_t) iTRD[i].size() >= fdTRDHmulMin) {
-          Double_t dDx = pStsHit->GetX() - pSts2Hit->GetX();
-          Double_t dDy = pStsHit->GetY() - pSts2Hit->GetY();
-          Double_t dDz = pStsHit->GetZ() - pSts2Hit->GetZ();
-          Double_t dDd = TMath::Sqrt(dDx * dDx + dDy * dDy + dDz * dDz);
-          Double_t vel =
-            pTofHit->GetR()
-            / pTofHit->GetTime();  // approximation, ignoring decay kinematics
-          Double_t bet = vel / clight;
-          if (bet > 0.9999) continue;  //bet=0.9999;
-          Double_t m = secMass[0];     // assume pion
-          Double_t pmag =
-            m * bet / TMath::Sqrt(1. - bet * bet);  // natural units
-          Double_t pz = pmag * dDz / dDd;
-          Double_t px = pmag * dDx / dDd;
-          Double_t py = pmag * dDy / dDd;
-          Double_t E  = TMath::Sqrt(pmag * pmag + m * m);
-          P[i].SetPxPyPzE(px, py, pz, E);
-          X[i].SetXYZT(pTofHit->GetX(),
-                       pTofHit->GetY(),
-                       pTofHit->GetZ(),
-                       pTofHit->GetTime());
-          LOG(DEBUG) << "Init pion LV at ind " << i << " with beta = " << bet
-                     << ", minv = " << P[i].M() << ", tof " << X[i].T()
-                     << ", TRDHmul " << iTRD[i].size();
-          X0[i].SetXYZ(pSts2Hit->GetX(), pSts2Hit->GetY(), pSts2Hit->GetZ());
-          DX[i].SetXYZ(dDx, dDy, dDz);
-          pion_cand++;
-        }
       }
     }  //if( dStsDistMin[i] > dDistPrimLim) {  // Sts hit not in the primary class
   }    //for (Int_t i=0; i<nTofHits; i++)