PandaRoot
PndFtsHoughSpace Class Reference

Class for Hough space based on TH2S (for the moment). Saves the hits which enter this Hough space and finds peaks. More...

#include <PndFtsHoughSpace.h>

Inheritance diagram for PndFtsHoughSpace:

Public Member Functions

 PndFtsHoughSpace (const char *name=nullptr, const Int_t refIndex=-1, PndFtsHoughSpaceBinning binning=PndFtsHoughSpaceBinning(), Double_t zRefPos=0., Double_t interceptZx=0., PndFtsHoughTrackCand *associatedTrackCand=nullptr, PndFtsHoughTrackerTask *trackerTask=nullptr)
 
 ~PndFtsHoughSpace ()
 
std::vector< PndFtsHoughTrackletFindAllPeaksScanPathsMergeBins (const UInt_t minHeight)
 Finds all peaks that satisfy the minimum height requirement minHeight. More...
 
std::vector< PndFtsHoughTrackletFindAllPeaksScanPathsMergeBinsCalculatingPaths (const UInt_t minHeight)
 Finds all peaks that satisfy the minimum height requirement minHeight. More...
 
std::vector< PndFtsHoughTrackletFindAllPeaksWithTSpectrum2 (const UInt_t minHeight)
 Finds all peaks that satisfy the minimum height requirement minHeight. More...
 
std::vector< PndFtsHoughTrackletFindAllPeaksBinsWoMergingWithSearchWindow (const UInt_t minHeight, const Int_t vicinityLength=0)
 Finds all peaks that satisfy the minimum height requirement minHeight. More...
 
std::vector< PndFtsHoughTrackletFindAllPeaksBlanko (const UInt_t minHeight)
 Finds all peaks that satisfy the minimum height requirement minHeight. More...
 
void FillHoughSpace ()
 Fills the Hough space using the equation which corresponds to the name of the Hough space. More...
 
void Print () const
 
void setVerbose (Int_t verbose)
 
Double_t getInterceptZx () const
 
Double_t getZRefPos () const
 
UInt_t GetNHits () const
 
 ClassDef (PndFtsHoughSpace, 1)
 

Detailed Description

Class for Hough space based on TH2S (for the moment). Saves the hits which enter this Hough space and finds peaks.

Author
Martin J. Galuska <martin [dot] j [dot] galuska (at) physik [dot] uni (minus) giessen [dot] de>

Note //! after a member means for root that it should not write it to disk when the object is saved

TODO Save path through Hough spaces with global indices!!! TODO: Separate peak finder from Hough space

The angle (theta in rad) is always on x-axis, the value on the y-axis depends on the kind of Hough transform:

HT type yValue
parabola Q/p_{zx}
line intercept (Achsenabschnitt) (in z-x- or z-y-plane)

All FTS hits are scanned within the constructor by filterInputHits(). The hits which are relevant for this Hough space are saved in fHitId and can be accessed with getHit(UInt_t index).

Created: 21.02.2014

Definition at line 61 of file PndFtsHoughSpace.h.

Constructor & Destructor Documentation

◆ PndFtsHoughSpace()

PndFtsHoughSpace::PndFtsHoughSpace ( const char *  name = nullptr,
const Int_t  refIndex = -1,
PndFtsHoughSpaceBinning  binning = PndFtsHoughSpaceBinning(),
Double_t  zRefPos = 0.,
Double_t  interceptZx = 0.,
PndFtsHoughTrackCand associatedTrackCand = nullptr,
PndFtsHoughTrackerTask trackerTask = nullptr 
)

◆ ~PndFtsHoughSpace()

PndFtsHoughSpace::~PndFtsHoughSpace ( )

Member Function Documentation

◆ ClassDef()

PndFtsHoughSpace::ClassDef ( PndFtsHoughSpace  ,
 
)

Referenced by GetNHits().

◆ FillHoughSpace()

void PndFtsHoughSpace::FillHoughSpace ( )

Fills the Hough space using the equation which corresponds to the name of the Hough space.

If something goes wrong the function throws a runtime_error (probably Hough space name is set incorrectly).

!!! WARNING The theta values (in rad) are NOT the same as in the interaction point. They are always calculated relative to a shifted coordinate system and only 2-dimensional (either in z-x- or z-y-plane) !!!

The angle (theta in rad) to the z-axis in the z-x- or z-y-plane at a z reference position will be scanned from theta corresponding to lowest bin to theta corresponding to highest bin of x-axis.

