R3BROOT
R3B analysis software
Loading...
Searching...
No Matches
R3BNeulandCalCanvas.cxx
Go to the documentation of this file.
1/******************************************************************************
2 * Copyright (C) 2019 GSI Helmholtzzentrum für Schwerionenforschung GmbH *
3 * Copyright (C) 2019-2023 Members of R3B Collaboration *
4 * *
5 * This software is distributed under the terms of the *
6 * GNU General Public Licence (GPL) version 3, *
7 * copied verbatim in the file "LICENSE". *
8 * *
9 * In applying this license GSI does not waive the privileges and immunities *
10 * granted to it by virtue of its status as an Intergovernmental Organization *
11 * or submit itself to any jurisdiction. *
12 ******************************************************************************/
13
14#include "R3BNeulandCalCanvas.h"
15#include "R3BDataMonitor.h"
16#include <TH2.h>
17
18namespace R3B::Neuland
19{
20 // void CalOnlineCanvas::DataInit() {}
21 // void CalOnlineCanvas::CanvasInit(HistMonitor& histograms) {}
22 // void CalOnlineCanvas::CanvasFill(HistMonitor& histograms) {}
23 // void CalOnlineCanvas::CanvasFinish() {}
24
25 void CalCanvas::DataInit() { cal_data_.init(); }
27 {
28 auto& canvas = CreateNewCanvas(histograms);
29 auto bar_numbers = GetBarNumber();
30
31 canvas.divide(2, 2);
32
33 constexpr auto TIME_BIN_SIZE = 2000;
34 constexpr auto TIME_MIN = -5000.;
35 constexpr auto TIME_MAX = 15000.;
36 constexpr auto TOT_BIN_SIZE = 600;
37
38 hCalTvsBar_L = canvas.add<1, TH2D>("hCalTvsBar_L",
39 "CalLevel_left: Time vs Bars ",
40 bar_numbers,
41 0.5,
42 bar_numbers + 0.5,
43 TIME_BIN_SIZE,
44 TIME_MIN,
45 TIME_MAX);
46 hCalTvsBar_R = canvas.add<2, TH2D>("hCalTvsBar_R",
47 "CalLevel_right: Time vs Bars ",
48 bar_numbers,
49 0.5,
50 bar_numbers + 0.5,
51 TIME_BIN_SIZE,
52 TIME_MIN,
53 TIME_MAX);
54 hCalToTvsBar_L = canvas.add<3, TH2D>("hCalToTvsBar_L",
55 "CalLevel_left: ToT vs Bars",
56 bar_numbers,
57 0.5,
58 bar_numbers + 0.5,
59 TOT_BIN_SIZE,
60 0.,
61 TOT_BIN_SIZE + 0.);
62 hCalToTvsBar_R = canvas.add<4, TH2D>("hCalToTvsBar_R",
63 "CalLevel_right: ToT vs Bars",
64 bar_numbers,
65 0.5,
66 bar_numbers + 0.5,
67 TOT_BIN_SIZE,
68 0.,
69 TOT_BIN_SIZE + 0.);
70 }
71
73 {
74 for (const auto& bar_signal : cal_data_)
75 {
76 const auto module_num = bar_signal.module_num;
77 for (const auto& left_signal : bar_signal.left)
78 {
79 histograms.get("hCalTvsBar_L")
80 ->Fill(module_num, (left_signal.leading_time - left_signal.trigger_time).value);
81 histograms.get("hCalToTvsBar_L")->Fill(module_num, left_signal.time_over_threshold.value);
82 }
83 for (const auto& right_signal : bar_signal.right)
84 {
85 histograms.get("hCalTvsBar_R")
86 ->Fill(module_num, (right_signal.leading_time - right_signal.trigger_time).value);
87 histograms.get("hCalToTvsBar_R")->Fill(module_num, right_signal.time_over_threshold.value);
88 }
89 }
90 }
92} // namespace R3B::Neuland
auto get(const std::string &histName) -> TH1 *
CanvasElement< TH2D > hCalToTvsBar_R
InputVectorConnector< BarCalData > cal_data_
CanvasElement< TH2D > hCalTvsBar_R
void CanvasFill(DataMonitor &histograms) override
CanvasElement< TH2D > hCalToTvsBar_L
CanvasElement< TH2D > hCalTvsBar_L
void CanvasInit(DataMonitor &histograms) override
auto CreateNewCanvas(DataMonitor &histograms) -> DataMonitorCanvas &
Simulation of NeuLAND Bar/Paddle.