diff --git a/macro/geometry/create_medialist.C b/macro/geometry/create_medialist.C
index f52add4207963aaa30b4007b545693b3ac2ac9ad..44f4d5fca99e39894e5159550883666bac64b100 100644
--- a/macro/geometry/create_medialist.C
+++ b/macro/geometry/create_medialist.C
@@ -5,7 +5,7 @@
 //forward declaration
 void loop_over_nodes(TObjArray*, TString&, CbmMediaList&);
 
-void create_medialist(TString inFileName = "")
+void create_medialist(TString inFileName = "", bool removegeomgr = true)
 {
 
   if (inFileName.Length() > 0) {
@@ -54,7 +54,8 @@ void create_medialist(TString inFileName = "")
   matlist.Write();
   outfile->Close();
 
-  RemoveGeoManager();
+  if (removegeomgr)
+    RemoveGeoManager();
 }
 
 void loop_over_nodes(TObjArray* nodes, TString& path, CbmMediaList& matlist)
diff --git a/macro/mcbm/geometry/trd/Create_TRD_Geometry_v22a.C b/macro/mcbm/geometry/trd/Create_TRD_Geometry_v22a.C
index 5fed432b7c4d07475934ed24d318bf100a05fb68..94e5e121b4281bad54f3fdef9cd4b0f8ad5246bc 100644
--- a/macro/mcbm/geometry/trd/Create_TRD_Geometry_v22a.C
+++ b/macro/mcbm/geometry/trd/Create_TRD_Geometry_v22a.C
@@ -8,9 +8,8 @@
 /// \file Create_TRD_Geometry_v22a.C
 /// \brief Generates TRD geometry in Root format.
 ///
-// 2021-10-28 - SR - v22c    - based on v22a the trd 2d-h is removed 
-// 2021-10-28 - SR - v22b    - based on v22a the trd 2d is removed 
-// 2021-10-07 - SR - v22a    - based on v20b the trd 2d is inserted
+// 2021-10-28 - SR - v22b    - based on v22a the TRD-2D is removed 
+// 2021-10-07 - SR - v22a    - based on v20b the TRD-2D is inserted
 // 2021-09-28 - SR - v21b    - based on v21a the position is corrected
 // 2021-07-25 - AB - v21a    - based on v20b, add 2 TRD2D modules and their support structure for the 2021 setup
 // 2020-05-25 - DE - v20b    - based on v20a, use 2 TRD modules for 2021 setup
@@ -111,11 +110,8 @@ const TString tagVersion = "v22a_mcbm";
 // const TString subVersion   = "_3m";
 
 const Int_t setupid = 1;  // 1e is the default
-// const Double_t zfront[5]  = { 260., 410., 360., 410., 550. };
-const Double_t zfront[5] = {260., 155., 360., 410., 550.};  // move 1st TRD to z=180 cm  // mCBM 2021_07
-// const Double_t zfront[5] = {260., 177., 360., 410., 550.};  // move 1st TRD
-// to z=177 cm
-// const Double_t zfront[5]  = { 260., 140., 360., 410., 550. };
+// const Double_t zfront[5]  = {260., 410., 360., 410., 550.};
+const Double_t zfront[5] = {260., 99., 360., 410., 550.};  // move 1st TRD-1D z=99 cm  // mCBM 2022_02
 const TString setupVer[5] = {"_1h", "_1e", "_1m", "_3e", "_3m"};
 const TString subVersion  = setupVer[setupid];
 
@@ -766,11 +762,7 @@ void Create_TRD_Geometry_v22a()
   trd->Export(FileNameSim);  // an alternative way of writing the trd volume
 
   TFile* outfile = new TFile(FileNameSim, "UPDATE");
-  //  TGeoTranslation* trd_placement = new TGeoTranslation("trd_trans", 0., 0.,
-  //  0.);
   TGeoTranslation* trd_placement = new TGeoTranslation("trd_trans", 0., 0., zfront[setupid]);
-  // TGeoTranslation* trd_placement = new TGeoTranslation("trd_trans", -7, 0.,
-  // zfront[setupid]);
   trd_placement->Write();
   outfile->Close();
 
@@ -788,6 +780,13 @@ void Create_TRD_Geometry_v22a()
   //  cout << "Press Return to exit" << endl;
   //  cin.get();
   //  exit();
+
+  // create medialist for this geometry
+  TString createmedialist = gSystem->Getenv("VMCWORKDIR");
+  createmedialist += "/macro/geometry/create_medialist.C";
+  std::cout << "Loading macro " << createmedialist << std::endl;
+  gROOT->LoadMacro(createmedialist);
+  gROOT->ProcessLine("create_medialist(\"\", false)");
 }
 
 //==============================================================
diff --git a/macro/mcbm/geometry/trd/Create_TRD_Geometry_v22b.C b/macro/mcbm/geometry/trd/Create_TRD_Geometry_v22b.C
index 7aa7392e74c70cd39c98992b296a24d767f31350..d9f3b3bebf4a26c195d4165c1eb435583927dc7b 100644
--- a/macro/mcbm/geometry/trd/Create_TRD_Geometry_v22b.C
+++ b/macro/mcbm/geometry/trd/Create_TRD_Geometry_v22b.C
@@ -116,10 +116,8 @@ const TString tagVersion = "v22b_mcbm";
 //const TString subVersion   = "_3m";
 
 const Int_t setupid = 1;  // 1e is the default
