Skip to content

Commit

Permalink
change file name to R3BDataMonitor
Browse files Browse the repository at this point in the history
  • Loading branch information
YanzhaoW committed Jan 7, 2024
1 parent 5d80937 commit 48aa44c
Show file tree
Hide file tree
Showing 18 changed files with 90 additions and 42 deletions.
19 changes: 8 additions & 11 deletions neuland/calibration/hitLevel/R3BNeulandCal2Hit2.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ namespace

inline auto get_hit_position(double tdc_left, double tdc_right, const HitModulePar& par)
{
const auto plane_id = ::R3B::Neuland::GetPlaneID(static_cast<int>(par.module_num));
const auto plane_id = ::R3B::Neuland::GetPlaneID(static_cast<int>(par.module_num - 1));
const auto bar_num = par.module_num % ::R3B::Neuland::BarsPerPlane;
R3BLOG(debug2,
fmt::format("Calculating position with left tdc: {}, right tdc {}, effective speed: {}, tdc_diff: {}",
Expand Down Expand Up @@ -78,10 +78,7 @@ namespace R3B::Neuland

void Cal2Hit::SetExtraPar(FairRuntimeDb* rtdb) {}

void Cal2Hit::TriggeredExec()
{
calibrate();
}
void Cal2Hit::TriggeredExec() { calibrate(); }

void Cal2Hit::calibrate()
{
Expand Down Expand Up @@ -174,12 +171,12 @@ namespace R3B::Neuland

void Cal2Hit::EndOfTask() {}

auto Cal2Hit::CheckConditions() const -> bool
{
const auto t_start = GetEventHeader()->GetTStart();
const auto is_beam_on = not std::isnan(t_start);
return is_beam_on;
}
// auto Cal2Hit::CheckConditions() const -> bool
// {
// const auto t_start = GetEventHeader()->GetTStart();
// const auto is_beam_on = not std::isnan(t_start);
// return is_beam_on;
// }

auto Cal2Hit::get_hit_time(double first_t, double second_t) const -> double
{
Expand Down
2 changes: 1 addition & 1 deletion neuland/calibration/hitLevel/R3BNeulandCal2Hit2.h
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ namespace R3B::Neuland
void BeginOfEvent() override { hit_data_.clear(); };
void TriggeredExec() override;
void EndOfTask() override;
[[nodiscard]] auto CheckConditions() const -> bool override;
// [[nodiscard]] auto CheckConditions() const -> bool override {};

// non-virtual private functions:
void calibrate();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
******************************************************************************/

#include "R3BNeulandLSQREngineAdaptor.h"
#include "R3BHistMonitor.h"
#include "R3BDataMonitor.h"
#include "R3BNeulandHitPar.h"
#include <FairRuntimeDb.h>
#include <R3BLogger.h>
Expand Down
2 changes: 1 addition & 1 deletion neuland/calibration/share/R3BNeulandCalibrationTask.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
* or submit itself to any jurisdiction. *
******************************************************************************/

#include "R3BHistMonitor.h"
#include "R3BDataMonitor.h"
#include "R3BNeulandTriggerTypes.h"
#include <FairRuntimeDb.h>
#include <FairTask.h>
Expand Down
9 changes: 7 additions & 2 deletions neuland/executables/templates/neuland_online_monitor.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
#include <R3BUnpackReader.h>
#include <R3BWhiterabbitMasterReader.h>
#include <TROOT.h>
#include <TRandom3.h>
#include <TStopwatch.h>
#include <TSystem.h>
#include <ext_h101_los.h>
Expand Down Expand Up @@ -89,8 +90,10 @@ auto main(int argc, const char** argv) -> int

FairLogger::GetLogger()->SetLogScreenLevel(logLevel->value().c_str());

const auto whiterabbit_id = std::stoi(wr_ID->value(), nullptr, 16);
auto random_gen = TRandom3{};
random_gen.SetSeed(0);

const auto whiterabbit_id = std::stoi(wr_ID->value(), nullptr, 16);
const unsigned int planeNum = neulandDP->value() * 2;
const auto runID = inputRunID->value();
const auto ntuple_options = "RAW,time-stitch=4000"s;
Expand Down Expand Up @@ -171,8 +174,10 @@ auto main(int argc, const char** argv) -> int
run.AddTask(cal2hit.release());

auto online_spectra = std::make_unique<R3B::Neuland::OnlineSpectra>();
online_spectra->SetRandomGenerator(&random_gen);
online_spectra->AddCanvas<R3B::Neuland::EventHeaderCanvas>("EventHeader");
online_spectra->AddCanvas<R3B::Neuland::MappedCanvas>("NeulandMapped");
online_spectra->AddCanvas<R3B::Neuland::CalCanvas>("NeulandCal");
online_spectra->AddCanvas<R3B::Neuland::CalCanvas>("NeulandCal", R3B::Neuland::CalTrigger::allspill);
online_spectra->AddCanvas<R3B::Neuland::TJumpCanvas>("NeulandJumps");
online_spectra->AddCanvas<R3B::Neuland::HitCanvas>("NeulandHit", R3B::Neuland::CalTrigger::onspill);
online_spectra->AddCanvas<R3B::Neuland::HitXYCanvas>("NeulandPlaneXY", R3B::Neuland::CalTrigger::onspill);
Expand Down
2 changes: 2 additions & 0 deletions neuland/online/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ include_directories(${INCLUDE_DIRECTORIES})
set(SRCS
# cmake-format: sortable
canvases/R3BNeulandCalCanvas.cxx
canvases/R3BNeulandEventHeaderCanvas.cxx
canvases/R3BNeulandHitCanvas.cxx
canvases/R3BNeulandHitCosmicCanvas.cxx
canvases/R3BNeulandHitXYCanvas.cxx
Expand All @@ -42,6 +43,7 @@ set(SRCS
set(HEADERS
# cmake-format: sortable
canvases/R3BNeulandCalCanvas.h
canvases/R3BNeulandEventHeaderCanvas.h
canvases/R3BNeulandHitCanvas.h
canvases/R3BNeulandHitCosmicCanvas.h
canvases/R3BNeulandHitXYCanvas.h
Expand Down
2 changes: 1 addition & 1 deletion neuland/online/R3BNeulandOnlineSpectra2.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

#include "R3BNeulandOnlineSpectra2.h"
#include <FairRunOnline.h>
#include <R3BHistMonitor.h>
#include <R3BDataMonitor.h>
#include <TH2.h>
#include <THttpServer.h>
#include <fmt/format.h>
Expand Down
13 changes: 13 additions & 0 deletions neuland/online/R3BNeulandOnlineSpectra2.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
#include <R3BNeulandCalCanvas.h>
#include <R3BNeulandCalData2.h>
#include <R3BNeulandCalibrationTask.h>
#include <R3BNeulandEventHeaderCanvas.h>
#include <R3BNeulandHit.h>
#include <R3BNeulandHitCanvas.h>
#include <R3BNeulandHitCosmicCanvas.h>
Expand All @@ -27,6 +28,7 @@
#include <R3BNeulandTimingCanvas.h>
#include <R3BNeulandTriggerTypes.h>
#include <R3BPaddleTamexMappedData2.h>
#include <TRandom.h>

class FairRunOnline;

Expand All @@ -38,6 +40,16 @@ namespace R3B::Neuland
explicit OnlineSpectra(std::string_view name = "R3BNeulandOnlineSpectra", int iVerbose = 1);
void ResetHistos();
void ResetHistosMapped();

auto GetRandomGenerator() -> TRandom* { return random_gen_; }

void SetRandomGenerator(TRandom* rand)
{
if (rand != nullptr)
{
random_gen_ = rand;
}
}
void SetDistanceToTarget(double distance) { distance_to_target_ = distance; }
[[nodiscard]] auto GetDistanceToTarget() const { return distance_to_target_; }

Expand Down Expand Up @@ -65,6 +77,7 @@ namespace R3B::Neuland
private:
double distance_to_target_ = 0.;
std::vector<std::unique_ptr<OnlineCanvas>> spectra_;
TRandom* random_gen_ = gRandom; // non-owning

// virtual functions:
void HistogramInit(DataMonitor& histograms) override;
Expand Down
28 changes: 26 additions & 2 deletions neuland/online/canvases/R3BNeulandEventHeaderCanvas.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,40 @@
******************************************************************************/

#include "R3BNeulandEventHeaderCanvas.h"
#include "R3BNeulandOnlineSpectra2.h"
#include <fmt/format.h>

namespace R3B::Neuland
{
void EventHeaderCanvas::DataInit() {}
void EventHeaderCanvas::CanvasInit(DataMonitor& histograms)
{
auto& canvas = CreateNewCanvas(histograms);
canvas.divide(2, 1);
canvas.divide(1, 2);
h_tpats_ = canvas.add<1, TH1I>("tpats", "tpat value distribution", 1, 0., 0.);
h_tpats_.pad()->SetLogy();

h_spill_stat_ = canvas.add<2, TH1I>("spill", "spill statistics", 1, 0., 0.);
h_spill_stat_.pad()->SetLogy();
}
void EventHeaderCanvas::CanvasFill(DataMonitor& /*histograms*/)
{
auto* eventHeader = GetOnlineSpectra()->GetEventHeader();
const auto tpat = eventHeader->GetTpat();
h_tpats_->Fill(fmt::format("{:016b}", tpat).c_str(), 1);

if (CheckTriggerWithTpat(CalTrigger::onspill, tpat))
{
h_spill_stat_->Fill("onspill", 1);
}
else if (CheckTriggerWithTpat(CalTrigger::offspill, tpat))
{
h_spill_stat_->Fill("offspill", 1);
}
else
{
h_spill_stat_->Fill("others", 1);
}
}
void EventHeaderCanvas::CanvasFill(DataMonitor& histograms) {}
void EventHeaderCanvas::CanvasFinish() {}
} // namespace R3B::Neuland
3 changes: 3 additions & 0 deletions neuland/online/canvases/R3BNeulandEventHeaderCanvas.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
#pragma once

#include "R3BNeulandOnlineCanvas.h"
#include <TH1I.h>

namespace R3B::Neuland
{
Expand All @@ -26,6 +27,8 @@ namespace R3B::Neuland
}

private:
CanvasElement<TH1I> h_tpats_;
CanvasElement<TH1I> h_spill_stat_;
void DataInit() override;
void CanvasInit(DataMonitor& histograms) override;
void CanvasFill(DataMonitor& histograms) override;
Expand Down
8 changes: 1 addition & 7 deletions neuland/online/canvases/R3BNeulandHitCosmicCanvas.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -91,17 +91,11 @@ namespace R3B::Neuland

void HitCosmicCanvas::CanvasFill(DataMonitor& /*histograms*/)
{
if (hit_data_.size() > 0)
{
const auto event_num = GetOnlineSpectra()->GetEventHeader()->GetEventno();
fmt::print("cosmic event number: {}, size: {} -----------------\n", event_num, hit_data_.size());
}

for (const auto& hit : hit_data_)
{
const auto module_id = hit.module_id;
hHitEvsBarCosmics_->Fill(module_id, hit.energy);
std::cout << "energy: " << hit.energy << "\n";
// std::cout << "energy: " << hit.energy << "\n";
hTdiffvsBarCosmics_->Fill(module_id, hit.tdc_left - hit.tdc_right);

auto fill_data_ref = [this, &hit, module_id](auto module_id_ref, auto& hist, auto& hist_c)
Expand Down
17 changes: 12 additions & 5 deletions neuland/online/canvases/R3BNeulandHitXYCanvas.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -43,16 +43,23 @@ namespace R3B::Neuland
}
}

void HitXYCanvas::CanvasFill(DataMonitor& /*histograms*/)
void HitXYCanvas::CanvasFill(DataMonitor& /*histograms*/)
{
// TODO: onspill
auto* rand_gen = GetOnlineSpectra()->GetRandomGenerator();
for (const auto& hit : hit_data_)
{
const auto module_id = hit.module_id;
const auto plane_id = GetPlaneID(module_id);
// TODO: include errors here
// TODO: Erros with bar width for horizontal and vertical planes
h_xy_per_plane_.at(plane_id)->Fill(hit.position.X(), hit.position.Y());
const auto bar_width_error = rand_gen->Uniform(-BarSize_XY / 2., BarSize_XY / 2.);
// TODO: introduce calibration errors
if (IsPlaneHorizontal(plane_id))
{
h_xy_per_plane_.at(plane_id)->Fill(hit.position.X(), hit.position.Y() + bar_width_error);
}
else
{
h_xy_per_plane_.at(plane_id)->Fill(hit.position.X() + bar_width_error, hit.position.Y());
}
}
}
void HitXYCanvas::CanvasFinish() {}
Expand Down
2 changes: 1 addition & 1 deletion neuland/online/canvases/R3BNeulandOnlineCanvas.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

#pragma once

#include <R3BHistMonitor.h>
#include <R3BDataMonitor.h>
#include <R3BNeulandCommon.h>
#include <R3BNeulandTriggerTypes.h>
#include <string>
Expand Down
9 changes: 6 additions & 3 deletions neuland/online/canvases/R3BNeulandTimingCanvas.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -66,19 +66,22 @@ namespace R3B::Neuland
void TimingCanvas::hit_data_fill()
{
const auto distance_to_target = GetOnlineSpectra()->GetDistanceToTarget();
auto* rand_gen = GetOnlineSpectra()->GetRandomGenerator();
for (const auto& hit : hit_data_)
{
const auto module_id = hit.module_id;
const auto plane_id = GetPlaneID(module_id);
const auto bar_width_error = rand_gen->Uniform(-BarSize_XY / 2., BarSize_XY / 2.);

const auto time = hit.time;
const auto time_corr = time - (hit.position.Mag() - distance_to_target) / CLight;
const auto correc_time = time - (hit.position.Mag() - distance_to_target) / CLight;
const auto pos_x = IsPlaneHorizontal(plane_id) ? hit.position.X() : hit.position.X() + bar_width_error;

hTofvsZ_->Fill(plane_id, time);
hTofcvsX_->Fill(hit.position.X(), time_corr);
hTofcvsX_->Fill(pos_x, correc_time);
if (hit.energy > 0.)
{
hTOFc_->Fill(time_corr);
hTOFc_->Fill(correc_time);
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions r3bbase/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ set(SRCS
R3BException.cxx
R3BFileSource.cxx
R3BFileSource2.cxx
R3BHistMonitor.cxx
R3BDataMonitor.cxx
R3BLogger.cxx
R3BModule.cxx
R3BTcutPar.cxx
Expand All @@ -57,7 +57,7 @@ set(HEADERS
R3BException.h
R3BFileSource.h
R3BFileSource2.h
R3BHistMonitor.h
R3BDataMonitor.h
R3BIOConnector.h
R3BLogger.h
R3BModule.h
Expand Down
2 changes: 1 addition & 1 deletion r3bbase/R3BHistMonitor.cxx → r3bbase/R3BDataMonitor.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
* or submit itself to any jurisdiction. *
******************************************************************************/

#include "R3BHistMonitor.h"
#include "R3BDataMonitor.h"
#include <FairRootFileSink.h>
#include <FairRunOnline.h>
#include <FairRuntimeDb.h>
Expand Down
6 changes: 3 additions & 3 deletions r3bbase/R3BHistMonitor.h → r3bbase/R3BDataMonitor.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,13 @@ namespace R3B
{
class DataMonitor;

template <typename Hist>
template <typename ElementType>
class CanvasElement
{

public:
CanvasElement() = default;
CanvasElement(Hist* hist, TVirtualPad* pad)
CanvasElement(ElementType* hist, TVirtualPad* pad)
: hist_{ hist }
, pad_{ pad }
{
Expand All @@ -43,7 +43,7 @@ namespace R3B
auto* pad() { return pad_; }

private:
Hist* hist_ = nullptr;
ElementType* hist_ = nullptr;
TVirtualPad* pad_ = nullptr;
};

Expand Down
2 changes: 1 addition & 1 deletion r3bsource/neuland/R3BNeulandTamexReader2.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
#include "R3BPaddleTamexMappedData2.h"
#include "R3BReader.h"
#include "ext_h101_raw_nnp_tamex.h"
#include <R3BHistMonitor.h>
#include <R3BDataMonitor.h>
#include <Rtypes.h>
#include <map>

Expand Down

0 comments on commit 48aa44c

Please sign in to comment.