diff --git a/reco/app/cbmreco/main.cxx b/reco/app/cbmreco/main.cxx index 054846d55963fa72463dfad9a3b5b943217cbc5a..f5e2f84d8d74cf96e7e6cc98840a64ab7f098bb2 100644 --- a/reco/app/cbmreco/main.cxx +++ b/reco/app/cbmreco/main.cxx @@ -43,6 +43,7 @@ bool dumpArchive(const Options& opts) // Limit the number of events per timeslice to dump to avoid spamming the log constexpr size_t DumpEventsPerTS = 10; constexpr size_t DumpHitsPerSensor = 2; + constexpr size_t DumpTracksPerTS = 10; if (!opts.DumpArchive()) return false; @@ -64,7 +65,8 @@ bool dumpArchive(const Options& opts) size_t nEvents = recoResults->DigiEvents().size(); L_(info) << "TS " << recoResults->TsIndex() << " start: " << recoResults->TsStartTime() << " events: " << nEvents - << ", stsHits: " << recoResults->StsHits().NElements(); + << ", stsHits: " << recoResults->StsHits().NElements() + << ", tofHits: " << recoResults->TofHits().NElements() << ", tracks: " << recoResults->Tracks().size(); for (size_t i = 0; i < std::min(DumpEventsPerTS, nEvents); i++) { const auto& digiEvent = recoResults->DigiEvents().at(i); @@ -85,7 +87,26 @@ bool dumpArchive(const Options& opts) } } - if (nEvents > DumpEventsPerTS) L_(info) << "..."; + L_(info) << "..."; + + auto tofHits = recoResults->TofHits(); + for (size_t m = 0; m < tofHits.NPartitions(); m++) { + auto [hits, address] = tofHits.Partition(m); + for (size_t i = 0; i < std::min(DumpHitsPerSensor, hits.size()); i++) { + const auto& hit = hits[i]; + L_(info) << " - TOF Hit " << i << " sensor: " << address << "; time: " << hit.Time() << ", X: " << hit.X() + << ", Y: " << hit.Y() << ", Z: " << hit.Z(); + } + } + + L_(info) << "..."; + + auto& tracks = recoResults->Tracks(); + for (size_t t = 0; t < std::min(tracks.size(), DumpTracksPerTS); t++) { + const auto& track = tracks[t]; + L_(info) << " - Track " << t << " nHits: " << track.fNofHits << ", chi2: " << track.fParPV.ChiSq() + << ", X: " << track.fParPV.X() << ", Y: " << track.fParPV.Y() << ", Z: " << track.fParPV.Z(); + } } return true;