CbmRoot
Loading...
Searching...
No Matches
EventbuildChain.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: Volker Friese [committer] */
4
5#ifndef CBM_ALGO_EVBUILD_EVBUILDCHAIN_H
6#define CBM_ALGO_EVBUILD_EVBUILDCHAIN_H 1
7
8#include "CbmDefs.h"
9#include "Config.h"
10#include "DigiEventQa.h"
11#include "DigiEventSelector.h"
12#include "EventBuilder.h"
13#include "HistogramSender.h"
14#include "HitMultTrigger.h"
15#include "RecoResults.h"
16#include "SubChain.h"
17#include "TimeClusterTrigger.h"
18#include "V0Trigger.h"
19
20#include <memory>
21
22namespace cbm::algo
23{
24 struct DigiData;
25}
26
27namespace cbm::algo::evbuild
28{
29
36
47 class EventbuildChain : public SubChain {
48
49 public:
50 using ResultType = std::pair<std::vector<DigiEvent>, EventbuildChainMonitorData>;
51
53 EventbuildChain(const Config& config, std::shared_ptr<HistogramSender> sender = nullptr);
54
57
59 ResultType Run(const DigiData&, const RecoResults&);
60
62 void Status() const;
63
65 void RegisterTrackingSetup(std::shared_ptr<TrackingSetup> pSetup) { fSelector.RegisterTrackingSetup(pSetup); }
66
67 private: // members
76 std::shared_ptr<HistogramSender> fSender;
77
78 private: // methods
83 std::vector<double> GetDigiTimes(const DigiData& timeslice, ECbmModuleId system);
84 };
85
86} // namespace cbm::algo::evbuild
87
88
89#endif //CBM_ALGO_EVBUILD_EVBUILDCHAIN
ECbmModuleId
Definition CbmDefs.h:39
@ kNotExist
If not found.
A structure for reconstructed results: digi-events, hits and tracks.
Configuration of digi event building.
QA for CbmDigiEvent objects.
Algorithm to select CbmDigiEvents based on the number of digis and the number of activated layers in ...
void RegisterTrackingSetup(std::shared_ptr< TrackingSetup > pSetup)
Registers tracking setup.
Constructs CbmDigiEvents out of CbmDigiTimeslices.
Steering class for event building from digi timeslices.
DigiEventSelector fSelector
Event selector algorithm.
ResultType Run(const DigiData &, const RecoResults &)
Execution.
ECbmModuleId fTriggerDet
Trigger detector.
std::pair< std::vector< DigiEvent >, EventbuildChainMonitorData > ResultType
void Status() const
Status info to logger.
DigiEventQa fQa
Event QA algorithm.
void RegisterTrackingSetup(std::shared_ptr< TrackingSetup > pSetup)
Registers tracking setup.
std::vector< double > GetDigiTimes(const DigiData &timeslice, ECbmModuleId system)
Extract digi times from CbmDigiTimeslice.
EventBuilder fBuilder
Event builder algorithm.
EventbuildChain(const Config &config, std::shared_ptr< HistogramSender > sender=nullptr)
Constructor.
std::shared_ptr< HistogramSender > fSender
Histogram sender.
Config fConfig
Global configuration.
TimeClusterTrigger fDigiMultTrigger
Digi multiplicity trigger algorithm.
V0Trigger fV0Trigger
V0 trigger algorithm.
HitMultTrigger fHitMultTrigger
Hit multiplicity trigger algorithm.
Trigger class for finding time clusters of hit data.
Finds clusters in time-series data.
Trigger class for secondary two-track vertices in mCBM.
Definition V0Trigger.h:42
Collection of digis from all detector systems.
Definition DigiData.h:31
Monitoring data for event building.
TimeClusterTriggerMonitorData hitMultTrigger
TimeClusterTriggerMonitorData digiMultTrigger
Monitoring data for time cluster trigger algorithm.
Monitoring information for the algorithm V0Trigger.
Definition V0Trigger.h:23