FairRoot/PandaRoot
PndFtsHoughTracklet.h
Go to the documentation of this file.
1 
14 #ifndef PNDFTSHOUGHTRACKLET_H
15 #define PNDFTSHOUGHTRACKLET_H
16 
17 #include "PndFtsHoughTrackerTask.h"
18 
19 // Root Class Headers ----------------
20 #include "PndTrackCand.h"
21 #include "Rtypes.h" // for Double_t, Int_t, etc
22 #include "FairLogger.h" // for FairLogger, MESSAGE_ORIGIN
23 
24 // For error reporting
25 #include "TString.h"
26 #include <stdexcept>
27 
28 class PndFtsHit;
29 class PndTrack;
30 class TClonesArray;
31 
32 
33 
35 public:
36 
37  // Constructors/Destructors ---------
38  PndFtsHoughTracklet(Double_t zRefLabSys=0., PndFtsHoughTrackerTask *trackerTask=0);
40 
41 
42  // Accessors -----------------------
43  void Print() const;
44 
45  Bool_t isSet() const { return fIsSet; }; // returns kTRUE iif data from the 2d Hough transforms have been entered
46 
47  // add results from Hough transforms
49  const Double_t thetaVal,
50  const Double_t secondVal,
51  const Double_t peakHeight,
52  const Double_t thetaHw,
53  const Double_t secondHw
54  );
55 
56 
57  // getters for Hough space peak info
59  Double_t getThetaRadVal() const { return fThetaRadVal; }; // theta value for peak (in rad)
60  Double_t getThetaRadHw() const { return fThetaRadHw; }; // hw = half width = half length of Hough space bin
61  Double_t getSecondVal() const { return fSecondVal; }; // second value for peak, see below for explanation
62 
63  Double_t getSecondHw() const { return fSecondHw; }; // hw = half width = half length of Hough space bin
64  Double_t getZRefLabSys() const { return fZRefLabSys; }; // in cm
65 
66 
67  // hits
68  UInt_t getNSharedHits(const PndFtsHoughTracklet& rhs); // gives the number of hits that are contained both in rhs and *this
69 
70 
71 
72 
73 
74 
75 
76 private:
77  // Private Data Members ------------
78  // for PandaRoot input/output
80 
82  void throwError(const TString s) const{ throw std::runtime_error(s.Data()); };
83 
84  Int_t fVerbose;
85 
86  Bool_t fIsSet; // kTRUE if values have already been filled
87 
88 
90  // height of peak in Hough transform
91  // (as determined by peakFinder -- does not need to be == fHitId.size()
92  // as the peak finder might add a weight to the hits depending on how close they have been to the actual peak)
93 
94  // saving peak position in a 2d Hough transform as well as the half width of the histogram
95  Double_t fThetaRadVal; // theta angle
96  Double_t fThetaRadHw; // error on angle
97 
98  Double_t fSecondVal; // second value is x or y intercept for line in zx or zy plane and Q/pZx for parabola in zx plane
99  Double_t fSecondHw; // error on second value
100 
101  // at which z value in lab sys the values have to be interpreted
103 
104  // void addPeakHits(); // check which hits have contributed to the peak and add them to the hitId vector
105 
106 
108 };
109 
110 #endif
Double_t getThetaRadVal() const
Interface between PandaRoot (data input and output) and PndFtsHoughTrackFinder (implementation of PR ...
void throwError(const TString s) const
For error reporting.
TLorentzVector s
Definition: Pnd2DStar.C:50
Double_t getZRefLabSys() const
Double_t getSecondHw() const
PndFtsHoughTrackerTask * fTrackerTask
Class for saving the result of one Hough transform for FTS PR.
void SetHoughTransformResults(const Double_t thetaVal, const Double_t secondVal, const Double_t peakHeight, const Double_t thetaHw, const Double_t secondHw)
Double_t
Double_t getSecondVal() const
PndFtsHoughTracklet(Double_t zRefLabSys=0., PndFtsHoughTrackerTask *trackerTask=0)
Set pointer to tracker task (super important as it provides an I/O interface to PandaRoot) ...
UInt_t getNSharedHits(const PndFtsHoughTracklet &rhs)
Double_t getPeakHeightFromPeakFinder() const
Double_t getThetaRadHw() const
ClassDef(PndFtsHoughTracklet, 1)