diff --git a/core/data/mvd/CbmMvdCluster.cxx b/core/data/mvd/CbmMvdCluster.cxx
index 052929f0fbe826c9042f3fbf74d5d91a12b092c7..1c0d054222a5a886e7fc526fe4f3c4901c66e468 100644
--- a/core/data/mvd/CbmMvdCluster.cxx
+++ b/core/data/mvd/CbmMvdCluster.cxx
@@ -13,7 +13,7 @@ using std::map;
 using std::pair;
 
 // -----   Default constructor   -------------------------------------------
-CbmMvdCluster::CbmMvdCluster() : CbmCluster(), fPixelMap(), fRefId(-1), fClusterCharge(0) {}
+CbmMvdCluster::CbmMvdCluster() : CbmCluster(), fPixelMap(), fRefId(-1), fClusterCharge(0) {fEarliestFrameNumber=-1;}
 // -------------------------------------------------------------------------
 
 // -------------------------------------------------------------------------
@@ -22,6 +22,7 @@ CbmMvdCluster::CbmMvdCluster(const CbmMvdCluster& rhs) : CbmCluster(), fPixelMap
   fPixelMap      = rhs.fPixelMap;
   fRefId         = rhs.fRefId;
   fClusterCharge = rhs.fClusterCharge;
+  fEarliestFrameNumber=rhs.fEarliestFrameNumber;
 }
 // -------------------------------------------------------------------------
 
diff --git a/core/data/mvd/CbmMvdCluster.h b/core/data/mvd/CbmMvdCluster.h
index b76c734eb6c4bda08f8996a60d8742cf6b0d711c..48c67f571da7b6d2503439d499b1c0fa655659c5 100644
--- a/core/data/mvd/CbmMvdCluster.h
+++ b/core/data/mvd/CbmMvdCluster.h
@@ -43,6 +43,7 @@ public:
   /** Setters **/
   void SetPixelMap(std::map<std::pair<int32_t, int32_t>, int32_t> PixelMap);
   void SetRefId(int32_t RefId) { fRefId = RefId; };  //* stores the index to the global TClonesArray
+  void SetEarliestFrameNumber(Int_t frameNumber) {fEarliestFrameNumber=frameNumber;}
 
   /** Accessors **/
   int16_t GetTotalDigisInCluster() { return fPixelMap.size(); };
@@ -51,6 +52,7 @@ public:
   int32_t GetRefId() { return fRefId; };
   int32_t GetDetectorId() { return DetectorId(GetStationNr()); };
   int32_t GetSensorNr() { return (GetAddress() % 1000); };
+  int32_t GetEarliestFrameNumber(){return fEarliestFrameNumber;};
 
   float GetClusterCharge() { return fClusterCharge; };
 
@@ -58,6 +60,7 @@ protected:
   std::map<std::pair<int32_t, int32_t>, int32_t> fPixelMap;
   int32_t fRefId;
   float fClusterCharge;
+  int32_t fEarliestFrameNumber;
 
   ClassDef(CbmMvdCluster, 4);
 };
diff --git a/core/data/mvd/CbmMvdHit.h b/core/data/mvd/CbmMvdHit.h
index a6d8efe863f8254a8ce8296072bf588e5cbc6778..eefe9ecc47cd7a2ada8b4988daa6e596396e0be6 100644
--- a/core/data/mvd/CbmMvdHit.h
+++ b/core/data/mvd/CbmMvdHit.h
@@ -66,12 +66,20 @@ public:
   //  void GetDigiIndexVector(TClonesArray* cbmMvdClusterArray, std::vector<int32_t>* digiIndexVector);
   int32_t GetRefIndex() { return fFlag; }
 
+  double GetValidityStartTime() {return fValidityStartTime;}; // returns earliest plausible time of particle impact
+  double GetValidityEndTime() {return fValidityEndTime;};   // returns latest plausible time of particle impact
+
+  void SetValidityStartTime(double time) {fValidityStartTime=time;};
+  void SetValidityEndTime(double time) {fValidityEndTime=time;};
+
 
 protected:
   int32_t fFlag;  // Hit flag; to be used later
   int32_t fClusterIndex;
   int32_t fIndexCentralX;
   int32_t fIndexCentralY;
