HYDRA_development_version
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
hmdctrackfittera.h
Go to the documentation of this file.
1 #ifndef HMDCTRACKFITTERA_H
2 #define HMDCTRACKFITTERA_H
3 
4 #include "hmdctrackfitter.h"
5 
7  protected:
8  // Fit parameters for 1-st minim. method:
9  Double_t initStepFit; // init value of stepFit
10  Int_t limIter1forFilter; // max. number of iter. at the filtering
11  Double_t limFunct1to2; // limit for functional
12  Double_t limDeltaF1to2; // limit for functional
13  Double_t limGrad1to2; // limit for functional
14  // DownhillOnGradient parameters:
15  Double_t stepCh[6];
16  Double_t dFunctMax;
17  Double_t dFunctMin;
18 
19  // Fit parameters for 2-nd minim. method:
20  Double_t limGrad2; //
21  Double_t limStep2[10]; // limit for diff. old-new param.
22  Int_t limIter2; // max. number of iter.
23 
24  Double_t stepFit; // current value of step for gradient dowhill
25  Int_t iterAfterFilter; // counter of iter.number after filtering
26  Int_t return2to1; // counter of method2->method1 switching
27  HMdcTrackParam pari; // track fit parameters for inner purpose
28  HMdcTrackParam parMin; // track fit parameters for inner purpose
29  HMdcTrackParam tmpPar; // track fit parameters for inner purpose
30 
31  public:
33  virtual ~HMdcTrackFitterA(void);
34  virtual Int_t minimize(Int_t iter=0);
35  void setDefaultParam(void);
36 
37  // Fit parameters for 1-st minim. method:
38  void setInitStepFit(Double_t vl) {initStepFit=vl;}
39  void setLimIter1forFilter(Int_t vl) {limIter1forFilter=vl;}
40  void setLimFunct1to2(Double_t vl) {limFunct1to2=vl;}
41  void setLimDeltaF1to2(Double_t vl) {limDeltaF1to2=vl;}
42  void setLimGrad1to2(Double_t vl) {limGrad1to2=vl;}
43  // DownhillOnGradient parameters:
44  void setStepCh(UInt_t i,Double_t vl) {if(i<6) stepCh[i]=vl;}
45  void setDFunctMax(Double_t vl) {dFunctMax=vl;}
46  void setDFunctMin(Double_t vl) {dFunctMin=vl;}
47  // Fit parameters for 2-nd minim. method:
48  void setLimGrad2(Double_t vl) {limGrad2=vl;}
49  void setLimStep2(UInt_t i,Double_t vl) {if(i<10) limStep2[i]=vl;}
50  void setLimIter2(Int_t vl) {limIter2=vl;}
51 
52  virtual Double_t getFunctional(void);
53 
54  protected:
55  void printResult(void);
56  void printResult(const Char_t* status, HMdcTrackParam& par);
57  void printStep(const Char_t* cond, Double_t fun, Double_t step);
60  virtual Int_t firstMethod(void);
61  virtual Int_t secondMethod(void);
62  Double_t calcScaledAGrad(HMdcTrackParam& par);
63  virtual Int_t doMinimization(void);
64 
65  ClassDef(HMdcTrackFitterA,0) // Dubna track piece fitter. Version A.
66 };
67 
68 #endif
void printStep(const Char_t *cond, Double_t fun, Double_t step)
void setLimGrad1to2(Double_t vl)
virtual Int_t secondMethod(void)
void setInitStepFit(Double_t vl)
Double_t limStep2[10]
Double_t calcScaledAGrad(HMdcTrackParam &par)
virtual Int_t doMinimization(void)
HMdcTrackFitterA(HMdcTrackFitInOut *fIO)
void setStepCh(UInt_t i, Double_t vl)
HMdcTrackParam parMin
HMdcTrackParam pari
virtual ~HMdcTrackFitterA(void)
void setDefaultParam(void)
HMdcTrackParam tmpPar
void downhillOnGradient(HMdcTrackParam &par)
Double_t stepCh[6]
virtual Int_t minimize(Int_t iter=0)
virtual void solutionOfLinearEquationsSystem(HMdcTrackParam &par)
void setDFunctMin(Double_t vl)
void setLimIter1forFilter(Int_t vl)
void setLimStep2(UInt_t i, Double_t vl)
void setLimGrad2(Double_t vl)
void setLimDeltaF1to2(Double_t vl)
virtual Int_t firstMethod(void)
void setLimFunct1to2(Double_t vl)
void setLimIter2(Int_t vl)
void setDFunctMax(Double_t vl)
virtual Double_t getFunctional(void)