FairRoot/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 = 5*TMath::DegToRad() |
Minimum required height for peaks in Hough spaces. More... | |
Private Member Functions | |
ClassDef (PndFtsHoughTrackFinder, 1) | |
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 69 of file PndFtsHoughTrackFinder.h.
PndFtsHoughTrackFinder::PndFtsHoughTrackFinder | ( | PndFtsHoughTrackerTask * | trackerTask | ) |
Set pointer to tracker task (super important as it provides an I/O interface to PandaRoot)
Definition at line 10 of file PndFtsHoughTrackFinder.cxx.
References fTrackerTask, and PndFtsHoughTrackerTask::GetVerbose().
|
virtual |
Destructor.
Definition at line 34 of file PndFtsHoughTrackFinder.cxx.
References PndFtsHoughTrackerTask::fLogger, fTrackerTask, and PndFtsHoughTrackerTask::GetVerbose().
|
private |
|
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. |
Definition at line 372 of file PndFtsHoughTrackFinder.cxx.
References Double_t, fTrackerTask, PndFtsHoughTracklet::getNSharedHits(), PndFtsHoughTracklet::getPeakHeightFromPeakFinder(), and PndFtsHoughTrackerTask::GetVerbose().
|
protected |
Definition at line 82 of file PndFtsHoughTrackFinder.cxx.
References Double_t, PndFtsHoughSpace::FillHoughSpace(), fMinPeakHeightZxLineBeforeDipole, fParams, fTrackerTask, and PndFtsHoughTrackFinderParams::getZLineParabola().
Referenced by FindTracks().
|
protected |
Definition at line 40 of file PndFtsHoughTrackFinder.cxx.
References Double_t, PndFtsHoughSpace::FillHoughSpace(), fMinPeakHeightZxLineBehindDipole, fParams, fTrackerTask, and PndFtsHoughTrackFinderParams::getZParabolaLine().
Referenced by FindTracks().
|
protected |
Definition at line 131 of file PndFtsHoughTrackFinder.cxx.
References Bool_t, Double_t, fHoughTrackCandsZxPlaneOnly, PndFtsHoughSpace::FillHoughSpace(), fMinPeakHeightZxParabola, fParams, fTrackerTask, PndFtsHoughTrackerTask::GetEventNr(), PndFtsHoughTrackFinderParams::getParabolaHwScan(), PndFtsHoughTrackFinderParams::getParabolaNBinsPzxInv(), PndFtsHoughTrackFinderParams::getParabolaQDivPzxArgMax(), PndFtsHoughTrackFinderParams::getParabolaStepsPerThetaDeg(), PndFtsHoughTrackerTask::GetVerbose(), PndFtsHoughTrackFinderParams::getZLineParabola(), LineBehindDipoleMatchesToLinePlusParabola(), PndFtsHoughTrackCand::SetZxLineBeforeDipole(), PndFtsHoughTrackCand::SetZxLineBehindDipole(), and PndFtsHoughTrackCand::SetZxParabola().
Referenced by FindTracks().
|
virtual |
Performs the track finding.
Reimplemented in PndFtsHoughTrackFinderQA.
Definition at line 295 of file PndFtsHoughTrackFinder.cxx.
References fHoughTrackCandsComplete, fHoughTrackCandsZxPlaneOnly, FindLinesBeforeDipoleZx(), FindLinesBehindDipoleZx(), FindMatchingParabolaToLineBeforeDipoleZxAndAddLineBehindDipole(), FindZyLineMatchingToLineParabolaLineInZx(), fMinPeakHeightZxLineBeforeDipole, fMinPeakHeightZxParabola, fNLinesBeforeDipoleFound, fNLinesBehindDipoleFound, fNParabolasFound, fNTracksFound, fTrackerTask, PndFtsHoughTrackerTask::GetEventNr(), PndFtsHoughTrackerTask::GetNFtsHits(), and PndFtsHoughTrackerTask::GetVerbose().
Referenced by PndFtsHoughTrackerTaskQA::Exec(), and PndFtsHoughTrackFinderQA::FindTracks().
|
protected |
Definition at line 236 of file PndFtsHoughTrackFinder.cxx.
References fHoughTrackCandsComplete, fHoughTrackCandsZxPlaneOnly, PndFtsHoughSpace::FillHoughSpace(), PndFtsHoughSpace::FindAllPeaksScanPathsMergeBins(), fMinPeakHeightZyLine, fParams, fTrackerTask, PndFtsHoughTrackerTask::GetVerbose(), PndFtsHoughTrackFinderParams::getZLineParabola(), and PndFtsHoughTrackCand::SetZyLine().
Referenced by FindTracks().
|
inline |
Returns the track cand. with index i.
Note: For debugging only.
i | Index of requested track cand. |
Definition at line 103 of file PndFtsHoughTrackFinder.h.
References fHoughTrackCandsComplete, and i.
Referenced by PndFtsHoughTrackerTask::Exec().
|
inline |
Definition at line 106 of file PndFtsHoughTrackFinder.h.
References fNLinesBeforeDipoleFound.
|
inline |
Definition at line 107 of file PndFtsHoughTrackFinder.h.
References fNLinesBehindDipoleFound.
|
inline |
Definition at line 108 of file PndFtsHoughTrackFinder.h.
References fNParabolasFound.
Referenced by PndFtsHoughTrackerTaskQA::Exec().
|
inline |
|
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 89 of file PndFtsHoughTrackFinder.h.
References fHoughTrackCandsComplete, and i.
Referenced by PndFtsHoughTrackerTask::Exec().
|
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 96 of file PndFtsHoughTrackFinder.h.
References fHoughTrackCandsComplete, and i.
Referenced by PndFtsHoughTrackerTask::Exec().
|
inlineprotected |
Definition at line 189 of file PndFtsHoughTrackFinder.h.
References Double_t, fabs(), fThetaRadLineBehindDipoleMatchesToParabolaIfBelow, PndFtsHoughTracklet::getThetaRadVal(), PndFtsHoughTrackCand::getThetaZyRad(), and PndFtsHoughTracklet::getZRefLabSys().
Referenced by FindMatchingParabolaToLineBeforeDipoleZxAndAddLineBehindDipole().
|
inline |
Definition at line 82 of file PndFtsHoughTrackFinder.h.
References fHoughTrackCandsComplete.
Referenced by PndFtsHoughTrackerTask::Exec().
|
inline |
Definition at line 76 of file PndFtsHoughTrackFinder.h.
References fParams.
Referenced by PndFtsHoughTrackerTaskQA::Exec().
|
inlineprotected |
|
protected |
For internal storing of complete track cands.
Definition at line 129 of file PndFtsHoughTrackFinder.h.
Referenced by FindTracks(), FindZyLineMatchingToLineParabolaLineInZx(), GetHoughTrack(), GetPndTrack(), GetPndTrackCand(), and NTracks().
|
protected |
For internal storing of track cands. (zx plane track model only)
Definition at line 130 of file PndFtsHoughTrackFinder.h.
Referenced by FindMatchingParabolaToLineBeforeDipoleZxAndAddLineBehindDipole(), FindTracks(), and FindZyLineMatchingToLineParabolaLineInZx().
|
protected |
Minimum required height for peaks in Hough spaces.
zx line before dipole field
Definition at line 137 of file PndFtsHoughTrackFinder.h.
Referenced by FindLinesBeforeDipoleZx(), and FindTracks().
|
protected |
Minimum required height for peaks in Hough spaces.
zx line after dipole field
Definition at line 141 of file PndFtsHoughTrackFinder.h.
Referenced by FindLinesBehindDipoleZx().
|
protected |
Minimum required height for peaks in Hough spaces.
zx parabola within dipole field
Definition at line 139 of file PndFtsHoughTrackFinder.h.
Referenced by FindMatchingParabolaToLineBeforeDipoleZxAndAddLineBehindDipole(), and FindTracks().
|
protected |
zy line
Definition at line 143 of file PndFtsHoughTrackFinder.h.
Referenced by FindZyLineMatchingToLineParabolaLineInZx().
|
protected |
Definition at line 148 of file PndFtsHoughTrackFinder.h.
Referenced by FindTracks(), and getNLinesBeforeDipoleFound().
|
protected |
Definition at line 149 of file PndFtsHoughTrackFinder.h.
Referenced by FindTracks(), and getNLinesBehindDipoleFound().
|
protected |
Definition at line 150 of file PndFtsHoughTrackFinder.h.
Referenced by FindTracks(), and getNParabolasFound().
|
protected |
Definition at line 151 of file PndFtsHoughTrackFinder.h.
Referenced by FindTracks(), and getNTracksFound().
|
protected |
Definition at line 117 of file PndFtsHoughTrackFinder.h.
Referenced by FindLinesBeforeDipoleZx(), FindLinesBehindDipoleZx(), FindMatchingParabolaToLineBeforeDipoleZxAndAddLineBehindDipole(), FindZyLineMatchingToLineParabolaLineInZx(), and OverwriteTrackFinderParams().
|
staticprotected |
Minimum required height for peaks in Hough spaces.
Definition at line 134 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 109 of file PndFtsHoughTrackFinder.h.
Referenced by FilterTrackletsBasedOnSharedHits(), FindLinesBeforeDipoleZx(), FindLinesBehindDipoleZx(), FindMatchingParabolaToLineBeforeDipoleZxAndAddLineBehindDipole(), FindTracks(), FindZyLineMatchingToLineParabolaLineInZx(), PndFtsHoughTrackFinder(), PndFtsHoughTrackFinderQA::PndFtsHoughTrackFinderQA(), ~PndFtsHoughTrackFinder(), and PndFtsHoughTrackFinderQA::~PndFtsHoughTrackFinderQA().