diff --git a/analysis/PWGDIL/dielectron/lmvm/LmvmCuts.h b/analysis/PWGDIL/dielectron/lmvm/LmvmCuts.h
index 5302ca3699a1a8783f8e7de4a67b444734ddcfe9..ff1383d03c74aa9165c6d1364b4ab5025a7b7921 100644
--- a/analysis/PWGDIL/dielectron/lmvm/LmvmCuts.h
+++ b/analysis/PWGDIL/dielectron/lmvm/LmvmCuts.h
@@ -84,7 +84,7 @@ public:
   // Analysis cuts
   double fPtCut       = 0.2;
   double fAngleCut    = 1.;
-  double fChi2PrimCut = 3.;
+  double fChi2PrimCut = 3.0;
   double fGammaCut    = 0.025;
   double fStCutAngle  = 2.3;
   double fStCutPP     = 2.9;
diff --git a/analysis/PWGDIL/dielectron/lmvm/LmvmDraw.cxx b/analysis/PWGDIL/dielectron/lmvm/LmvmDraw.cxx
index 456a0bccc63276e8f14c8623caf74338c5b085eb..4db42c028bdc85bc67c1a5f3718d7cb161d4a189 100644
--- a/analysis/PWGDIL/dielectron/lmvm/LmvmDraw.cxx
+++ b/analysis/PWGDIL/dielectron/lmvm/LmvmDraw.cxx
@@ -37,12 +37,11 @@ using namespace std;
 using namespace Cbm;
 LmvmDraw::LmvmDraw() {}
 
-void LmvmDraw::DrawHistFromFile(const string& fileName, const string& outputDir, bool useMvd, bool drawSig)
+void LmvmDraw::DrawHistFromFile(const string& fileName, const string& outputDir, bool useMvd)
 {
   SetDefaultDrawStyle();
   fOutputDir        = outputDir;
   fUseMvd           = useMvd;
-  fDrawSignificance = drawSig;
 
   /// Save old global file and folder pointer to avoid messing with FairRoot
   TFile* oldFile     = gFile;
@@ -120,6 +119,7 @@ TH1D* LmvmDraw::CreateSignificanceH1(TH1D* s, TH1D* bg, const string& name, cons
       double sumBg     = bg->Integral(1, i, "width");
       double sign      = (sumSignal + sumBg != 0.) ? sumSignal / std::sqrt(sumSignal + sumBg) : 0.;
       hsig->SetBinContent(i, sign);
+      hsig->GetYaxis()->SetTitle("Significance");
     }
   }
   // "left" - reject left part of the histogram. value < cut -> reject
@@ -129,6 +129,7 @@ TH1D* LmvmDraw::CreateSignificanceH1(TH1D* s, TH1D* bg, const string& name, cons
       double sumBg     = bg->Integral(i, nBins, "width");
       double sign      = (sumSignal + sumBg != 0.) ? sumSignal / std::sqrt(sumSignal + sumBg) : 0.;
       hsig->SetBinContent(i, sign);
+      hsig->GetYaxis()->SetTitle("Significance");
     }
   }
   return hsig;
@@ -182,16 +183,18 @@ void LmvmDraw::DrawCutEffH1(const string& hist, const string& option)
     if (option == "right") {
       for (int iB = 1; iB <= nBins; iB++) {
         eff->SetBinContent(iB, fH.H1(hist, src)->Integral(1, iB, "width") / integralTotal);
+        eff->GetYaxis()->SetTitle("Cut Efficiency");
       }
     }
     else if (option == "left") {
       for (int iB = nBins; iB >= 1; iB--) {
         eff->SetBinContent(iB, fH.H1(hist, src)->Integral(iB, nBins, "width") / integralTotal);
+        eff->GetYaxis()->SetTitle("Cut Efficiency");
       }
     }
     effHist.push_back(eff);
   }
-  DrawH1(effHist, fH.fSrcLatex, kLinear, kLog, true, 0.8, 0.8, 0.99, 0.99, "hist");
+  DrawH1(effHist, fH.fSrcLatex, kLinear, kLinear, true, 0.8, 0.8, 0.99, 0.99, "hist");
 }
 
 
