MarlinKinfit  0.4.0
BaseFitter.h
Go to the documentation of this file.
1 
41 #ifndef __BASEFITTER_H
42 #define __BASEFITTER_H
43 
44 #include<vector>
45 #include<string>
46 #include<map>
47 
48 class BaseFitObject;
49 class BaseConstraint;
50 class BaseHardConstraint;
51 class BaseSoftConstraint;
52 class BaseTracer;
53 
54 // Class BaseConstraint:
56 
63 class BaseFitter {
64  public:
65  BaseFitter();
66  virtual ~BaseFitter();
67  virtual void addFitObject (BaseFitObject* fitobject_);
68  virtual void addFitObject (BaseFitObject& fitobject_);
69  virtual void addConstraint (BaseConstraint* constraint_);
70  virtual void addConstraint (BaseConstraint& constraint_);
71  virtual void addHardConstraint (BaseHardConstraint* constraint_);
72  virtual void addHardConstraint (BaseHardConstraint& constraint_);
73  virtual void addSoftConstraint (BaseSoftConstraint* constraint_);
74  virtual void addSoftConstraint (BaseSoftConstraint& constraint_);
75  virtual std::vector<BaseFitObject*>* getFitObjects();
76  virtual std::vector<BaseHardConstraint*>* getConstraints();
77  virtual std::vector<BaseSoftConstraint*>* getSoftConstraints();
78  virtual double fit() = 0;
79  virtual int getError() const = 0;
80  virtual double getProbability() const = 0;
81  virtual double getChi2() const = 0;
82  virtual int getDoF() const = 0;
83  virtual int getIterations() const = 0;
84 
85  virtual void reset();
86  virtual bool initialize() = 0;
87 
88  virtual BaseTracer *getTracer();
89  virtual const BaseTracer *getTracer() const;
90  virtual void setTracer(BaseTracer *newTracer
91  );
92  virtual void setTracer(BaseTracer& newTracer
93  );
94 
95  virtual const double *getGlobalCovarianceMatrix (int& idim
96  ) const;
97  virtual double *getGlobalCovarianceMatrix (int& idim
98  );
99 
100  protected:
102  BaseFitter (const BaseFitter& rhs);
104  BaseFitter& operator= (const BaseFitter& rhs);
105 
106 
107  typedef std::vector <BaseFitObject *> FitObjectContainer;
108  typedef std::vector <BaseHardConstraint *> ConstraintContainer;
109  typedef std::vector <BaseSoftConstraint *> SoftConstraintContainer;
110 
111  typedef FitObjectContainer::iterator FitObjectIterator;
112  typedef ConstraintContainer::iterator ConstraintIterator;
113  typedef SoftConstraintContainer::iterator SoftConstraintIterator;
114 
115  FitObjectContainer fitobjects;
116  ConstraintContainer constraints;
117  SoftConstraintContainer softconstraints;
118 
119  int covDim;
120  double *cov;
121  bool covValid;
122 
123 #ifndef FIT_TRACEOFF
124  BaseTracer *tracer;
125 #endif
126  public:
127 #ifndef FIT_TRACEOFF
128  std::map<std::string, double> traceValues;
129 #endif
130 
131 };
132 
133 #endif // __BASEFITTER_H
BaseFitter & operator=(const BaseFitter &rhs)
Assignment disabled.
int covDim
dimension of global covariance matrix
Definition: BaseFitter.h:119
Abstract base class for fitting engines of kinematic fits.
Definition: BaseFitter.h:63
double * cov
global covariance matrix of last fit problem
Definition: BaseFitter.h:120
virtual const double * getGlobalCovarianceMatrix(int &idim) const
Definition: BaseFitter.cc:139
Abstract base class for constraints of kinematic fits.
Definition: BaseHardConstraint.h:69
Abstract base class for soft constraints of kinematic fits.
Definition: BaseSoftConstraint.h:64
Abstract base class for constraints of kinematic fits.
Definition: BaseConstraint.h:85
Abstract base class for particle objects of kinematic fits.
Definition: BaseFitObject.h:110
Abstract base class for trace objects of kinematic fits.
Definition: BaseTracer.h:45
bool covValid
Flag whether global covariance is valid.
Definition: BaseFitter.h:121