diff --git a/.gitignore b/.gitignore
index 239fcefa5b5a2d453fa9e9a8a095a2573888a7c7..2745b1178c21b35b2a20b9d5a23f166416fd9e7f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,3 +9,15 @@
 
 # Comment some single files
 Dart*.cfg
+*.root
+*.pdf
+*.orig
+*.out
+*.old
+*core_dump*
+*.digi.par
+*0
+*1
+*.info
+*~
+external*
diff --git a/MQ/hitbuilder/startMQ_Mcbm2020.sh b/MQ/hitbuilder/startMQ_Mcbm2020.sh
index 945cd4a960118aa2a4e2699d0fcca51437367937..c6a28633dace96cee0c39293688a46db77d44d35 100644
--- a/MQ/hitbuilder/startMQ_Mcbm2020.sh
+++ b/MQ/hitbuilder/startMQ_Mcbm2020.sh
@@ -29,13 +29,13 @@ _Opt=$5
 
 _ntimeslices=-1
 #_ntimeslices=10000
-_iUnp=4
+_iUnp=1
 _batch=1
 _pulmulmin=5
 _pultotmin=50
 _pultotmax=500
+#_puldetref=12 # TSR=022
 _puldetref=16 # TSR=032
-#_puldetref=17 # TSR=032
 
 #_tofftof=0.  
 _tofftof=-30. 
@@ -69,10 +69,11 @@ fi
 #_digibdffile=/lustre/nyx/cbm/users/nh/CBM/cbmroot/trunk/parameters/tof/v18j_cosmicHD.digibdf.par
 #_digiparfile=/lustre/nyx/cbm/users/nh/CBM/cbmroot/trunk/parameters/tof/tof_v18j_cosmicHD.digi.par
 _digibdffile=/lustre/cbm/users/nh/CBM/cbmroot/trunk/parameters/tof/v19b_mcbm.digibdf.par
-_digiparfile=/lustre/cbm/users/nh/CBM/cbmroot/trunk/parameters/tof/tof_v19b_mcbm.digi.par
+#_digiparfile=/lustre/cbm/users/nh/CBM/cbmroot/trunk/parameters/tof/tof_v19b_mcbm.digi.par
 
 # ROOT files 
-_geofile=/lustre/cbm/users/nh/CBM/cbmroot/trunk/macro/beamtime/mcbm2018/tof_v18l_mCbm.par.root
+#_geofile=/lustre/cbm/users/nh/CBM/cbmroot/trunk/macro/beamtime/mcbm2018/tof_v18l_mCbm.par.root
+_geofile=/lustre/cbm/users/nh/CBM/cbmroot/trunk/macro/beamtime/mcbm2018/tof_mcbm_beam_2019_03.par.root
 
 # MQ ports
 _pPar=5603
@@ -81,7 +82,7 @@ _pCmd=5623
 _pDig=5633
 
 rm -v nohup.out 
-#rm -v *log
+rm -v *log
 rm all_*
 
 PARAMETERSERVER="parmq-server"
@@ -93,7 +94,8 @@ PARAMETERSERVER+=" --id parmq-server"
 PARAMETERSERVER+=" --channel-name parameters"
 PARAMETERSERVER+=" --channel-config name=parameters,type=rep,method=bind,rateLogging=0,transport=zeromq,address=tcp://127.0.0.1:$_pPar"
 #PARAMETERSERVER+=" --libs-to-load libCbmTof;libCbmFlibMcbm2018"
-PARAMETERSERVER+=" --first-input-name $_mapfile;$_digiparfile;$_digibdffile"
+#PARAMETERSERVER+=" --first-input-name $_mapfile;$_digiparfile;$_digibdffile"
+PARAMETERSERVER+=" --first-input-name $_mapfile;$_digibdffile"
 PARAMETERSERVER+=" --first-input-type ASCII"
 PARAMETERSERVER+=" --second-input-name $_geofile"
 PARAMETERSERVER+=" --second-input-type ROOT"
@@ -144,16 +146,17 @@ UNPACKER+=" --channel-config name=syscmd,type=sub,method=connect,rateLogging=0,t
 #UNPACKER+=" --severity DEBUG"
 UNPACKER+=" --severity  INFO"
 UNPACKER+=" --SelectComponents 1"
-#UNPACKER+=" --ReqBeam      20486" # diamond -> 0x00005006
+#UNPACKER+=" --ReqBeam      20486" # diamond -> 0x00005006 v14a
+UNPACKER+=" --ReqBeam      10246" # diamond -> 0x00002806 v21a
 if  [[ $_reqmod -lt 1 ]]; then
     UNPACKER+=" --ReqMode 0"
     case $_reqmod in
 	0)
 	    ;;
        -1)
-	    UNPACKER+=" --ReqDet0       20486" # diamond -> 0x00005006
-	    UNPACKER+=" --ReqDet1       65590" # RPC 031 -> 0x00010036
-	    UNPACKER+=" --ReqDet2       65606" # RPC 041
+	    UNPACKER+=" --ReqDet0       10246" # diamond -> 0x00002806 v21a
+	    UNPACKER+=" --ReqDet1       32822" # RPC 031 -> 0x00008036 v21a
+	    UNPACKER+=" --ReqDet2       32838" # RPC 041 -> 0x00008046 v21a
 	    ;;
        -2) 
 	    UNPACKER+=" --ReqDet0       20486" # diamond
@@ -166,12 +169,18 @@ if  [[ $_reqmod -lt 1 ]]; then
 	    UNPACKER+=" --ReqDet1      196662" # RPC 033
 	    UNPACKER+=" --ReqDet2      196678" # RPC 043
 	    ;; # for BUC
+	    
+       -4) # v21a address mode
+	    UNPACKER+=" --ReqDet0       10246" # diamond
+	    UNPACKER+=" --ReqDet1       65542" # RPC 002       
+	    UNPACKER+=" --ReqDet2       65574" # RPC 022       
+	    ;;
        
        -190) 
 	    UNPACKER+=" --ReqDet0       20486"  # diamond
 	    UNPACKER+=" --ReqDet1       65606"  # RPC 041
 	    UNPACKER+=" --ReqDet2       36870"  # RPC 900
-	    UNPACKER+=" --ReqDet3     102406"  # RPC 901
+	    UNPACKER+=" --ReqDet3      102406"  # RPC 901
 	    ;; # for  double stack calibration
        
        -191) 
@@ -213,10 +222,10 @@ UNPACKER+=" --PulMulMin $_pulmulmin"
 UNPACKER+=" --PulTotMin $_pultotmin"
 UNPACKER+=" --PulTotMax $_pultotmax"
 UNPACKER+=" --ToffTof $_tofftof"
-UNPACKER+=" --RefModType 5"
+UNPACKER+=" --RefModType    5"
 UNPACKER+=" --RefModId      0"
-UNPACKER+=" --RefCtrType  4"
-UNPACKER+=" --RefCtrId        0"
+UNPACKER+=" --RefCtrType    0"
+UNPACKER+=" --RefCtrId      0"
 if  [[ $_batch = 1 ]]; then 
 UNPACKER+=" --control static"
 UNPACKER+=" --log-to-file Unp$_iUnp.out"
@@ -242,7 +251,8 @@ HITBUILDER+=" --severity INFO"
 #HITBUILDER+=" --severity WARN"
 HITBUILDER+=" --OutRootFile $_outdir$_digifile"
 #HITBUILDER+=" --MaxEvent 10000000"
-HITBUILDER+=" --RunId 1552883952"
+#HITBUILDER+=" --RunId 1552883952"
+HITBUILDER+=" --RunId 1601311083"
 HITBUILDER+=" --PulserMode $_pulmode"
 HITBUILDER+=" --PulMulMin $_pulmulmin"
 HITBUILDER+=" --PulTotMin $_pultotmin"
diff --git a/analysis/detectors/tof/CbmTofAnaTestbeam.cxx b/analysis/detectors/tof/CbmTofAnaTestbeam.cxx
index 212359bd09076d287d0b7925fa6c4acd9cfc6c19..baeb24620c72b6e6299bea0b73bdc9296ce87d3e 100644
--- a/analysis/detectors/tof/CbmTofAnaTestbeam.cxx
+++ b/analysis/detectors/tof/CbmTofAnaTestbeam.cxx
@@ -79,7 +79,6 @@ Double_t dTDia;
 Double_t dDTD4Min                 = 1.E8;
 static Double_t StartAnalysisTime = 0.;
 static Double_t dTLEvt            = 0.;
-static Double_t StartSpillTime    = -100.;
 
 Int_t iNspills = 0;
 
@@ -549,6 +548,7 @@ CbmTofAnaTestbeam::CbmTofAnaTestbeam(const char* name, Int_t verbose)
   , fdMulDMax(0.)
   , fdSpillDuration(20.)
   , fdSpillBreak(0.9)
+  , fdStartSpillTime(-100)
   , fdDTDia(0.)
   , fdDTD4MAX(0.)
   , fdMul0Max(0.)