@@ -328,36 +331,35 @@ void LmvmDraw::DrawSrcH1(const string& hName, ELmvmAnaStep step, bool doScale)
 
 void LmvmDraw::Draw1DCut(const string& hist, const string& sigOption, double cut)
 {
-  int w = 800;
+  int w      = 2400;
   int h = 800;
-  if (fDrawSignificance) w = 2400;
-  TCanvas* c = fH.fHM.CreateCanvas(("lmvm_" + hist).c_str(), ("lmvm_" + hist).c_str(), w, h);
-  if (fDrawSignificance) {
-    c->Divide(3, 1);
-    c->cd(1);
-  }
+  TCanvas* c = fH.fHM.CreateCanvas(("lmvm_cuts/lmvm_" + hist).c_str(), ("lmvm_cuts/lmvm_" + hist).c_str(), w, h);
+  c->Divide(3, 1);
+
+  c->cd(1);
   DrawSrcH1(hist);
   if (cut != -999999.) {
     TLine* cutLine = new TLine(cut, 0.0, cut, 1.0);
     cutLine->SetLineWidth(2);
     cutLine->Draw();
   }
-  if (fDrawSignificance) {
-    c->cd(2);
-    DrawCutEffH1(hist, sigOption);
 
-    c->cd(3);
-    TH1D* sign =
-      CreateSignificanceH1(fH.H1(hist, ELmvmSrc::Signal), fH.H1(hist, ELmvmSrc::Bg), hist + "_significance", sigOption);
-    DrawH1(sign, kLinear, kLinear, "hist");
-  }
+  c->cd(2);
+  DrawCutEffH1(hist, sigOption);
+
+  c->cd(3);
+  TH1D* sign =
+    CreateSignificanceH1(fH.H1(hist, ELmvmSrc::Signal), fH.H1(hist, ELmvmSrc::Bg), hist + "_significance", sigOption);
+  DrawH1(sign, kLinear, kLinear, "hist");
 }
 
 void LmvmDraw::DrawCuts()
 {
-  Draw1DCut("hRichAnn", "left", -0.4);  // CbmLitGlobalElectronId::GetInstance().GetRichAnnCut()
-  Draw1DCut("hTrdAnn", "left", 0.85);   // CbmLitGlobalElectronId::GetInstance().GetTrdAnnCut()
+  Draw1DCut("hAnnRich", "left", -0.4);  // CbmLitGlobalElectronId::GetInstance().GetRichAnnCut()
+  Draw1DCut("hAnnTrd", "left", 0.1);    // CbmLitGlobalElectronId::GetInstance().GetTrdAnnCut()
+  Draw2DCut("hAnnRichVsMom");
   Draw2DCut("hTofM2");
+  DrawTofM2Cut();
 
   Draw1DCut("hChi2PrimVertex", "right", fCuts.fChi2PrimCut);
   //Draw1DCut("hPt", "left", fCuts.fPtCut);
@@ -379,6 +381,7 @@ void LmvmDraw::DrawCuts()
   }
 }
 
+
 void LmvmDraw::DrawSrcBgPairs(ELmvmAnaStep step, bool inPercent, bool drawAnaStep)
 {
   TH2D* h = fH.H2Clone("hSrcBgPairsEpEm", step);
@@ -443,9 +446,30 @@ void LmvmDraw::Draw2DCutTriangle(double xCr, double yCr)
   }
 }
 
