18#include <FairRootManager.h>
19#include <FairRuntimeDb.h>
25#include <RtypesCore.h>
45 explicit OnlineSpectra(std::string_view name =
"R3BNeulandOnlineSpectra",
int iVerbose = 1);
68 template <
typename SpecType,
typename = std::enable_if_t<std::is_base_of_v<OnlineCanvas, SpecType>>>
71 auto& spectrum =
spectra_.emplace_back(std::make_unique<SpecType>(name));
72 spectrum->SetOnlineSpectra(
this);
74 return *
static_cast<SpecType*
>(spectrum.get());
77 template <
typename UnaryOp>
93 R3BLOG(info,
"Graph is changed to full view!");
98 R3BLOG(info,
"Graph is changed to 2 hour view!");
103 R3BLOG(info,
"Graph is changed to 4 hour view!");
108 [[deprecated(
"Please use SetTrigger()")]]
void SetCosmicTpat(UInt_t CosmicTpat = 0) {}
113 std::vector<std::unique_ptr<OnlineCanvas>>
spectra_;
119 void ExtraInit(FairRootManager* rootMan)
override;
#define R3BLOG(severity, x)
R3B::Neuland::OnlineSpectra R3BNeulandOnlineSpectra2
void SetCountRateViewfourHours()
ClassDefOverride(OnlineSpectra, 1)
void TriggeredExec() override
OnlineSpectra(const OnlineSpectra &)=delete
void HistogramInit(DataMonitor &histograms) override
auto operator=(const OnlineSpectra &) -> OnlineSpectra &=delete
auto operator=(OnlineSpectra &&) -> OnlineSpectra &=delete
void RestartUcesbServer()
double distance_to_target_
void SetDistanceToTarget(double distance)
void SetCountRateFullView()
void init_http_server(FairRunOnline *run)
void ActionToSpectra(UnaryOp optn)
void SetCountRateViewTwoHours()
auto GetGraphViewMode() const
std::vector< std::unique_ptr< OnlineCanvas > > spectra_
OnlineSpectra(OnlineSpectra &&)=delete
auto GetDistanceToTarget() const
void ExtraInit(FairRootManager *rootMan) override
UcesbSource * ucesb_source_
void SetUcesbSource(UcesbSource *source)
std::atomic< CountRateCanvas::RangeViewMode > graph_view_mode_
void SetRandomGenerator(TRandom *rand)
OnlineSpectra(std::string_view name="R3BNeulandOnlineSpectra", int iVerbose=1)
auto GetRandomGenerator() -> TRandom *
~OnlineSpectra() override
auto AddCanvas(std::string_view name, CalTrigger trigger=CalTrigger::all) -> SpecType &
void SetCosmicTpat(UInt_t CosmicTpat=0)
void SetExtraPar(FairRuntimeDb *rtdb) override
Simulation of NeuLAND Bar/Paddle.