24 fitter = std::make_unique<AnnealingGhostTrackFitter>();
25 updater = std::make_unique<KalmanGhostTrackUpdater>();
34 const std::vector<TransientTrack> &
tracks)
const {
36 return fit(prior, priorPosition, tracks);
43 const std::vector<TransientTrack> &
tracks)
const {
45 return fit(prior, priorPosition, tracks);
50 const std::vector<TransientTrack> &
tracks)
const {
53 std::vector<GhostTrackState> states;
54 for (std::vector<TransientTrack>::const_iterator iter = tracks.begin(); iter != tracks.end(); ++iter) {
57 states.push_back(state);
61 return fit(actualFitter, prior, states);
65 std::vector<GhostTrackState> states;
66 for (std::vector<TransientTrack>::const_iterator iter = tracks.begin(); iter != tracks.end(); ++iter) {
69 states.push_back(state);
77 const std::vector<GhostTrackState> &states_)
const {
78 std::vector<GhostTrackState> states = states_;
double lambda(const GlobalPoint &point) const
auto const & tracks
cannot be loose
virtual GhostTrackPrediction fit(const PredictionUpdater &updater, const GhostTrackPrediction &pred, std::vector< GhostTrackState > &states, double &ndof, double &chi2)=0
GhostTrack fit(const GlobalPoint &priorPosition, const GlobalError &priorError, const GlobalVector &direction, double coneRadius, const std::vector< TransientTrack > &tracks) const
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< float >, ROOT::Math::GlobalCoordinateSystemTag > GlobalVector
vector in glovbal coordinate system
bool linearize(const GhostTrackPrediction &pred, bool initial=false, double lambda=0.)
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< float >, ROOT::Math::GlobalCoordinateSystemTag > GlobalPoint
point in global coordinate system
std::unique_ptr< FitterImpl > fitter
virtual ~GhostTrackFitter()
std::unique_ptr< PredictionUpdater > updater