diff --git a/kalman/MpdKalmanHit.cxx b/kalman/MpdKalmanHit.cxx
index 210829422d7c89f2fa18ca7e4e22d0d0a856b9cf..e2a2a2e658403de14326aea3355fe0af02a1f444 100644
--- a/kalman/MpdKalmanHit.cxx
+++ b/kalman/MpdKalmanHit.cxx
@@ -16,7 +16,8 @@ MpdKalmanHit::MpdKalmanHit()
     fHitType(kFixedP),
     fNofDim(2),
     fSignal(0.),
-    fDist(0.)
+    fDist(0.),
+    fEdge(99.)
 {
   /// Default constructor
   
@@ -26,7 +27,7 @@ MpdKalmanHit::MpdKalmanHit()
 
 //__________________________________________________________________________
 MpdKalmanHit::MpdKalmanHit(Int_t detID, Int_t nDim, HitType hitType, Double_t *meas, Double_t *err,
-			   Double_t *cosSin, Double_t signal, Double_t dist, Int_t index)
+			   Double_t *cosSin, Double_t signal, Double_t dist, Int_t index, Double_t edge)
   : TObject(),
     fDetectorID(detID),
     fFlag(1),
@@ -35,7 +36,8 @@ MpdKalmanHit::MpdKalmanHit(Int_t detID, Int_t nDim, HitType hitType, Double_t *m
     fHitType(hitType),
     fNofDim(nDim),
     fSignal(signal),
-    fDist(dist)
+    fDist(dist),
+    fEdge(edge)
 {
   /// Constructor
 
@@ -57,7 +59,8 @@ MpdKalmanHit::MpdKalmanHit (const MpdKalmanHit& hit)
     fHitType(hit.fHitType),
     fNofDim(hit.fNofDim),
     fSignal(hit.fSignal),
-    fDist(hit.fDist)
+    fDist(hit.fDist),
+    fEdge(hit.fEdge)
 {
   ///copy constructor
 
diff --git a/kalman/MpdKalmanHit.h b/kalman/MpdKalmanHit.h
index 16733420ec4d6218bd674933bca02cdd9d8564be..32905bf39258d4e84ff96241fc53af5e2207e007 100644
--- a/kalman/MpdKalmanHit.h
+++ b/kalman/MpdKalmanHit.h
@@ -20,7 +20,7 @@ class MpdKalmanHit : public TObject
  public:
   
   MpdKalmanHit(); ///< Default ctor
-  MpdKalmanHit(Int_t detID, Int_t nDim, HitType hitType, Double_t *meas, Double_t *err, Double_t *cosSin, Double_t signal, Double_t dist, Int_t index); ///< Ctor
+  MpdKalmanHit(Int_t detID, Int_t nDim, HitType hitType, Double_t *meas, Double_t *err, Double_t *cosSin, Double_t signal, Double_t dist, Int_t index, Double_t edge = 99.); ///< Ctor
   MpdKalmanHit (const MpdKalmanHit& hit); ///< copy constructor
   virtual ~MpdKalmanHit(); ///< Destructor
   Int_t GetDetectorID() const { return fDetectorID; } ///< get detector ID
@@ -39,6 +39,7 @@ class MpdKalmanHit : public TObject
   Double_t GetSignal() const { return fSignal; } ///< Signal value
   Double_t GetDist() const { return fDist; } ///< Distance to interaction point
   Double_t GetPos() const; ///< Distance to interaction point
+  Double_t GetEdge() const { return fEdge; } ///< Distance to sector boundary
   //Double_t GetXY(Int_t indx) const { return fXY[indx]; } ///< get wire X or Y
 
   void SetDetectorID(Int_t detID) { fDetectorID = detID; } ///< set detector ID
@@ -54,6 +55,7 @@ class MpdKalmanHit : public TObject
   void SetDist(Double_t dist) { fDist = dist; } ///< set distance
   void SetPos(Double_t pos) { fDist = pos; } ///< set distance
   void SetIndex(Int_t indx); ///< Add index of detector hit
+  void SetEdge(Double_t edge) { fEdge = edge; } ///< set distance to sector boundary
 
   Bool_t IsSortable() const { return kTRUE; }
   Int_t Compare(const TObject* hit) const; ///< sort in descending order in detector ID
@@ -74,8 +76,9 @@ class MpdKalmanHit : public TObject
   Double32_t fCosSin[2]; ///< rotation factors (for stereo measurements)
   Double32_t fSignal; ///< signal
   Double32_t fDist; ///< distance to interaction point
+  Double32_t fEdge; ///< distance to sector boundary
   //Double_t fXY[2]; ///< X and Y of some point on the wire (for stereo measurements)
 
-  ClassDef(MpdKalmanHit,3);
+  ClassDef(MpdKalmanHit,4);
 };
 #endif
diff --git a/lhetrack/MpdTpcKalmanFilter.cxx b/lhetrack/MpdTpcKalmanFilter.cxx
index ab065ded738436453ebc10db78d72920ac84b926..525c9a7d3984009b989d3c20750f1dc4fa2a47d5 100644
--- a/lhetrack/MpdTpcKalmanFilter.cxx
+++ b/lhetrack/MpdTpcKalmanFilter.cxx
@@ -1039,8 +1039,12 @@ void MpdTpcKalmanFilter::MakeKalmanHitsModul()
     //TpcPadID padIDobj = TpcPadID::numberToPadID(padID);
     //padID = padIDobj.sector();
     padID = fSecGeo->Sector(padID);
+    Double_t xsec = (hit->GetLocalY() + fSecGeo->GetMinY()) * TMath::Tan(fSecGeo->Dphi()/2);
+    Double_t xloc = hit->GetLocalX(); Double_t edge = 0.0; // distance to sector boundary
+    if (xloc < 0) edge = xloc + xsec;
+    else edge = xloc - xsec;
     MpdKalmanHit *hitK = new ((*fKHits)[nKh++]) 
-      MpdKalmanHit(lay*1000000+padID, 2, MpdKalmanHit::kFixedP, meas, err, cossin, hit->GetEnergyLoss()/hit->GetStep(), hit->GetLocalY(), j);
+      MpdKalmanHit(lay*1000000+padID, 2, MpdKalmanHit::kFixedP, meas, err, cossin, hit->GetEnergyLoss()/hit->GetStep(), hit->GetLocalY(), j, edge);
     hitK->SetLength(hit->GetLength());
     //hitK->SetDedx (hit->GetEdep()/hit->GetStep());
     //MpdKalmanFilter::Instance()->GetGeo()->SetGlobalPos(hitK,TVector3(hit->GetX(),hit->GetY(),hit->GetZ()));
diff --git a/lhetrack/MpdTpcKalmanTrack.cxx b/lhetrack/MpdTpcKalmanTrack.cxx
index 11bd9c03ebf83d4ee49815ef160c1bae3bd24afa..8341da8b124df09fa4f9a99b5160ade179f0f32e 100644
--- a/lhetrack/MpdTpcKalmanTrack.cxx
+++ b/lhetrack/MpdTpcKalmanTrack.cxx
@@ -239,5 +239,22 @@ Int_t MpdTpcKalmanTrack::Compare(const TObject* track) const
   else if (ptthis > pt) return -1;
   return 0;
 }
+//__________________________________________________________________________
+Bool_t MpdTpcKalmanTrack::GetRecoQuality(Double_t dist, Double_t percentage)
+{
+  /// returns kTRUE if number of hits closer to boundaries than dist divided by nHits is larger than percentage
+
+  MpdKalmanHit *hit = NULL;
+  Int_t nCloseHits = 0;
+  Int_t nTrHits = fTrHits->GetEntries();
+  if (nTrHits == 0) {cout << "NO KALMAN HITS ARE FOUND" << endl; return kTRUE;}
+  for (Int_t itr = 0; itr < nTrHits; itr++)
+    {
+      hit = (MpdKalmanHit*) fTrHits->UncheckedAt(itr);
+      if (TMath::Abs(hit->GetEdge()) < dist) nCloseHits++;
+    }
+  if ((Double_t)(nCloseHits/(Double_t)nTrHits) > percentage) return kTRUE;
+  else return kFALSE;
+}
 
 ClassImp(MpdTpcKalmanTrack)
diff --git a/lhetrack/MpdTpcKalmanTrack.h b/lhetrack/MpdTpcKalmanTrack.h
index 1dff2043311ea81e2d613e8573d3fcc2e0ae443b..9c109481f5b5d09bfb8cb4b9efbad719d5fab8a9 100644
--- a/lhetrack/MpdTpcKalmanTrack.h
+++ b/lhetrack/MpdTpcKalmanTrack.h
@@ -33,6 +33,7 @@ class MpdTpcKalmanTrack : public MpdKalmanTrack
   Bool_t IsSortable() const { return kTRUE; }
   Int_t Compare(const TObject* track) const; ///< sort in descending order in Pt
   void Reset(); ///< reset track (similar to destructor)
+  Bool_t GetRecoQuality(Double_t dist = 1.5, Double_t percentage = 0.5); ///< returns kTRUE if number of hits closer to boundaries than dist divided by nHits is larger than percentage
 
  private: