diff --git a/macro/beamtime/cosy2019/cosy2019_process.C b/macro/beamtime/cosy2019/cosy2019_process.C
index c553d67eefe913a5ff1e99acbb4e67e921955709..c2a8c82f284717481f6f916825cd7fe0f7779461 100644
--- a/macro/beamtime/cosy2019/cosy2019_process.C
+++ b/macro/beamtime/cosy2019/cosy2019_process.C
@@ -8,13 +8,13 @@
 // --------------------------------------------------------------------------
 
 
-void cosy2019_process(
-  Int_t nTimeslices = -1,
-  UInt_t uRunId     = 0,
-  TString outDir    = "data",
-  TString dataSet   = "data/cosy2019",  // Data set for file names
-  Bool_t eventMode  = kFALSE            // Event-by-event mode
-) {
+void cosy2019_process() {
+  
+  Int_t nTimeslices = -1;
+  TString inFile = "unp_cosy_0025.root";
+  TString parFile = "unp_cosy_params_0025.root";
+  TString outFile = "0025.rec.root";
+  TString geoFile = "sts_hodo_v19a_cosy_geo.root";
 
 
   // --- Logger settings ----------------------------------------------------
@@ -30,12 +30,12 @@ void cosy2019_process(
 
 
   // -----   In- and output file names   ------------------------------------
-  TString runId  = TString::Format("%04u", uRunId);
-  TString inFile = outDir + "/unp_cosy_" + runId + ".root";
-  if (eventMode) inFile = dataSet + ".event.raw.root";
-  TString parFile = outDir + "/unp_cosy_params_" + runId + "_sts.root";
-  TString outFile = dataSet + "_" + runId + ".rec.root";
-  TString geoFile = dataSet + ".geo.root";  // to be created by a simulation run
+  //TString runId  = TString::Format("%04u", uRunId);
+  //TString inFile = outDir + "/unp_cosy_" + runId + ".root";
+  //if (eventMode) inFile = dataSet + ".event.raw.root";
+  //TString parFile = outDir + "/unp_cosy_params_" + runId + "_sts.root";
+  //TString outFile = dataSet + "_" + runId + ".rec.root";
+  //TString geoFile = dataSet + ".geo.root";  // to be created by a simulation run
   // ------------------------------------------------------------------------
 
 
@@ -52,7 +52,6 @@ void cosy2019_process(
 
   // -----   FairRunAna   ---------------------------------------------------
   FairRunAna* run             = new FairRunAna();
-  CbmStsFindHits* hit         = new CbmStsFindHits();
   FairFileSource* inputSource = new FairFileSource(inFile);
   run->SetSource(inputSource);
 
@@ -76,20 +75,67 @@ void cosy2019_process(
 
 
   // -----   Local reconstruction in STS   ----------------------------------
-  CbmStsReco* stsReco = new CbmStsReco();
-  // --- The parameter file for the STS Setup sensors needs to be explicitely set as
-  // --- 1) By default the CbmStsSetup creates only Stereo sensors with a 58 um pitch
-  // --- 2) The only place where this can be set is in the init of the CbmStsReco
-
-  // -----  Geometry Tags  --------------------------------------------------
-  TString sStsHodoGeoPar = "sts_hodo_v19a_cosy.par";
-  // ------------------------------------------------------------------------
-  stsReco->SetSensorsParFile(sStsHodoGeoPar);
-  stsReco->SetTimeCutDigisInNs(20);      // cluster finder: time cut in ns
-  stsReco->SetTimeCutClustersInNs(20.);  // hit finder: time cut in ns
-
-  run->AddTask(stsReco);
-  std::cout << "-I- : Added task " << stsReco->GetName() << std::endl;
+  CbmRecoSts* recoSts = new CbmRecoSts();
+  recoSts->SetTimeCutDigisAbs(20);      // cluster finder: time cut in ns
+  recoSts->SetTimeCutClustersAbs(20.);  // hit finder: time cut in ns
+  
+  // ----   Here we define the sensor parameters since they are not available
+  // -----  from the runtimeDb.(#hateRuntimeDb)
+  
+  // ---- Hodoscope "sensor"
+  CbmStsParSensor hodoSensPar(CbmStsSensorClass::kDssdOrtho);
+  hodoSensPar.SetPar(0, 6.5); // extension in x
+  hodoSensPar.SetPar(1, 6.5); // extension in y
+  hodoSensPar.SetPar(2, 0.4); // extension in z
+  hodoSensPar.SetPar(3, 6.4); // active size in y
+  hodoSensPar.SetPar(4, 64);  // number of strips front side
+  hodoSensPar.SetPar(5, 64);  // number of strips back side
+  hodoSensPar.SetPar(6, 0.1); // strip pitch front side
+  hodoSensPar.SetPar(7, 0.1); // strip pitch back side
+ 
+   // ---- STS sensor (DUT)
+  CbmStsParSensor stsSensPar(CbmStsSensorClass::kDssdStereo);
+  stsSensPar.SetPar(0, 6.2092); // extension in x
+  stsSensPar.SetPar(1, 6.2000); // extension in y
+  stsSensPar.SetPar(2, 0.0300); // extension in z
+  stsSensPar.SetPar(3, 5.9600); // active size in y
+  stsSensPar.SetPar(4, 1024);   // number of strips front side
+  stsSensPar.SetPar(5, 1024);   // number of strips back side
+  stsSensPar.SetPar(6, 0.0058);  // strip pitch front side
+  stsSensPar.SetPar(7, 0.0058);  // strip pitch back side 
+  stsSensPar.SetPar(8, -7.5);   // strip pitch front side
+  stsSensPar.SetPar(9, 0.0);    // strip pitch back side
+    
+  // --- Addresses for sensors
+  // --- They are defined in each station as sensor 1, module 1, halfladderD (2), ladder 1
+  Int_t hodo1Address = CbmStsAddress::GetAddress(0, 0, 1, 0, 0); // station 1
+  Int_t stsAddress   = CbmStsAddress::GetAddress(1, 0, 1, 0, 0); // station 2
+  Int_t hodo2Address = CbmStsAddress::GetAddress(2, 0, 1, 0, 0); // station 3
+  std::cout << "Hodo 1 address " << std::dec << hodo1Address << " " << std::hex << hodo1Address << std::endl;
+  std::cout << "STS    address " << std::dec << stsAddress << " " << std::hex << stsAddress << std::endl;
+  std::cout << "Hodo 2 address " << std::dec << hodo2Address << " " << std::hex << hodo2Address << std::endl;
+
+  // --- Now we can define the sensor parameter set and tell recoSts to use it
+  auto sensorParSet = new CbmStsParSetSensor("CbmStsParSetSensor",
+                                             "STS sensor parameters" "cosy2019");
+  sensorParSet->SetParSensor(hodo1Address, hodoSensPar);
+  sensorParSet->SetParSensor(stsAddress, stsSensPar);
+  sensorParSet->SetParSensor(hodo2Address, hodoSensPar);
+  recoSts->UseSensorParSet(sensorParSet);
+  
+  // --- Next we define the module and ASIC parameters. The same can be used for all sensors.
+  CbmStsParAsic asicPar(32, 75000., 3000., 5., 800., 1000., 3.9789e-3);  
+  auto modulePar = new CbmStsParModule(2048, 128);
+  modulePar->SetAllAsics(asicPar);
+  recoSts->UseModulePar(modulePar);
+  
+  // --- We also need the sensor conditions, although they are of no relevance here
+  // --- without magnetic field (they are used to determine the Lorentz shift).
+  auto sensorCond = new CbmStsParSensorCond(70., 140., 268., 17.5, 1.);
+  recoSts->UseSensorCond(sensorCond);
+  
+  run->AddTask(recoSts);
+  std::cout << "-I- : Added task " << recoSts->GetName() << std::endl;
   // ------------------------------------------------------------------------
 
 
diff --git a/macro/beamtime/cosy2019/sts_hodo_v19a_cosy_geo.root b/macro/beamtime/cosy2019/sts_hodo_v19a_cosy_geo.root
new file mode 100644
index 0000000000000000000000000000000000000000..0af3858f256e33283e122bc253583bc32fbc0925
Binary files /dev/null and b/macro/beamtime/cosy2019/sts_hodo_v19a_cosy_geo.root differ