![]() |
PandaRoot
|
Implementation of the Hough transform based FTS PR. Creates Hough spaces, finds peaks (=tracklets) and combines them to track candidates. More...
#include <PndFtsHoughTrackFinder.h>
Public Member Functions | |
PndFtsHoughTrackFinder (PndFtsHoughTrackerTask *trackerTask) | |
Set pointer to tracker task (super important as it provides an I/O interface to PandaRoot) More... | |
virtual | ~PndFtsHoughTrackFinder () |
Destructor. More... | |
void | OverwriteTrackFinderParams (PndFtsHoughTrackFinderParams newParams) |
virtual void | FindTracks () |
Performs the track finding. More... | |
Int_t | NTracks () const |
PndTrack | GetPndTrack (int i) |
Returns the number of found tracks. More... | |
PndTrackCand | GetPndTrackCand (int i) |
Returns the track cand. with index i. More... | |
PndFtsHoughTrackCand | GetHoughTrack (int i) const |
Returns the track cand. with index i. More... | |
Int_t | getNLinesBeforeDipoleFound () const |
Int_t | getNLinesBehindDipoleFound () const |
Int_t | getNParabolasFound () const |
Int_t | getNTracksFound () const |
Protected Member Functions | |
void | throwError (const TString s) const |
For error reporting. More... | |
Bool_t | FilterTrackletsBasedOnSharedHits (UInt_t maxAcceptableSharedHits, std::vector< PndFtsHoughTracklet > &tracklets) |
Filters a vector of tracklets based on the number of shared hits. More... | |
std::vector< PndFtsHoughTracklet > | FindLinesBehindDipoleZx () |
std::vector< PndFtsHoughTracklet > | FindLinesBeforeDipoleZx () |
void | FindMatchingParabolaToLineBeforeDipoleZxAndAddLineBehindDipole (const std::vector< PndFtsHoughTracklet > &trackletsLineBeforeDipole, const std::vector< PndFtsHoughTracklet > &trackletsLineBehindDipole) |
Bool_t | LineBehindDipoleMatchesToLinePlusParabola (const PndFtsHoughTrackCand &lineParabola, const PndFtsHoughTracklet &lineBehindDipole) const |
void | FindZyLineMatchingToLineParabolaLineInZx () |
Protected Attributes | |
PndFtsHoughTrackerTask * | fTrackerTask |
Task which handles PandaRoot input/output and provides settings for FTS PR. Has to be set using the constructor. More... | |
PndFtsHoughTrackFinderParams | fParams |
std::vector< PndFtsHoughTrackCand > | fHoughTrackCandsComplete |
For internal storing of complete track cands. More... | |
std::vector< PndFtsHoughTrackCand > | fHoughTrackCandsZxPlaneOnly |
For internal storing of track cands. (zx plane track model only) More... | |
const UInt_t | fMinPeakHeightZxLineBeforeDipole |
Minimum required height for peaks in Hough spaces. More... | |
const UInt_t | fMinPeakHeightZxParabola |
Minimum required height for peaks in Hough spaces. More... | |
const UInt_t | fMinPeakHeightZxLineBehindDipole |
Minimum required height for peaks in Hough spaces. More... | |
const UInt_t | fMinPeakHeightZyLine |
zy line More... | |
Int_t | fNLinesBeforeDipoleFound |
Int_t | fNLinesBehindDipoleFound |
Int_t | fNParabolasFound |
Int_t | fNTracksFound |
Static Protected Attributes | |
static const Double_t | fThetaRadLineBehindDipoleMatchesToParabolaIfBelow |
Minimum required height for peaks in Hough spaces. More... | |
Implementation of the Hough transform based FTS PR. Creates Hough spaces, finds peaks (=tracklets) and combines them to track candidates.
This is a class version of the HoughTest.C macro PR test implementation minus all the plotting stuff. Take a look at the notes of the macro version for further details.
Recent Changes Major code cleanup and deletion of test code / unneeded code use PndFtsHoughTrackCand to store information about track candidates and Hough transforms Find all peaks with a minimum height, analysing peak shapes. Moved all Hough space related code to PndFtsHoughSpace -> Major code simplification, better maintainability Fill PndTrackCands and PndTrack for output
This class is loosely modeled after the mvd/MvdTracking/PndRiemannTrackFinder sttmvdtracking/PndMvdSttGemRiemannTrackFinder classes
TODO Match straight line for stations 5+6 to parabola Add skewed hits Add drift circles Adaptive Hough
Created: 18.06.2013
Definition at line 65 of file PndFtsHoughTrackFinder.h.
PndFtsHoughTrackFinder::PndFtsHoughTrackFinder | ( | PndFtsHoughTrackerTask * | trackerTask | ) |
Set pointer to tracker task (super important as it provides an I/O interface to PandaRoot)
|
virtual |
Destructor.
|
protected |
Filters a vector of tracklets based on the number of shared hits.
It will only keep the heighest peaks if 2 or more peaks share more than maxAcceptableSharedHits hits. If two peaks have the same height, both are kept.
maxAcceptableSharedHits | Defines how many hits two tracklets / peaks are allowed to share. | |
[in,out] | tracklets | Vector containing tracklets which are supposed to be filtered. The vector will be modified. |
|
protected |
|
protected |
|
protected |
|
virtual |
Performs the track finding.
Reimplemented in PndFtsHoughTrackFinderQA.
Referenced by OverwriteTrackFinderParams().
|
protected |
|
inline |
Returns the track cand. with index i.
Note: For debugging only.
i | Index of requested track cand. |
Definition at line 97 of file PndFtsHoughTrackFinder.h.
References fHoughTrackCandsComplete, and i.
|
inline |
Definition at line 100 of file PndFtsHoughTrackFinder.h.
References fNLinesBeforeDipoleFound.
|
inline |
Definition at line 101 of file PndFtsHoughTrackFinder.h.
References fNLinesBehindDipoleFound.
|
inline |
Definition at line 102 of file PndFtsHoughTrackFinder.h.
References fNParabolasFound.
|
inline |
Definition at line 103 of file PndFtsHoughTrackFinder.h.
References fNTracksFound, and fTrackerTask.
|
inline |
Returns the number of found tracks.
Returns the track cand. with index i.
Note: Method calculates first and last parameters of the PndTrack object, but uses an empty PndTrackCand which has to be set lateron using SetTrackCandRef!
i | Index of requested track cand. |
Definition at line 83 of file PndFtsHoughTrackFinder.h.
References fHoughTrackCandsComplete, and i.
|
inline |
Returns the track cand. with index i.
Note: Use this to add a PndTrackCand to the corresponding PndTrack object with SetTrackCandRef!
i | Index of requested track cand. |
Definition at line 90 of file PndFtsHoughTrackFinder.h.
References fHoughTrackCandsComplete, and i.
|
inlineprotected |
Definition at line 165 of file PndFtsHoughTrackFinder.h.
References fabs(), fThetaRadLineBehindDipoleMatchesToParabolaIfBelow, PndFtsHoughTracklet::getThetaRadVal(), PndFtsHoughTrackCand::getThetaZyRad(), and PndFtsHoughTracklet::getZRefLabSys().
|
inline |
Definition at line 76 of file PndFtsHoughTrackFinder.h.
References fHoughTrackCandsComplete.
|
inline |
Definition at line 71 of file PndFtsHoughTrackFinder.h.
References FindTracks(), and fParams.
|
inlineprotected |
|
protected |
For internal storing of complete track cands.
Definition at line 120 of file PndFtsHoughTrackFinder.h.
Referenced by GetHoughTrack(), GetPndTrack(), GetPndTrackCand(), and NTracks().
|
protected |
For internal storing of track cands. (zx plane track model only)
Definition at line 121 of file PndFtsHoughTrackFinder.h.
|
protected |
Minimum required height for peaks in Hough spaces.
zx line before dipole field
Definition at line 127 of file PndFtsHoughTrackFinder.h.
|
protected |
Minimum required height for peaks in Hough spaces.
zx line after dipole field
Definition at line 131 of file PndFtsHoughTrackFinder.h.
|
protected |
Minimum required height for peaks in Hough spaces.
zx parabola within dipole field
Definition at line 129 of file PndFtsHoughTrackFinder.h.
|
protected |
zy line
Definition at line 133 of file PndFtsHoughTrackFinder.h.
|
protected |
Definition at line 136 of file PndFtsHoughTrackFinder.h.
Referenced by getNLinesBeforeDipoleFound().
|
protected |
Definition at line 137 of file PndFtsHoughTrackFinder.h.
Referenced by getNLinesBehindDipoleFound().
|
protected |
Definition at line 138 of file PndFtsHoughTrackFinder.h.
Referenced by getNParabolasFound().
|
protected |
Definition at line 139 of file PndFtsHoughTrackFinder.h.
Referenced by getNTracksFound().
|
protected |
Definition at line 111 of file PndFtsHoughTrackFinder.h.
Referenced by OverwriteTrackFinderParams(), and throwError().
|
staticprotected |
Minimum required height for peaks in Hough spaces.
Definition at line 124 of file PndFtsHoughTrackFinder.h.
Referenced by LineBehindDipoleMatchesToLinePlusParabola().
|
protected |
Task which handles PandaRoot input/output and provides settings for FTS PR. Has to be set using the constructor.
Definition at line 103 of file PndFtsHoughTrackFinder.h.
Referenced by getNTracksFound().