diff --git a/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx b/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx
index 4c4270d67faaeb2e19c4a735ca857d8c99dbc837..8c4c4385af80ba8cf5ca145f3027f829c84d93de 100644
--- a/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx
+++ b/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.cxx
@@ -29,6 +29,7 @@
 #include <TH1.h>
 #include <TH2.h>
 #include <THttpServer.h>
+#include <TProfile.h>
 #include <TStopwatch.h>
 
 template<>
@@ -962,6 +963,21 @@ void CbmAlgoBuildRawEvents::CreateHistograms()
   outFolder->Add(fhCpuTimePerTsHist);
   outFolder->Add(fhRealTimePerTsHist);
 
+  if (EOverlapModeRaw::AllowOverlap == fOverMode) {
+    fhOverEventShare   = new TH1I("fhOverEventShare", "Share of overlap evt; Overlap? []; Events", 2, -0.5, 1.5);
+    fhOverEventShareTs = new TProfile(
+      "fhOverEventShareTs", "Share of overlap evt per TS; TS index []; Overlap Events prop. []", 2500, 0, 2500);
+    fhOverEventSizeTs =
+      new TH2I("fhOverEventSizeTs", "Size of overlap of evt per TS; TS index []; Size of overlap between events [ns]",
+               2500, 0, 2500, 200, 0, 1000);
+    AddHistoToVector(fhOverEventShare, "evtbuild");
+    AddHistoToVector(fhOverEventShareTs, "evtbuild");
+    AddHistoToVector(fhOverEventSizeTs, "evtbuild");
+    outFolder->Add(fhOverEventShare);
+    outFolder->Add(fhOverEventShareTs);
+    outFolder->Add(fhOverEventSizeTs);
+  }
+
   /// Loop on selection detectors
   for (std::vector<RawEventBuilderDetector>::iterator det = fvDets.begin(); det != fvDets.end(); ++det) {
     /// In case name not provided, do not create the histo to avoid name conflicts!
@@ -1181,7 +1197,26 @@ void CbmAlgoBuildRawEvents::FillHistos()
   Double_t dPreEvtTime = -1.0;
   for (CbmEvent* evt : fEventVector) {
     fhEventTime->Fill(evt->GetStartTime() * 1e-9);
-    if (0.0 <= dPreEvtTime) { fhEventDt->Fill((evt->GetStartTime() - dPreEvtTime) * 1e-9); }
+    if (0.0 <= dPreEvtTime) {
+      fhEventDt->Fill((evt->GetStartTime() - dPreEvtTime) * 1e-9);
+
+      if (EOverlapModeRaw::AllowOverlap == fOverMode) {
+        if (evt->GetStartTime() - dPreEvtTime < fdWidestTimeWinRange) {
+          fhOverEventShare->Fill(1);
+          fhOverEventShareTs->Fill(fuNrTs, 1);
+          fhOverEventSizeTs->Fill(fuNrTs, fdWidestTimeWinRange - (evt->GetStartTime() - dPreEvtTime));
+        }
+        else {
+          fhOverEventShare->Fill(0);
+          fhOverEventShareTs->Fill(fuNrTs, 0);
+        }
+      }
+    }
+    else if (EOverlapModeRaw::AllowOverlap == fOverMode) {
+      /// First event cannot be in overlap
+      fhOverEventShare->Fill(0);
+      fhOverEventShareTs->Fill(fuNrTs, 0);
+    }
 
     fhEventSize->Fill(evt->GetNofData());
     fhNbDigiPerEvtTime->Fill(evt->GetStartTime() * 1e-9, evt->GetNofData());
diff --git a/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.h b/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.h
index 1388f5af259990954c2e1fd3fcb7301521cc0e9c..8a17452d69e293c71e861b904b18323ac0fe9cc6 100644
--- a/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.h
+++ b/reco/eventbuilder/digis/CbmAlgoBuildRawEvents.h
@@ -35,6 +35,7 @@ class CbmBmonDigi;
 class TClonesArray;
 class TH1;
 class TH2;
+class TProfile;
 class TNamed;
 class TStopwatch;
 class TCanvas;
@@ -353,6 +354,10 @@ private:
   std::vector<TH1*> fvhOutRatioPerTsSz = {};       /// ratio of selected digi size in total event size vs TS in run
   TH1* fhSizeReductionPerTs            = nullptr;  /// ratio of total selected size to input size selected vs TS in run
 
+  TH1* fhOverEventShare        = nullptr;  //! histogram with proportion of overlap evt, AllowOverlap only
+  TProfile* fhOverEventShareTs = nullptr;  //! histogram with proportion of overlap evt vs TS index, AllowOverlap only
+  TH2* fhOverEventSizeTs       = nullptr;  //! histogram with size of overlap between evt vs TS index, AllowOverlap only
+
   /// Internal state variables
   UInt_t fuCurEv            = 0;   //! Event Counter
   UInt_t fuNrTs             = 0;   //! Timeslice Counter