+void LmvmDraw::DrawTofM2Cut()
+{
+  vector<TLine*> lines {new TLine(0., 0.01, 1.3, 0.01), new TLine(1.3, 0.01, 2.5, 0.022)};  // set by hand
+  TCanvas* c = fH.fHM.CreateCanvas("lmvm_cuts/lmvm_hTofM2_zoom", "lmvm_cuts/lmvm_hTofM2_zoom", 1600, 800);
+  c->Divide(2, 1);
+  int hi = 1;
+  for (ELmvmSrc src : {ELmvmSrc::Signal, ELmvmSrc::Bg}) {
+    TH2D* hist = fH.H2Clone("hTofM2", src);
+    c->cd(hi);
+    hist->GetXaxis()->SetRangeUser(0., 2.5);
+    hist->GetYaxis()->SetRangeUser(-0.08, 0.05);
+    DrawH2(hist);
+    DrawTextOnPad(fH.fSrcLatex[static_cast<int>(src)], 0.6, 0.89, 0.7, 0.99);
+    for (size_t i = 0; i < lines.size(); i++) {
+      lines[i]->SetLineWidth(2.);
+      lines[i]->Draw();
+    }
+    hi++;
+  }
+}
+
 void LmvmDraw::Draw2DCut(const string& hist, double cutCrossX, double cutCrossY)
 {
-  TCanvas* c = fH.fHM.CreateCanvas(("lmvm_" + hist).c_str(), ("lmvm_" + hist).c_str(), 1000, 1500);
+  TCanvas* c = fH.fHM.CreateCanvas(("lmvm_cuts/lmvm_" + hist).c_str(), ("lmvm_cuts/lmvm_" + hist).c_str(), 1000, 1500);
   c->Divide(2, 3);
   vector<TH1*> projX, projY;
   vector<string> latex;
@@ -797,7 +821,7 @@ void LmvmDraw::SetAnalysisStepAxis(TH1* h)
 void LmvmDraw::DrawMvdCutQa()
 {
   if (!fUseMvd) return;
-  TCanvas* c = fH.fHM.CreateCanvas("lmvm_mvdCutQa", "lmvm_mvd1cut_qa", 1600, 800);
+  TCanvas* c = fH.fHM.CreateCanvas("lmvm_cuts/lmvm_mvdCutQa", "lmvm_cuts/lmvm_mvd1cut_qa", 1600, 800);
   c->Divide(2, 1);
   int i = 1;
   for (const string& num : {"1", "2"}) {
diff --git a/analysis/PWGDIL/dielectron/lmvm/LmvmDraw.h b/analysis/PWGDIL/dielectron/lmvm/LmvmDraw.h
index feafb024af5b8e47ac25ad0dfa79d3721081f70b..1ac829f5b59f00b8568c0e9aa43ac40de66f9867 100644
--- a/analysis/PWGDIL/dielectron/lmvm/LmvmDraw.h
+++ b/analysis/PWGDIL/dielectron/lmvm/LmvmDraw.h
@@ -40,14 +40,12 @@ public:
      * \param[in] useMvd draw histograms related to the MVD detector?
      * \param[in] drawSig Do you want to draw significance histograms?
      **/
-  void DrawHistFromFile(const std::string& fileName, const std::string& outputDir = "", bool useMvd = true,
-                        bool drawSig = true);
+  void DrawHistFromFile(const std::string& fileName, const std::string& outputDir = "", bool useMvd = true);
 
 private:
   Int_t fNofEvents = 0;  // number of events of current job
 
   bool fUseMvd           = false;  // do you want to draw histograms related to the MVD detector?
-  bool fDrawSignificance = false;  // do you want to draw significance histograms of 1D cuts?
 
   LmvmCuts fCuts;  // electron identification and analysis cuts
 
@@ -98,6 +96,7 @@ private:
 
   void Draw1DCut(const std::string& hist, const std::string& sigOption, double cut = -999999.);
   void Draw2DCut(const std::string& hist, double cutCrossX = -999999., double cutCrossY = -999999.);
+  void DrawTofM2Cut();
   void DrawCuts();
 
   void DrawSrcBgPairs(ELmvmAnaStep step, bool inPercent, bool drawAnaStep = true);
diff --git a/analysis/PWGDIL/dielectron/lmvm/LmvmDrawAll.cxx b/analysis/PWGDIL/dielectron/lmvm/LmvmDrawAll.cxx
index b57627d709c13e3cf2abbe1a823658264202b465..747228bcea49c2b2b40420116349ef6ef47941f1 100644
--- a/analysis/PWGDIL/dielectron/lmvm/LmvmDrawAll.cxx
+++ b/analysis/PWGDIL/dielectron/lmvm/LmvmDrawAll.cxx
@@ -110,13 +110,13 @@ void LmvmDrawAll::CreateMeanHistAll()
 
   for (auto step : fHMean.fAnaSteps) {
     for (auto src : {ELmvmSrc::Bg, ELmvmSrc::Eta, ELmvmSrc::Pi0}) {
-      CreateMeanHist<TH1D>(fHMean.GetName("hMinv", src, step), nofEvents, 20);
+      CreateMeanHist<TH1D>(fHMean.GetName("hMinv", src, step), nofEvents, fRebMinv);
       CreateMeanHist<TH2D>(fHMean.GetName("hMinvPt", src, step), nofEvents);
     }
 
     for (const string& comb : {"PM", "PP", "MM"}) {
       for (const string& ev : {"sameEv", "mixedEv"}) {
-        CreateMeanHist<TH1D>(fHMean.GetName("hMinvComb" + comb + "_" + ev, step), nofEvents, 20);
+        CreateMeanHist<TH1D>(fHMean.GetName("hMinvComb" + comb + "_" + ev, step), nofEvents, fRebMinv);
       }
     }
   }
@@ -137,8 +137,8 @@ T* LmvmDrawAll::GetCocktailMinv(const string& name, ELmvmAnaStep step)
     T* sHist        = dynamic_cast<T*>(H(signal)->GetObject(nameFull)->Clone());
     int nofEvents   = (int) H(signal)->H1("hEventNumber")->GetEntries();
     sHist->Scale(1. / nofEvents);
-    if (name != "hMinvPt") {  // TODO: find another solution for this; rebin here has to be exactly the same as before
-      sHist->Rebin(20);
+    if (name != "hMinvPt") {
+      sHist->Rebin(fRebMinv);
       sHist->Scale(1. / binWidth);
     }
     if (cocktail == nullptr) cocktail = sHist;
@@ -174,7 +174,7 @@ void LmvmDrawAll::DrawMinv(ELmvmAnaStep step)
   for (ELmvmSignal signal : fHMean.fSignals) {
     TH1D* sHist = H(signal)->H1Clone("hMinv", ELmvmSrc::Signal, step);
     sHist->Scale(1. / H(signal)->H1("hEventNumber")->GetEntries());
-    sHist->Rebin(20);  // TODO urgent: find solution to rebin w. same value as before!
+    sHist->Rebin(fRebMinv);
     sHist->Scale(1. / binWidth);
     sHists[static_cast<int>(signal)] = sHist;
   }
@@ -411,6 +411,27 @@ void LmvmDrawAll::DrawMinvCombSignalAndBg()
     DrawH1(hists, legend, kLinear, kLinear, true, 0.8, 0.6, 0.99, 0.99, "HIST");
   }
 
+  //Draw Combinatorial Signal from N+-same (without mixed geom. mean)      // TODO: without mixed: needed or delete?
+  {
+    TCanvas* c = fHMean.fHM.CreateCanvas("lmvmAll_minvCombPMSignal", "lmvmAll_minvCombPMSignal", 1800, 1800);
+    c->Divide(3, 3);
+    int i = 1;
+    for (auto step : fHMean.fAnaSteps) {
+      if (step < ELmvmAnaStep::ElId) continue;
+      c->cd(i++);
+      TH1D* pmSame          = fHMean.H1Clone("hMinvCombPM_sameEv", step);
+      TH1D* combPMSignalAsm = fHMean.H1Clone("hMinvCombPMSignal", step);
+      TH1D* combBgAsm       = fHMean.H1Clone("hMinvCombBg", step);
+      TH1D* cocktail        = GetCocktailMinvH1(step);
+      pmSame->SetMaximum(3e-1);
+      pmSame->SetMinimum(4e-8);
+      DrawH1({pmSame, combBgAsm, combPMSignalAsm, cocktail},
+             {"N_{same}^{+-}", "B_{c}", "Signal (N_{same}^{+-} - B_{c})", "Cocktail"}, kLinear, kLog, true, 0.8, 0.8,
+             0.99, 0.99, "hist");
+      fHMean.DrawAnaStepOnPad(step);
+    }
+  }
+
   //Draw Combinatorial Signal from N+-same
   {
     TCanvas* c = fHMean.fHM.CreateCanvas("lmvmAll_minvCombPMSignalAsm", "lmvmAll_minvCombPMSignalAsm", 1800, 1800);
@@ -423,6 +444,8 @@ void LmvmDrawAll::DrawMinvCombSignalAndBg()
       TH1D* combPMSignalAsm = fHMean.H1Clone("hMinvCombPMSignalAsm", step);
       TH1D* combBgAsm       = fHMean.H1Clone("hMinvCombBgAsm", step);
       TH1D* cocktail        = GetCocktailMinvH1(step);
+      pmSame->SetMaximum(3e-1);
+      pmSame->SetMinimum(4e-8);
       DrawH1({pmSame, combBgAsm, combPMSignalAsm, cocktail},
              {"N_{same}^{+-}", "B_{c} (asm)", "Signal (N_{same}^{+-} - B_{c})", "Cocktail"}, kLinear, kLog, true, 0.8,
              0.8, 0.99, 0.99, "hist");
@@ -442,6 +465,8 @@ void LmvmDrawAll::DrawMinvCombSignalAndBg()
       sbg->Add(GetCocktailMinvH1(step));
       TH1D* combBgAsm    = fHMean.H1Clone("hMinvCombBgAsm", step);
       TH1D* sBgSignalAsm = fHMean.H1Clone("hMinvSBgSignalAsm", step);
+      sbg->SetMaximum(3e-1);
+      sbg->SetMinimum(4e-8);
       TH1D* cocktail     = GetCocktailMinvH1(step);
       DrawH1({sbg, combBgAsm, sBgSignalAsm, cocktail},
              {"Cocktail + BG", "B_{c} (asm)", "Signal (Cocktail+BG - B_{c})", "Cocktail"}, kLinear, kLog, true, 0.8,
@@ -449,6 +474,29 @@ void LmvmDrawAll::DrawMinvCombSignalAndBg()
       fHMean.DrawAnaStepOnPad(step);
     }
   }
+
+
+  //Draw Combinatorial Signal from Cocktail+BG (without mixed geom. mean)      // TODO: without mixed: needed or delete?
+  {
+    TCanvas* c = fHMean.fHM.CreateCanvas("lmvmAll_minvSbgSignal", "lmvmAll_minvSbgSignal", 1800, 1800);
+    c->Divide(3, 3);
+    int i = 1;
+    for (auto step : fHMean.fAnaSteps) {
+      if (step < ELmvmAnaStep::ElId) continue;
+      c->cd(i++);
+      TH1D* sbg = fHMean.H1Clone("hMinv_bg", step);
+      sbg->Add(GetCocktailMinvH1(step));
+      TH1D* combBgAsm    = fHMean.H1Clone("hMinvCombBg", step);
+      TH1D* sBgSignalAsm = fHMean.H1Clone("hMinvSBgSignal", step);
+      sbg->SetMaximum(3e-1);
+      sbg->SetMinimum(4e-8);
+      TH1D* cocktail = GetCocktailMinvH1(step);
+      DrawH1({sbg, combBgAsm, sBgSignalAsm, cocktail},
+             {"Cocktail + BG", "B_{c}", "Signal (Cocktail+BG - B_{c})", "Cocktail"}, kLinear, kLog, true, 0.8, 0.8,
+             0.99, 0.99, "hist");
+      fHMean.DrawAnaStepOnPad(step);
+    }
+  }
 }
 
 void LmvmDrawAll::DrawSBgVsMinv()
@@ -531,13 +579,22 @@ void LmvmDrawAll::CalcCombBGHistos()
       }
     }
 