+  double fValidityStartTime;
+  double fValidityEndTime;
 
   int32_t fDetectorID;
 
diff --git a/core/detectors/mvd/SensorDataSheets/CbmMvdSensorDataSheet.cxx b/core/detectors/mvd/SensorDataSheets/CbmMvdSensorDataSheet.cxx
index 40980bc7a85c3f2da8d8d019d3177421de813d65..69b918c27e9b62c7f4c3ddc5d955fcb6b44100a3 100644
--- a/core/detectors/mvd/SensorDataSheets/CbmMvdSensorDataSheet.cxx
+++ b/core/detectors/mvd/SensorDataSheets/CbmMvdSensorDataSheet.cxx
@@ -16,10 +16,6 @@
 #include <ostream>  // for operator<<, stringstream, basic_ostream
 using std::endl;
 
-/*
-<<<<<<< HEAD
-=======
-*/
 
 // -----   Default constructor   -------------------------------------------
 CbmMvdSensorDataSheet::CbmMvdSensorDataSheet()
@@ -62,12 +58,6 @@ CbmMvdSensorDataSheet::CbmMvdSensorDataSheet()
 {
 }
 
-// -----   Destructor   ----------------------------------------------------
-//CbmMvdSensorDataSheet::~CbmMvdSensorDataSheet() {}
-// -------------------------------------------------------------------------
-
-
-//>>>>>>> ddd5fbbb (Time response added)
 // -----   Public method Print   -------------------------------------------
 void CbmMvdSensorDataSheet::Print(Option_t* /*opt*/) const { LOG(info) << ToString(); }
 
@@ -135,5 +125,17 @@ Double_t CbmMvdSensorDataSheet::ComputeCCE(Float_t chargePointX, Float_t chargeP
   //                           + fPar2);
 }
 
+Int_t CbmMvdSensorDataSheet::ComputeAdcCharge(Float_t charge)
+{
+
+  Int_t adcCharge;
+
+  if (charge < fAdcOffset) { return 0; };
+
+  adcCharge = int((charge - fAdcOffset) / fAdcStepSize);
+  if (adcCharge > fAdcSteps - 1) { adcCharge = fAdcSteps - 1; }
+
+  return adcCharge;
+}
 
 ClassImp(CbmMvdSensorDataSheet)
diff --git a/core/detectors/mvd/SensorDataSheets/CbmMvdSensorDataSheet.h b/core/detectors/mvd/SensorDataSheets/CbmMvdSensorDataSheet.h
index 08d52fe8be4d5848992cd814a967b6aed4c342d6..88b512312e78339999280ee57f2d9da02f64358b 100644
--- a/core/detectors/mvd/SensorDataSheets/CbmMvdSensorDataSheet.h
+++ b/core/detectors/mvd/SensorDataSheets/CbmMvdSensorDataSheet.h
@@ -53,24 +53,12 @@ protected:
     // Defined according to pixelNumberX=fPixelSign * const * x
   Int_t fPixelSignY = 1;  // Direction of the pixel count Y.
     // Defined according to pixelNumberY=fPixelSign * const * y
-  /*
-<<<<<<< HEAD
   Int_t fShutterSign = 0;             // Direction of the rolling shutter.
                                       // 1 => parallel to y-axis, -1 => anti-parallel
   Double_t fIntegrationTime = 50e3;   // Integration time of the pixels
-  Double_t fEpiTh           = 14e-4;  // Thickness of the epitaxial layer
-=======
-*/
-  Int_t fShutterSign;         // Direction of the rolling shutter.
-                              // 1 => parallel to y-axis, -1 => anti-parallel
-  Double_t fIntegrationTime;  // Integration time of the pixels
-  Double_t fEpiTh;            // Thickness of the epitaxial layer
-
-  //Double_t fChargeThreshold;
-  //Double_t fSignalRiseTime;
-  //Double_t fSignalFallTime;
+  Double_t fEpiTh           = 25.e-4;  // Thickness of the epitaxial layer
+
   Double_t fShaperNormalisationFactor;
-  //>>>>>>> ddd5fbbb (Time response added)
 
   Double_t fChargeThreshold = 0.;
   Double_t fSignalRiseTime  = nan("NotSet");
