17#include "analysis/OrcaKinFit/BaseFitter.h" 
   18#include "analysis/OrcaKinFit/BaseSoftConstraint.h" 
   19#include "analysis/OrcaKinFit/BaseHardConstraint.h" 
   29  namespace OrcaKinFit {
 
   31    BaseFitter::BaseFitter()
 
   32      : fitobjects(FitObjectContainer()),
 
   33        constraints(ConstraintContainer()),
 
   34        softconstraints(SoftConstraintContainer()),
 
   35        covDim(0), cov(nullptr), covValid(false)
 
   38        traceValues(std::map<std::string, double> ())
 
   42    BaseFitter::~BaseFitter()
 
   48    void BaseFitter::addFitObject(BaseFitObject* fitobject_)
 
   51      fitobjects.push_back(fitobject_);
 
   54    void BaseFitter::addFitObject(BaseFitObject& fitobject_)
 
   57      fitobjects.push_back(&fitobject_);
 
   60    void BaseFitter::addConstraint(BaseConstraint* constraint_)
 
   64      if (
auto* hc = 
dynamic_cast<BaseHardConstraint*
>(constraint_))
 
   65        constraints.push_back(hc);
 
   66      else if (
auto* sc = 
dynamic_cast<BaseSoftConstraint*
>(constraint_))
 
   67        softconstraints.push_back(sc);
 
   74    void BaseFitter::addConstraint(BaseConstraint& constraint_)
 
   77      if (
auto* hc = 
dynamic_cast<BaseHardConstraint*
>(&constraint_))
 
   78        constraints.push_back(hc);
 
   79      else if (
auto* sc = 
dynamic_cast<BaseSoftConstraint*
>(&constraint_))
 
   80        softconstraints.push_back(sc);
 
   83    void BaseFitter::addHardConstraint(BaseHardConstraint* constraint_)
 
   86      constraints.push_back(constraint_);
 
   89    void BaseFitter::addHardConstraint(BaseHardConstraint& constraint_)
 
   92      constraints.push_back(&constraint_);
 
   95    void BaseFitter::addSoftConstraint(BaseSoftConstraint* constraint_)
 
   98      softconstraints.push_back(constraint_);
 
  101    void BaseFitter::addSoftConstraint(BaseSoftConstraint& constraint_)
 
  104      softconstraints.push_back(&constraint_);
 
  107    std::vector<BaseFitObject*>* BaseFitter::getFitObjects()
 
  112    std::vector<BaseHardConstraint*>* BaseFitter::getConstraints()
 
  117    std::vector<BaseSoftConstraint*>* BaseFitter::getSoftConstraints()
 
  119      return &softconstraints;
 
  122    void BaseFitter::reset()
 
  124      fitobjects.resize(0);
 
  125      constraints.resize(0);
 
  126      softconstraints.resize(0);
 
  130    BaseTracer* BaseFitter::getTracer()
 
  134    const BaseTracer* BaseFitter::getTracer()
 const 
  138    void BaseFitter::setTracer(BaseTracer* newTracer)
 
  143    void BaseFitter::setTracer(BaseTracer& newTracer)
 
virtual const double * getGlobalCovarianceMatrix(int &idim) const
double * cov
global covariance matrix of last fit problem
bool covValid
Flag whether global covariance is valid.
int covDim
dimension of global covariance matrix
Abstract base class for different kinds of events.