00001 #ifndef FITCONTEXT_H_ 00002 #define FITCONTEXT_H_ 00003 //_____________________________________________________________________________ 00012 00013 #include "TVectorD.h" 00014 00015 #include "CandFitTrackSA/ConvergenceMaster.h" 00016 #include "CandFitTrackSA/DataFT.h" 00017 #include "CandFitTrackSA/FitResult.h" 00018 #include "CandFitTrackSA/MatrixCalculator.h" 00019 00020 class AlgConfig; 00021 class FitState; 00022 class NtpFitSA; 00023 class TrackEstimator; 00024 00025 class FitContext { 00026 00027 public: 00028 FitContext( const AlgConfig& algcfg, const TrackContext& context, 00029 TrackEstimator* estimator, SwimSwimmer* swimmer ); 00030 ~FitContext(); 00031 00035 void Iterate(); 00036 00040 void Print(); 00041 void PrintCurrentFit(); 00042 00046 void Config(const AlgConfig& ac); 00047 00048 FitState* GetState() const; 00049 void SetState(const FitState* state); 00050 00051 void SetFitParams(const TVectorD& fit); 00052 void SetLastGoodFitParams(const TVectorD& fit); 00053 00054 void SetFromLastGoodFit(); 00055 00056 Float_t GetPrange() { return fTrackContext.GetPrange(); }; 00057 00058 NtpFitSA MakeNtpFitSA() const; 00059 00060 void FillNtpFitSA(NtpFitSA& ntp) const; 00061 void FillNtpPlaneInfo(NtpFitSA& ntp) const; 00062 void FillNtpBFieldCalib(NtpFitSA& ntp) const; 00063 void FillNtpFitSR(NtpFitSA& ntp) const; 00064 00065 const DataFT* GetData() const { return &fData; }; 00066 00067 Double_t GetCpu() const { return fCpu; }; 00068 void SetCpu(Double_t cpu) { fCpu = cpu; }; 00069 00070 //private: 00071 00075 const TrackContext& fTrackContext; 00076 00080 const FitState* fState; 00081 00085 SwimSwimmer* fSwimmer; 00086 00090 TrackEstimator* fEstimator; 00091 00095 DataFT fData; 00096 00100 ConvergenceMaster fConvergenceMaster; 00101 00105 MatrixCalculator fMatCalc; 00106 00107 Int_t fNIterationsStep; 00108 Int_t fNIterationsTotal; 00109 00110 //Int_t fNPlanesToFit; 00111 Int_t fNPlanesFit; 00112 00113 TVectorD fCurrentFit; 00114 00115 Int_t fTimesConverged; 00116 00117 FitResult fLastGoodFit; 00118 00119 Double_t fDChi2; 00120 00121 Int_t fNTriesDiverges; 00122 00123 Int_t fNHitsInViewMin; 00124 00125 Int_t fNMaxIterations; 00126 00127 Int_t fNMaxDiverging; 00128 00129 Double_t fConvergenceCond; 00130 00131 Double_t fCpu; 00132 }; 00133 00134 #endif // FITCONTEXT_H_
1.3.9.1