diff --git a/fles/mcbm2018/tasks/CbmCheckEvents.cxx b/fles/mcbm2018/tasks/CbmCheckEvents.cxx
index 7467c4e91e7bb5daae69cd9b93147cd49fee86b6..3db4b26f441891a9eb37a043e8f380c162ae515a 100644
--- a/fles/mcbm2018/tasks/CbmCheckEvents.cxx
+++ b/fles/mcbm2018/tasks/CbmCheckEvents.cxx
@@ -27,6 +27,8 @@
 #include <TFile.h>
 
 #include <iomanip>
+#include <typeinfo>
+
 using std::fixed;
 using std::setprecision;
 
@@ -79,8 +81,18 @@ InitStatus CbmCheckEvents::Init() {
     LOG(info) << "No TClonesArray with TOF digis found.";
   }
 
-  fEvents = static_cast<TClonesArray*>(ioman->GetObject("CbmEvent"));
-  if (!fEvents) { LOG(fatal) << "No TClonesArray with events found."; }
+  fEvents = dynamic_cast<TClonesArray*>(ioman->GetObject("CbmEvent"));
+  if (nullptr == fEvents) {
+
+    if (nullptr != (ioman->GetObject("Event"))) {
+      LOG(error) << "Got pointer of type"
+                 << typeid(ioman->GetObject("Event")).name();
+      LOG(error) << "Got Object of type"
+                 << typeid(*(ioman->GetObject("Event"))).name();
+    }  // if( nullptr != (ioman->GetObject("Event") )
+    LOG(fatal) << "No TClonesArray with events found.";
+  }  // if (nullptr == fEvents)
+
 
   CreateHistos();
 
@@ -188,7 +200,7 @@ void CbmCheckEvents::Exec(Option_t* /*option*/) {
 
   // Loop over all CbmEvents in the time slice
   for (Int_t iEvent = 0; iEvent < nrEvents; iEvent++) {
-    CbmEvent* event = static_cast<CbmEvent*>(fEvents->At(iEvent));
+    CbmEvent* event = dynamic_cast<CbmEvent*>(fEvents->At(iEvent));
     fEventSize->Fill(event->GetNofData());
     fEventLength->Fill(event->GetEndTime() - event->GetStartTime());
     fLengthvsTS->Fill(fNrTs, event->GetEndTime() - event->GetStartTime(), 1);
diff --git a/macro/beamtime/mcbm2019/check_events.C b/macro/beamtime/mcbm2019/check_events.C
index d4616a22adbc036b4e7d2bdaca5d9d4deafb4bef..ab35b5918e7769172fd0ba048969f83d10d505a4 100644
--- a/macro/beamtime/mcbm2019/check_events.C
+++ b/macro/beamtime/mcbm2019/check_events.C
@@ -46,9 +46,11 @@ void check_events(Int_t nEvents      = 10,
 
   FairFileSource* inputSource = new FairFileSource(InputFile);
   inputSource->AddFriend(InputFileEvent);
-
   run->SetSource(inputSource);
-  run->SetOutputFile(OutputFile);
+
+  FairRootFileSink* outputSink = new FairRootFileSink(OutputFile);
+  run->SetSink(outputSink);
+
 
   run->SetEventHeaderPersistence(kFALSE);
 
diff --git a/reco/detectors/rich/mcbm/CbmRichMCbmAerogelAna.cxx b/reco/detectors/rich/mcbm/CbmRichMCbmAerogelAna.cxx
index 693cfd0cb77212a540ba354a7c0b4b65dd84e231..3fae18de7b729012ea446a9b76823f843b655cec 100644
--- a/reco/detectors/rich/mcbm/CbmRichMCbmAerogelAna.cxx
+++ b/reco/detectors/rich/mcbm/CbmRichMCbmAerogelAna.cxx
@@ -103,7 +103,7 @@ InitStatus CbmRichMCbmAerogelAna::Init() {
 
   //fT0Digis = ioman->InitObjectAs<std::vector<CbmTofDigi> const *>("T0Digi");
 
-  fCbmEvent = (TClonesArray*) ioman->GetObject("CbmEvent");
+  fCbmEvent = dynamic_cast<TClonesArray*>(ioman->GetObject("CbmEvent"));
   if (nullptr == fCbmEvent) { Fatal("fTofDigis::Init", "No Event!"); }
 
   InitHistograms();
diff --git a/reco/detectors/rich/mcbm/CbmRichMCbmQaReal.cxx b/reco/detectors/rich/mcbm/CbmRichMCbmQaReal.cxx
index 1df09860575549f0f153cceb72249d8da553dde9..338c8eb515c44c8661a188a65dfa241e98668055 100644
--- a/reco/detectors/rich/mcbm/CbmRichMCbmQaReal.cxx
+++ b/reco/detectors/rich/mcbm/CbmRichMCbmQaReal.cxx
@@ -135,13 +135,13 @@ InitStatus CbmRichMCbmQaReal::Init() {
 	if ( pSetup->IsActive(ECbmModuleId::kRich) ) {
 		pSetup->GetGeoTag(ECbmModuleId::kRich, geoTag);
     }
-    
+
     if (geoTag == "v20d") RichZPos = 340.8;
     std::cout<<"mRICH Geo Tag is "<< geoTag<< ". Z Position of PMT plane set to "<<RichZPos<<"."<<std::endl;
     */
   // ---------------------------------
 
-  fCbmEvent = (TClonesArray*) ioman->GetObject("CbmEvent");
+  fCbmEvent = dynamic_cast<TClonesArray*>(ioman->GetObject("CbmEvent"));
   if (nullptr == fCbmEvent) { Fatal("CbmRichMCbmQaReal::Init", "No Event!"); }
 
   InitHistograms();
diff --git a/reco/detectors/rich/mcbm/CbmRichMCbmQaRichOnly.cxx b/reco/detectors/rich/mcbm/CbmRichMCbmQaRichOnly.cxx
index 5699df03324c24597abc252fb21e3f6b886b73c8..68c6a3eda6712125d576c0f36465f318664e2047 100644
--- a/reco/detectors/rich/mcbm/CbmRichMCbmQaRichOnly.cxx
+++ b/reco/detectors/rich/mcbm/CbmRichMCbmQaRichOnly.cxx
@@ -101,7 +101,7 @@ InitStatus CbmRichMCbmQaRichOnly::Init() {
     Fatal("CbmRichMCbmQaRichOnly::Init", "No Rich Rings!");
   }
 
-  fCbmEvent = (TClonesArray*) ioman->GetObject("CbmEvent");
+  fCbmEvent = dynamic_cast<TClonesArray*>(ioman->GetObject("CbmEvent"));
   if (nullptr == fCbmEvent) {
     Fatal("CbmRichMCbmQaRichOnly::Init", "No Event!");
   }