diff --git a/analysis/detectors/mvd/qa/CbmMvdQa.cxx b/analysis/detectors/mvd/qa/CbmMvdQa.cxx
index 411296cf9277e940d4ad164a32db2b2c23ae84cf..29af627019f7fb80a65cb46a91d7fdbb1ba42f08 100644
--- a/analysis/detectors/mvd/qa/CbmMvdQa.cxx
+++ b/analysis/detectors/mvd/qa/CbmMvdQa.cxx
@@ -119,13 +119,29 @@ InitStatus CbmMvdQa::Init()
   fBadTracks = new TClonesArray("CbmStsTrack", 5000);
   ioman->Register("BadTracks", "sts", fBadTracks, IsOutputBranchPersistent("BadTracks"));
 
-  fStsTrackMatches  = (TClonesArray*) ioman->GetObject("StsTrackMatch");
-  fStsTrackArray    = (TClonesArray*) ioman->GetObject("StsTrack");
-  fGlobalTrackArray = (TClonesArray*) ioman->GetObject("GlobalTrack");
+  if (useTrackQa) {
+    fStsTrackMatches  = (TClonesArray*) ioman->GetObject("StsTrackMatch");
+    fStsTrackArray    = (TClonesArray*) ioman->GetObject("StsTrack");
+    fGlobalTrackArray = (TClonesArray*) ioman->GetObject("GlobalTrack");
 
-  if (!fStsTrackArray) { Fatal("CbmMvdQa: StsTrackArray not found (!)", " That's bad. "); }
+    if (!fStsTrackArray) {
+      Fatal("CbmMvdQa: StsTrackArray not found (!)", " That's bad. ");
+    }
+
+    //    fPrimVtx         = (CbmVertex*) ioman->GetObject("PrimaryVertex");
+    // Get pointer to PrimaryVertex object from IOManager if it exists
+    // The old name for the object is "PrimaryVertex" the new one
+    // "PrimaryVertex." Check first for the new name
+    fPrimVtx = dynamic_cast<CbmVertex*>(ioman->GetObject("PrimaryVertex."));
+    if (nullptr == fPrimVtx) {
+      fPrimVtx = dynamic_cast<CbmVertex*>(ioman->GetObject("PrimaryVertex"));
+    }
+    if (nullptr == fPrimVtx) {
+      //      LOG(fatal) << "No primary vertex";
+    }
+  }
 
-  fMcPoints          = (TClonesArray*) ioman->GetObject("MvdPileUpMC");  // PileUp Mc points
+  fMcPoints          = (TClonesArray*) ioman->GetObject("MvdPoint");  // PileUp Mc points
   fMvdDigis          = (TClonesArray*) ioman->GetObject("MvdDigi");
   fMvdCluster        = (TClonesArray*) ioman->GetObject("MvdCluster");
   fMvdHits           = (TClonesArray*) ioman->GetObject("MvdHit");
@@ -135,16 +151,6 @@ InitStatus CbmMvdQa::Init()
   if (fMvdHits->GetEntriesFast() != fMvdHitMatchArray->GetEntriesFast())
     LOG(error) << "MvdHit and MvdHitMatch Arrays do not have the same size";
 
-  //    fPrimVtx         = (CbmVertex*) ioman->GetObject("PrimaryVertex");
-  // Get pointer to PrimaryVertex object from IOManager if it exists
-  // The old name for the object is "PrimaryVertex" the new one
-  // "PrimaryVertex." Check first for the new name
-  fPrimVtx = dynamic_cast<CbmVertex*>(ioman->GetObject("PrimaryVertex."));
-  if (nullptr == fPrimVtx) { fPrimVtx = dynamic_cast<CbmVertex*>(ioman->GetObject("PrimaryVertex")); }
-  if (nullptr == fPrimVtx) {
-    //      LOG(fatal) << "No primary vertex";
-  }
-
   fListMCTracks = (TClonesArray*) ioman->GetObject("MCTrack");
 
   if (!fMcPoints) {
@@ -549,7 +555,9 @@ void CbmMvdQa::ExecMCQa()
 
   for (Int_t i = 0; i < nrMcPoints; ++i) {
     CbmMvdPoint* curMc = (CbmMvdPoint*) fMcPoints->At(i);
-    if (curMc->GetZ() < fFirstMvdPos + 1) { fMC2F[0]->Fill(curMc->GetX(), curMc->GetY()); }
+    if (curMc->GetZ() < fFirstMvdPos + 1) {
+      fMC2F[0]->Fill(curMc->GetX(), curMc->GetY());
+    }
   }
 }
 // -------------------------------------------------------------------------
