From 700bf84d2936d0c769864cb45f86fcb636927a96 Mon Sep 17 00:00:00 2001 From: P-A Loizeau <p.-a.loizeau@gsi.de> Date: Thu, 17 Nov 2022 16:30:15 +0100 Subject: [PATCH] Fix + improve stats per evt/TS/run for debug output in L1GlobalTrackFinder evt mode - Fix calculation of integrated values of STS hist and Tracks over the TS - Add nb MUCH/TRD/TOF hits per event in L1GlobalTracker debug printout - Add runtime per event in end of run printout --- .../CbmL1GlobalFindTracksEvents.cxx | 25 +++++++++++++++++-- .../CbmL1GlobalFindTracksEvents.h | 4 ++- .../CbmL1GlobalTrackFinder.cxx | 11 ++++---- 3 files changed, 32 insertions(+), 8 deletions(-) diff --git a/reco/L1/OffLineInterface/CbmL1GlobalFindTracksEvents.cxx b/reco/L1/OffLineInterface/CbmL1GlobalFindTracksEvents.cxx index be96954453..1aa86de3f1 100644 --- a/reco/L1/OffLineInterface/CbmL1GlobalFindTracksEvents.cxx +++ b/reco/L1/OffLineInterface/CbmL1GlobalFindTracksEvents.cxx @@ -85,6 +85,8 @@ CbmL1GlobalFindTracksEvents::~CbmL1GlobalFindTracksEvents() // ----- Task execution ------------------------------------------------ void CbmL1GlobalFindTracksEvents::Exec(Option_t* /*opt*/) { + nHitsTs = 0; + nTracksTs = 0; // --- Local variables Long64_t nEvents = 0; @@ -221,6 +223,7 @@ void CbmL1GlobalFindTracksEvents::Finish() LOG(info) << "Events processed : " << fNofEvents; LOG(info) << "Hits / event : " << fNofHits / Double_t(fNofEvents); LOG(info) << "Tracks / event : " << fNofTracks / Double_t(fNofEvents); + LOG(info) << "Time per event : " << 1000. * fTime / Double_t(fNofEvents) << " ms "; } LOG(info) << "====================================="; } @@ -238,9 +241,27 @@ pair<UInt_t, UInt_t> CbmL1GlobalFindTracksEvents::ProcessEvent(CbmEvent* event) // --- Event log Int_t eventNumber = (event ? event->GetNumber() : fNofEvents); - Int_t nHits = (event ? event->GetNofData(ECbmDataType::kStsHit) : fStsHits->GetEntriesFast()); + Int_t nHits = 0; + Int_t nHitsMuch = 0; + Int_t nHitsTrd = 0; + Int_t nHitsTof = 0; + if (event) { + nHits = 0 < event->GetNofData(ECbmDataType::kStsHit) ? event->GetNofData(ECbmDataType::kStsHit) : 0; + nHitsMuch = 0 < event->GetNofData(ECbmDataType::kMuchPixelHit) ? event->GetNofData(ECbmDataType::kMuchPixelHit) : 0; + nHitsTrd = 0 < event->GetNofData(ECbmDataType::kTrdHit) ? event->GetNofData(ECbmDataType::kTrdHit) : 0; + nHitsTof = 0 < event->GetNofData(ECbmDataType::kTofHit) ? event->GetNofData(ECbmDataType::kTofHit) : 0; + } + else { + nHits = fStsHits->GetEntriesFast(); + } + nHitsTs += nHits; + nTracksTs += nTracks; + LOG(debug) << "+ " << setw(20) << GetName() << ": Event " << setw(6) << right << eventNumber << ", real time " - << fixed << setprecision(6) << fTimer.RealTime() << " s, hits: " << nHits << ", tracks: " << nTracks; + << fixed << setprecision(6) << fTimer.RealTime() << " s, STS hits: " << setw(5) << nHits + << ", tracks: " << setw(4) << nTracks << " (TS: STS hits " << setw(7) << nHitsTs << ", tracks " << setw(6) + << nTracksTs << ") MUCH " << setw(4) << nHitsMuch << " TRD: " << setw(4) << nHitsTrd << " TOF: " << setw(4) + << nHitsTof << " Total: " << setw(5) << (nHits + nHitsMuch + nHitsTrd + nHitsTof); return std::make_pair(nHits, nTracks); } diff --git a/reco/L1/OffLineInterface/CbmL1GlobalFindTracksEvents.h b/reco/L1/OffLineInterface/CbmL1GlobalFindTracksEvents.h index ac604e019a..6a6849530e 100644 --- a/reco/L1/OffLineInterface/CbmL1GlobalFindTracksEvents.h +++ b/reco/L1/OffLineInterface/CbmL1GlobalFindTracksEvents.h @@ -33,7 +33,7 @@ class CbmStsTrackFinderIdeal; ** @date 07.05.2021 ** @version 1.0 ** - ** This task creates GlobalTrack, StsTrack, MuchTrack, TrdTrack, TofTrack objects + ** This task creates GlobalTrack, StsTrack, MuchTrack, TrdTrack, TofTrack objects ** from hits. ** It uses as finding engine CbmL1GlobalTrackFinder. **/ @@ -95,6 +95,8 @@ private: Double_t fNofTracks; ///< Number of tracks created Double_t fTime; ///< Total real time used for good events + Long64_t nHitsTs = 0; + Long64_t nTracksTs = 0; /** Initialisation at beginning of each event **/ virtual InitStatus Init(); diff --git a/reco/L1/OffLineInterface/CbmL1GlobalTrackFinder.cxx b/reco/L1/OffLineInterface/CbmL1GlobalTrackFinder.cxx index 7d514b1d04..83b66c29f6 100644 --- a/reco/L1/OffLineInterface/CbmL1GlobalTrackFinder.cxx +++ b/reco/L1/OffLineInterface/CbmL1GlobalTrackFinder.cxx @@ -5,11 +5,11 @@ /* *==================================================================== * - * CBM Level 1 Reconstruction - * + * CBM Level 1 Reconstruction + * * Authors: V. Akishina * - * e-mail : v.akishina@gsi.de + * e-mail : v.akishina@gsi.de * *==================================================================== * @@ -74,7 +74,8 @@ Int_t CbmL1GlobalTrackFinder::CopyL1Tracks(CbmEvent* event) { CbmL1* L1 = CbmL1::Instance(); if (!L1) return 0; - Int_t globalTrackIndex = fGlobalTracks->GetEntriesFast(); + Int_t globalTrackIndex = fGlobalTracks->GetEntriesFast(); + Int_t globalTrackIndexStart = globalTrackIndex; Int_t stsTrackIndex = fStsTracks->GetEntriesFast(); Int_t muchTrackIndex = fMuchTracks->GetEntriesFast(); @@ -154,7 +155,7 @@ Int_t CbmL1GlobalTrackFinder::CopyL1Tracks(CbmEvent* event) } //END create detector tracks if needed } - return globalTrackIndex; + return globalTrackIndex - globalTrackIndexStart; } // ------------------------------------------------------------------------- -- GitLab