@@ -122,19 +110,10 @@ public:
   virtual Double_t GetIntegrationTime() { return fIntegrationTime; };
   virtual Double_t GetEpiThickness() { return fEpiTh; }
   virtual Double_t GetNoise() { return fNoise; };
-  /*
-<<<<<<< HEAD
-  virtual Double_t GetSignalRiseTime() { return fSignalRiseTime; };
-  virtual Double_t GetSignalFallTime() { return fSignalFallTime; };
-=======
-*/
   virtual Double_t GetSignalRiseTime() { return fSignalRiseTime; };
   virtual Double_t GetSignalFallTime() { return fSignalFallTime; };
   virtual Float_t GetShaperNormalisationFactor() { return fShaperNormalisationFactor; }
 
-  //>>>>>>> ddd5fbbb (Time response added)
-
-
   /** Description of the sensor for the digitizer **/
   virtual Double_t GetLandauMPV() { return fLandauMPV; };      // Landau for digitizer
   virtual Double_t GetLandauSigma() { return fLandauSigma; };  // Landau for digitizer
@@ -145,23 +124,15 @@ public:
 
 
   virtual Double_t GetChargeThreshold() { return fChargeThreshold; };
-  /*
-<<<<<<< HEAD
   virtual Int_t GetAnalogThreshold() { return fAnalogThreshold; };
 
-=======
-*/
-  virtual Int_t GetAnalogThreshold() { return fAnalogThreshold; };
 
-  virtual Double_t ComputeHitDeadTime(Float_t charge)
-  {
-    return charge * 0.;
-  };  // Multiplication only to suppress "variable not used" warning.
-  virtual Double_t ComputeHitDelay(Float_t charge) { return charge * 0.; };
-  virtual Double_t ComputeHitJitter(Float_t charge) { return charge * 0.; };
-  virtual Double_t ComputeCCE(Float_t chargePointX, Float_t chargePointY, Float_t chargePointZ, Float_t diodeX,
-                              Float_t diodeY, Float_t diodeZ);
-  //>>>>>>> ddd5fbbb (Time response added)
+  virtual Double_t ComputeHitDeadTime(Float_t charge){return charge * 0.;}; // Multiplication only to suppress "variable not used" warning.
+  virtual Double_t ComputeHitDelay(Float_t charge){return charge * 0.;};
+  virtual Double_t ComputeHitJitter  (Float_t charge){return charge * 0.;};
+  virtual Double_t ComputeCCE(Float_t chargePointX, Float_t chargePointY,Float_t chargePointZ,Float_t diodeX,Float_t diodeY,Float_t diodeZ);
+  virtual Int_t    ComputeAdcCharge(Float_t charge);
+
 
   /** ADC description **/
 
diff --git a/macro/mvd/qa/mvd_qa4_reco.C b/macro/mvd/qa/mvd_qa4_reco.C
index f20c65b153cfa4b97f0b4aaeb8e5ba0bb9371f5f..2b2402669b73e4e89bb7ef29026ccd3af1cf8f2b 100644
--- a/macro/mvd/qa/mvd_qa4_reco.C
+++ b/macro/mvd/qa/mvd_qa4_reco.C
@@ -40,10 +40,10 @@ void mvd_qa4_reco(const char* setup = "sis100_electron")
   Int_t nEvents = 5;
 
   // Verbosity level (0=quiet, 1=event level, 2=track level, 3=debug)
-  Int_t iVerbose = 0;
+  Int_t iVerbose = 3;
 
   FairLogger* logger = FairLogger::GetLogger();
-  logger->SetLogScreenLevel("INFO");
+  logger->SetLogScreenLevel("DEBUG4");
   logger->SetLogVerbosityLevel("LOW");
 
 
diff --git a/reco/detectors/mvd/plugins/tasks/CbmMvdSensorClusterfinderTask.cxx b/reco/detectors/mvd/plugins/tasks/CbmMvdSensorClusterfinderTask.cxx
index 31bfd007bb847642686b93404aa7dfb2ad2c326e..8a0ad7e8b47716f3d2053d897d0f1119e3f9ccdc 100644
--- a/reco/detectors/mvd/plugins/tasks/CbmMvdSensorClusterfinderTask.cxx
+++ b/reco/detectors/mvd/plugins/tasks/CbmMvdSensorClusterfinderTask.cxx
@@ -220,6 +220,10 @@ void CbmMvdSensorClusterfinderTask::Exec()
 
   // Detect relevant frame numbers from digis in the input fInputBuffer
 