-//const Double_t zfront[5]  = { 260., 410., 360., 410., 550. };
-const Double_t zfront[5] = {260., 180., 360., 410., 550.};  // move 1st TRD to z=180 cm  // mCBM 2021_07
-//const Double_t zfront[5] = {260., 177., 360., 410., 550.};  // move 1st TRD to z=177 cm
-//const Double_t zfront[5]  = { 260., 140., 360., 410., 550. };
+//const Double_t zfront[5]  = {260., 410., 360., 410., 550.};
+const Double_t zfront[5] = {260., 180., 360., 410., 550.};  // move 1st TRD-1D z=99 cm  // mCBM 2022_02
 const TString setupVer[5] = {"_1h", "_1e", "_1m", "_3e", "_3m"};
 const TString subVersion  = setupVer[setupid];
 
@@ -668,9 +666,7 @@ void Create_TRD_Geometry_v22b()
   trd->Export(FileNameSim);  // an alternative way of writing the trd volume
 
   TFile* outfile = new TFile(FileNameSim, "UPDATE");
-  //  TGeoTranslation* trd_placement = new TGeoTranslation("trd_trans", 0., 0., 0.);
-  //  TGeoTranslation* trd_placement = new TGeoTranslation("trd_trans", 0., 0., zfront[setupid]);
-  TGeoTranslation* trd_placement = new TGeoTranslation("trd_trans", -7., 0., zfront[setupid]);
+  TGeoTranslation* trd_placement = new TGeoTranslation("trd_trans", 0., 0., zfront[setupid]);
   trd_placement->Write();
   outfile->Close();
 
@@ -688,6 +684,13 @@ void Create_TRD_Geometry_v22b()
   //  cout << "Press Return to exit" << endl;
   //  cin.get();
   //  exit();
+
+  // create medialist for this geometry                                                                   
+  TString createmedialist = gSystem->Getenv("VMCWORKDIR");
+  createmedialist += "/macro/geometry/create_medialist.C";
+  std::cout << "Loading macro " << createmedialist << std::endl;
+  gROOT->LoadMacro(createmedialist);
+  gROOT->ProcessLine("create_medialist(\"\", false)");
 }
 
 
diff --git a/macro/trd/create_digipar_root.C b/macro/trd/create_digipar_root.C
index 025c97f9b0d5287747c15791603e5a7c0d5dabe1..6310a9db13162f8f2f103d8fab740a06f4d8c244 100644
--- a/macro/trd/create_digipar_root.C
+++ b/macro/trd/create_digipar_root.C
@@ -14,15 +14,16 @@
 //
 // --------------------------------------------------------------------------
 
-void create_digipar_root(TString geoName = "trd_v13q", Bool_t asicFASP = kTRUE)
+void create_digipar_root(TString geoName = "trd_v22a_mcbm", Bool_t asicFASP = kTRUE)
 {
   TString inFile   = "data/test.mc." + geoName + ".root";
   TString geoFile  = "geofile_" + geoName + ".root";
   TString outFile  = "data/test.esd." + geoName + ".root";
   TString digiFile = geoName + ".par";  // Digi Parameter Output File
 
-  FairRunAna* run = new FairRunAna();
-  run->SetInputFile(inFile);
+  FairRunAna* run             = new FairRunAna();
+  FairFileSource* inputSource = new FairFileSource(inFile);
+  run->SetSource(inputSource);
   run->SetOutputFile(outFile);
   run->SetGeomFile(geoFile);
 
diff --git a/macro/trd/create_geometry_file_root.C b/macro/trd/create_geometry_file_root.C
index cce55d15ec097b90ed403f8750b1817db7ab2f12..8f7725e2ace3b7edc61d7227d98bb12f9905eb83 100644
--- a/macro/trd/create_geometry_file_root.C
+++ b/macro/trd/create_geometry_file_root.C
@@ -16,8 +16,15 @@
 //
 // --------------------------------------------------------------------------
 
-void create_geometry_file_root(TString geoName = "trd_v13q")
+void create_geometry_file_root(TString geoName = "trd_v22a_mcbm")
 {
+  TString srcDir = gSystem->Getenv("VMCWORKDIR");  // top source directory
+
+  // Set the path to the directory with macros for Geant3 and Geant4
+  // configuration
+  TString tut_configdir = srcDir + "/sim/transport/gconfig";
+  gSystem->Setenv("CONFIG_DIR", tut_configdir.Data());
+
   TString outDir  = "data";
   TString outFile = outDir + "/test.mc." + geoName + ".root";
   TString parFile = outDir + "/params.root";
@@ -38,6 +45,7 @@ void create_geometry_file_root(TString geoName = "trd_v13q")
     cave->SetGeometryFileName(caveGeom);
     run->AddModule(cave);
   }
+
   if (trdGeom != "") {
     FairDetector* trd = new CbmTrd("TRD", kTRUE);
     trd->SetGeometryFileName(trdGeom);