diff --git a/analysis/PWGDIL/dielectron/papaframework/PairAnalysisVarManager.cxx b/analysis/PWGDIL/dielectron/papaframework/PairAnalysisVarManager.cxx
index 21c8b8cb8e60ee2b80beb54d331dd0beb0f9795a..9fddc6511afaaa0c2975d8bd0fe174b5963b0b90 100644
--- a/analysis/PWGDIL/dielectron/papaframework/PairAnalysisVarManager.cxx
+++ b/analysis/PWGDIL/dielectron/papaframework/PairAnalysisVarManager.cxx
@@ -125,6 +125,12 @@ ClassImp(PairAnalysisVarManager)
     // sts track information
     {"MVDhasEntr", "station^{MVD}_{first} entrance status", ""},
     {"MVDHits", "N_{hit}^{MVD}", ""},
+    {"MVDHitClosest", "", ""},
+    {"STSHitClosest", "", ""},
+    {"MVDHitClosestOpeningAngle", "", ""},
+    {"STSHitClosestOpeningAngle", "", ""},
+    {"MVDHitClosestMom", "MVDHitClosestMom", ""},
+    {"STSHitClosestMom", "STSHitClosestMom", ""},
     {"MVDFirstHitPosZ", "z_{first hit}^{MVD}", "(cm)"},
     {"MVDFirstExtX", "x_{first station}^{MVD}", "(cm)"},
     {"MVDFirstExtY", "y_{first station}^{MVD}", "(cm)"},
diff --git a/analysis/PWGDIL/dielectron/papaframework/PairAnalysisVarManager.h b/analysis/PWGDIL/dielectron/papaframework/PairAnalysisVarManager.h
index 257e0dab757946802172ffa1e23b5c05271d2631..afcdf420a1e994d93a0f2d425580f596d88767a8 100644
--- a/analysis/PWGDIL/dielectron/papaframework/PairAnalysisVarManager.h
+++ b/analysis/PWGDIL/dielectron/papaframework/PairAnalysisVarManager.h
@@ -159,6 +159,12 @@ public:
     // sts track information
     kMvdhasEntr,       // weather track enters first MVD station
     kMvdHits,          // number of MVD hits
+    kMvdHitClosest, 
+    kStsHitClosest, 
+    kMvdHitClosestOpeningAngle, 
+    kStsHitClosestOpeningAngle, 
+    kMvdHitClosestMom, 
+    kStsHitClosestMom,
     kMvdFirstHitPosZ,  // position of the first hit in the MVD (cm)
     kMvdFirstExtX,  // x-position of the extrapolated track at the first MVD station (cm)
     kMvdFirstExtY,  // y-position of the extrapolated track at the first MVD station (cm)