@@ -578,7 +586,8 @@ void CbmMvdQa::ExecDigiQa()
       Double_t lab[3]       = {0., 0., 0.};
       if (curSens->GetDetectorID() == curDigi->GetDetectorId()) {
         curSens->PixelToTop(curDigi->GetPixelX(), curDigi->GetPixelY(), lab);
-        if (curSens->GetZ() < 6) fDigi2F[1]->Fill(lab[0], lab[1]);
+        if (curSens->GetZ() < 6)
+          fDigi2F[1]->Fill(lab[0], lab[1]);
         else if (curSens->GetZ() < 11)
           fDigi2F[2]->Fill(lab[0], lab[1]);
         else if (curSens->GetZ() < 16)
@@ -586,7 +595,9 @@ void CbmMvdQa::ExecDigiQa()
         else
           fDigi2F[4]->Fill(lab[0], lab[1]);
 
-        if (lab[0] > -2 && lab[0] <= -0.5 && lab[1] >= -1.5 && lab[1] <= 1.5) { fDigi2F[0]->Fill(lab[0], lab[1]); }
+        if (lab[0] > -2 && lab[0] <= -0.5 && lab[1] >= -1.5 && lab[1] <= 1.5) {
+          fDigi2F[0]->Fill(lab[0], lab[1]);
+        }
       }
     }
   }
@@ -667,7 +678,8 @@ void CbmMvdQa::ExecTrackQa()
     stsTrack   = (CbmStsTrack*) fStsTrackArray->At(glTrack->GetStsTrackIndex());
     trackMatch = (CbmTrackMatchNew*) fStsTrackMatches->At(glTrack->GetStsTrackIndex());
     mcMatchId  = trackMatch->GetMatchedLink().GetIndex();
-    if (mcMatchId > -1) mcTrack = (CbmMCTrack*) fListMCTracks->At(mcMatchId);
+    if (mcMatchId > -1)
+      mcTrack = (CbmMCTrack*) fListMCTracks->At(mcMatchId);
     else
       continue;
 
@@ -690,7 +702,8 @@ void CbmMvdQa::ExecTrackQa()
     if (hasHitFirst) {
       if (mcP < 1.5) {
         fnrTrackslowP++;
-        if (mcP >= 1) fhigh++;
+        if (mcP >= 1)
+          fhigh++;
         else if (mcP >= 0.5)
           fmid++;
         else
@@ -749,22 +762,27 @@ void CbmMvdQa::ExecTrackQa()
 
       if (glQP >= 0) {
         fTracks1F[22]->Fill(glX);
-        if (mcP >= 1) fTracks1F[26]->Fill(glX);
+        if (mcP >= 1)
+          fTracks1F[26]->Fill(glX);
         else
           fTracks1F[27]->Fill(glX);
       }
       if (glQP < 0) {
         fTracks1F[23]->Fill(glX);
-        if (mcP >= 1) fTracks1F[28]->Fill(glX);
+        if (mcP >= 1)
+          fTracks1F[28]->Fill(glX);
         else
           fTracks1F[29]->Fill(glX);
       }
-      if (ChiSqOverNDF > 1) fTracks1F[24]->Fill(glX);
+      if (ChiSqOverNDF > 1)
+        fTracks1F[24]->Fill(glX);
       else
         fTracks1F[25]->Fill(glX);
     }
 
-    if (ChiSqOverNDF > 1) { fTracks1F[20]->Fill(sqrt((glX * glX) + (glY * glY))); }
+    if (ChiSqOverNDF > 1) {
+      fTracks1F[20]->Fill(sqrt((glX * glX) + (glY * glY)));
+    }
     else {
       fTracks1F[21]->Fill(sqrt((glX * glX) + (glY * glY)));
     }
@@ -779,7 +797,8 @@ void CbmMvdQa::ExecTrackQa()
       if (trueOverAll == 1.) fTracks2F[4]->Fill(mcP, mcP - glP);
     }
 
-    if (hasHitFirst) fTracks2F[5]->Fill(mcP, mcP - glP);
+    if (hasHitFirst)
+      fTracks2F[5]->Fill(mcP, mcP - glP);
     else
       fTracks2F[6]->Fill(mcP, mcP - glP);
 
@@ -788,7 +807,8 @@ void CbmMvdQa::ExecTrackQa()
       if (ChiSqOverNDF <= 1) fTracks2F[8]->Fill(hitFirst[0], hitFirst[1]);
       if (mcP < 1.5) {
         fTracks2F[9]->Fill(0.1, 0.1);
-        if (mcP >= 1) fTracks2F[11]->Fill(1.25, 0.1);
+        if (mcP >= 1)
+          fTracks2F[11]->Fill(1.25, 0.1);
         else if (mcP >= 0.5)
           fTracks2F[11]->Fill(0.75, 0.1);
         else
@@ -801,7 +821,8 @@ void CbmMvdQa::ExecTrackQa()
     if (hasHitFirstTrue) {
       if (mcP < 1.5) {
         fTracks2F[9]->Fill(0.1, 0.70);
-        if (mcP >= 1) fTracks2F[11]->Fill(1.25, 0.7);
+        if (mcP >= 1)
+          fTracks2F[11]->Fill(1.25, 0.7);
         else if (mcP >= 0.5)
           fTracks2F[11]->Fill(0.75, 0.7);
         else
@@ -847,7 +868,9 @@ Bool_t CbmMvdQa::HasHitFirstTrue(Int_t MCtrackID, CbmStsTrack* stsTrack)
   const CbmMvdPoint* point = nullptr;
   for (Int_t iHit = 0; iHit < nrOfMvdHits; iHit++) {
     CbmMatch* mvdMatch = (CbmMatch*) fMvdHitMatchArray->At(stsTrack->GetMvdHitIndex(iHit));
-    if (mvdMatch) { nrOfLinks = mvdMatch->GetNofLinks(); }
+    if (mvdMatch) {
+      nrOfLinks = mvdMatch->GetNofLinks();
+    }
     else {
       continue;  // any kind of error in the matching
     }
@@ -859,7 +882,9 @@ Bool_t CbmMvdQa::HasHitFirstTrue(Int_t MCtrackID, CbmStsTrack* stsTrack)
       }
       else
         mcTrackId = point->GetTrackID();
-      if (mcTrackId == MCtrackID && point->GetZOut() < fFirstMvdPos + 1) { return kTRUE; }
+      if (mcTrackId == MCtrackID && point->GetZOut() < fFirstMvdPos + 1) {
+        return kTRUE;
+      }
     }
   }
 
@@ -875,7 +900,9 @@ void CbmMvdQa::GetFirstMCPos(CbmStsTrack* stsTrack, Float_t* pos)
   const CbmMvdPoint* point = nullptr;
   for (Int_t iHit = 0; iHit < nrOfMvdHits; iHit++) {
     CbmMatch* mvdMatch = (CbmMatch*) fMvdHitMatchArray->At(stsTrack->GetMvdHitIndex(iHit));
-    if (mvdMatch) { nrOfLinks = mvdMatch->GetNofLinks(); }
+    if (mvdMatch) {
+      nrOfLinks = mvdMatch->GetNofLinks();
+    }
     else {
       continue;  // any kind of error in the matching
     }
@@ -926,7 +953,9 @@ void CbmMvdQa::SetMatches(Int_t MCtrackID, CbmStsTrack* stsTrack)
       }
       else
         mcTrackId = point->GetTrackID();
-      if (mcTrackId == MCtrackID) { hasTrack = kTRUE; }
+      if (mcTrackId == MCtrackID) {
+        hasTrack = kTRUE;
+      }
     }
     if (!hasTrack) falseCounter++;
   }
@@ -941,14 +970,15 @@ void CbmMvdQa::SetMatches(Int_t MCtrackID, CbmStsTrack* stsTrack)
 //-----------------------------------------------------------------------------------------
 void CbmMvdQa::Finish()
 {
-  foutFile->cd();
+
+  //  foutFile->cd();
 
   if (useMcQa) FinishMCQa();
   if (useDigiQa) FinishDigiQa();
   if (useHitQa) FinishHitQa();
   if (useTrackQa) FinishTrackQa();
 
-  foutFile->Write();
+  //  foutFile->Write();
 }
 //-----------------------------------------------------------------------------------------
 
diff --git a/macro/mvd/qa/CMakeLists.txt b/macro/mvd/qa/CMakeLists.txt
index cbecc2c9dfbbd6a860e6fa0507f13d2613c82aee..96f0d9dc5f50cc87fe53f92fa4fbe2f6e993fea1 100644
--- a/macro/mvd/qa/CMakeLists.txt
+++ b/macro/mvd/qa/CMakeLists.txt
@@ -56,13 +56,13 @@ SET_TESTS_PROPERTIES(mvd_qa3_digitize_event PROPERTIES
         FIXTURES_SETUP fixture_mvd_qa4_reco_event
 )
 
-#GENERATE_ROOT_TEST_SCRIPT(${CBMROOT_SOURCE_DIR}/macro/mvd/qa/mvd_qa4_reco_event.C)
-#add_test(mvd_qa4_reco_event ${CBMROOT_BINARY_DIR}/macro/mvd/qa/mvd_qa4_reco_event.sh)
-#SET_TESTS_PROPERTIES(mvd_qa4_reco_event PROPERTIES
-#        TIMEOUT "300"
-#        PASS_REGULAR_EXPRESSION "Test Passed;All ok"
-#        FIXTURES_REQUIRED fixture_mvd_qa4_reco_event
-#)
+GENERATE_ROOT_TEST_SCRIPT(${CBMROOT_SOURCE_DIR}/macro/mvd/qa/mvd_qa4_reco_event.C)
+add_test(mvd_qa4_reco_event ${CBMROOT_BINARY_DIR}/macro/mvd/qa/mvd_qa4_reco_event.sh)
+SET_TESTS_PROPERTIES(mvd_qa4_reco_event PROPERTIES
+        TIMEOUT "300"
+        PASS_REGULAR_EXPRESSION "Test Passed;All ok"
+        FIXTURES_REQUIRED fixture_mvd_qa4_reco_event
+)
 
 Install(FILES mvd_qa1_transUrqmd.C mvd_qa2_transDelta.C mvd_qa3_digitize.C mvd_qa4_reco.C
         DESTINATION share/cbmroot/macro/mvd
diff --git a/macro/mvd/qa/mvd_qa4_reco_event.C b/macro/mvd/qa/mvd_qa4_reco_event.C
index a19f599813c77673d5cd70e58a1276f92ad359d1..9e4ad9c2e99125a8fc0d3e8a9c34fd58bcaaf9d6 100644
--- a/macro/mvd/qa/mvd_qa4_reco_event.C
+++ b/macro/mvd/qa/mvd_qa4_reco_event.C
@@ -99,14 +99,12 @@ void mvd_qa4_reco_event(const char* setup = "sis100_electron")
   mvd_hit->SetMode(ECbmRecoMode::EventByEvent);
   fRun->AddTask(mvd_hit);
 
-/*
   CbmMatchRecoToMC* match = new CbmMatchRecoToMC();
   fRun->AddTask(match);
 
   CbmMvdQa* qaTask = new CbmMvdQa("CbmMvdQa");
   qaTask->SetUseHitQa();
   fRun->AddTask(qaTask);
-*/
   //----------------------------------------------------------------------------
   // -----  Parameter database   -----------------------------------------------
   FairRuntimeDb* rtdb       = fRun->GetRuntimeDb();