CbmRoot
Loading...
Searching...
No Matches
CaTrackingMonitor.h
Go to the documentation of this file.
1/* Copyright (C) 2023 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Sergei Zharko [committer] */
4
9
10// NOTE: SZh: #prama once does not work properly in ROOT macros, so to use there enums from the header one
11// have to use old approach to protect from multiple includes
12//#pragma once
13
14#ifndef CaTrackingMonitor_h
15#define CaTrackingMonitor_h 1
16
17#include "CaMonitor.h"
18
19#include <boost/serialization/base_object.hpp>
20
21namespace cbm::algo::ca
22{
25 enum class ECounter
26 {
28 SubTS,
29 RecoTrack,
30 RecoHit,
32 Triplet,
33 // TODO: Provide counters vs. detector ID
44 END
45 };
46
49 /* clang-format off */
50 // NOTE: SZh 21.03.2024: Disabling clang-format to indicate the scope of timers using the indent
81 /* clang-format on */
82
84
87 class TrackingMonitor : public Monitor<ECounter, ETimer> {
88 public:
90 TrackingMonitor() : Monitor<ECounter, ETimer>("CA Framework Monitor")
91 {
92 SetCounterName(ECounter::TrackingCall, "full routine calls");
93 SetCounterName(ECounter::RecoTrack, "reco tracks");
96 SetCounterName(ECounter::RecoHitUsed, "used reco hits");
97 SetCounterName(ECounter::SubTS, "sub-timeslices");
98 SetCounterName(ECounter::RecoMvdHit, "MVD hits in tracks");
99 SetCounterName(ECounter::RecoStsHit, "STS hits in tracks");
100 SetCounterName(ECounter::RecoMuchHit, "MUCH hits in tracks");
101 SetCounterName(ECounter::RecoTrdHit, "TRD hits in tracks");
102 SetCounterName(ECounter::RecoTofHit, "TOF hits in tracks");
103 SetCounterName(ECounter::UndefinedMvdHit, "undefined MVD hits");
104 SetCounterName(ECounter::UndefinedStsHit, "undefined STS hits");
105 SetCounterName(ECounter::UndefinedMuchHit, "undefined MuCh hits");
106 SetCounterName(ECounter::UndefinedTrdHit, "undefined TRD hits");
107 SetCounterName(ECounter::UndefinedTofHit, "undefined TOF hits");
108
109 SetTimerName(ETimer::TrackingChain, "tracking chain");
110 SetTimerName(ETimer::PrepareInputData, "input data preparation");
111 SetTimerName(ETimer::PrepareStsHits, "STS hits preparation");
112 SetTimerName(ETimer::PrepareTrdHits, "TRD hits preparation");
113 SetTimerName(ETimer::PrepareTofHits, "TOF hits preparation");
114 SetTimerName(ETimer::InputDataTransmission, "input data transmission");
115 SetTimerName(ETimer::CaHitCreation, "CA hit creation");
116 SetTimerName(ETimer::Tracking, "algorithm execution");
117 SetTimerName(ETimer::PrepareTimeslice, "timeslice preparation");
118 SetTimerName(ETimer::TrackingThread, "tracking on one thread");
119 SetTimerName(ETimer::PrepareThread, "thread preparation");
120 SetTimerName(ETimer::PrepareWindow, "window preparation");
121 SetTimerName(ETimer::TrackingWindow, "tracking in one window");
122 SetTimerName(ETimer::InitWindow, "window initialization");
123 SetTimerName(ETimer::PrepareGrid, "grid preparation");
124 SetTimerName(ETimer::FindTracks, "track finding");
125 SetTimerName(ETimer::PrepareIteration, "iteration preparation");
126 SetTimerName(ETimer::ConstructTriplets, "triplet constrcution");
127 SetTimerName(ETimer::SearchNeighbours, "neighbors search");
128 SetTimerName(ETimer::CreateTracks, "track creation");
129 SetTimerName(ETimer::SuppressHitKeys, "used hit key suppression");
130 SetTimerName(ETimer::FitTracks, "track fitter");
131 SetTimerName(ETimer::MergeClones, "clone merger");
132 SetTimerName(ETimer::StoreTracksWindow, "track storing in window");
133 SetTimerName(ETimer::StoreTracksFinal, "final track storing");
136 }
137
138 private:
140 template<typename Archive>
141 void serialize(Archive& ar, const unsigned int /*version*/)
142 {
143 ar& boost::serialization::base_object<Monitor<ECounter, ETimer>>(*this);
144 }
145 };
146
147} // namespace cbm::algo::ca
148
149#endif
CA Tracking monitor class.
Monitor class for the CA tracking.
Definition CaMonitor.h:35
void SetCounterName(ECounter key, std::string_view name)
Definition CaMonitor.h:115
void SetTimerName(ETimer key, std::string_view name)
Definition CaMonitor.h:127
void SetRatioKeys(const std::vector< ECounter > &vKeys)
Definition CaMonitor.h:111
A monitor specialization for cbm::algo::ca::Framework class.
TrackingMonitor()
Default constructor.
void serialize(Archive &ar, const unsigned int)
friend class boost::serialization::access
TODO: SZh 8.11.2022: add selection of parameterisation.
Definition CaBranch.h:14
ECounter
Counter keys for the CA algo monitor.
@ RecoMuchHit
number of MUCH hits in tracks
@ RecoHit
number of reconstructed hits
@ RecoTrack
number of reconstructed tracks
@ RecoStsHit
number of STS hits in tracks
@ UndefinedTofHit
number of undefined TOF hits
@ TrackingCall
number of the routine calls
@ Triplet
number of triplets
@ UndefinedTrdHit
number of undefined TRD hits
@ RecoTrdHit
number of TRD hits in tracks
@ UndefinedMvdHit
number of undefined MVD hits
@ SubTS
number of sub time-slices
@ RecoMvdHit
number of MVD hits in tracks
@ RecoTofHit
number of TOF hits in tracks
@ UndefinedMuchHit
number of undefined MuCh hits
@ RecoHitUsed
number of used reconstructed hits
@ UndefinedStsHit
number of undefined STS hits
ETimer
Timer keys for the CA algo monitor.
@ PrepareIteration
(iterations loop)