+    // calculate comb. signal from same events data (S = N^{+-}_{same} - B_{C})   // TODO: without mixed: needed?
+    TH1D* hCombPMSignal = fHMean.CreateHByClone<TH1D>("hMinvCombPM_sameEv", "hMinvCombPMSignal", step);
+    hCombPMSignal->Add(fHMean.H1("hMinvCombBg", step), -1.);
+
     // calculate assembled comb. signal from same (<= 0.3 GeV) and mixed (> 0.3 GeV) events data
     // from 'N+-same', Signal (N^{+-}_{same} - B_{C})
     //fh_mean_combSignalNpm_assemb_minv
     TH1D* hCombPMSignalAsm = fHMean.CreateHByClone<TH1D>("hMinvCombPM_sameEv", "hMinvCombPMSignalAsm", step);
     hCombPMSignalAsm->Add(fHMean.H1("hMinvCombBgAsm", step), -1.);
 
-    // from 'Cocktail + BG'
+    // from 'Cocktail + BG
+    TH1D* hBCSignal = fHMean.CreateHByClone<TH1D>("hMinv_bg", "hMinvSBgSignal", step);
+    hBCSignal->Add(GetCocktailMinvH1(step));
+    hBCSignal->Add(fHMean.H1("hMinvCombBg", step), -1.);
+
+    // from 'Cocktail + BG' (S = Coc+BG - B_{C})     // TODO: without mixed: needed?
     //fh_mean_combSignalBCoc_assemb_minv
     TH1D* hBCSignalAsm = fHMean.CreateHByClone<TH1D>("hMinv_bg", "hMinvSBgSignalAsm", step);
     hBCSignalAsm->Add(GetCocktailMinvH1(step));