@@ -728,6 +734,120 @@ PairAnalysisVarManager::FillVarPairAnalysisTrack(const PairAnalysisTrack* track,
 
   values[kP] = track->P();
 
+  // Calculate first hit position for sts and mvd
+  Double_t minSts    = 9999.;
+  Int_t compIndex = 0;
+  Double_t xref = 0.;
+  Double_t yref = 0.;
+  Double_t zref = 0.;
+  TClonesArray* hits = fgEvent->GetHits(ECbmModuleId::kSts);
+  TObjArray* PaPaTracks = fgEvent->GetTracks();
+  CbmStsTrack* ststrack1 = (CbmStsTrack*) track->GetStsTrack();
+  if (hits /*&& Req(kStsFirstHitPosZ)*/) {
+    for (Int_t ihit = 0; ihit < ststrack1->GetNofStsHits(); ihit++) {
+      Int_t idx      = ststrack1->GetStsHitIndex(ihit);
+      if(idx > hits->GetEntriesFast()) continue;
+      CbmStsHit* hit = (CbmStsHit*) hits->At(idx);
+      if (hit && minSts > hit->GetZ()) {
+        minSts = hit->GetZ();
+  	xref = hit->GetX();
+  	yref = hit->GetY();
+  	zref = hit->GetZ();
+      }
+    }
+  }
+  Double_t minStsClosest = 9999.;
+  if (PaPaTracks && hits) {
+    for (Int_t iTracks = 0; iTracks < PaPaTracks->GetEntriesFast(); iTracks++) {
+      PairAnalysisTrack *ptrk = (PairAnalysisTrack*) PaPaTracks->At(iTracks);
+      if(!ptrk) continue;
+      CbmStsTrack* ststrack2 = (CbmStsTrack*) ptrk->GetStsTrack();
+      for (Int_t ihit = 0; ihit < ststrack2->GetNofStsHits(); ihit++) {
+  	Int_t idx      = ststrack2->GetStsHitIndex(ihit);
+  	if(idx > hits->GetEntriesFast() || idx < 0) continue;
+  	CbmStsHit* hit = (CbmStsHit*) hits->At(idx);
+  	Double_t xdiff = hit->GetX() - xref;
+  	Double_t ydiff = hit->GetY() - yref;
+  	Double_t zdiff = hit->GetZ() - zref;
+  	Double_t dist = TMath::Sqrt( xdiff * xdiff + ydiff * ydiff + zdiff * zdiff);
+  	if (hit && dist < minStsClosest && dist > 0.) {
+  	  minStsClosest = dist;
+  	  compIndex = iTracks;
+  	}
+      }
+    }
+    PairAnalysisTrack *ptrk = (PairAnalysisTrack*) PaPaTracks->At(compIndex);
+    PairAnalysisTrack* reftrack = new PairAnalysisTrack(*track);
+    if(ptrk && reftrack){
+      PairAnalysisPair* pair = new PairAnalysisPairLV();
+      if(pair){
+  	if(reftrack->PdgCode() < 1.e8 && ptrk->PdgCode() < 1.e8)  pair->SetTracks(reftrack, reftrack->PdgCode() , ptrk, ptrk->PdgCode()  );
+  	values[kStsHitClosestOpeningAngle] = pair->OpeningAngle();
+  	values[kStsHitClosestMom]          = TMath::Sqrt(ptrk->P() * reftrack->P() );
+	delete pair;
+      }
+      delete reftrack;
+    }
+  }
+
+  Double_t minMvd    = 9999.;
+  xref = 0.;
+  yref = 0.;
+  zref = 0.;
+  hits = fgEvent->GetHits(ECbmModuleId::kMvd);
+  CbmStsTrack* mvdtrack1 = (CbmStsTrack*) track->GetStsTrack();
+  if (hits) {
+    for (Int_t ihit = 0; ihit < mvdtrack1->GetNofMvdHits(); ihit++) {
+      Int_t idx      = mvdtrack1->GetMvdHitIndex(ihit);
+      if(idx > hits->GetEntriesFast()) continue;
+      CbmMvdHit* hit = (CbmMvdHit*) hits->At(idx);
+      if (hit && minMvd > hit->GetZ()) {
+        minMvd = hit->GetZ();
+  	xref = hit->GetX();
+  	yref = hit->GetY();
+  	zref = hit->GetZ();
+      }
+    }
+  }
+  Double_t minMvdClosest = 9999.;
+  if (PaPaTracks && hits) {
+    for (Int_t iTracks = 0; iTracks < PaPaTracks->GetEntriesFast(); iTracks++) {
+      PairAnalysisTrack *ptrk = (PairAnalysisTrack*) PaPaTracks->At(iTracks);
+      if(!ptrk) continue;
+      CbmStsTrack* mvdtrack2 = (CbmStsTrack*) ptrk->GetStsTrack();
+      for (Int_t ihit = 0; ihit < mvdtrack2->GetNofMvdHits(); ihit++) {
+  	Int_t idx      = mvdtrack2->GetMvdHitIndex(ihit);
+  	if(idx > hits->GetEntriesFast()) continue;
+  	CbmMvdHit* hit = (CbmMvdHit*) hits->At(idx);
+  	Double_t xdiff = hit->GetX() - xref;
+  	Double_t ydiff = hit->GetY() - yref;
+  	Double_t zdiff = hit->GetZ() - zref;
+  	Double_t dist = TMath::Sqrt( xdiff * xdiff + ydiff * ydiff + zdiff * zdiff);
+  	if (hit && dist < minMvdClosest && dist > 0.) {
+  	  minMvdClosest = dist;
+  	  compIndex = iTracks;
+  	}
+      }
+    }
+    PairAnalysisTrack *ptrk = (PairAnalysisTrack*) PaPaTracks->At(compIndex);
+    PairAnalysisTrack* reftrack = new PairAnalysisTrack(*track);
+    if(ptrk && reftrack){
+      PairAnalysisPair* pair = new PairAnalysisPairLV();
+      if(pair){
+  	if(reftrack->PdgCode() < 1.e8 && ptrk->PdgCode() < 1.e8)  pair->SetTracks(reftrack, reftrack->PdgCode() , ptrk, ptrk->PdgCode()  );
+  	values[kMvdHitClosestOpeningAngle] = pair->OpeningAngle();
+  	values[kMvdHitClosestMom]          = TMath::Sqrt(ptrk->P() * reftrack->P() );
+	delete pair;
+      }
+      delete reftrack;
+
+    }
+  }
+  
+  values[kStsHitClosest] = minStsClosest;
+  values[kMvdHitClosest] = minMvdClosest;
+
+  
   values[kRichDistance] =
     1.;  //CbmRichUtil::GetRingTrackDistance(track->GetGlobalIndex());
   values[kRichPidANN] = CbmRichElectronIdAnn::GetInstance().CalculateAnnValue(