diff --git a/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.cxx b/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.cxx
index 42002bf65930cf26360791a28829de2c92b862ba..8ad197be8dd5b8c612b1fa8509f0e23ec58647e7 100644
--- a/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.cxx
+++ b/fles/mcbm2018/tasks/CbmMcbmCheckTimingAlgo.cxx
@@ -250,13 +250,20 @@ void CbmMcbmCheckTimingAlgo::CheckInterSystemOffset()
 
     Double_t dRefTime   = 0;
     Double_t dRefCharge = 0;
+    UInt_t uRefAddress = 0;
     if (ECbmModuleId::kT0 == fRefDet.detId) {
       dRefTime   = fpT0DigiVec->at(uDigi).GetTime();
       dRefCharge = fpT0DigiVec->at(uDigi).GetCharge();
     }  // if( ECbmModuleId::kT0 == fRefDet.detId )
+    if (ECbmModuleId::kPsd == fRefDet.detId) {
+      dRefTime   = fDigiMan->Get<DigiRef>(uDigi)->GetTime();
+      dRefCharge = fDigiMan->Get<DigiRef>(uDigi)->GetCharge();
+      uRefAddress = fDigiMan->Get<DigiRef>(uDigi)->GetAddress();
+    }  // if( ECbmModuleId::kT0 == fRefDet.detId )
     else {
       dRefTime   = fDigiMan->Get<DigiRef>(uDigi)->GetTime();
       dRefCharge = fDigiMan->Get<DigiRef>(uDigi)->GetCharge();
+      uRefAddress = fDigiMan->Get<DigiRef>(uDigi)->GetAddress();
     }  // else of if( ECbmModuleId::kT0 == fRefDet.detId )
 
     /// Fill self time difference histo
@@ -276,6 +283,8 @@ void CbmMcbmCheckTimingAlgo::CheckInterSystemOffset()
         if (fRefDet.uChargeCutMin < dRefCharge || dRefCharge < fRefDet.uChargeCutMax) {
           continue;
         }  // if( fRefDet.uChargeCutMin < dRefCharge || dRefCharge < fRefDet.uChargeCutMax )
+        /// Psd Pulser selection
+        if (ECbmModuleId::kPsd == fRefDet.detId && CbmPsdAddress::GetSectionId(uRefAddress) != 10) continue;         
       }    // else of if( fRefDet.uChargeCutMin < fRefDet.uChargeCutMax )
     }      // if( fRefDet.uChargeCutMin =! fRefDet.uChargeCutMax )
 
@@ -346,6 +355,7 @@ void CbmMcbmCheckTimingAlgo::FillTimeOffsetHistos(const Double_t dRefTime, const
   for (UInt_t uDigiIdx = fvDets[uDetIdx].iPrevRefFirstDigi; uDigiIdx < uNbDigis; ++uDigiIdx) {
     Double_t dTime   = 0;
     Double_t dCharge = 0;
+    UInt_t uAddress = 0;
     if (ECbmModuleId::kT0 == fvDets[uDetIdx].detId) {
       dTime   = fpT0DigiVec->at(uDigiIdx).GetTime();
       dCharge = fpT0DigiVec->at(uDigiIdx).GetCharge();
@@ -353,6 +363,7 @@ void CbmMcbmCheckTimingAlgo::FillTimeOffsetHistos(const Double_t dRefTime, const
     else {
       dTime   = fDigiMan->Get<Digi>(uDigiIdx)->GetTime();
       dCharge = fDigiMan->Get<Digi>(uDigiIdx)->GetCharge();
+      uAddress = fDigiMan->Get<Digi>(uDigiIdx)->GetAddress();
     }  // else of if( ECbmModuleId::kT0 == fRefDet.detId )
 
     /// Fill self correlation histo while avoiding double counting due to
@@ -386,6 +397,8 @@ void CbmMcbmCheckTimingAlgo::FillTimeOffsetHistos(const Double_t dRefTime, const
         if (fvDets[uDetIdx].uChargeCutMin < dCharge || dCharge < fvDets[uDetIdx].uChargeCutMax) {
           continue;
         }  // if( fvDets[ uDetIdx ].uChargeCutMin < dCharge || dCharge < fvDets[ uDetIdx ].uChargeCutMax )
+        /// Psd Pulser selection
+        if (ECbmModuleId::kPsd == fvDets[uDetIdx].detId && CbmPsdAddress::GetSectionId(uAddress) != 10) continue;               
       }    // else of if( fvDets[ uDetIdx ].uChargeCutMin < fvDets[ uDetIdx ].uChargeCutMax )
     }      // if( fvDets[ uDetIdx ].uChargeCutMin != fvDets[ uDetIdx ].uChargeCutMax )
 
diff --git a/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerAlgoPsd.cxx b/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerAlgoPsd.cxx
index 115dbbe7edb6543719ace37af9ddfb2aa6d57ccb..ec08fe382037ffc26ed1a60af0548b8f533478fa 100644
--- a/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerAlgoPsd.cxx
+++ b/fles/mcbm2018/unpacker/CbmMcbm2018UnpackerAlgoPsd.cxx
@@ -218,7 +218,7 @@ Bool_t CbmMcbm2018UnpackerAlgoPsd::ProcessMs(const fles::Timeslice& ts, size_t u
   uint32_t uSize  = msDescriptor.size;
   fulCurrentMsIdx = msDescriptor.idx;
 
-  fdMsTime = static_cast<double>(fulCurrentMsIdx);
+  fdMsTime = (1e-9) * static_cast<double>(fulCurrentMsIdx);
 
   LOG(debug) << "Microslice: " << fulCurrentMsIdx << " from EqId " << std::hex << fuCurrentEquipmentId << std::dec
              << " has size: " << uSize;
diff --git a/macro/beamtime/mcbm2021/MonitorPsd.C b/macro/beamtime/mcbm2021/MonitorPsd.C
index dda9fb5cf2bce4cb325fa66b94c6abe5a22c9ed9..bc5eac47510d609a471ac3fc0f88a0d4e54790b4 100644
--- a/macro/beamtime/mcbm2021/MonitorPsd.C
+++ b/macro/beamtime/mcbm2021/MonitorPsd.C
@@ -81,7 +81,7 @@ void MonitorPsd(TString inFile = "", TString sHostname = "localhost", Int_t iSer
 
 
   //  source->AddUnpacker(monitor_psd, 0x80, ECbmModuleId::kPsd);
-  source->AddUnpacker(monitor_psd, 0x00, ECbmModuleId::kPsd);  //FIXME
+  source->AddUnpacker(monitor_psd, 0x80, ECbmModuleId::kPsd);
   source->SetSubscriberHwm(1000);
 
   // --- Run