12 #ifndef TRIGEFMISSINGET_PUFITUTILS_H
13 #define TRIGEFMISSINGET_PUFITUTILS_H
15 #include <Eigen/Dense>
54 const std::vector<double> &
sorted,
80 template <std::
size_t N>
104 template <std::
size_t N>
112 template <
typename Gr
id>
133 Eigen::VectorXd
pufit(
134 const Eigen::Vector2d &pileupSum,
135 const Eigen::Matrix2d &pileupCovariance,
136 const Eigen::VectorXd &towerExpectations,
137 const Eigen::VectorXd &towerVariances,
138 const Eigen::VectorXd &correctionDirections,
139 double constraintImportance = 1);
159 Eigen::VectorXd
pufit(
160 const Eigen::Vector2d &pileupSum,
161 const Eigen::Matrix2d &pileupCovariance,
162 const Eigen::VectorXd &towerExpectations,
163 const Eigen::VectorXd &towerVariances,
164 const Eigen::Matrix<double, 2, Eigen::Dynamic> &cosSin,
165 double constraintImportance = 1);
189 std::vector<SignedKinematics>
pufit(
190 const Eigen::Vector2d &pileupSum,
191 const Eigen::Matrix2d &pileupCovariance,
192 const std::vector<double> &towerExpectations,
193 const std::vector<double> &towerVariances,
194 const std::vector<SignedKinematics> &toCorrect,
195 double constraintImportance = 1);
208 Eigen::VectorXd
pufit(
209 const Eigen::Vector2d &pileupSum,
210 const Eigen::Matrix2d &pileupCovariance,
212 double towerVariance,
213 const Eigen::VectorXd &correctionDirections,
214 double constraintImportance = 1);
230 Eigen::VectorXd
pufit(
231 const Eigen::Vector2d &pileupSum,
232 const Eigen::Matrix2d &pileupCovariance,
234 double towerVariance,
235 const Eigen::Matrix<double, 2, Eigen::Dynamic> &cosSin,
236 double constraintImportance = 1);
256 std::vector<SignedKinematics>
pufit(
257 const Eigen::Vector2d &pileupSum,
258 const Eigen::Matrix2d &pileupCovariance,
260 double towerVariance,
261 const std::vector<SignedKinematics> &toCorrect,
262 double constraintImportance = 1);
269 #endif //> !TRIGEFMISSINGET_PUFITUTILS_H