46 explicit OnlineSpectra(std::string_view name =
"R3BNeulandOnlineSpectra",
int iVerbose = 1);
69 template <
typename SpecType,
typename = std::enable_if_t<std::is_base_of_v<OnlineCanvas, SpecType>>>
72 auto& spectrum = spectra_.emplace_back(std::make_unique<SpecType>(name));
73 spectrum->SetOnlineSpectra(
this);
75 return *
static_cast<SpecType*
>(spectrum.get());
78 template <
typename UnaryOp>
81 for (
auto& spectrum : spectra_)
94 R3BLOG(info,
"Graph is changed to full view!");
99 R3BLOG(info,
"Graph is changed to 2 hour view!");
104 R3BLOG(info,
"Graph is changed to 4 hour view!");
109 [[deprecated(
"Please use SetTrigger()")]]
void SetCosmicTpat(UInt_t CosmicTpat = 0) {}
112 double distance_to_target_ = 0.;
114 std::vector<std::unique_ptr<OnlineCanvas>> spectra_;
116 TRandom* random_gen_ = gRandom;
120 void ExtraInit(FairRootManager* rootMan)
override;
127 void init_http_server(FairRunOnline* run);
#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()
void SetDistanceToTarget(double distance)
void SetCountRateFullView()
void SetCountRateViewTwoHours()
void ActionToSpectra(UnaryOp &&optn)
auto GetGraphViewMode() const
OnlineSpectra(OnlineSpectra &&)=delete
auto GetDistanceToTarget() const
void ExtraInit(FairRootManager *rootMan) override
void SetUcesbSource(UcesbSource *source)
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.