+  LOG(debug) << "CbmMvdSensorClusterfinderTask::Exec starting" << endl;
+  LOG(debug) << "Detected " << fInputBuffer->GetEntriesFast() << " digis for sensor " << fSensor->GetName();
+
+
   CbmMvdDigi* digi;
 
   if (!fInputBuffer) {
@@ -251,7 +255,9 @@ void CbmMvdSensorClusterfinderTask::Exec()
 
   // Continue filling starting from the 2nd frame. Two frames are processed by ExecFrame in order to avoid handle time walk
 
-  for (Int_t currentFrame = minFrame; maxFrame - 1; currentFrame++) {
+  for(Int_t currentFrame=minFrame; currentFrame<maxFrame-1; currentFrame++){
+
+    LOG(debug) << "CbmMvdSensorClusterfinderTask::Exec() - Running frame " << currentFrame;
 
 
     // Clean up input buffer from possible digis, which were already associated to a cluster while processing the previous frame
@@ -410,14 +416,21 @@ void CbmMvdSensorClusterfinderTask::ExecFrame(Int_t currentFrame)
         CbmMvdCluster* clusterNew = new ((*fOutputFrameBuffer)[nClusters]) CbmMvdCluster();
         clusterNew->SetAddress(fAddress);
 
+        CbmMvdDigi* digiInCluster = (CbmMvdDigi*) fInputFrameBuffer->At(clusterArray->at(0));
+        Int_t earliestFrame=digiInCluster->GetFrameNumber();
+
         for (i = 0; i < clusterSize; i++) {
-          CbmMvdDigi* digiInCluster = (CbmMvdDigi*) fInputFrameBuffer->At(clusterArray->at(i));
-          clusterNew->AddDigi(digiInCluster->GetRefId());
+          digiInCluster = (CbmMvdDigi*) fInputFrameBuffer->At(clusterArray->at(i));
+
+          if(digiInCluster->GetFrameNumber()<earliestFrame){earliestFrame=digiInCluster->GetFrameNumber();} //fixme retundant for i==0
+
+                    clusterNew->AddDigi(digiInCluster->GetRefId());
           pixelCoords                = std::make_pair(digiInCluster->GetPixelX(), digiInCluster->GetPixelY());
           pixelCharge                = digiInCluster->GetCharge();
           ftempPixelMap[pixelCoords] = pixelCharge;
         }
         clusterNew->SetPixelMap(ftempPixelMap);
+        clusterNew->SetEarliestFrameNumber(earliestFrame);
         ftempPixelMap.clear();
 
         if (fShowDebugHistos) UpdateDebugHistos(clusterNew);
diff --git a/reco/detectors/mvd/plugins/tasks/CbmMvdSensorHitfinderTask.cxx b/reco/detectors/mvd/plugins/tasks/CbmMvdSensorHitfinderTask.cxx
index 00e9c50465b118ed8dbabf94f1b2b8b26cf66bab..01f2b1846200633048df99bb8a539131df2981f3 100644
--- a/reco/detectors/mvd/plugins/tasks/CbmMvdSensorHitfinderTask.cxx
+++ b/reco/detectors/mvd/plugins/tasks/CbmMvdSensorHitfinderTask.cxx
@@ -12,6 +12,7 @@
 #include "CbmMvdCluster.h"  // for CbmMvdCluster
 #include "CbmMvdHit.h"      // for CbmMvdHit
 #include "CbmMvdSensor.h"   // for CbmMvdSensor
+#include "CbmMvdDigi.h"     // for CbmMvdDigi
 
 #include <TClonesArray.h>  // for TClonesArray
 #include <TGeoMatrix.h>    // for TGeoHMatrix
@@ -248,8 +249,10 @@ void CbmMvdSensorHitfinderTask::Exec()
 void CbmMvdSensorHitfinderTask::CreateHit(CbmMvdCluster* cluster, TVector3& pos, TVector3& dpos)
 {
   // Calculate the center of gravity of the charge of a cluster
+  double startTime=0;
+  double endTime=0;
 
-  ComputeCenterOfGravity(cluster, pos, dpos);
+  ComputeCenterOfGravity(cluster, pos, dpos, startTime, endTime);
 
 
   Int_t indexX, indexY;
@@ -271,8 +274,10 @@ void CbmMvdSensorHitfinderTask::CreateHit(CbmMvdCluster* cluster, TVector3& pos,
   new ((*fOutputBuffer)[nHits]) CbmMvdHit(fSensor->GetStationNr(), pos, dpos, indexX, indexY, cluster->GetRefId(),
                                           0);  // Bug - Should be the sensor ID
   CbmMvdHit* currentHit = (CbmMvdHit*) fOutputBuffer->At(nHits);
-  currentHit->SetTime(fSensor->GetCurrentEventTime());
-  currentHit->SetTimeError(fSensor->GetIntegrationtime() / 2);
+  currentHit->SetTime(startTime+(startTime-endTime)/2);
+  currentHit->SetTimeError((endTime-startTime)/3.64); //Assume Sqrt(12) - Error
+  currentHit->SetValidityStartTime(startTime);
+  currentHit->SetValidityEndTime(endTime);
   currentHit->SetRefId(cluster->GetRefId());
 }
 
@@ -286,7 +291,7 @@ void CbmMvdSensorHitfinderTask::CreateHit(CbmMvdCluster* cluster, TVector3& pos,
 
 //--------------------------------------------------------------------------
 
-void CbmMvdSensorHitfinderTask::ComputeCenterOfGravity(CbmMvdCluster* cluster, TVector3& pos, TVector3& dpos)
+void CbmMvdSensorHitfinderTask::ComputeCenterOfGravity(CbmMvdCluster* cluster, TVector3& pos, TVector3& dpos, double &startTime, double &endTime)
 {
 
   Double_t numeratorX  = 0;
@@ -306,6 +311,37 @@ void CbmMvdSensorHitfinderTask::ComputeCenterOfGravity(CbmMvdCluster* cluster, T
   Int_t yIndex0 = 0;
   Double_t sigmaIn[3], sigmaOut[3], shiftIn[3], shiftOut[3];
 
+  //Double_t GetFrameStartTime(Int_t frameNumber);
+  //Double_t GetFrameEndTime(Int_t frameNumber) {return GetFrameStartTime (frameNumber+1);}
+
+
+  //Scan digis for the digi with minimal frame number.
+  //For the time being, it is anticipated that this digi provides the best time estimate as it has lowest signal delay
+
+//   CbmMvdDigi* myDigi=(CbmMvdDigi*)cluster->GetDigi(0);
+//   int32_t minFrameNumber=myDigi->GetFrameNumber();
+//
+//   for(Int_t i=0;i<clusterSize; i++){
+//     myDigi=(CbmMvdDigi*)cluster->GetDigi(i);
+//     int32_t frame=myDigi->GetFrameNumber();
+//     if(frame<minFrameNumber){minFrameNumber=frame;}
+//   }
+
+  //Estimate the highest possible delay and jitter of the analog amplifier chain from the sensor data sheet.
+
+  CbmMvdSensorDataSheet* sensorDataSheet=fSensor->GetDataSheet();
+  int32_t minFrameNumber=cluster->GetEarliestFrameNumber();
+
+  //Compute time walk and jitter assuming that the maximum possible signal is reasonably well represented with 10k signal electrons
+  Double_t timeWalk=sensorDataSheet->ComputeHitDelay(sensorDataSheet->GetAnalogThreshold())-sensorDataSheet->ComputeHitDelay(10000);
+  Double_t jitter=sensorDataSheet->ComputeHitJitter  (sensorDataSheet->GetAnalogThreshold());
+
+  startTime=fSensor->GetFrameStartTime(minFrameNumber)-timeWalk-jitter;
+  endTime=fSensor->GetFrameEndTime(minFrameNumber)+jitter;
+
+
+
+
   for (map<pair<Int_t, Int_t>, Int_t>::iterator it = PixelMap.begin(); it != PixelMap.end(); ++it) {
     pair<Int_t, Int_t> pixel = it->first;
 
@@ -358,87 +394,89 @@ void CbmMvdSensorHitfinderTask::ComputeCenterOfGravity(CbmMvdCluster* cluster, T
   LOG(debug) << "CbmMvdSensorHitfinderTask::X hit= " << fHitPosX << " Y hit= " << fHitPosY << " Z hit= " << fHitPosZ;
   LOG(debug) << "CbmMvdSensorHitfinderTask::-----------------------------------";
 
-  // Treat Sigma/Shift of the Cluster according to the Shape
-  if (shape == 12288) {
-    sigmaIn[0] = 0.00053;
-    sigmaIn[1] = 0.00063;
-    sigmaIn[2] = 0.;
-    shiftIn[0] = -0.00000;
-    shiftIn[1] = -0.00001;
-    shiftIn[2] = 0.;
-  }
-  else if (shape == 208896) {
-    sigmaIn[0] = 0.00035;
-    sigmaIn[1] = 0.00036;
-    sigmaIn[2] = 0.;
-    shiftIn[0] = -0.00000;
-    shiftIn[1] = -0.00002;
-    shiftIn[2] = 0.;
-  }
-  else if (shape == 69632) {
-    sigmaIn[0] = 0.00028;
-    sigmaIn[1] = 0.00028;
-    sigmaIn[2] = 0.;
-    shiftIn[0] = -0.00000;
-    shiftIn[1] = -0.00002;
-    shiftIn[2] = 0.;
-  }
-  else if (shape == 28672) {
-    sigmaIn[0] = 0.00028;
-    sigmaIn[1] = 0.00039;
-    sigmaIn[2] = 0.;
-    shiftIn[0] = -0.00000;
-    shiftIn[1] = -0.00001;
-    shiftIn[2] = 0.;
-  }
-  else if (shape == 143360) {
-    sigmaIn[0] = 0.00024;
-    sigmaIn[1] = 0.00022;
-    sigmaIn[2] = 0.;
-    shiftIn[0] = +0.00020;
-    shiftIn[1] = +0.00008;
-    shiftIn[2] = 0.;
-  }
-  else if (shape == 200704) {
-    sigmaIn[0] = 0.00024;
-    sigmaIn[1] = 0.00022;
-    sigmaIn[2] = 0.;
-    shiftIn[0] = -0.00020;
-    shiftIn[1] = -0.00011;
-    shiftIn[2] = 0.;
-  }
-  else if (shape == 77824) {
-    sigmaIn[0] = 0.00024;
-    sigmaIn[1] = 0.00022;
-    sigmaIn[2] = 0.;
-    shiftIn[0] = -0.00020;
-    shiftIn[1] = +0.00008;
-    shiftIn[2] = 0.;
-  }
-  else if (shape == 12800) {
-    sigmaIn[0] = 0.00024;
-    sigmaIn[1] = 0.00022;
-    sigmaIn[2] = 0.;
-    shiftIn[0] = +0.00020;
-    shiftIn[1] = -0.00011;
-    shiftIn[2] = 0.;
-  }
-  else if (shape == 4096) {
-    sigmaIn[0] = 0.00027;
-    sigmaIn[1] = 0.00092;
-    sigmaIn[2] = 0.;
-    shiftIn[0] = +0.00002;
-    shiftIn[1] = +0.00004;
-    shiftIn[2] = 0.;
-  }
-  else {
-    sigmaIn[0] = 0.00036;
-    sigmaIn[1] = 0.00044;
-    sigmaIn[2] = 0.;
-    shiftIn[0] = -0.00000;
-    shiftIn[1] = -0.00002;
-    shiftIn[2] = 0.;
-  }
+//   // Treat Sigma/Shift of the Cluster according to the Shape
+//   // This goes back to some results of a specific MIMOSA-26 beam time. Switch off for the time being.
+//
+//   if (shape == 12288) {
+//     sigmaIn[0] = 0.00053;
+//     sigmaIn[1] = 0.00063;
+//     sigmaIn[2] = 0.;
+//     shiftIn[0] = -0.00000;
+//     shiftIn[1] = -0.00001;
+//     shiftIn[2] = 0.;
+//   }
+//   else if (shape == 208896) {
+//     sigmaIn[0] = 0.00035;
+//     sigmaIn[1] = 0.00036;
+//     sigmaIn[2] = 0.;
+//     shiftIn[0] = -0.00000;
+//     shiftIn[1] = -0.00002;
+//     shiftIn[2] = 0.;
+//   }
+//   else if (shape == 69632) {
+//     sigmaIn[0] = 0.00028;
+//     sigmaIn[1] = 0.00028;
+//     sigmaIn[2] = 0.;
+//     shiftIn[0] = -0.00000;
+//     shiftIn[1] = -0.00002;
+//     shiftIn[2] = 0.;
+//   }
+//   else if (shape == 28672) {
+//     sigmaIn[0] = 0.00028;
+//     sigmaIn[1] = 0.00039;
+//     sigmaIn[2] = 0.;
+//     shiftIn[0] = -0.00000;
+//     shiftIn[1] = -0.00001;
+//     shiftIn[2] = 0.;
+//   }
+//   else if (shape == 143360) {
+//     sigmaIn[0] = 0.00024;
+//     sigmaIn[1] = 0.00022;
+//     sigmaIn[2] = 0.;
+//     shiftIn[0] = +0.00020;
+//     shiftIn[1] = +0.00008;
+//     shiftIn[2] = 0.;
+//   }
+//   else if (shape == 200704) {
+//     sigmaIn[0] = 0.00024;
+//     sigmaIn[1] = 0.00022;
+//     sigmaIn[2] = 0.;
+//     shiftIn[0] = -0.00020;
+//     shiftIn[1] = -0.00011;
+//     shiftIn[2] = 0.;
+//   }
+//   else if (shape == 77824) {
+//     sigmaIn[0] = 0.00024;
+//     sigmaIn[1] = 0.00022;
+//     sigmaIn[2] = 0.;
+//     shiftIn[0] = -0.00020;
+//     shiftIn[1] = +0.00008;
+//     shiftIn[2] = 0.;
+//   }
+//   else if (shape == 12800) {
+//     sigmaIn[0] = 0.00024;
+//     sigmaIn[1] = 0.00022;
+//     sigmaIn[2] = 0.;
+//     shiftIn[0] = +0.00020;
+//     shiftIn[1] = -0.00011;
+//     shiftIn[2] = 0.;
+//   }
+//   else if (shape == 4096) {
+//     sigmaIn[0] = 0.00027;
+//     sigmaIn[1] = 0.00092;
+//     sigmaIn[2] = 0.;
+//     shiftIn[0] = +0.00002;
+//     shiftIn[1] = +0.00004;
+//     shiftIn[2] = 0.;
+//   }
+//   else {
+//     sigmaIn[0] = 0.00036;
+//     sigmaIn[1] = 0.00044;
+//     sigmaIn[2] = 0.;
+//     shiftIn[0] = -0.00000;
+//     shiftIn[1] = -0.00002;
+//     shiftIn[2] = 0.;
+//   }
   // Consider Sensor Orientation
   TGeoHMatrix* RecoMatrix = fSensor->GetRecoMatrix();
   TGeoHMatrix RotMatrix;
diff --git a/reco/detectors/mvd/plugins/tasks/CbmMvdSensorHitfinderTask.h b/reco/detectors/mvd/plugins/tasks/CbmMvdSensorHitfinderTask.h
index 331b6c6a7d7bf6840d1bec7925f4a5944010ef36..e0cfb50bfd73a7ccc1031564c9c70ff6e97da375 100644
--- a/reco/detectors/mvd/plugins/tasks/CbmMvdSensorHitfinderTask.h
+++ b/reco/detectors/mvd/plugins/tasks/CbmMvdSensorHitfinderTask.h
@@ -210,7 +210,7 @@ private:
   // void CheckForNeighbours(vector<Int_t>* clusterArray, Int_t clusterDigi, TArrayS* pixelUsed);
 
   void CreateHit(CbmMvdCluster* clusterArray, TVector3& pos, TVector3& dpos);
-  void ComputeCenterOfGravity(CbmMvdCluster* clusterArray, TVector3& pos, TVector3& dpos);
+  void ComputeCenterOfGravity(CbmMvdCluster* clusterArray, TVector3& pos, TVector3& dpos, double &startTime, double &endTime);
   // void UpdateDebugHistos(vector<Int_t>* clusterArray, Int_t seedIndexX, Int_t seedIndexY);
 
 private: