diff --git a/analysis/PWGDIL/dimuon/CbmAnaDimuonAnalysis.cxx b/analysis/PWGDIL/dimuon/CbmAnaDimuonAnalysis.cxx
index f915b5a4c75520211d90fc8ce9bd9ba0eb52b91c..c81cf92e66313fe5e181671153841aec356b3f7e 100644
--- a/analysis/PWGDIL/dimuon/CbmAnaDimuonAnalysis.cxx
+++ b/analysis/PWGDIL/dimuon/CbmAnaDimuonAnalysis.cxx
@@ -35,6 +35,7 @@
 #include "CbmTrdTrack.h"
 #include "CbmTrdTrackFitterKF.h"
 #include "CbmVertex.h"
+#include "FairEventHeader.h"
 #include "FairRootManager.h"
 #include "FairTrackParam.h"
 #include "PParticle.h"
@@ -66,6 +67,7 @@ using namespace std;
 CbmAnaDimuonAnalysis::CbmAnaDimuonAnalysis(TString name, TString setup)
   : FairTask("AnaDimuonAnalysis")
   , fEvent(0)
+  , fEvtHeader()
   , fMCTracks(NULL)
   , fStsTracks(NULL)
   , fStsTrackMatches(NULL)
@@ -95,6 +97,7 @@ CbmAnaDimuonAnalysis::CbmAnaDimuonAnalysis(TString name, TString setup)
   , fNofMuchCut(11)
   , fNofStsCut(7)
   , fNofTrdCut(1)
+  , fFileAnnName("")
   ,
   //    fFileName("histo.root"),
   //    fEffFileName("eff_histo.root"),
@@ -141,7 +144,8 @@ InitStatus CbmAnaDimuonAnalysis::Init()
   fTofHit = (TClonesArray*) fManager->GetObject("TofHit");
   if (nullptr == fTofHit) LOG(fatal) << "No TofHit in input";
 
-  fVertex = dynamic_cast<CbmVertex*>(fManager->GetObject("PrimaryVertex."));
+  fVertex    = dynamic_cast<CbmVertex*>(fManager->GetObject("PrimaryVertex."));
+  fEvtHeader = dynamic_cast<FairEventHeader*>(fManager->GetObject("EventHeader."));
 
   fEvent = 0;
 
@@ -485,10 +489,12 @@ InitStatus CbmAnaDimuonAnalysis::Init()
   gFile      = oldFile;
   gDirectory = oldDir;
 
-  if (fNeurons > 0)
-    fFileAnnName = dir + "/parameters/much/muid_ann_" + std::to_string(fNeurons) + "_" + +fSetupName + "_weights.txt";
-  else
-    fFileAnnName = dir + "/parameters/much/muid_ann_16_sis100_muon_lmvm_weights.txt";
+  if (fFileAnnName == "") {
+    if (fNeurons > 0)
+      fFileAnnName = dir + "/parameters/much/muid_ann_" + std::to_string(fNeurons) + "_" + +fSetupName + "_weights.txt";
+    else
+      fFileAnnName = dir + "/parameters/much/muid_ann_16_sis100_muon_lmvm_weights.txt";
+  }
 
   FILE* file = fopen(fFileAnnName.Data(), "r");
   char buffer[100];
@@ -690,7 +696,8 @@ void CbmAnaDimuonAnalysis::Exec(Option_t* /*opt*/)
       if (th) {
         nTofHits = 1;
 
-        Double_t time = th->GetTime();
+        //Double_t time = th->GetTime()-1000;
+        Double_t time = th->GetTime() - fEvtHeader->GetEventTime();
         Double_t beta = globalTrack->GetLength() * 0.01 / (time * 1e-9 * TMath::C());
 
         TVector3 momL;
@@ -718,6 +725,12 @@ void CbmAnaDimuonAnalysis::Exec(Option_t* /*opt*/)
             int pdg = TMath::Abs(mcTrack->GetPdgCode());
             stsPDG  = pdg;
             if (mcTrack->GetGeantProcessId() == kPPrimary && pdg == 13) {
+              /*
+            if (pdg == 13) {                
+                CbmMCTrack* mcTrack = (CbmMCTrack*) fMCTracks->At(stsMcTrackId);
+                CbmMCTrack* mmct=(CbmMCTrack*)fMCTracks->At(mcTrack->GetMotherId());
+                if(TMath::Abs(mmct->GetPdgCode()) != 211 && TMath::Abs(mmct->GetPdgCode()) != 321){
+                */
               isMu = 1;
               if (mcTrack->GetCharge() < 0) {
                 muMn_reco.Mu = kTRUE;
@@ -765,7 +778,7 @@ void CbmAnaDimuonAnalysis::Exec(Option_t* /*opt*/)
                 }
               }
             }
-          }
+          }  //}
         }
       }
     }
diff --git a/analysis/PWGDIL/dimuon/CbmAnaDimuonAnalysis.h b/analysis/PWGDIL/dimuon/CbmAnaDimuonAnalysis.h
index 62047558b90aa4de8d7fe7c5c366e58447c1f51c..817e1878dbddc43a02edd79faf7f49dc74d905f9 100644
--- a/analysis/PWGDIL/dimuon/CbmAnaDimuonAnalysis.h
+++ b/analysis/PWGDIL/dimuon/CbmAnaDimuonAnalysis.h
@@ -14,6 +14,7 @@
 #ifndef CBMANADIMUONANALYSIS_H_
 #define CBMANADIMUONANALYSIS_H_ 1
 
+#include "FairEventHeader.h"
 #include "FairTask.h"
 
 #include <vector>
@@ -68,6 +69,8 @@ class CbmAnaDimuonAnalysis : public FairTask {
   void UseCuts(Bool_t cut) { fUseCuts = cut; }
   void UseMC(Bool_t useMC) { fUseMC = useMC; }
 
+  void SetANNFileName(TString name) { fFileAnnName = name; }
+
   //  void SetHistoFileName(TString name) {fFileName = name; }
   //  void SetEffFileName(TString name)   {fEffFileName = name; }
 
@@ -79,6 +82,7 @@ class CbmAnaDimuonAnalysis : public FairTask {
 
  private:
   Int_t fEvent;
+  FairEventHeader* fEvtHeader;
   TClonesArray* fMCTracks;
   TClonesArray* fStsTracks;
   TClonesArray* fStsTrackMatches;
diff --git a/macro/analysis/much/ANN.C b/macro/analysis/much/ANN.C
index 2511797118da29e484d6eceedcd94e0a6bc1c560..3e7422dc3d1a534e4802c86592a8dac62e40a78b 100644
--- a/macro/analysis/much/ANN.C
+++ b/macro/analysis/much/ANN.C
@@ -12,7 +12,7 @@
 //
 //---------------------------------------------------
 
-void ANN(Int_t energy = 8, Int_t NofFiles = 1000, TString dir = "../../much/data/", TString setup = "sis100_muon_lmvm",
+void ANN(Int_t energy = 10, Int_t NofFiles = 1000, TString dir = "../../much/data/", TString setup = "sis100_muon_lmvm",
          Int_t ntrain = 300, Int_t neurons = 16)
 {
   gStyle->SetCanvasColor(10);
@@ -70,9 +70,9 @@ void ANN(Int_t energy = 8, Int_t NofFiles = 1000, TString dir = "../../much/data
   for (int i = 0; i < 2; i++) {
     for (int k = 1; k < NofFiles + 1; k++) {
       if (i == 0)
-        name.Form("%s/%s/%dgev/omega/%d/muons.ana.root", dir.Data(), setup.Data(), energy, k);
+        name.Form("%s/%s/auau_%dAGeV/centr/%d/omega.ana.root", dir.Data(), setup.Data(), energy, k);
       else
-        name.Form("%s/%s/%dgev/centr/%d/muons.ana.root", dir.Data(), setup.Data(), energy, k);
+        name.Form("%s/%s/auau_%dAGeV/centr/%d/muons.ana.root", dir.Data(), setup.Data(), energy, k);
 
       TFile* f = new TFile(name);
       if (f->IsZombie() || f->GetNkeys() < 1 || f->TestBit(TFile::kRecovered)) {
@@ -191,15 +191,17 @@ void ANN(Int_t energy = 8, Int_t NofFiles = 1000, TString dir = "../../much/data
   simu->Branch("NofTRD", &NofTRD, "NofTRD/I", 20000000);
   simu->Branch("type", &type, "type/I", 20000000);
 
+  Int_t Max = TMath::Min(Signal->GetEntries(), Bg->GetEntries());
+
   type = 1;  // 1 = signal, 0 = background
   Int_t i;
-  for (i = 0; i < Signal->GetEntries(); i++) {
+  for (i = 0; i < Max; i++) {
     Signal->GetEntry(i);
     simu->Fill();
   }
 
   type = 0;
-  for (i = 0; i < Bg->GetEntries(); i++) {
+  for (i = 0; i < Max; i++) {
     Bg->GetEntry(i);
     simu->Fill();
   }
@@ -214,7 +216,7 @@ void ANN(Int_t energy = 8, Int_t NofFiles = 1000, TString dir = "../../much/data
   mlp->DumpWeights(name);
 
   TCanvas* mlpa_canvas = new TCanvas("mlpa_canvas", "Network analysis");
-  mlpa_canvas->Divide(2, 2);
+  mlpa_canvas->Divide(3, 1);
   TMLPAnalyzer ana(mlp);
   ana.GatherInformations();
   ana.CheckNetwork();
@@ -223,8 +225,8 @@ void ANN(Int_t energy = 8, Int_t NofFiles = 1000, TString dir = "../../much/data
   mlpa_canvas->cd(2);
   mlp->Draw();
   mlpa_canvas->cd(3);
-  ana.DrawNetwork(0, "type==1", "type==0");
-  mlpa_canvas->cd(4);
+  //ana.DrawNetwork(0, "type==1", "type==0");
+  //mlpa_canvas->cd(4);
 
   TH1F* bg  = new TH1F("bgh", "NN output", 50, -.5, 1.5);
   TH1F* sig = new TH1F("sigh", "NN output", 50, -.5, 1.5);
@@ -233,7 +235,7 @@ void ANN(Int_t energy = 8, Int_t NofFiles = 1000, TString dir = "../../much/data
 
   Double_t params[9];
 
-  for (i = 0; i < Bg->GetEntries(); i++) {
+  for (i = 0; i < Max; i++) {
     Bg->GetEntry(i);
     params[0] = P;
     params[1] = M;
@@ -249,7 +251,7 @@ void ANN(Int_t energy = 8, Int_t NofFiles = 1000, TString dir = "../../much/data
     bg->Fill(mlp->Evaluate(0, params));
   }
 
-  for (i = 0; i < Signal->GetEntries(); i++) {
+  for (i = 0; i < Max; i++) {
     Signal->GetEntry(i);
     params[0] = P;
     params[1] = M;
diff --git a/macro/much/run_ana.C b/macro/much/run_ana.C
index 368e4974e0bd3331febea89342322c7efe601f57..90f470a6a81c91b22091eacfda2e77c8b3e978d9 100644
--- a/macro/much/run_ana.C
+++ b/macro/much/run_ana.C
@@ -92,6 +92,8 @@ void run_ana(Int_t nEvents = 1000, TString dataSet = "muons", TString setup = "s
   ana->SetNofStsCut(7);
   ana->SetNofTrdCut(1);
   ana->SetSigmaTofCut(2);
+  
+  ana->SetANNFileName("ANN.root");
   */
   ana->UseCuts(kFALSE);
   //  ana->SetAnnCut(ANN, 5); // if SetAnnCut, than UseCuts(kFALSE) !
@@ -118,5 +120,5 @@ void run_ana(Int_t nEvents = 1000, TString dataSet = "muons", TString setup = "s
   cout << " Test passed" << endl;
   cout << " All ok " << endl;
 
-  RemoveGeoManager();
+  //RemoveGeoManager();
 }