@@ -750,7 +807,7 @@ LmvmSBgResultData LmvmDrawAll::CalculateSBgResult(ELmvmSignal signal, ELmvmAnaSt
 void LmvmDrawAll::SaveCanvasToImage()
 {
   cout << "Images output dir:" << fOutputDir << endl;
-  fHMean.fHM.SaveCanvasToImage(fOutputDir, "png;eps");  // fHM[0]->SaveCanvasToImage(fOutputDir, "eps;png");
+  fHMean.fHM.SaveCanvasToImage(fOutputDir, "png");  // fHM[0]->SaveCanvasToImage(fOutputDir, "eps;png");
 }
 
 ClassImp(LmvmDrawAll);
diff --git a/analysis/PWGDIL/dielectron/lmvm/LmvmDrawAll.h b/analysis/PWGDIL/dielectron/lmvm/LmvmDrawAll.h
index 56415b5205882100be261486a21e222b4fbe40ae..4a2871b6916b646f2b1fd2c6bb0d8fadcdebe432 100644
--- a/analysis/PWGDIL/dielectron/lmvm/LmvmDrawAll.h
+++ b/analysis/PWGDIL/dielectron/lmvm/LmvmDrawAll.h
@@ -37,6 +37,8 @@ private:
   std::vector<LmvmHist*> fH;
   LmvmHist fHMean;
 
+  int fRebMinv = 40;  // Rebin for minv histograms
+
   std::string fOutputDir;  // output directory for figures
 
   LmvmHist* H(ELmvmSignal signal);
diff --git a/analysis/PWGDIL/dielectron/lmvm/LmvmTask.cxx b/analysis/PWGDIL/dielectron/lmvm/LmvmTask.cxx
index e0e9100507163609434634bf979a6a586cc2eadf..3e09d218f3639d2190cdcb3dc90ad04acf7660f0 100644
--- a/analysis/PWGDIL/dielectron/lmvm/LmvmTask.cxx
+++ b/analysis/PWGDIL/dielectron/lmvm/LmvmTask.cxx
@@ -91,8 +91,9 @@ void LmvmTask::InitHists()
   fH.CreateH1("hEventNumber", "", "", 1, 0, 1.);
   fH.CreateH1("hEventNumberMixed", "", "", 1, 0, 1.);
 
-  fH.CreateH1("hRichAnn", fH.fSrcNames, "RICH ANN output", ax, 100, -1.1, 1.1);
-  fH.CreateH1("hTrdAnn", fH.fSrcNames, "Likelihood output", ax, 100, -.1, 1.1);  // TODO: change back to "TRD ANN"
+  fH.CreateH1("hAnnRich", fH.fSrcNames, "RICH ANN output", ax, 100, -1.1, 1.1);
+  fH.CreateH2("hAnnRichVsMom", fH.fSrcNames, "P [GeV/c]", "RICH ANN output", ax, 100, 0., 6., 100, -1.1, 1.1);
+  fH.CreateH1("hAnnTrd", fH.fSrcNames, "Likelihood output", ax, 100, -.1, 1.1);  // TODO: change back to "TRD ANN"
   fH.CreateH2("hTofM2", fH.fSrcNames, "P [GeV/c]", "m^{2} [GeV/c^{2}]^{2}", ax, 100, 0., 4., 500, -0.1, 1.0);
   fH.CreateH1("hChi2Sts", fH.fSrcNames, "#chi^{2}", ax, 200, 0., 20.);
   fH.CreateH1("hChi2PrimVertex", fH.fSrcNames, "#chi^{2}_{prim}", ax, 200, 0., 20.);
@@ -115,16 +116,16 @@ void LmvmTask::InitHists()
               2.);  // [0.5]-correct, [1.5]-wrong
   fH.CreateH1("hMvdMcDist", {"1", "2"}, fH.fSrcNames, "Track-Hit distance [cm]", ax, 100, 0., 10.);
 
