32 constexpr auto TIME_BIN_SIZE = 1000;
33 constexpr auto ENERGY_BIN_SIZE = 2000;
34 constexpr auto ENERGY_MAX = 120.;
35 constexpr auto TIME_MAX = 20.;
37 hHitEvsBarCosmics_ = canvas.add<1, TH2D>(
"hHitEvsBarCosmics",
38 "HitLevel: Energy vs Bars cosmics",
46 hTdiffvsBarCosmics_ = canvas.add<2, TH2D>(
"hTdiffvsBarCosmics",
47 "Tdiff vs Bars cosmics",
55 hDTBack_ = canvas.add<3, TH2D>(
"hDT675",
56 "Thit - Thit675 vs Bars cosmics",
64 hDTBackc_ = canvas.add<4, TH2D>(
"hDT675c",
65 "Thit - Thit675 vs Bars cosmics corrected",
73 hDTFront_ = canvas.add<5, TH2D>(
"hDT625",
74 "Thit - Thit625 vs Bars cosmics",
82 hDTFrontc_ = canvas.add<6, TH2D>(
"hDT625c",
83 "Thit - Thit625 vs Bars cosmics corrected",
94 for (
const auto& hit : hit_data_)
96 const auto module_id = hit.module_id;
97 hHitEvsBarCosmics_->Fill(module_id, hit.energy);
99 hTdiffvsBarCosmics_->Fill(module_id, hit.tdc_left - hit.tdc_right);
101 auto fill_data_ref = [
this, &hit, module_id](
auto module_id_ref,
auto& hist,
auto& hist_c)
103 if (module_id == module_id_ref)
108 if (
auto res = ranges::find_if(
109 hit_data_.get(), [&module_id_ref](
const auto& ele) { return ele.module_id == module_id_ref; });
110 res != hit_data_.get().end())
112 const auto& hit_ref = *(res);
113 const auto time_mean = (hit.tdc_left + hit.tdc_right) / 2;
114 const auto time_mean_ref = (hit_ref.tdc_left + hit_ref.tdc_right) / 2;
115 const auto time_diff = time_mean - time_mean_ref;
117 const auto distance = hit.position - hit_ref.position;
118 const auto time_c = std::copysign(distance.Mag() /
CLight, distance.Y());
120 hist->Fill(module_id, time_diff);
121 hist_c->Fill(module_id, time_diff + time_c);