00001 00002 // $Id: HoughTrackSR.h,v 1.7 2004/10/30 15:02:35 musser Exp $ 00003 // 00004 // HoughTrackSR 00005 // 00006 // Author: R. Lee 2002.01.18 00007 // 00009 00010 #ifndef HOUGHTRACKSR_H 00011 #define HOUGHTRACKSR_H 00012 00013 #include <vector> 00014 00015 #include "TObject.h" 00016 #include "TObjArray.h" 00017 00018 using namespace std; 00019 00020 class HoughTrackSR : public TObject 00021 { 00022 00023 public: 00024 00025 HoughTrackSR(); 00026 HoughTrackSR(TObjArray candclusterhandlelist); 00027 HoughTrackSR(const HoughTrackSR &); 00028 ~HoughTrackSR(); 00029 00030 void SetX0(Double_t); 00031 void SetZ0(Double_t); 00032 void SetXRMS(Double_t); 00033 void SetZRMS(Double_t); 00034 00035 void SetSlopeMin(Double_t); 00036 void SetSlopeMax(Double_t); 00037 void SetInterceptMin(Double_t); 00038 void SetInterceptMax(Double_t); 00039 00040 Double_t GetSlopeMin() const; 00041 Double_t GetSlopeMax() const; 00042 Double_t GetInterceptMin() const; 00043 Double_t GetInterceptMax() const; 00044 00045 Int_t GetNBin() const; 00046 Int_t GetNPeak() const; 00047 00048 Int_t GetMaxBin() {return fMaxBin;} 00049 void SetMaxBin(Int_t i ){fMaxBin = i;} 00050 00051 Double_t GetPeakSlope(Int_t = 0) const; 00052 Double_t GetPeakIntercept(Int_t = 0) const; 00053 Int_t GetPeakBin(Int_t = 0) const; 00054 00055 Int_t GetLargestPeakIndex() const; 00056 00057 void SetPeakMin(Int_t); 00058 void SetPeakMinFrac(Double_t); 00059 void SetPeakMinFracZoom(Double_t); 00060 void SetMinInterBinSize(Double_t); 00061 00062 void SetClusterList(TObjArray candclusterhandlelist); 00063 00064 TObjArray Iterate(); // use with caution -- objects in returned TObjArray 00065 // are not deleted in ~HoughTrackSR 00066 void Print(Option_t* option="") const; 00067 00068 private: 00069 00070 void FillHough(); 00071 00072 Double_t GetSlope(Int_t) const; 00073 Double_t GetInter(Int_t) const; 00074 00075 static const Int_t fNBin = 40; 00076 Int_t fMaxBin; 00077 00078 Double_t fXZmean[2]; 00079 Double_t fXZrms[2]; 00080 Double_t fSlopeLim[2]; 00081 Double_t fInterLim[2]; 00082 Double_t fDSlope; 00083 Double_t fDInter; 00084 TObjArray *fClusterList; 00085 00086 Int_t fPeakMin; 00087 Double_t fPeakMinFrac; 00088 Double_t fPeakMinFracZoom; 00089 Double_t fMinInterBinSize; 00090 00091 Int_t fNBinMax; 00092 Int_t fNBinCut; 00093 00094 Int_t fHough[fNBin][fNBin]; 00095 Int_t fMaxHoughBin[fNBin][fNBin][2]; 00096 00097 Int_t fNPeak; 00098 Int_t fNMaxima; 00099 00100 Bool_t fFillHough; 00101 00102 vector<Int_t> fMPeak; 00103 vector<Int_t> fCPeak; 00104 vector<Int_t> fIPeak; 00105 vector<Double_t> fSlopePeak; 00106 00107 ClassDef(HoughTrackSR,1) 00108 00109 }; 00110 00111 00112 #endif // HOUGHTRACKSR_H
1.3.9.1