-  fH.CreateH1("hMinv", fH.fSrcNames, fH.fAnaStepNames, "M_{ee} [GeV/c^{2}]", ax, 2000, 0., 2.);
-  fH.CreateH1("hMinvCombPM", {"sameEv", "mixedEv"}, fH.fAnaStepNames, "M_{e+e-} [GeV/c^{2}]", ax, 2000, 0., 2.);
-  fH.CreateH1("hMinvCombPP", {"sameEv", "mixedEv"}, fH.fAnaStepNames, "M_{e+e+} [GeV/c^{2}]", ax, 2000, 0., 2.);
-  fH.CreateH1("hMinvCombMM", {"sameEv", "mixedEv"}, fH.fAnaStepNames, "M_{e-e-} [GeV/c^{2}]", ax, 2000, 0., 2.);
+  fH.CreateH1("hMinv", fH.fSrcNames, fH.fAnaStepNames, "M_{ee} [GeV/c^{2}]", ax, 2500, 0., 2.5);
+  fH.CreateH1("hMinvCombPM", {"sameEv", "mixedEv"}, fH.fAnaStepNames, "M_{e+e-} [GeV/c^{2}]", ax, 2500, 0., 2.5);
+  fH.CreateH1("hMinvCombPP", {"sameEv", "mixedEv"}, fH.fAnaStepNames, "M_{e+e+} [GeV/c^{2}]", ax, 2500, 0., 2.5);
+  fH.CreateH1("hMinvCombMM", {"sameEv", "mixedEv"}, fH.fAnaStepNames, "M_{e-e-} [GeV/c^{2}]", ax, 2500, 0., 2.5);
   fH.CreateH1("hMinvBgMatch", {"trueMatch", "trueMatchEl", "trueMatchNotEl", "mismatch"}, fH.fAnaStepNames,
-              "M_{ee} [GeV/c^{2}]", ax, 2000, 0., 2.);
-  fH.CreateH1("hMinvBgSource", fH.fBgPairSrcNames, fH.fAnaStepNames, "M_{ee} [GeV/c^{2}]", ax, 2000, 0., 2.);
+              "M_{ee} [GeV/c^{2}]", ax, 2000, 0., 2.5);
+  fH.CreateH1("hMinvBgSource", fH.fBgPairSrcNames, fH.fAnaStepNames, "M_{ee} [GeV/c^{2}]", ax, 2500, 0., 2.5);
 
-  fH.CreateH2("hMinvPt", fH.fSrcNames, fH.fAnaStepNames, "M_{ee} [GeV/c^{2}]", "P_{t} [GeV/c]", ax, 100, 0., 2., 20, 0.,
-              2.);
+  fH.CreateH2("hMinvPt", fH.fSrcNames, fH.fAnaStepNames, "M_{ee} [GeV/c^{2}]", "P_{t} [GeV/c]", ax, 100, 0., 2., 25, 0.,
+              2.5);
 
   fH.CreateH1("hMomPairSignal", fH.fAnaStepNames, "P [GeV/c]", ax, 100, 0., 15.);
   fH.CreateH2("hPtYPairSignal", fH.fAnaStepNames, "Rapidity", "P_{t} [GeV/c]", ax, 40, 0., 4., 20, 0., 2.);