TODO For each hit the "path" through the 2d histogram is saved for peak finding.

y component of B field will be read from field maps if fKeepBConstant is kFALSE.

Parameters
[in]Runningindex, only needed for Debugging output of Hough spaces

◆ FindAllPeaksBinsWoMergingWithSearchWindow()

std::vector<PndFtsHoughTracklet> PndFtsHoughSpace::FindAllPeaksBinsWoMergingWithSearchWindow ( const UInt_t  minHeight,
const Int_t  vicinityLength = 0 
)

Finds all peaks that satisfy the minimum height requirement minHeight.

Parameters
minHeightonly bins of at least this height are regarded as possibly belonging to a peak.
Returns
tracklets containing all values found for the peaks in the Hough space. They will contain the hitIds of all hits that contribute to the peaks.

◆ FindAllPeaksBlanko()

std::vector<PndFtsHoughTracklet> PndFtsHoughSpace::FindAllPeaksBlanko ( const UInt_t  minHeight)

Finds all peaks that satisfy the minimum height requirement minHeight.

Parameters
minHeightonly bins of at least this height are regarded as possibly belonging to a peak.
Returns
tracklets containing all values found for the peaks in the Hough space. They will contain the hitIds of all hits that contribute to the peaks.

◆ FindAllPeaksScanPathsMergeBins()

std::vector<PndFtsHoughTracklet> PndFtsHoughSpace::FindAllPeaksScanPathsMergeBins ( const UInt_t  minHeight)

Finds all peaks that satisfy the minimum height requirement minHeight.

Parameters
minHeightonly bins of at least this height are regarded as possibly belonging to a peak.
Returns
tracklets containing all values found for the peaks in the Hough space. They will contain the hitIds of all hits that contribute to the peaks.

◆ FindAllPeaksScanPathsMergeBinsCalculatingPaths()

std::vector<PndFtsHoughTracklet> PndFtsHoughSpace::FindAllPeaksScanPathsMergeBinsCalculatingPaths ( const UInt_t  minHeight)

Finds all peaks that satisfy the minimum height requirement minHeight.

Parameters
minHeightonly bins of at least this height are regarded as possibly belonging to a peak.
Returns
tracklets containing all values found for the peaks in the Hough space. They will contain the hitIds of all hits that contribute to the peaks.

◆ FindAllPeaksWithTSpectrum2()

std::vector<PndFtsHoughTracklet> PndFtsHoughSpace::FindAllPeaksWithTSpectrum2 ( const UInt_t  minHeight)

Finds all peaks that satisfy the minimum height requirement minHeight.

Parameters
minHeightonly bins of at least this height are regarded as possibly belonging to a peak.
Returns
tracklets containing all values found for the peaks in the Hough space. They will contain the hitIds of all hits that contribute to the peaks.

◆ getInterceptZx()

Double_t PndFtsHoughSpace::getInterceptZx ( ) const
inline

Definition at line 149 of file PndFtsHoughSpace.h.

149 { return fInterceptZx; };

◆ GetNHits()

UInt_t PndFtsHoughSpace::GetNHits ( ) const
inline

Definition at line 153 of file PndFtsHoughSpace.h.

References ClassDef(), cos(), and sin().

Referenced by Print().

153 { return fHitId.size(); };

◆ getZRefPos()

Double_t PndFtsHoughSpace::getZRefPos ( ) const
inline

Definition at line 151 of file PndFtsHoughSpace.h.

151 { return fZRefPos; };

◆ Print()

void PndFtsHoughSpace::Print ( ) const
inline

Definition at line 309 of file PndFtsHoughSpace.h.

References PndFtsHoughTrackerTask::GetEventNr(), PndFtsHoughTrackerTask::GetFtsHit(), PndFtsHoughTrackerTask::GetFtsTube(), GetNHits(), PndFtsTube::GetPosition(), PndFtsHit::GetSkewed(), PndFtsTube::GetWireDirection(), PndFtsHoughTrackCand::getXLabSys(), and i.

310 {
311  std::cout << "=========== PndFtsHoughSpace::Print() ==========" << '\n';
312  std::cout << "fZRefPos = " << fZRefPos << '\n';
313  std::cout << "fInterceptZx = " << fInterceptZx << 'n';
314  TH2S::Print();
315 }

◆ setVerbose()

void PndFtsHoughSpace::setVerbose ( Int_t  verbose)
inline

Definition at line 147 of file PndFtsHoughSpace.h.

147 { fVerbose = verbose; };

The documentation for this class was generated from the following file: