65 std::optional<ldmx::Measurement>>
68 std::optional<ldmx::Measurement>>
70 const std::array<double, 3> ecal_one);
74 std::tuple<double, double, double, double, std::vector<double>> fit3DLine(
75 const std::array<double, 3> &first_recoil,
76 const std::array<double, 3> &second_recoil,
77 const std::array<double, 3> &ecal);
80 double calculateDistance(
const std::array<double, 3> &point1,
81 const std::array<double, 3> &point2);
86 const Acts::Surface &axial_surface,
88 const Acts::Surface &stereo_surface,
90 std::vector<ldmx::SimTrackerHit> pair_sim_hits);
93 std::vector<std::tuple<
94 std::array<double, 3>,
95 std::tuple<ldmx::Measurement, ldmx::SimTrackerHit, ldmx::SimTrackerHit>,
104 double globalChiSquare(
const std::array<double, 3> &first_sensor,
105 const std::array<double, 3> &second_sensor,
106 const std::array<double, 3> &ecal_hit,
double a_x,
107 double a_y,
double b_x,
double b_y);
111 int uniqueLayersHit(
const std::vector<ldmx::Measurement> &digi_points);
114 std::array<double, 3> convertToLdmxStdArray(
const Acts::Vector3 &vec);
115 std::tuple<Acts::Vector3, Acts::Vector3, Acts::Vector3> getSurfaceVectors(
116 const Acts::Surface &surface);
117 double dotProduct(
const Acts::Vector3 &v1,
const Acts::Vector3 &v2);
118 std::array<double, 3> getPointAtZ(std::array<double, 3> target,
119 std::array<double, 3> measurement,
122 double processing_time_{0.};
124 unsigned int n_seeds_{0};
132 std::string input_pass_name_{
""};
134 double ecal_uncertainty_{3.87};
136 double ecal_distance_threshold_{10.0};
139 double layer12_midpoint_{12.5};
140 double layer23_midpoint_{20.0};
141 double layer34_midpoint_{27.5};
142 double ecal_first_layer_z_threshold_{250.0};
144 std::vector<double> recoil_uncertainty_{0.006, 0.085};
150 std::shared_ptr<tracking::sim::TruthMatchingTool> truth_matching_tool_ =
154 std::string next_event_passname_;
155 std::string sim_particles_passname_;
156 std::string sim_particles_events_passname_;