@@ -574,7 +575,7 @@ void LmvmTask::FillCands()
 void LmvmTask::CombinatorialPairs()
 {
   size_t nCand = fCandsTotal.size();
-  for (size_t iC1 = 0; iC1 < nCand; iC1++) {
+  for (size_t iC1 = 0; iC1 < nCand - 1; iC1++) {
     const auto& cand1 = fCandsTotal[iC1];
 
     for (size_t iC2 = iC1 + 1; iC2 < nCand; iC2++) {
@@ -957,8 +958,9 @@ void LmvmTask::DifferenceSignalAndBg()
     fH.FillH1("hChi2PrimVertex", cand.fMcSrc, cand.fChi2Prim, fW);
 
     if (!cand.fIsChi2Prim) continue;
-    fH.FillH1("hRichAnn", cand.fMcSrc, cand.fRichAnn, fW);
-    fH.FillH1("hTrdAnn", cand.fMcSrc, cand.fTrdAnn, fW);
+    fH.FillH1("hAnnRich", cand.fMcSrc, cand.fRichAnn, fW);
+    fH.FillH2("hAnnRichVsMom", cand.fMcSrc, cand.fMomentum.Mag(), cand.fRichAnn, fW);
+    fH.FillH1("hAnnTrd", cand.fMcSrc, cand.fTrdAnn, fW);
     fH.FillH2("hTofM2", cand.fMcSrc, cand.fMomentum.Mag(), cand.fMass2, fW);
     fH.FillH2("hTrdLike_El", cand.fMcSrc, cand.fMomentum.Mag(), cand.fTrdLikeEl, fW);
     fH.FillH2("hTrdLike_Pi", cand.fMcSrc, cand.fMomentum.Mag(), cand.fTrdLikePi, fW);
diff --git a/macro/analysis/dielectron/batch_job.py b/macro/analysis/dielectron/batch_job.py
index 23282b2c5bb28afd6f9d3e93601302e51ed539a0..42d42f206210322cb26d85e30a92fb04db70fe18 100755
--- a/macro/analysis/dielectron/batch_job.py
+++ b/macro/analysis/dielectron/batch_job.py
@@ -10,7 +10,7 @@ def main():
   plutoParticle = sys.argv[3]
   cbmrootConfigPath = "/lustre/nyx/cbm/users/criesen/build/config.sh"
   macroDir = "/lustre/nyx/cbm/users/criesen/cbmroot/macro/analysis/dielectron/"
-  nofEvents = 500
+  nofEvents = 1000
 
   taskId = os.environ.get('SLURM_ARRAY_TASK_ID')
   jobId = os.environ.get('SLURM_ARRAY_JOB_ID')
@@ -48,7 +48,7 @@ def main():
   #os.system((". /{} -a; {}").format(cbmrootConfigPath, traCmd))
   #os.system((". /{} -a; {}").format(cbmrootConfigPath, digiCmd))
   #os.system((". /{} -a; {}").format(cbmrootConfigPath, recoCmd))
-  os.system((". /{} -a; {}").format(cbmrootConfigPath, qaCmd))
+  #os.system((". /{} -a; {}").format(cbmrootConfigPath, qaCmd))
   os.system((". /{} -a; {}").format(cbmrootConfigPath, anaCmd))
 
 def getPlutoPath(colSystem, colEnergy, plutoParticle, taskId):
diff --git a/macro/analysis/dielectron/draw_all.py b/macro/analysis/dielectron/draw_all.py
index 1c57c45021138b055e1d88d7c86b619785b9dce2..ef19322f7c8180fd63fb91a309a52fb924bac1d2 100755
--- a/macro/analysis/dielectron/draw_all.py
+++ b/macro/analysis/dielectron/draw_all.py
@@ -8,7 +8,6 @@ def main():
   dataDirOut = dataDir + "/results/"
   macroDir = "/lustre/cbm/users/criesen/cbmroot/macro/analysis/dielectron/"
   useMvd = True
-  drawSig = True
   
   if os.path.exists(dataDirOut):
     shutil.rmtree(dataDirOut)
@@ -20,7 +19,7 @@ def main():
 
     resultDirAna = resultDir + "/lmvm/"
     inRootAna = dataDir + plutoParticle + "/analysis.all.root"
-    os.system(('root -l -b -q {}/draw_analysis.C\(\\"{}\\",\\"{}\\",\\"{}\\",\\"{}\\"\)').format(macroDir, inRootAna, resultDirAna, useMvd, drawSig))
+    os.system(('root -l -b -q {}/draw_analysis.C\(\\"{}\\",\\"{}\\",\\"{}\\"\)').format(macroDir, inRootAna, resultDirAna, useMvd))
     
     resultDirLitqa = resultDir + "/litqa/"
     inRootLitqa = dataDir + plutoParticle + "/litqa.all.root"
@@ -32,7 +31,7 @@ def main():
   allOmega = dataDir + "/omegaepem/analysis.all.root"
   allPhi = dataDir + "/phi/analysis.all.root"
   allOmegaD = dataDir + "/omegadalitz/analysis.all.root"
-  resultDirAll = dataDirOut + "/lmvm_all/"
+  resultDirAll = dataDirOut + "/all/"
 
   os.system(('root -l -b -q {}/draw_analysis_all.C\(\\"{}\\",\\"{}\\",\\"{}\\",\\"{}\\",\\"{}\\",\\"{}\\",\\"{}\\"\)').format(macroDir, allInmed, allQgp, allOmega, allPhi, allOmegaD, resultDirAll, useMvd))
 
diff --git a/macro/analysis/dielectron/draw_analysis.C b/macro/analysis/dielectron/draw_analysis.C
index e04cc2eb900ca65a71bb1e03a6868ced02bfb44f..75fa8071ec68af7caaed9970b3380f376e07fabd 100644
--- a/macro/analysis/dielectron/draw_analysis.C
+++ b/macro/analysis/dielectron/draw_analysis.C
@@ -4,13 +4,12 @@
 
 //#include <experimental/filesystem>
 
-void draw_analysis(const string& histRootFile = "/home/aghoehne/soft/cbm/data/output/phi/analysis.all.root",
-                   const string& resultDir = "/home/aghoehne/soft/cbm/data/output/results/", Bool_t useMvd = true,
-                   Bool_t drawSignificance = true)
+void draw_analysis(const string& histRootFile = "/home/aghoehne/soft/cbm/data/output/phi/analysis.1.root",
+                   const string& resultDir = "/home/aghoehne/soft/cbm/data/output/results/", Bool_t useMvd = true)
 
 {
   gSystem->mkdir(resultDir.c_str(), true);
 
   LmvmDraw* draw = new LmvmDraw();
-  draw->DrawHistFromFile(histRootFile, resultDir, useMvd, drawSignificance);
+  draw->DrawHistFromFile(histRootFile, resultDir, useMvd);
 }
diff --git a/macro/analysis/dielectron/run_local.py b/macro/analysis/dielectron/run_local.py
index eebaf8d39d037c137d13714c3033fe6a2b2f66b1..7eea67966c3e9badae5af6ad9917de1480188ddc 100755
--- a/macro/analysis/dielectron/run_local.py
+++ b/macro/analysis/dielectron/run_local.py
@@ -9,7 +9,7 @@ def main():
   cbmrootConfigPath = "/home/aghoehne/soft/cbm/build/config.sh"
   urqmdFile = "/home/aghoehne/soft/cbm/data/input/urqmd.auau.8gev.centr.00001.root"
   plutoFile = "/home/aghoehne/soft/cbm/data/input/pluto.auau.8gev.phi.epem.0001.root"
-  dataDir = "/home/aghoehne/soft/cbm/data/output/phi"
+  dataDir = "/home/aghoehne/soft/cbm/data/output/phi/"
   
   runId = "1"
   geoSetup = "sis100_electron"
diff --git a/reco/littrack/cbm/elid/CbmLitGlobalElectronId.cxx b/reco/littrack/cbm/elid/CbmLitGlobalElectronId.cxx
index 3c2833fb2871e953d15e0c7f2693e9bd53c92b47..829bc4fcd047396b5e918dba878056d4824e4ebc 100644
--- a/reco/littrack/cbm/elid/CbmLitGlobalElectronId.cxx
+++ b/reco/littrack/cbm/elid/CbmLitGlobalElectronId.cxx
@@ -18,6 +18,7 @@
 #include "utils/CbmRichUtil.h"
 
 #include "FairRootManager.h"
+#include <Logger.h>
 
 #include "TClonesArray.h"
 #include "TMath.h"
@@ -57,6 +58,8 @@ void CbmLitGlobalElectronId::Init()
     fTrdTracks    = (TClonesArray*) ioman->GetObject("TrdTrack");
     fTofHits      = (TClonesArray*) ioman->GetObject("TofHit");
   }
+  LOG(info) << "fRichAnnCut = " << fRichAnnCut;
+  LOG(info) << "fTrdAnnCut = " << fTrdAnnCut;
 }
 
 Bool_t CbmLitGlobalElectronId::IsRichElectron(Int_t globalTrackIndex, Double_t momentum)
@@ -107,8 +110,8 @@ Bool_t CbmLitGlobalElectronId::IsTofElectron(Int_t globalTrackIndex, Double_t mo
   Double_t mass2 = GetTofM2(globalTrackIndex, momentum, eventTime);
   if (mass2 == -1.) return false;
 
-  if (momentum >= 1.25) {
-    if (mass2 < (0.013 * momentum - 0.003)) { return true; }
+  if (momentum >= 1.3) {
+    if (mass2 < (0.010 * momentum - 0.003)) { return true; }
   }
   else {
     if (mass2 < 0.01) {