diff --git a/macro/matbudget_ana.C b/macro/matbudget_ana.C
index 028db6dd7729bf18c6477af40dd5666a6da5e492..bfee09ac48cdf85bbbed44f4946dcd5dcfe73fb1 100644
--- a/macro/matbudget_ana.C
+++ b/macro/matbudget_ana.C
@@ -32,14 +32,14 @@ using std::vector;
 
 //Int_t matbudget_ana(Int_t nEvents = 10      , const char* stsGeo = "v16v")
 //Int_t matbudget_ana(Int_t nEvents = 1000000 , const char* stsGeo = "v16v")
-//Int_t matbudget_ana(Int_t nEvents = 10000000, const char* Geo = "sts_v22e_mcbm")
-Int_t matbudget_ana(Int_t nEvents = 100000000, const char* Geo = "tof_v21d_mcbm")
+Int_t matbudget_ana(Int_t nEvents = 10000000, const char* Geo = "sts_v22f_mcbm")
+//Int_t matbudget_ana(Int_t nEvents = 100000000, const char* Geo = "tof_v21d_mcbm")
 {
   // start of the STS, start of Station 1, start of Station 2, start of Station 3, ...., start of Station 8, end of Station 8, end of STS
   //double boundaries[nStations + 3] = {-42.5, -20.5, -8.5, 2.0, 12.5, 23.0, 33.5, 44.0, 54.25, 64.75, 80.5};
 
   // trd_v22g_mcbm
-/*  const int nStations = 4;  
+/*  const int nStations = 4;
   double Tz = 162.2;
   double boundaries[nStations + 2] = {-300+Tz, -46+Tz, -26+Tz, -4+Tz, 21+Tz, 45+Tz};
   const double xMin = -105, xMax=55, yMin=-80, yMax=80;  // 160cm in x and y.
@@ -47,7 +47,7 @@ Int_t matbudget_ana(Int_t nEvents = 100000000, const char* Geo = "tof_v21d_mcbm"
 */
 
   // trd_v22h_mcbm
-/*  const int nStations = 3;  
+/*  const int nStations = 3;
   double Tz = 135.2;
   double boundaries[nStations + 2] = {-300+Tz, -25+Tz, 15+Tz, 50+Tz, 80+Tz};
   const double xMin = -80, xMax=80, yMin=-80, yMax=80;  // 160cm in x and y.
@@ -55,40 +55,39 @@ Int_t matbudget_ana(Int_t nEvents = 100000000, const char* Geo = "tof_v21d_mcbm"
 
 /*
   tof_v21h_mcbm
-  const int nStations = 4;  
+  const int nStations = 4;
   double Tz = 247.0;
   double boundaries[nStations + 2] = {-300+Tz, -10+Tz, 7+Tz, 21+Tz, 53+Tz, 68+Tz};
   const double xMin = -80, xMax=80, yMin=-80, yMax=80;  // 160cm in x and y.
 */
 
-/*
-  sts_v22e_mcbm
-  const int nStations = 2;  
+
+  // sts_v22f_mcbm
+  const int nStations = 2;
   double Tz = 40.0;
   double boundaries[nStations + 2] = {-300+Tz, -20+Tz, 0+Tz, 20+Tz};
   const double xMin = -80, xMax=80, yMin=-80, yMax=80;  // 160cm in x and y.
-*/
 
 
 /*
   // much v22k mcbm
-  const int nStations = 3;  
+  const int nStations = 3;
   double Tz = 0.0;
   double boundaries[nStations + 2] = {-100+Tz, 70+Tz, 94+Tz, 224+Tz, 340+Tz};
   const double xMin = -90, xMax=90, yMin=-80, yMax=80;  // 160cm in x and y.
 */
 
-
+/*
   // tof_v21d_mcbm
-  Double_t theta=-12.5*M_PI/180; //   
+  Double_t theta=-12.5*M_PI/180; //
 
-  const int nStations = 5;  
+  const int nStations = 5;
   double Tz = 247.0;
   double Tx = 53.0;
   double Ty = 0.0;
   double boundaries[nStations + 2] = {Tz-13.0, Tz+10.0, Tz+30.0, Tz+50.0, Tz+90.0, Tz+216.0, 220+Tz};
   const double xMin=-90+Tx, xMax=70+Tx, yMin=-80+Ty, yMax=80+Ty;  // 160cm in x and y.
-
+*/
   // Input file (MC)
   TString geoVersion(Geo);
   TString inFile = "data/matbudget." + geoVersion + ".mc.root";
@@ -190,7 +189,7 @@ Int_t matbudget_ana(Int_t nEvents = 100000000, const char* Geo = "tof_v21d_mcbm"
       const double radThick = posDif.Mag() / point->GetRadLength();
       RadLengthOnTrack[point->GetTrackID()] += radThick;
       TrackLength[point->GetTrackID()] += posDif.Mag();
-     
+
       iStation = 0;
       while (posIn.Z() > boundaries[iStation] && iStation <= nStations + 1)
       	iStation++;  // iStation 2 is the first station, iStation 1 is the material before the station
@@ -211,7 +210,7 @@ Int_t matbudget_ana(Int_t nEvents = 100000000, const char* Geo = "tof_v21d_mcbm"
         GeoRadThick[j] += radThick * (posOut.Z() - boundaries[j - 1]) / posDif.Mag();
       };
     };
-  
+
     RadThick = 0;
     // Fill material budget map for each station
     for (int i = 0; i <= nStations + 2; i++) {
@@ -245,8 +244,8 @@ Int_t matbudget_ana(Int_t nEvents = 100000000, const char* Geo = "tof_v21d_mcbm"
 
   // All plots on a single canvas
   TCanvas* can1 = new TCanvas("c", "c");
-  // can1->SetWindowSize(900,800);
-  can1->Divide(nStations / 2, 2);
+  can1->SetWindowSize(900,800);
+  can1->Divide(2, nStations / 2);
   //can1->Divide(2, 2);
   gStyle->SetPalette(1);
   gStyle->SetOptStat(0);
@@ -257,7 +256,7 @@ Int_t matbudget_ana(Int_t nEvents = 100000000, const char* Geo = "tof_v21d_mcbm"
     hStationRadLen[iStation]->GetYaxis()->SetTitle("y [cm]");
     hStationRadLen[iStation]->GetZaxis()->SetTitle("x/X_{0} [%]");
     // hStationRadLen[iStation]->GetZaxis()->SetTitle("radiation thickness [%]");
-    hStationRadLen[iStation]->SetAxisRange(0.0, 20, "Z"); 
+    hStationRadLen[iStation]->SetAxisRange(0.1, 6, "Z");
     // gPad->SetLogz();
     hStationRadLen[iStation]->Draw("colz");
     hStationRadLen[iStation]->Write();   // Writing the root file here
@@ -272,7 +271,7 @@ Int_t matbudget_ana(Int_t nEvents = 100000000, const char* Geo = "tof_v21d_mcbm"
 
 
 
-  // Total  material budget 
+  // Total  material budget
   TCanvas* can2 = new TCanvas("c2", "c2");
   can2->SetCanvasSize(900,800);
   //  can2->Divide(2, 1);
@@ -281,9 +280,9 @@ Int_t matbudget_ana(Int_t nEvents = 100000000, const char* Geo = "tof_v21d_mcbm"
   //can2->cd();
   hGeoRadLen->GetXaxis()->SetTitle("x [cm]");
   hGeoRadLen->GetYaxis()->SetTitle("y [cm]");
-  hGeoRadLen->SetAxisRange(0.01, 10, "Z");
+  hGeoRadLen->SetAxisRange(0.1, 10, "Z");
   gPad->SetLogz();
-  hGeoRadLen->Draw("colz"); 
+  hGeoRadLen->Draw("colz");
   plotFile = geoVersion + "_total_matbudget.png";
   can2->SaveAs(plotFile);
 
@@ -296,8 +295,8 @@ Int_t matbudget_ana(Int_t nEvents = 100000000, const char* Geo = "tof_v21d_mcbm"
   for (int iStation = 1; iStation < nStations+1; iStation++) {
     thisStation.Form("%d", iStation);
     gPad->SetLogz();
-    hStationRadLen[iStation+1]->Draw("colz"); 
-    hStationRadLen[iStation+1]->SetAxisRange(0.01, 40, "Z");
+    hStationRadLen[iStation+1]->Draw("colz");
+    hStationRadLen[iStation+1]->SetAxisRange(0.1, 6, "Z");
 
     // Plot file
     plotFile = geoVersion + "_station_" + thisStation + "_matbudget.png";
diff --git a/macro/matbudget_mc.C b/macro/matbudget_mc.C
index f2038bf2624729eba2ec91594fe6ff9f17fe5fc5..57cf1a0005cb29b66b118ce364bb59c810dba5e4 100644
--- a/macro/matbudget_mc.C
+++ b/macro/matbudget_mc.C
@@ -18,8 +18,8 @@
 #include "../../sim/transport/gconfig/g3Config.C"
 
 void matbudget_mc(
-const char* inGeo = "tof_v21d_mcbm",
-Int_t nEvents = 1000
+const char* inGeo = "sts_v22f_mcbm",
+Int_t nEvents = 10000000
 ){
   // ----- Paths and file names  --------------------------------------------
   TString geoVersion(inGeo);
@@ -34,13 +34,12 @@ Int_t nEvents = 1000
   TString targetGeom = "";
   TString pipeGeom   = "";
   TString magnetGeom = "";
-  TString mvdGeom    = ""; 
-  TString stsGeom    = ""; //sts/" + geoVersion + ".geo.root";                                  
+  TString mvdGeom    = "";
+  TString stsGeom    = "sts/" + geoVersion + ".geo.root";
   TString richGeom   = "";
-//  TString muchGeom   = "much/" + geoVersion + ".geo.root";
-  TString muchGeom   = "";
-  TString tofGeom    = "tof/" + geoVersion + ".geo.root";  // "mcbm/trd_v22g.geo.root";
-  TString trdGeom    = ""; //trd/" + geoVersion + ".geo.root";
+  TString muchGeom   = ""; // "much/" + geoVersion + ".geo.root";
+  TString tofGeom    = ""; // "tof/" + geoVersion + ".geo.root";
+  TString trdGeom    = ""; // "trd/" + geoVersion + ".geo.root";
 
   // In general, the following parts need not be touched
   // ========================================================================
@@ -128,13 +127,13 @@ Int_t nEvents = 1000
 
     FairDetector* tof = new CbmTof("TOF", kTRUE);
 
-    std::cout << "Rotating by -12.5" << std::endl;
-    TGeoMatrix* matr = new TGeoRotation("remove rotation");
-    matr->RotateY(-12.5);
-    matr->Print();
- 
+//    std::cout << "Rotating by -12.5" << std::endl;
+//    TGeoMatrix* matr = new TGeoRotation("remove rotation");
+//    matr->RotateY(-12.5);
+//    matr->Print();
+
 //    FairModule::SetDefaultMatrixName(matr);
-    tof->SetDefaultMatrixName(matr);
+//    tof->SetDefaultMatrixName(matr);
     tof->SetGeometryFileName(tofGeom);
     run->AddModule(tof);
   }
@@ -156,10 +155,10 @@ Int_t nEvents = 1000
   // The starting points in x and y are chosen such as to illuminate the STS.
   FairBoxGenerator* boxGen = new FairBoxGenerator(0, 1);
   // boxGen->SetBoxXYZ(-50.,-50.,50.,50.,0.);  // STS SIS100
-  // boxGen->SetBoxXYZ(-15.,-15.,15.,15.,0.);  // STS mCBM
+  boxGen->SetBoxXYZ(-80.,-80.,80.,80.,0.);  // STS mCBM w/ C frames
   // boxGen->SetBoxXYZ(-100.0, -100.0, 100, 100, -500.);  // MVD
 
-  boxGen->SetBoxXYZ(-70.0, -80.0, 70, 90, -500.);  // TOF v21d mcbm
+  // boxGen->SetBoxXYZ(-70.0, -80.0, 70, 90, -500.);  // TOF v21d mcbm
   boxGen->SetPRange(0.1, 0.5);
   boxGen->SetThetaRange(0., 0.);
   boxGen->SetPhiRange(0., 360.);
diff --git a/sts/matbudget_sts_v22f_mcbm.root b/sts/matbudget_sts_v22f_mcbm.root
new file mode 100644
index 0000000000000000000000000000000000000000..80b31f953078c96a9467a43cb6d49fadde388d15
Binary files /dev/null and b/sts/matbudget_sts_v22f_mcbm.root differ