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!"); }