26 double kernel2d_{0.2};
27 double deltas2d_{10.};
28 double deltao2d_{25.};
32 int sibling_layers_{2};
34 double dens_xy3d_{15.};
35 double kernel3d_{0.5};
37 double crit_xy3d_{10.};
38 double crit_rho3d_{50.};
39 double self_frac3d_{0.05};
41 double outlier_mult3d_{2.};
43 double attach_radius_{40.};
45 double sc_ratio_{0.06};
46 double sc_radius_{150.};
48 int sc_min_layers_{5};
50 double min_cluster_energy_{20.};
54 double share_min_energy_{300.};
56 double coincide_dist_{4.};
58 double ghost_ratio_{0.15};
59 double ghost_dist_{12.};
61 std::vector<double> profile_lambda_{};
64 double pos_window_{15.};
68 double e_{0}, x_{0}, y_{0}, z_{0};
70 std::vector<int> hits_;
71 double rho_{0}, delta_{0};
79 double x_{0}, y_{0}, z_{0};
80 double dxdz_{0}, dydz_{0};
81 double rms_x_{0}, rms_y_{0}, rms_z_{0};
83 double x0_{0}, y0_{0}, z0_{0};
84 std::vector<int> hits_;
85 std::vector<double> frac_;
87 double axisX(
double zz)
const {
return x_ + dxdz_ * (zz - z_); }
88 double axisY(
double zz)
const {
return y_ + dydz_ * (zz - z_); }
95 std::vector<Cluster>
cluster(
const std::vector<ldmx::EcalHit>& hits);
97 const std::vector<LayerCluster>& layerClusters()
const {
return lcs_; }
100 double lambda(
int layer)
const;
103 void cluster2D(
const std::vector<int>& layer_hits);
105 void fitAxis(
Cluster& c,
const std::vector<int>& hit_idx,
106 const std::vector<double>& frac)
const;
109 const std::vector<ldmx::EcalHit>* hits_{
nullptr};
110 std::vector<int> layer_of_;
111 std::vector<char> core_;
112 std::vector<LayerCluster> lcs_;