@@ -4827,23 +4827,23 @@ Bool_t CbmTofAnaTestbeam::FillHistos() {
 
 
   /*
-   if( dMulD>0 && dMul4>0 && dMul0>0 && dTDia - StartSpillTime > SpillDuration*1.E9 ) {
-     Double_t dDTSpill=dTDia-StartSpillTime;
-     StartSpillTime=dTDia;
+   if( dMulD>0 && dMul4>0 && dMul0>0 && dTDia - fdStartSpillTime > SpillDuration*1.E9 ) {
+     Double_t dDTSpill=dTDia-fdStartSpillTime;
+     fdStartSpillTime=dTDia;
    */
-  if (fdSpillBreak == 0.) StartSpillTime = dTAv;
+  if (fdSpillBreak == 0.) fdStartSpillTime = dTAv;
 
-  Double_t dDTSpill = dTAv - StartSpillTime;
+  Double_t dDTSpill = dTAv - fdStartSpillTime;
   if (fDetIdMap.size() > 3 && dMulD > 0) {  // FIXME - hardwired constants
     Double_t dDTLEvt = dTAv - dTLEvt;
     dTLEvt           = dTAv;
     if (dDTLEvt > fdSpillBreak * 1.E9 && dDTSpill > fdSpillDuration * 1.E9) {
-      StartSpillTime = dTAv;
+      fdStartSpillTime = dTAv;
       iNspills++;
       LOG(info) << "StartSpillTime for " << iNspills
                 << Form(". spill set to %f ns after %7.4f s, at event %d with "
                         "MulD %2.0f, MulDet %d, DTLE %7.4f s ",
-                        StartSpillTime,
+                        fdStartSpillTime,
                         dDTSpill / 1.E9,
                         fEvents,
                         dMulD,
@@ -4853,7 +4853,7 @@ Bool_t CbmTofAnaTestbeam::FillHistos() {
   }
   Double_t dTIR = (dTAv - StartAnalysisTime) / 1.E9;
   fhRate_all->Fill(dTIR, 1. / fhRate_all->GetBinWidth(1));
-  if (StartSpillTime < 0) {
+  if (fdStartSpillTime < 0) {
     LOG(debug) << "SpillStartTime not available, abort Anatestbeam ";
     return kFALSE;
   }
@@ -4913,7 +4913,7 @@ Bool_t CbmTofAnaTestbeam::FillHistos() {
   if (fTrbHeader != NULL)
     fhTIS_all->Fill(fTrbHeader->GetTimeInSpill());
   else
-    fhTIS_all->Fill((dTAv - StartSpillTime) / 1.E9);
+    fhTIS_all->Fill((dTAv - fdStartSpillTime) / 1.E9);
 
   fhTIR_all->Fill(dTIR);
 
@@ -4929,10 +4929,10 @@ Bool_t CbmTofAnaTestbeam::FillHistos() {
 
   if (BSel[0]) {
     fhSelEfficiency->Fill(kTRUE, fiNAccRefTracks);
-    fhSelHitTupleEfficiencyTIS->Fill(kTRUE, (dTAv - StartSpillTime) / 1.E9);
+    fhSelHitTupleEfficiencyTIS->Fill(kTRUE, (dTAv - fdStartSpillTime) / 1.E9);
   } else {
     fhSelEfficiency->Fill(kFALSE, fiNAccRefTracks);
-    fhSelHitTupleEfficiencyTIS->Fill(kFALSE, (dTAv - StartSpillTime) / 1.E9);
+    fhSelHitTupleEfficiencyTIS->Fill(kFALSE, (dTAv - fdStartSpillTime) / 1.E9);
   }
 
 
@@ -4944,7 +4944,7 @@ Bool_t CbmTofAnaTestbeam::FillHistos() {
     if (fTrbHeader != NULL)
       fhTIS_sel->Fill(fTrbHeader->GetTimeInSpill());
     else
-      fhTIS_sel->Fill((dTAv - StartSpillTime) / 1.E9);
+      fhTIS_sel->Fill((dTAv - fdStartSpillTime) / 1.E9);
     fhTIR_sel->Fill(dTIR);
 
     fhTofD4sel->Fill(pHitRef->GetTime() - dTDia);  //  general normalisation
@@ -5059,7 +5059,7 @@ Bool_t CbmTofAnaTestbeam::FillHistos() {
       if (fTrbHeader != NULL)
         fhTIS_sel2->Fill(fTrbHeader->GetTimeInSpill());
       else
-        fhTIS_sel2->Fill((dTAv - StartSpillTime) / 1.E9);
+        fhTIS_sel2->Fill((dTAv - fdStartSpillTime) / 1.E9);
       fhTIR_sel2->Fill(dTIR);
 
       if (NULL != fClusterizer)
@@ -5425,12 +5425,12 @@ Bool_t CbmTofAnaTestbeam::FillHistos() {
 
         fhSelMatchEfficiency->Fill(kTRUE, fiNAccRefTracks);
         fhSelHitTupleMatchEfficiencyTIS->Fill(kTRUE,
-                                              (dTAv - StartSpillTime) / 1.E9);
+                                              (dTAv - fdStartSpillTime) / 1.E9);
 
         if (fTrbHeader != NULL)
           fhTIS_sel1->Fill(fTrbHeader->GetTimeInSpill());
         else
-          fhTIS_sel1->Fill((dTAv - StartSpillTime) / 1.E9);
+          fhTIS_sel1->Fill((dTAv - fdStartSpillTime) / 1.E9);
         fhTIR_sel1->Fill(dTIR);
 
         if (NULL != fClusterizer)
@@ -5572,7 +5572,7 @@ Bool_t CbmTofAnaTestbeam::FillHistos() {
         if (fTrbHeader != NULL)
           fhTISDT04D4best->Fill(fTrbHeader->GetTimeInSpill(), dToD);
         else
-          fhTISDT04D4best->Fill((dTAv - StartSpillTime) / 1.E9, dToD);
+          fhTISDT04D4best->Fill((dTAv - fdStartSpillTime) / 1.E9, dToD);
 
         if (fbMonteCarloComparison) {
           Int_t iDutHitInd = fTofHitsColl->IndexOf(pHit1);
@@ -5907,15 +5907,15 @@ Bool_t CbmTofAnaTestbeam::FillHistos() {
         fhSelTypeNNResidualX->Fill(0., xPos1 - xPos2 - fdDXMean);
         fhSelTypeNNResidualY->Fill(0., yPos1 - yPos2 - fdDYMean);
 
-        fhSelHitTupleResidualTTIS->Fill((dTAv - StartSpillTime) / 1.E9, dToD);
-        fhSelHitTupleDutCluSizeTIS->Fill((dTAv - StartSpillTime) / 1.E9,
+        fhSelHitTupleResidualTTIS->Fill((dTAv - fdStartSpillTime) / 1.E9, dToD);
+        fhSelHitTupleDutCluSizeTIS->Fill((dTAv - fdStartSpillTime) / 1.E9,
                                          dCluSize0);
 
       }  // fdChi2Lim end
       else {
         fhSelMatchEfficiency->Fill(kFALSE, fiNAccRefTracks);
         fhSelHitTupleMatchEfficiencyTIS->Fill(kFALSE,
-                                              (dTAv - StartSpillTime) / 1.E9);
+                                              (dTAv - fdStartSpillTime) / 1.E9);
 
         fhSelTypeNNChiSq->Fill(0., 3. * Chi2List[iM0]);
         fhSelTypeNNResidualT->Fill(0., dToD);
@@ -5947,7 +5947,7 @@ Bool_t CbmTofAnaTestbeam::FillHistos() {
     else {
       fhSelMatchEfficiency->Fill(kFALSE, fiNAccRefTracks);
       fhSelHitTupleMatchEfficiencyTIS->Fill(kFALSE,
-                                            (dTAv - StartSpillTime) / 1.E9);
+                                            (dTAv - fdStartSpillTime) / 1.E9);
     }
   }  // BSel[0] condition end
 
@@ -5980,14 +5980,14 @@ Bool_t CbmTofAnaTestbeam::FillHistos() {
      } //(fdMemoryTime > 0.) end
      */
 
-  fhTIS_Nhit->Fill((dTAv - StartSpillTime) / 1.E9, (Double_t) iNbTofHits);
+  fhTIS_Nhit->Fill((dTAv - fdStartSpillTime) / 1.E9, (Double_t) iNbTofHits);
   if (NULL != fTofTrackColl && NULL != fFindTracks) {
     Bool_t bSelTrackletFound(kFALSE);
     Int_t iBestTrklFitIndex(-1);
     Double_t dBestTrklFitRedChiSq(1.E300);
 
     iNbTofTracks = fTofTrackColl->GetEntries();
-    fhTIS_Ntrk->Fill((dTAv - StartSpillTime) / 1.E9, (Double_t) iNbTofTracks);
+    fhTIS_Ntrk->Fill((dTAv - fdStartSpillTime) / 1.E9, (Double_t) iNbTofTracks);
 
     Int_t NStations = fFindTracks->GetNStations();
     LOG(debug) << Form("Tracklet analysis of %d tracklets from %d stations",
@@ -6051,12 +6051,12 @@ Bool_t CbmTofAnaTestbeam::FillHistos() {
           }
 
           fhTrklNofHitsRateInSpill->Fill(
-            (pTrk->GetTime() - StartSpillTime) / 1.E9,
+            (pTrk->GetTime() - fdStartSpillTime) / 1.E9,
             pTrk->GetNofHits());  // Monitor tracklet size
           for (Int_t iTH = 0; iTH < pTrk->GetNofHits();
                iTH++) {  // Loop over Tracklet hits
             fhTrklDetHitRateInSpill->Fill(
-              (pTrk->GetTime() - StartSpillTime) / 1.E9,  // Station hit rate
+              (pTrk->GetTime() - fdStartSpillTime) / 1.E9,  // Station hit rate
               fFindTracks->GetStationOfAddr(
                 pTrk->GetTofHitPointer(iTH)->GetAddress() & DetMask));
           }
@@ -6273,7 +6273,7 @@ Bool_t CbmTofAnaTestbeam::FillHistos() {
 
         // fill tracklet histos
         Double_t dTiS =
-          (dTAv - StartSpillTime) / 1.E9;  // Time in Spill of current event
+          (dTAv - fdStartSpillTime) / 1.E9;  // Time in Spill of current event
         for (Int_t iTrk = 0; iTrk < iNbTofTracks;
              iTrk++) {  // loop over all Tracklets
           CbmTofTracklet* pTrk = (CbmTofTracklet*) fTofTrackColl->At(iTrk);
@@ -6707,7 +6707,7 @@ Bool_t CbmTofAnaTestbeam::FillHistos() {
 
             fhSelTrklMatchEfficiency->Fill(kTRUE, fiNAccRefTracks);
             fhSelTrklMatchEfficiencyTIS->Fill(kTRUE,
-                                              (dTAv - StartSpillTime) / 1.E9);
+                                              (dTAv - fdStartSpillTime) / 1.E9);
 
             if (fbMonteCarloComparison) {
               if (fbAttachDutHitToTracklet) {
@@ -6825,10 +6825,10 @@ Bool_t CbmTofAnaTestbeam::FillHistos() {
               CbmMatch* tDutHitDigiMatch =
                 dynamic_cast<CbmMatch*>(fTofDigiMatchColl->At(iDutHitIndex));
 
-              fhSelTrklResidualTTIS->Fill((dTAv - StartSpillTime) / 1.E9,
+              fhSelTrklResidualTTIS->Fill((dTAv - fdStartSpillTime) / 1.E9,
                                           pHit->GetTime()
                                             - pTrk->GetFitT(pHit->GetZ()));
-              fhSelTrklDutCluSizeTIS->Fill((dTAv - StartSpillTime) / 1.E9,
+              fhSelTrklDutCluSizeTIS->Fill((dTAv - fdStartSpillTime) / 1.E9,
                                            tDutHitDigiMatch->GetNofLinks() / 2);
             }
 
@@ -6893,7 +6893,7 @@ Bool_t CbmTofAnaTestbeam::FillHistos() {
 
             fhSelTrklMatchEfficiency->Fill(kFALSE, fiNAccRefTracks);
             fhSelTrklMatchEfficiencyTIS->Fill(kFALSE,
-                                              (dTAv - StartSpillTime) / 1.E9);
+                                              (dTAv - fdStartSpillTime) / 1.E9);
           }
 
           // no match for this track
@@ -6943,7 +6943,7 @@ Bool_t CbmTofAnaTestbeam::FillHistos() {
 
             fhSelTrklMatchEfficiency->Fill(kFALSE, fiNAccRefTracks);
             fhSelTrklMatchEfficiencyTIS->Fill(kFALSE,
-                                              (dTAv - StartSpillTime) / 1.E9);
+                                              (dTAv - fdStartSpillTime) / 1.E9);
           }
 
         }  // end of loop over all tracklets
@@ -7044,10 +7044,10 @@ Bool_t CbmTofAnaTestbeam::FillHistos() {
 
     if (bSelTrackletFound) {
       fhSelTrklEfficiency->Fill(kTRUE, fiNAccRefTracks);
-      fhSelTrklEfficiencyTIS->Fill(kTRUE, (dTAv - StartSpillTime) / 1.E9);
+      fhSelTrklEfficiencyTIS->Fill(kTRUE, (dTAv - fdStartSpillTime) / 1.E9);
     } else {
       fhSelTrklEfficiency->Fill(kFALSE, fiNAccRefTracks);
-      fhSelTrklEfficiencyTIS->Fill(kFALSE, (dTAv - StartSpillTime) / 1.E9);
+      fhSelTrklEfficiencyTIS->Fill(kFALSE, (dTAv - fdStartSpillTime) / 1.E9);
     }
 
   }  // (NULL!=fTofTrackColl && NULL != fFindTracks) end
@@ -7344,7 +7344,7 @@ Bool_t CbmTofAnaTestbeam::FillHistos() {
 
               fhSelMCTrackMatchEfficiency->Fill(kTRUE, fiNAccRefTracks);
               fhSelMCTrackMatchEfficiencyTIS->Fill(
-                kTRUE, (dTAv - StartSpillTime) / 1.E9);
+                kTRUE, (dTAv - fdStartSpillTime) / 1.E9);
 
               if (bGoodSelDutMatch) {
                 fhSelMCTrackMatchPurity->Fill(kTRUE, fiNAccRefTracks);
@@ -7355,10 +7355,10 @@ Bool_t CbmTofAnaTestbeam::FillHistos() {
               CbmMatch* tDutHitDigiMatch =
                 dynamic_cast<CbmMatch*>(fTofDigiMatchColl->At(iDutHit));
 
-              fhSelMCTrackResidualTTIS->Fill((dTAv - StartSpillTime) / 1.E9,
+              fhSelMCTrackResidualTTIS->Fill((dTAv - fdStartSpillTime) / 1.E9,
                                              tHit->GetTime() - tPoint->GetTime()
                                                - dMCEventStartTime);
-              fhSelMCTrackDutCluSizeTIS->Fill((dTAv - StartSpillTime) / 1.E9,
+              fhSelMCTrackDutCluSizeTIS->Fill((dTAv - fdStartSpillTime) / 1.E9,
                                               tDutHitDigiMatch->GetNofLinks()
                                                 / 2);
             } else {
@@ -7370,12 +7370,12 @@ Bool_t CbmTofAnaTestbeam::FillHistos() {
 
               fhSelMCTrackMatchEfficiency->Fill(kFALSE, fiNAccRefTracks);
               fhSelMCTrackMatchEfficiencyTIS->Fill(
-                kFALSE, (dTAv - StartSpillTime) / 1.E9);
+                kFALSE, (dTAv - fdStartSpillTime) / 1.E9);
             }
           } else {
             fhSelMCTrackMatchEfficiency->Fill(kFALSE, fiNAccRefTracks);
             fhSelMCTrackMatchEfficiencyTIS->Fill(
-              kFALSE, (dTAv - StartSpillTime) / 1.E9);
+              kFALSE, (dTAv - fdStartSpillTime) / 1.E9);
           }
 
 
@@ -7395,16 +7395,16 @@ Bool_t CbmTofAnaTestbeam::FillHistos() {
 
           fhSelMCTrackEfficiency->Fill(kTRUE, fiNAccRefTracks);
           fhSelMCTrackEfficiencyTIS->Fill(kTRUE,
-                                          (dTAv - StartSpillTime) / 1.E9);
+                                          (dTAv - fdStartSpillTime) / 1.E9);
         } else {
           fhSelMCTrackEfficiency->Fill(kFALSE, fiNAccRefTracks);
           fhSelMCTrackEfficiencyTIS->Fill(kFALSE,
-                                          (dTAv - StartSpillTime) / 1.E9);
+                                          (dTAv - fdStartSpillTime) / 1.E9);
         }
 
       } else {
         fhSelMCTrackEfficiency->Fill(kFALSE, fiNAccRefTracks);
-        fhSelMCTrackEfficiencyTIS->Fill(kFALSE, (dTAv - StartSpillTime) / 1.E9);
+        fhSelMCTrackEfficiencyTIS->Fill(kFALSE, (dTAv - fdStartSpillTime) / 1.E9);
       }
     }
   }
diff --git a/analysis/detectors/tof/CbmTofAnaTestbeam.h b/analysis/detectors/tof/CbmTofAnaTestbeam.h
index 62df4fa8d3c0f9f2c291b88bff0764925c9f0d16..7d828a0a31b688b899e5e4ad48797f6ef82f82ae 100644
--- a/analysis/detectors/tof/CbmTofAnaTestbeam.h
+++ b/analysis/detectors/tof/CbmTofAnaTestbeam.h
@@ -116,6 +116,7 @@ public:
   inline void SetSel2TOff(Double_t val) { fdSel2TOff = val; }
   inline void SetSpillDuration(Double_t val) { fdSpillDuration = val; }
   inline void SetSpillBreak(Double_t val) { fdSpillBreak = val; }
+  inline void SetStartSpillTime(Double_t val) { fdStartSpillTime = val; }
   inline void SetMulDMax(Double_t val) { fdMulDMax = val; }
   inline void SetDTDia(Double_t val) { fdDTDia = val; }
   inline void SetDTD4MAX(Double_t val) { fdDTD4MAX = val; }
@@ -728,6 +729,7 @@ private:
   Double_t fdMulDMax;                   // max multiplicity in Diamond counter
   Double_t fdSpillDuration;             // min. spill length in sec
   Double_t fdSpillBreak;                // min. spill break in sec
+  Double_t fdStartSpillTime;            // Start of Spill, if negative find begin of first spill
   Double_t fdDTDia;                     // max time difference between diamonds
   Double_t fdDTD4MAX;       // max time difference between reference & diamond
   Double_t fdMul0Max;       // max multiplicity in Dut
diff --git a/core/detectors/tof/CbmTofGeoHandler.cxx b/core/detectors/tof/CbmTofGeoHandler.cxx
index 51b61a244108516e5fdee24ee2f89000dc6be9b6..16aa53a049ffc1bbecf8d0144cd1acb781ff29ca 100644
--- a/core/detectors/tof/CbmTofGeoHandler.cxx
+++ b/core/detectors/tof/CbmTofGeoHandler.cxx
@@ -111,7 +111,6 @@ Int_t CbmTofGeoHandler::CheckGeometryVersion() {
                  || (TString(node->GetName()).Contains("v16e"))
                  || (TString(node->GetName()).Contains("v17a"))
                  || (TString(node->GetName()).Contains("v17c"))
-                 || (TString(node->GetName()).Contains("v18"))
                  || (TString(node->GetName()).Contains("v19"))) {
         LOG(info)
           << "CbmTofGeoHandler::CheckGeometryVersion: Found TOF geometry "
@@ -131,6 +130,7 @@ Int_t CbmTofGeoHandler::CheckGeometryVersion() {
         }
         return fGeoVersion;
       } else if ((TString(node->GetName()).Contains("v21"))
+                 || (TString(node->GetName()).Contains("v18"))
                  || (TString(node->GetName()).Contains("v20"))) {
         LOG(info)
           << "CbmTofGeoHandler::CheckGeometryVersion: Found TOF geometry "
diff --git a/macro/beamtime/mcbm2020/ana_trks.C b/macro/beamtime/mcbm2020/ana_trks.C
index 835bcb842d21d993ffa16717a3ed3e22befdffea..57810219c5f23fd7c1850399b2c4583a0f058070 100644
--- a/macro/beamtime/mcbm2020/ana_trks.C
+++ b/macro/beamtime/mcbm2020/ana_trks.C
@@ -47,16 +47,16 @@ void ana_trks(Int_t nEvents        = 10000,
   TString cHstFile =
     paramDir
     + Form(
-      "/hst/%s_%03.0f_%s_%06d_%03d_%03.1f_%03.1f_trk%03d_Cal%s_Ana.hst.root",
-      cFileId.Data(),
-      dDeadtime,
-      cSet.Data(),
-      iSel,
-      iSel2,
-      dScalFac,
-      dChi2Lim2,
-      iTrackingSetup,
-      cCalId.Data());
+        "/hst/%s_%03.0f_%s_%06d_%03d_%03.1f_%03.1f_trk%03d_Cal%s_Ana.hst.root",
+        cFileId.Data(),
+        dDeadtime,
+        cSet.Data(),
+        iSel,
+        iSel2,
+        dScalFac,
+        dChi2Lim2,
+        iTrackingSetup,
+        cCalId.Data());
   TString cTrkFile = Form("%s_tofFindTracks.hst.root", cCalId.Data());
   TString cAnaFile = Form("%s_TrkAnaTestBeam.hst.root", cFileId.Data());
 
@@ -73,11 +73,11 @@ void ana_trks(Int_t nEvents        = 10000,
     if (iRun < 690)
       TofGeo = "v20a_mcbm";
     else
-      TofGeo = "v20b_mcbm";
+      TofGeo = "v20f_mcbm";
     cout << "Geometry version " << TofGeo << endl;
 
-    TObjString* tofDigiBdfFile = new TObjString(workDir + "/parameters/tof/tof_"
-                                                + TofGeo + ".digibdf.par");
+    TObjString* tofDigiBdfFile =
+      new TObjString(workDir + "/parameters/tof/tof_" + TofGeo + ".digibdf.par");
     parFileList->Add(tofDigiBdfFile);
 
     TString geoDir  = gSystem->Getenv("VMCWORKDIR");
@@ -192,12 +192,12 @@ void ana_trks(Int_t nEvents        = 10000,
   tofFindTracks->SetCalOpt(
     iCalOpt);  // 1 - update offsets, 2 - update walk, 0 - bypass
   tofFindTracks->SetCorMode(iGenCor);  // valid options: 0,1,2,3,4,5,6, 10 - 19
-  tofFindTracks->SetTtTarg(
-    0.0605);  // target value for Mar2020 triple stack -> betapeak ~ 0.95
-  //tofFindTracks->SetTtTarg(0.062);              // target value for Mar2020 triple stack -> betapeak ~ 0.95
-  //tofFindTracks->SetTtTarg(0.058);            // target value for Mar2020 double stack
-  //tofFindTracks->SetTtTarg(0.051);            // target value Nov2019
-  //tofFindTracks->SetTtTarg(0.035);            // target value for inverse velocity, > 0.033 ns/cm!
+  tofFindTracks->SetTtTarg(0.065);          // target value for Mar2020 triple stack -> betapeak ~ 0.95
+  //tofFindTracks->SetTtTarg(0.0605);  // target value for Mar2020 triple stack -> betapeak ~ 0.95
+  //tofFindTracks->SetTtTarg(0.058);          // target value for Mar2020 double stack
+  //tofFindTracks->SetTtTarg(0.055);            // target value Nov2019 (triple stack run 831)
+  //tofFindTracks->SetTtTarg(0.048);          // target value Nov2019 (double stack run 714)
+  //tofFindTracks->SetTtTarg(0.035);          // target value for inverse velocity, > 0.033 ns/cm!
   tofFindTracks->SetCalParFileName(
     cTrkFile);                             // Tracker parameter value file name
   tofFindTracks->SetBeamCounter(5, 0, 0);  // default beam counter
@@ -418,14 +418,25 @@ void ana_trks(Int_t nEvents        = 10000,
       tofFindTracks->SetStation(5, iDut, iDutSm, iDutRpc);
       break;
 
+    case 9:  // calibration of Star2 
+      iMinNofHits   = 4;
+      iNStations    = 5;
+      iNReqStations = 5;
+      tofFindTracks->SetStation(0, 5, 0, 0);
+      tofFindTracks->SetStation(2, 9, 0, 1);
+      tofFindTracks->SetStation(1, 0, 4, 1);
+      tofFindTracks->SetStation(3, 9, 0, 0);
+      tofFindTracks->SetStation(4, 0, 3, 1);
+      break;
+
     case 10:
       iMinNofHits   = 3;
       iNStations    = 4;
       iNReqStations = 4;
       tofFindTracks->SetStation(0, 5, 0, 0);
-      tofFindTracks->SetStation(1, 0, 1, 2);
+      tofFindTracks->SetStation(3, 0, 1, 2);
       tofFindTracks->SetStation(2, 0, 0, 2);
-      tofFindTracks->SetStation(3, 0, 2, 2);
+      tofFindTracks->SetStation(1, 0, 2, 2);
       break;
 
     default:
diff --git a/macro/beamtime/mcbm2020/ana_trks_eval.C b/macro/beamtime/mcbm2020/ana_trks_eval.C
index 71d8156c5e6bf712aa9643d91607cdad82d3409a..3a023191830b3ff952849c00e793d883589185ea 100644
--- a/macro/beamtime/mcbm2020/ana_trks_eval.C
+++ b/macro/beamtime/mcbm2020/ana_trks_eval.C
@@ -41,9 +41,12 @@ void ana_trks_eval(Int_t nEvents        = 10000,
     InputDigiFile = paramDir + "/data/" + cFileId.Data() + ".rec.root";
     iRun          = 700;
   }
-  TString OutputFile = paramDir + "/data/hits_" + cFileId.Data()
+  TString InputTrklFile = paramDir + "/data/hits_" + cFileId.Data()
                        + Form("_%s_%06d_%03d", cSet.Data(), iSel, iSel2)
                        + ".out.root";
+  TString OutputFile = paramDir + "/data/ana_" + cFileId.Data()
+                       + Form("_%s_%06d_%03d", cSet.Data(), iSel, iSel2)
+                       + ".out.root";                       
   TString cHstFile =
     paramDir
     + Form(
@@ -61,6 +64,7 @@ void ana_trks_eval(Int_t nEvents        = 10000,
   TString cAnaFile = Form("%s_TrkAnaTestBeam.hst.root", cFileId.Data());
 
   cout << " InputDigiFile = " << InputDigiFile << endl;
+  cout << " InputTrklFile = " << InputTrklFile << endl;
 
   TString shcmd = "rm -v " + ParFile;
   gSystem->Exec(shcmd.Data());
@@ -73,11 +77,11 @@ void ana_trks_eval(Int_t nEvents        = 10000,
     if (iRun < 690)
       TofGeo = "v20a_mcbm";
     else
-      TofGeo = "v20b_mcbm";
+      TofGeo = "v20f_mcbm";
     cout << "Geometry version " << TofGeo << endl;
 
     TObjString* tofDigiBdfFile =
-      new TObjString(workDir + "/parameters/tof/" + TofGeo + ".digibdf.par");
+      new TObjString(workDir + "/parameters/tof/tof_" + TofGeo + ".digibdf.par");
     parFileList->Add(tofDigiBdfFile);
 
     TString geoDir  = gSystem->Getenv("VMCWORKDIR");
@@ -109,8 +113,9 @@ void ana_trks_eval(Int_t nEvents        = 10000,
   //run->SetInputFile(InputFile.Data());
   //run->AddFriend(InputDigiFile.Data());
   run->SetInputFile(InputDigiFile.Data());
-  //run->AddFriend(InputFile.Data());
-  //run->SetOutputFile(OutputFile);
+  //run->AddFriend(InputTrklFile.Data());
+  //run->SetInputFile(InputTrklFile.Data());
+
   run->SetUserOutputFileName(OutputFile.Data());
   run->SetSink(new FairRootFileSink(run->GetUserOutputFileName()));
 
@@ -232,8 +237,8 @@ void ana_trks_eval(Int_t nEvents        = 10000,
       tofFindTracks->SetSIGT(dTsig);  // allow for variable deviations in ns
     }
       iMinNofHits   = 3;
-      iNStations    = 30;
-      iNReqStations = 3;
+      iNStations    = 28;
+      iNReqStations = 4;
       tofFindTracks->SetStation(0, 5, 0, 0);
       tofFindTracks->SetStation(1, 0, 2, 2);
       tofFindTracks->SetStation(2, 0, 1, 2);
@@ -262,8 +267,8 @@ void ana_trks_eval(Int_t nEvents        = 10000,
       tofFindTracks->SetStation(25, 0, 3, 4);
       tofFindTracks->SetStation(26, 9, 0, 0);
       tofFindTracks->SetStation(27, 9, 0, 1);
-      tofFindTracks->SetStation(28, 6, 0, 0);
-      tofFindTracks->SetStation(29, 6, 0, 1);
+      //tofFindTracks->SetStation(28, 6, 0, 0);
+      //tofFindTracks->SetStation(29, 6, 0, 1);
       break;
 
     case 2:
@@ -349,26 +354,50 @@ void ana_trks_eval(Int_t nEvents        = 10000,
       tofFindTracks->SetStation(3, iDut, iDutSm, iDutRpc);
       break;
 
+    case 40:
+      iMinNofHits   = 3;
+      iNStations    = 15;
+      iNReqStations = 4;
+      tofFindTracks->SetStation(0, 0, 2, 2);
+      tofFindTracks->SetStation(1, 0, 1, 2);
+      tofFindTracks->SetStation(2, 0, 0, 2);
+      tofFindTracks->SetStation(0, 0, 2, 1);
+      tofFindTracks->SetStation(1, 0, 1, 1);
+      tofFindTracks->SetStation(2, 0, 0, 1);
+      tofFindTracks->SetStation(0, 0, 2, 0);
+      tofFindTracks->SetStation(1, 0, 1, 0);
+      tofFindTracks->SetStation(2, 0, 0, 0);
+      tofFindTracks->SetStation(0, 0, 2, 3);
+      tofFindTracks->SetStation(1, 0, 1, 3);
+      tofFindTracks->SetStation(2, 0, 0, 3);
+      tofFindTracks->SetStation(0, 0, 2, 4);
+      tofFindTracks->SetStation(1, 0, 1, 4);
+      tofFindTracks->SetStation(2, 0, 0, 4);
+      break;
+
     case 5:  // for calibration of 2-stack and add-on counters (STAR2, BUC)
-      iMinNofHits   = 4;
-      iNStations    = 5;
-      iNReqStations = 5;
+      iMinNofHits   = 3;
+      iNStations    = 7;
+      iNReqStations = 4;
+      tofFindTracks->SetStation(6, 0, 4, 1);
+      tofFindTracks->SetStation(1, 6, 0, 1);
+      tofFindTracks->SetStation(2, 9, 0, 0);
+      tofFindTracks->SetStation(3, 9, 0, 1);
+      tofFindTracks->SetStation(4, 6, 0, 0);
+      tofFindTracks->SetStation(5, 0, 3, 1);
       tofFindTracks->SetStation(0, 5, 0, 0);
-      tofFindTracks->SetStation(1, 0, 4, 1);
-      tofFindTracks->SetStation(2, 0, 3, 1);
-      tofFindTracks->SetStation(3, 9, 0, 0);
-      tofFindTracks->SetStation(4, iDut, iDutSm, iDutRpc);
       break;
 
-    case 6:  // for double stack USTC counter 900 evaluation
-      iMinNofHits   = 4;
-      iNStations    = 5;
-      iNReqStations = 5;
+    case 6:  // for double stack USTC counter evaluation
+      iMinNofHits   = 5;
+      iNStations    = 6;
+      iNReqStations = 6;
       tofFindTracks->SetStation(0, 5, 0, 0);
-      tofFindTracks->SetStation(1, 0, 4, 1);
-      tofFindTracks->SetStation(2, 0, 3, 1);
-      tofFindTracks->SetStation(3, 9, 0, 1);
-      tofFindTracks->SetStation(4, iDut, iDutSm, iDutRpc);
+      tofFindTracks->SetStation(1, 6, 0, 1);
+      tofFindTracks->SetStation(2, 0, 4, 1);
+      tofFindTracks->SetStation(3, 6, 0, 0);
+      tofFindTracks->SetStation(4, 0, 3, 1);
+      tofFindTracks->SetStation(5, iDut, iDutSm, iDutRpc);
       break;
 
     case 7:  // for double stack USTC counter evaluation
@@ -392,25 +421,26 @@ void ana_trks_eval(Int_t nEvents        = 10000,
       tofFindTracks->SetStation(4, 0, 3, 1);
       tofFindTracks->SetStation(5, iDut, iDutSm, iDutRpc);
       break;
-
-    case 9:
-      iMinNofHits   = 3;
-      iNStations    = 4;
-      iNReqStations = 4;
+     
+    case 9:  // calibration of Star2 
+      iMinNofHits   = 4;
+      iNStations    = 5;
+      iNReqStations = 5;
       tofFindTracks->SetStation(0, 5, 0, 0);
-      tofFindTracks->SetStation(1, 0, 2, 1);
-      tofFindTracks->SetStation(2, 0, 0, 1);
-      tofFindTracks->SetStation(3, 0, 1, 1);
+      tofFindTracks->SetStation(2, 9, 0, 1);
+      tofFindTracks->SetStation(1, 0, 4, 1);
+      tofFindTracks->SetStation(3, 9, 0, 0);
+      tofFindTracks->SetStation(4, 0, 3, 1);
       break;
-
+      
     case 10:
       iMinNofHits   = 3;
       iNStations    = 4;
       iNReqStations = 4;
       tofFindTracks->SetStation(0, 5, 0, 0);
-      tofFindTracks->SetStation(1, 0, 1, 0);
+      tofFindTracks->SetStation(1, 0, 2, 0);
       tofFindTracks->SetStation(2, 0, 0, 0);
-      tofFindTracks->SetStation(3, 0, 2, 0);
+      tofFindTracks->SetStation(3, 0, 1, 0);
       break;
 
     case 11:
@@ -418,9 +448,9 @@ void ana_trks_eval(Int_t nEvents        = 10000,
       iNStations    = 4;
       iNReqStations = 4;
       tofFindTracks->SetStation(0, 5, 0, 0);
-      tofFindTracks->SetStation(1, 0, 1, 1);
+      tofFindTracks->SetStation(1, 0, 2, 1);
       tofFindTracks->SetStation(2, 0, 0, 1);
-      tofFindTracks->SetStation(3, 0, 2, 1);
+      tofFindTracks->SetStation(3, 0, 1, 1);
       break;
 
     case 12:
@@ -428,81 +458,32 @@ void ana_trks_eval(Int_t nEvents        = 10000,
       iNStations    = 4;
       iNReqStations = 4;
       tofFindTracks->SetStation(0, 5, 0, 0);
-      tofFindTracks->SetStation(1, 0, 1, 2);
+      tofFindTracks->SetStation(1, 0, 2, 2);
       tofFindTracks->SetStation(2, 0, 0, 2);
-      tofFindTracks->SetStation(3, 0, 2, 2);
+      tofFindTracks->SetStation(3, 0, 1, 2);
       break;
-
+      
     case 13:
       iMinNofHits   = 3;
       iNStations    = 4;
       iNReqStations = 4;
       tofFindTracks->SetStation(0, 5, 0, 0);
-      tofFindTracks->SetStation(1, 0, 1, 3);
-      tofFindTracks->SetStation(2, 0, 0, 3);
-      tofFindTracks->SetStation(3, 0, 2, 3);
+      tofFindTracks->SetStation(1, 0, 2, 2);
+      tofFindTracks->SetStation(2, 0, 0, 2);
+      tofFindTracks->SetStation(3, 0, 1, 2);
       break;
+      
 
     case 14:
       iMinNofHits   = 3;
       iNStations    = 4;
       iNReqStations = 4;
       tofFindTracks->SetStation(0, 5, 0, 0);
-      tofFindTracks->SetStation(1, 0, 1, 4);
-      tofFindTracks->SetStation(2, 0, 0, 4);
-      tofFindTracks->SetStation(3, 0, 2, 4);
-      break;
-
-    case 20:
-      iMinNofHits   = 3;
-      iNStations    = 4;
-      iNReqStations = 4;
-      tofFindTracks->SetStation(0, 0, 2, 0);
-      tofFindTracks->SetStation(1, 0, 0, 0);
-      tofFindTracks->SetStation(2, 0, 1, 0);
-      tofFindTracks->SetStation(0, 5, 0, 0);
-      break;
-
-    case 21:
-      iMinNofHits   = 3;
-      iNStations    = 4;
-      iNReqStations = 4;
-      tofFindTracks->SetStation(0, 0, 2, 1);
-      tofFindTracks->SetStation(1, 0, 0, 1);
-      tofFindTracks->SetStation(2, 0, 1, 1);
-      tofFindTracks->SetStation(0, 5, 0, 0);
-      break;
-
-    case 22:
-      iMinNofHits   = 3;
-      iNStations    = 4;
-      iNReqStations = 4;
-      tofFindTracks->SetStation(0, 0, 2, 2);
-      tofFindTracks->SetStation(1, 0, 0, 2);
-      tofFindTracks->SetStation(2, 0, 1, 2);
-      tofFindTracks->SetStation(0, 5, 0, 0);
-      break;
-
-    case 23:
-      iMinNofHits   = 3;
-      iNStations    = 4;
-      iNReqStations = 4;
-      tofFindTracks->SetStation(0, 0, 2, 3);
-      tofFindTracks->SetStation(1, 0, 0, 3);
-      tofFindTracks->SetStation(2, 0, 1, 3);
-      tofFindTracks->SetStation(0, 5, 0, 0);
-      break;
-
-    case 24:
-      iMinNofHits   = 3;
-      iNStations    = 4;
-      iNReqStations = 4;
-      tofFindTracks->SetStation(0, 0, 2, 4);
-      tofFindTracks->SetStation(1, 0, 0, 4);
-      tofFindTracks->SetStation(2, 0, 1, 4);
-      tofFindTracks->SetStation(0, 5, 0, 0);
+      tofFindTracks->SetStation(1, 0, 2, 2);
+      tofFindTracks->SetStation(2, 0, 0, 2);
+      tofFindTracks->SetStation(3, 0, 1, 2);
       break;
-
+            
     default:
       cout << "Tracking setup " << iTrackingSetup << " not implemented "
            << endl;
@@ -514,7 +495,6 @@ void ana_trks_eval(Int_t nEvents        = 10000,
   tofFindTracks->SetNReqStations(iNReqStations);
   tofFindTracks->PrintSetup();
   run->AddTask(tofFindTracks);
-
   // =========================================================================
   // ===                       Analysis                                    ===
   // =========================================================================
@@ -531,6 +511,8 @@ void ana_trks_eval(Int_t nEvents        = 10000,
   //CbmTofAnaTestbeam defaults
   tofAnaTestbeam->SetR0LimFit(
     20.);  // limit distance of fitted track to nominal vertex
+  tofAnaTestbeam->SetStartSpillTime(0.);
+
   tofAnaTestbeam->SetDXMean(0.);
   tofAnaTestbeam->SetDYMean(0.);
   tofAnaTestbeam->SetDTMean(0.);  // in ns
@@ -626,41 +608,9 @@ void ana_trks_eval(Int_t nEvents        = 10000,
         }
         break;
 
-      case 10020:
-      case 11021:
-      case 12022:
-      case 13023:
-      case 14024:
-        switch (iRSelin) {
-          case 500:
-            tofAnaTestbeam->SetTShift(4.8);  // Shift DTD4 to 0
-            tofAnaTestbeam->SetTOffD4(11.);  // Shift DTD4 to physical value
-
-            switch (iSel2in) {
-              case 0:
-                tofAnaTestbeam->SetSel2TOff(0.);  // Shift Sel2 time peak to 0
-                break;
-              case 1:
-                tofAnaTestbeam->SetSel2TOff(0.0);  // Shift Sel2 time peak to 0
-                break;
-              case 2:
-                tofAnaTestbeam->SetSel2TOff(0.0);  // Shift Sel2 time peak to 0
-                break;
-              case 3:
-                tofAnaTestbeam->SetSel2TOff(0.0);  // Shift Sel2 time peak to 0
-                break;
-              case 4:
-                tofAnaTestbeam->SetSel2TOff(0.0);  // Shift Sel2 time peak to 0
-                break;
-
-              default:;
-            }
-            break;
-          default:;
-        }
-        break;
-
-      case 30040:
+      case 700040:
+      case 900040:
+      case 901040:
         switch (iRSelin) {
           case 500:
             tofAnaTestbeam->SetTShift(0.3);  // Shift DTD4 to 0
@@ -700,11 +650,10 @@ void ana_trks_eval(Int_t nEvents        = 10000,
                 break;
               case 31:
                 if (iMc == 0) {
-                  tofAnaTestbeam->SetSel2TOff(
-                    0.05);  // Shift Sel2 time peak to 0
+                  //tofAnaTestbeam->SetSel2TOff(-0.55);  // Shift Sel2 time peak to 0
+                  tofAnaTestbeam->SetSel2TOff(0.3);  // Shift Sel2 time peak to 0
                 } else {    // MC
-                  tofAnaTestbeam->SetSel2TOff(
-                    -1.3);  // Shift Sel2 time peak to 0
+                  tofAnaTestbeam->SetSel2TOff(-1.3);  // Shift Sel2 time peak to 0
                 }
                 break;
               case 600:
@@ -738,6 +687,24 @@ void ana_trks_eval(Int_t nEvents        = 10000,
         }
         break;
 
+      case 12022:
+        switch (iRSelin) {
+          case 500:
+            tofAnaTestbeam->SetTShift(3.);  // Shift DTD4 to 0
+            tofAnaTestbeam->SetTOffD4(15.);  // Shift DTD4 to physical value
+
+            switch (iSel2in) {
+              case 2:
+                tofAnaTestbeam->SetSel2TOff(0.25);  // Shift Sel2 time peak to 0
+                break;
+                
+              default:;
+            }
+            break;
+          default:;
+        }
+        break;
+
       default:
         cout << "Better to define analysis setup! Running with default offset "
                 "parameter... "
@@ -797,7 +764,7 @@ void ana_trks_eval(Int_t nEvents        = 10000,
   gROOT->LoadMacro("pl_over_trk.C");
   gROOT->LoadMacro("pl_calib_trk.C");
   gROOT->LoadMacro("pl_XY_trk.C");
-  //gROOT->LoadMacro("pl_vert_trk.C");
+  gROOT->LoadMacro("pl_vert_trk.C");
   gROOT->LoadMacro("pl_pull_trk.C");
   gROOT->LoadMacro("pl_all_Track2D.C");
   gROOT->LoadMacro("pl_TIS.C");
@@ -818,9 +785,11 @@ void ana_trks_eval(Int_t nEvents        = 10000,
     Form("pl_Dut_Vel(\"%d%d%d\")", iDut, iDutSm, iDutRpc));
   gInterpreter->ProcessLine("pl_eff_XY()");
   gInterpreter->ProcessLine("pl_calib_trk()");
+  gInterpreter->ProcessLine("pl_vert_trk()");
 
   gInterpreter->ProcessLine("pl_all_Track2D(1)");
   gInterpreter->ProcessLine("pl_all_Track2D(2)");
+  gInterpreter->ProcessLine("pl_all_Track2D(4)");
 
   TString over_trk = "pl_over_trk(" + (TString)(Form("%d", iNStations)) + ")";
   gInterpreter->ProcessLine(over_trk);
diff --git a/macro/beamtime/mcbm2020/ana_trksi.C b/macro/beamtime/mcbm2020/ana_trksi.C
index 5fa2b9f630657f3ba9875a069fa8e39eed1f2c6b..fa413a2e76d86948cc52f015b4eb79724b4249f3 100644
--- a/macro/beamtime/mcbm2020/ana_trksi.C
+++ b/macro/beamtime/mcbm2020/ana_trksi.C
@@ -1,19 +1,19 @@
 void ana_trksi(Int_t nEvents        = 10000,
-               Int_t iSel           = 1,
-               Int_t iGenCor        = 1,
-               TString cFileId      = "48.50.7.1",
-               TString cSet         = "000010020",
-               Int_t iSel2          = 20,
-               Int_t iTrackingSetup = 2,
-               Double_t dScalFac    = 1.,
-               Double_t dChi2Lim2   = 500.,
-               Double_t dDeadtime   = 50,
-               TString cCalId       = "",
-               Int_t iAnaCor        = 1,
-               Bool_t bUseSigCalib  = kFALSE,
-               Int_t iCalSet        = 30040500,
-               Int_t iCalOpt        = 1,
-               Int_t iMc            = 0) {
+              Int_t iSel           = 1,
+              Int_t iGenCor        = 1,
+              TString cFileId      = "48.50.7.1",
+              TString cSet         = "000010020",
+              Int_t iSel2          = 20,
+              Int_t iTrackingSetup = 2,
+              Double_t dScalFac    = 1.,
+              Double_t dChi2Lim2   = 500.,
+              Double_t dDeadtime   = 50,
+              TString cCalId       = "",
+              Int_t iAnaCor        = 1,
+              Bool_t bUseSigCalib  = kFALSE,
+              Int_t iCalSet        = 30040500,
+              Int_t iCalOpt        = 1,
+              Int_t iMc            = 0) {
   Int_t iVerbose = 1;
   if (cCalId == "") cCalId = cFileId;
   TString FId = cFileId;
@@ -46,16 +46,16 @@ void ana_trksi(Int_t nEvents        = 10000,
   TString cHstFile =
     paramDir
     + Form(
-      "/hst/%s_%03.0f_%s_%06d_%03d_%03.1f_%03.1f_trk%03d_Cal%s_Ana.hst.root",
-      cFileId.Data(),
-      dDeadtime,
-      cSet.Data(),
-      iSel,
-      iSel2,
-      dScalFac,
-      dChi2Lim2,
-      iTrackingSetup,
-      cCalId.Data());
+        "/hst/%s_%03.0f_%s_%06d_%03d_%03.1f_%03.1f_trk%03d_Cal%s_Ana.hst.root",
+        cFileId.Data(),
+        dDeadtime,
+        cSet.Data(),
+        iSel,
+        iSel2,
+        dScalFac,
+        dChi2Lim2,
+        iTrackingSetup,
+        cCalId.Data());
   TString cTrkFile = Form("%s_tofFindTracks.hst.root", cCalId.Data());
   TString cAnaFile = Form("%s_TrkAnaTestBeam.hst.root", cFileId.Data());
 
@@ -72,11 +72,11 @@ void ana_trksi(Int_t nEvents        = 10000,
     if (iRun < 690)
       TofGeo = "v20a_mcbm";
     else
-      TofGeo = "v20b_mcbm";
+      TofGeo = "v20f_mcbm";
     cout << "Geometry version " << TofGeo << endl;
 
-    TObjString* tofDigiBdfFile = new TObjString(workDir + "/parameters/tof/tof_"
-                                                + TofGeo + ".digibdf.par");
+    TObjString* tofDigiBdfFile =
+      new TObjString(workDir + "/parameters/tof/tof_" + TofGeo + ".digibdf.par");
     parFileList->Add(tofDigiBdfFile);
 
     TString geoDir  = gSystem->Getenv("VMCWORKDIR");
@@ -302,7 +302,7 @@ void ana_trksi(Int_t nEvents        = 10000,
 
     case 3:
       iMinNofHits   = 3;
-      iNStations    = 16;
+      iNStations    = 15;
       iNReqStations = 4;
       tofFindTracks->SetStation(0, 0, 2, 2);
       tofFindTracks->SetStation(1, 0, 1, 2);
@@ -316,7 +316,7 @@ void ana_trksi(Int_t nEvents        = 10000,
       tofFindTracks->SetStation(7, 0, 1, 3);
       tofFindTracks->SetStation(8, 0, 0, 3);
 
-      tofFindTracks->SetStation(9, 0, 2, 0);
+      tofFindTracks->SetStation(9,  0, 2, 0);
       tofFindTracks->SetStation(10, 0, 1, 0);
       tofFindTracks->SetStation(11, 0, 0, 0);
 
@@ -324,7 +324,7 @@ void ana_trksi(Int_t nEvents        = 10000,
       tofFindTracks->SetStation(13, 0, 1, 4);
       tofFindTracks->SetStation(14, 0, 0, 4);
 
-      tofFindTracks->SetStation(15, 5, 0, 0);
+//      tofFindTracks->SetStation(15, 5, 0, 0);
 
       /*
      tofFindTracks->SetStation(16, 0, 3, 2);         
@@ -418,14 +418,25 @@ void ana_trksi(Int_t nEvents        = 10000,
       tofFindTracks->SetStation(5, iDut, iDutSm, iDutRpc);
       break;
 
+    case 9:  // calibration of Star2 
+      iMinNofHits   = 4;
+      iNStations    = 5;
+      iNReqStations = 5;
+      tofFindTracks->SetStation(0, 5, 0, 0);
+      tofFindTracks->SetStation(2, 9, 0, 1);
+      tofFindTracks->SetStation(1, 0, 4, 1);
+      tofFindTracks->SetStation(3, 9, 0, 0);
+      tofFindTracks->SetStation(4, 0, 3, 1);
+      break;
+
     case 10:
       iMinNofHits   = 3;
       iNStations    = 4;
       iNReqStations = 4;
       tofFindTracks->SetStation(0, 5, 0, 0);
-      tofFindTracks->SetStation(1, 0, 1, 2);
+      tofFindTracks->SetStation(1, 0, 2, 2);
       tofFindTracks->SetStation(2, 0, 0, 2);
-      tofFindTracks->SetStation(3, 0, 2, 2);
+      tofFindTracks->SetStation(3, 0, 1, 2);
       break;
 
     default:
@@ -449,6 +460,7 @@ void ana_trksi(Int_t nEvents        = 10000,
   tofAnaTestbeam->SetHitDistMin(30.);   // initialization
   tofAnaTestbeam->SetEnableMatchPosScaling(kTRUE);
   tofAnaTestbeam->SetSpillDuration(3.);
+  tofAnaTestbeam->SetSpillTime(0.);
   if (iMc == 1) {
     tofAnaTestbeam->SetSpillDuration(0.);
     tofAnaTestbeam->SetSpillBreak(0.);
@@ -621,6 +633,24 @@ void ana_trksi(Int_t nEvents        = 10000,
         }
         break;
 
+      case 12022:
+        switch (iRSelin) {
+          case 500:
+            tofAnaTestbeam->SetTShift(3.);  // Shift DTD4 to 0
+            tofAnaTestbeam->SetTOffD4(16.);  // Shift DTD4 to physical value
+
+            switch (iSel2in) {
+              case 2:
+                tofAnaTestbeam->SetSel2TOff(0.25);  // Shift Sel2 time peak to 0
+                break;
+                
+              default:;
+            }
+            break;
+          default:;
+        }
+        break;
+
       default:
         cout << "Better to define analysis setup! Running with default offset "
                 "parameter... "
@@ -629,7 +659,7 @@ void ana_trksi(Int_t nEvents        = 10000,
     }  // end of different subsets
 
     cout << " Initialize TSHIFT to " << tofAnaTestbeam->GetTShift() << endl;
-    //run->AddTask(tofAnaTestbeam);
+    run->AddTask(tofAnaTestbeam);
   }
 
   // -----  Parameter database   --------------------------------------------
diff --git a/macro/beamtime/mcbm2020/eval_tracks.sh b/macro/beamtime/mcbm2020/eval_tracks.sh
index 6e2052086d0c0b98c616f52127187472ebf978a6..9323007a48c29d0ca01584c12a2e3cbf57676af4 100755
--- a/macro/beamtime/mcbm2020/eval_tracks.sh
+++ b/macro/beamtime/mcbm2020/eval_tracks.sh
@@ -42,8 +42,14 @@ else
     cCalId=${CalIdMode}
 fi
 
+cCalRef=$8
+if [[ ${cCalRef} = "" ]]; then
+    cCalRef=${cSet:0:9};
+    echo use default CalSet $cCalRef
+fi
+
 dDTres=10000000
-nEvt=100000000
+nEvt=1000000
 
 cSel2=$iSel2;
 if [[ $iSel2 < 100 ]]; then
@@ -86,20 +92,22 @@ cd ${cRun}
 mkdir             Ana_${cSet}_${iSel}_${cSel2}_${iTraSetup}
 cp ../rootlogon.C Ana_${cSet}_${iSel}_${cSel2}_${iTraSetup}/
 cp ../.rootrc     Ana_${cSet}_${iSel}_${cSel2}_${iTraSetup}/
-digiCalFile=`ls -1 ${cCalId}*93_1*.root`
+echo look for calfile: ls -1 ${cCalId}*set${cCalRef}_93_1tofClust.hst.root
+digiCalFile=`ls -1 ${cCalId}*set${cCalRef}_93_1tofClust.hst.root`
 
 cd Ana_${cSet}_${iSel}_${cSel2}_${iTraSetup}
 rm -v  *AnaTestBeam.hst.root
 cp -v ../../${cCalId}_tofFindTracks.hst.root .
 echo create symbolic link to digiCalFile $digiCalFile in `pwd`
-ln -s ../$digiCalFile ./$digiCalFile
+rm -v ./$digiCalFile
+ln -s -v ../$digiCalFile ./$digiCalFile
 
 while [[ $dDTres > 0 ]]; do
 
 for iCal in 1 2 3 5 6 7 8 1
 do
 
-root -b -q '../../ana_trks_eval.C('$nEvt','$iSel',-1,"'$cRun'","'$cSet'",'$iSel2','$iTraSetup','$fRange1','$fRange2','$dDeadtime',"'$cCalId'",'$iCal',0,'$iCalSet',0,'$iMc')'
+root -b -q '../../ana_trks_eval.C('$nEvt','$iSel',-1,"'$cRun'","'$cSet'",'$iSel2','$iTraSetup','$fRange1','$fRange2','$dDeadtime',"'$cCalId'",'$iCal',0,'$iCalSet',1,'$iMc')'
 mv -v tofAnaTestBeam.hst.root ${cRun}_TrkAnaTestBeam.hst.root
 rm all_*
 
diff --git a/macro/beamtime/pl_Dut_Vel.C b/macro/beamtime/pl_Dut_Vel.C
index 2d865661d05495884694880f9112f25c83f4f9e7..68770955294531dbd09a9e772bde5b734eeef6d4 100644
--- a/macro/beamtime/pl_Dut_Vel.C
+++ b/macro/beamtime/pl_Dut_Vel.C
@@ -1,4 +1,5 @@
 void pl_Dut_Vel(const char* cDut = "900",
+                Double_t dEffMin  =0.,
                 Double_t Tstart  = 0.,
                 Double_t Tend    = 50.,
                 TString sysinfo  = "") {
@@ -52,6 +53,7 @@ void pl_Dut_Vel(const char* cDut = "900",
   gPad->Update();
   auto graph = pEffVel->GetPaintedGraph();
   graph->GetXaxis()->SetRangeUser(Tstart, Tend);
+  graph->SetMinimum(dEffMin);
   gPad->Update();
 
 
diff --git a/macro/beamtime/pl_TIR.C b/macro/beamtime/pl_TIR.C
index 413e480acbb843d13348da7ca6a0e961737d6318..98446edc5787598420b860044fc25cf5a080ddd2 100644
--- a/macro/beamtime/pl_TIR.C
+++ b/macro/beamtime/pl_TIR.C
@@ -1,5 +1,6 @@
 void pl_TIR(Double_t Tstart   = 0.,
             Double_t Tend     = 1000.,
+            Double_t dFracMin = 0.0,
             Double_t dFracMax = 1.05,
             TString sysinfo   = "") {
   gROOT->LoadMacro(
@@ -92,7 +93,7 @@ void pl_TIR(Double_t Tstart   = 0.,
  */
 
   TEfficiency* pEffSel = new TEfficiency(*hTIR_sel2, *hTIR_all);
-  pEffSel->SetTitle("Selector (MRef & Sel2)  efficiency");
+  pEffSel->SetTitle("Selector (MRef & Sel2)  efficiency; time (s); efficiency");
   pEffSel->Draw("AP");
   gPad->Update();
   auto graph = pEffSel->GetPaintedGraph();
@@ -119,12 +120,13 @@ void pl_TIR(Double_t Tstart   = 0.,
  hselsel1frac->SetLineColor(hTIR_sel1->GetLineColor()); 
 */
   TEfficiency* pEffDut = new TEfficiency(*hTIR_sel1, *hTIR_sel2);
-  pEffDut->SetTitle("Relative efficiency of DUT");
+  pEffDut->SetTitle("Relative efficiency of DUT; time (s); efficiency");
   pEffDut->Draw("AP");
   // gPad->SetLogy();
   gPad->Update();
   auto gEffDut = pEffDut->GetPaintedGraph();
   gEffDut->GetXaxis()->SetRangeUser(Tstart, Tend);
+  gEffDut->SetMinimum(dFracMin);
   gEffDut->SetMaximum(dFracMax);
 
   gPad->Update();
diff --git a/macro/beamtime/pl_over_Mat04D4best.C b/macro/beamtime/pl_over_Mat04D4best.C
index d194680b4e5c732daceeb99ffcfdaf430ee37e92..fcf98a4cad7531ee2a95b43c0e9a2bf24e852dd4 100644
--- a/macro/beamtime/pl_over_Mat04D4best.C
+++ b/macro/beamtime/pl_over_Mat04D4best.C
@@ -118,8 +118,10 @@ void pl_over_Mat04D4best(Int_t iLog = 0) {
 
       TString hname2 = "hDTD4DT04D4best_pfx_px";
       h2pfxpx        = (TH1*) gROOT->FindObjectAny(hname2);
-      if (h2pfxpx != NULL) h2pfxpx->Draw("same");
-
+      if (h2pfxpx != NULL) {
+		  h2pfxpx->SetLineColor(6);
+		  h2pfxpx->Draw("same");
+      }
       Int_t iNbinsX = h2->GetNbinsX();
       cout << " Histo " << hname << " has " << iNbinsX << " Xbins" << endl;
       const char* cnamP = Form("%s_py", (char*) hname.Data());
@@ -195,6 +197,12 @@ void pl_over_Mat04D4best(Int_t iLog = 0) {
       h2->Draw("colz");
       h2->ProfileX()->Draw("same");
       gPad->SetLogz();
+      TString hname2 = "hTexpDT04D4best_pfx_px";
+      TH1* hpfxpx    = (TH1*) gROOT->FindObjectAny(hname2);
+      if (hpfxpx != NULL) {
+		  hpfxpx->SetLineColor(6);
+		  hpfxpx->Draw("same");
+      }
     } else {
       cout << hname << " not found" << endl;
     }
@@ -223,6 +231,13 @@ void pl_over_Mat04D4best(Int_t iLog = 0) {
       gPad->SetLogz();
       TProfile* h2pfx = h2->ProfileX();
       h2pfx->Draw("same");
+      
+      TString hname2 = "hDTX4D4best_pfx_px";
+      TH1* hpfxpx    = (TH1*) gROOT->FindObjectAny(hname2);
+      if (hpfxpx != NULL) {
+		  hpfxpx->SetLineColor(6);
+		  hpfxpx->Draw("same");
+      }
     } else {
       cout << hname << " not found" << endl;
     }
@@ -239,6 +254,12 @@ void pl_over_Mat04D4best(Int_t iLog = 0) {
       h2pfxx->Draw("same");
       gPad->SetLogz();
 
+      TString hname2 = "hDTY4D4best_pfx_px";
+      TH1* hpfxpx    = (TH1*) gROOT->FindObjectAny(hname2);
+      if (hpfxpx != NULL) {
+		  hpfxpx->SetLineColor(6);
+		  hpfxpx->Draw("same");
+      }
 
     } else {
       cout << hname << " not found" << endl;
@@ -295,6 +316,14 @@ void pl_over_Mat04D4best(Int_t iLog = 0) {
       TH1D* h2clu   = h2->ProjectionX("_px", 1, h2->GetNbinsY());
       dMeanCluSize0 = h2clu->GetMean();
       h2->ProfileX()->Draw("same");
+      
+      TString hname2 = "hCluSize0DT04D4best_pfx_px";
+      TH1* hpfxpx    = (TH1*) gROOT->FindObjectAny(hname2);
+      if (hpfxpx != NULL) {
+		  hpfxpx->SetLineColor(6);
+		  hpfxpx->Draw("same");
+      }
+      
     } else {
       cout << hname << " not found" << endl;
     }
@@ -311,6 +340,14 @@ void pl_over_Mat04D4best(Int_t iLog = 0) {
       TH1D* h2clu   = h2->ProjectionX("_px", 1, h2->GetNbinsY());
       dMeanCluSize4 = h2clu->GetMean();
       h2->ProfileX()->Draw("same");
+      
+      TString hname2 = "hCluSize4DT04D4best_pfx_px";
+      TH1* hpfxpx    = (TH1*) gROOT->FindObjectAny(hname2);
+      if (hpfxpx != NULL) {
+		  hpfxpx->SetLineColor(6);
+		  hpfxpx->Draw("same");
+      }      
+      
     } else {
       cout << hname << " not found" << endl;
     }
@@ -326,6 +363,14 @@ void pl_over_Mat04D4best(Int_t iLog = 0) {
       TProfile* h2pfxt = h2->ProfileX();
       h2pfxt->Draw("same");
       gPad->SetLogz();
+      
+      TString hname2 = "hTot0DT04D4best_pfx_px";
+      TH1* hpfxpx    = (TH1*) gROOT->FindObjectAny(hname2);
+      if (hpfxpx != NULL) {
+		  hpfxpx->SetLineColor(6);
+		  hpfxpx->Draw("same");
+      }      
+      
     } else {
       cout << hname << " not found" << endl;
     }
@@ -341,6 +386,14 @@ void pl_over_Mat04D4best(Int_t iLog = 0) {
       TProfile* h2pfxt = h2->ProfileX();
       h2pfxt->Draw("same");
       gPad->SetLogz();
+      
+      TString hname2 = "hTot4DT04D4best_pfx_px";
+      TH1* hpfxpx    = (TH1*) gROOT->FindObjectAny(hname2);
+      if (hpfxpx != NULL) {
+		  hpfxpx->SetLineColor(6);
+		  hpfxpx->Draw("same");
+      }      
+      
     } else {
       cout << hname << " not found" << endl;
     }
diff --git a/macro/mcbm/geometry/tof/Create_TOF_Geometry_v20b_mcbm.C b/macro/mcbm/geometry/tof/Create_TOF_Geometry_v20b_mcbm.C
index cf4dbbb47b07be8568b719de8c804b7bb358e626..2ee08762e5637a81dd1512d11e9bb3463634897b 100644
--- a/macro/mcbm/geometry/tof/Create_TOF_Geometry_v20b_mcbm.C
+++ b/macro/mcbm/geometry/tof/Create_TOF_Geometry_v20b_mcbm.C
@@ -45,6 +45,7 @@ const TString FileNameInfo = fileTag + "_mcbm.geo.info";
 
 // TOF_Z_Front corresponds to front cover of outer super module towers
 const Float_t TOF_Z_Front_Stand = 247.2;  // = z=298 mCBM@SIS18
+const Float_t TOF_X_Front_Stand = -1.6;  // = z=298 mCBM@SIS18
 const Float_t TOF_Z_Front       = 0;      // = z=298 mCBM@SIS18
 //const Float_t TOF_Z_Front =  130;  // = z=225 mCBM@SIS18
 //const Float_t TOF_Z_Front =  250;  // SIS 100 hadron
@@ -141,11 +142,11 @@ const Int_t NCounterInModule[NofModuleTypes] = {5, 5, 3, 5, 5, 1, 2, 1, 8, 2};
 const Float_t CounterXStartPosition[NofModuleTypes] =
   {-58.5, -66.0, -56.0, -60.0, -60.0, 0.0, 0., 0., -7., 0.};
 const Float_t CounterXDistance[NofModuleTypes] =
-  {29.0, 32.0, 51.0, 30.0, 30.0, 0.0, 0., 0., 2., 0.};
+  {29.0, 32.0, 51.0, 30.0, 30.0, 0.0, 0., 0., 2., -1.25};
 const Float_t CounterYStartPosition[NofModuleTypes] =
   {0.0, 0.0, 0.0, 0.0, 0.0, 0., 0., -4., -1.3, 0.};
 const Float_t CounterYDistance[NofModuleTypes] =
-  {0.0, 0.0, 0.0, 0.0, 0.0, 0., 0., 8., 0., 0.};
+  {0.0, 0.0, 0.0, 0.0, 0.0, 0., 0., 8., 0., 1.3};
 const Float_t CounterZDistance[NofModuleTypes] =
   {-2.5, 0.0, 0.0, 2.5, 2.5, 0., 6., 0., 0.1, 4.};
 const Float_t CounterZStartPosition[NofModuleTypes] =
@@ -211,13 +212,13 @@ const Float_t Outer_Module_Number[Outer_Module_NTypes][Outer_Module_Col] =
 
 const Float_t Star2_First_Z_Position       = TOF_Z_Front + 16.5;
 const Float_t Star2_Delta_Z_Position       = 0.;
-const Float_t Star2_First_Y_Position       = 32.;  //
+const Float_t Star2_First_Y_Position       = 30.35;  //
 const Float_t Star2_Delta_Y_Position       = 0.;   //
 const Float_t Star2_rotate_Z               = -90.;
 const Int_t Star2_NTypes                   = 1;
 const Float_t Star2_Types[Star2_NTypes]    = {9.};
 const Float_t Star2_Number[Star2_NTypes]   = {1.};   //debugging, V16b
-const Float_t Star2_X_Offset[Star2_NTypes] = {51.};  //{62.};
+const Float_t Star2_X_Offset[Star2_NTypes] = {49.};  //{51.};
 
 const Float_t Buc_First_Z_Position     = TOF_Z_Front + 50.;
 const Float_t Buc_Delta_Z_Position     = 0.;
@@ -322,16 +323,16 @@ void Create_TOF_Geometry_v20b_mcbm() {
   TGeoVolume* tofstand = new TGeoVolumeAssembly(geoVersionStand);
   // Mar 2020 run
   TGeoTranslation* stand_trans =
-    new TGeoTranslation("", 0., 0., TOF_Z_Front_Stand);
+    new TGeoTranslation("", TOF_X_Front_Stand, 0., TOF_Z_Front_Stand);
   // Nov 2019 run
   // TGeoTranslation*  stand_trans   = new TGeoTranslation("", 12., 0., TOF_Z_Front_Stand);
   // TGeoTranslation*  stand_trans   = new TGeoTranslation("",  0., 0., TOF_Z_Front_Stand);
   TGeoRotation* stand_rot = new TGeoRotation();
-  stand_rot->RotateY(-1.5);  //-2.7);
+  stand_rot->RotateY(-2.9);
   TGeoCombiTrans* stand_combi_trans =
     new TGeoCombiTrans(*stand_trans, *stand_rot);
-  //tof->AddNode(tofstand, 1, stand_combi_trans);
-  tof->AddNode(tofstand, 1);
+  tof->AddNode(tofstand, 1, stand_combi_trans);
+  //tof->AddNode(tofstand, 1);
 
   for (Int_t counterType = 0; counterType < NumberOfDifferentCounterTypes;
        counterType++) {
@@ -1018,7 +1019,7 @@ void position_inner_tof_modules(Int_t modNType) {
   zPos                           = TOF_Z_Front;
   const Double_t ModDx[NModules] = {0., 0., 0., 49.8, 49.8};
   //const Double_t ModDx[NModules]= { 1.5,    0., -1.5, 49.8, 55.8};
-  const Double_t ModDy[NModules]     = {0., 0., 0., 0., 0.};
+  const Double_t ModDy[NModules]     = {0., 0., 0., 2., 0.};
   const Double_t ModDz[NModules]     = {0., 16.5, 34., 0., 34.};
   const Double_t ModAng[NModules]    = {-90., -90., -90., -90., -90.0};
   TGeoRotation* module_rot           = NULL;