17 std::vector<GhostTrackState> &states,
20 double rho = prior.
rho();
21 for (
unsigned int i = 0;
i < states.size();
i++) {
30 for (
unsigned int i = 0;
i < states.size();
i++) {
32 double lambda = state.
lambda();
33 if (lambda < origin && (origin - lambda) < 3.5) {
35 testState.
linearize(pred, 2. * origin - lambda);
39 updater.
contribution(prior, testState, ndof, chi2,
true);
40 if (ndof > 0. && chi2 < 10.) {
47 edm::LogError(
"InvalidGhostTrackState") <<
"Invalid GhostTrackState encountered!";
53 for (
unsigned int i = 0;
i < states.size();
i++) {
55 double lambda = state.
lambda();
56 if (state.
weight() != 1. && lambda < origin) {
62 pred =
actualFitter_->fit(updater, prior, states, ndof, chi2);
double lambda(const GlobalPoint &point) const
std::unique_ptr< GhostTrackFitter::FitterImpl > actualFitter_
void setWeight(double weight)
Exp< T >::type exp(const T &t)
Log< level::Error, false > LogError
virtual void contribution(const GhostTrackPrediction &pred, const GhostTrackState &state, double &ndof, double &chi2, bool withPredError=false) const =0
GhostTrackPrediction fit(const GhostTrackFitter::PredictionUpdater &updater, const GhostTrackPrediction &prior, std::vector< GhostTrackState > &states, double &ndof, double &chi2) override
bool linearize(const GhostTrackPrediction &pred, bool initial=false, double lambda=0.)