10#include <klm/modules/KLMTracking/KLMTrackFinder.h>
13#include <klm/dataobjects/KLMHit2d.h>
16#include <framework/logging/Logger.h>
44 std::list<KLMHit2d*>& hits,
45 std::list<KLMHit2d*>& track,
49 std::list<KLMHit2d*>::iterator i;
54 B2ERROR(
"KLMTrackFinder: Fitter not registered");
62 for (i = hits.begin(); i != hits.end(); ++i) {
63 if ((*i)->getSubdetector() != iSubdetector)
76 if ((*i)->isOnStaTrack() ==
false) {
77 double distance, error, sigma;
79 if (sigma < 5.0 && distance < 60) {
80 B2DEBUG(20,
"KLMTrackFinder" <<
" Error: " << error <<
" Sigma: " << sigma <<
" Distance: " << distance);
91 B2DEBUG(20,
"KLMTrackFinder:" <<
"ChiSqr: " << chisqr);
94 std::list<int> hitLayers;
95 for (i = track.begin(); i != track.end(); ++i) {
96 hitLayers.push_back((*i)->getLayer());
101 int layers = (*(--hitLayers.end()) - * (hitLayers.begin()));
102 int noHits = hitLayers.size();
104 if (noHits >= 4 &&
double(noHits) / double(layers) >= 0.75) {
~KLMTrackFinder()
Destructor.
KLMTrackFinder()
Default constructor.
bool filter(const std::list< KLMHit2d * > &seed, std::list< KLMHit2d * > &hits, std::list< KLMHit2d * > &track, int iSubdetector)
find associated hits and do fit.
KLMTrackFitter * m_Fitter
pointer to the fitter
void registerFitter(KLMTrackFitter *fitter)
Register a fitter if not constructed with one.
double fit(std::list< KLMHit2d * > &listTrackPoint)
do fit and returns chi square of the fit.
double globalDistanceToHit(KLMHit2d *hit, double &error, double &sigma)
Distance from track to a hit in the global system.
Abstract base class for different kinds of events.