12snd::analysis_tools::USPlane::USPlane(std::vector<MuFilterHit*> snd_hits,
Configuration configuration,
MuFilter *muon_filter_geometry,
int station) : configuration_(configuration), centroid_(std::nan(
""), std::nan(
""), std::nan(
"")), centroid_error_(std::nan(
""), std::nan(
""),std::nan(
"")), station_(station)
14 for (
auto mu_hit : snd_hits)
16 for (
int i{0}; i < 16; ++i)
18 if (mu_hit->isMasked(i) || mu_hit->GetSignal(i) < -990.)
continue;
20 hit.
bar =
static_cast<int>(mu_hit->GetDetectorID() % 1000);
23 hit.
qdc = mu_hit->GetSignal(i);
27 int detectorID = mu_hit->GetDetectorID();
28 muon_filter_geometry->
GetPosition(detectorID, A, B);
41 if (
static_cast<int>(hits_.size()) < configuration_.us_min_n_hits_for_centroid)
47 double total_qdc = GetTotQdc().large;
50 for (
const auto &hit : hits_)
53 double weighted_sum_x{0.0}, weighted_sum_y{0.0}, weighted_sum_z{0.0};
54 double total_qdc_positive{0.0};
58 weighted_sum_x += hit.x * hit.qdc;
59 weighted_sum_y += hit.y * hit.qdc;
60 weighted_sum_z += hit.z * hit.qdc;
61 total_qdc_positive += hit.qdc;
64 double x = weighted_sum_x / total_qdc_positive;
65 double y = weighted_sum_y / total_qdc_positive;
66 double z = weighted_sum_z / total_qdc_positive;
67 centroid_.SetXYZ(x, y, z);
70 centroid_error_.SetXYZ(configuration_.us_centroid_error_x, configuration_.us_centroid_error_y, configuration_.us_centroid_error_z);