Belle II Software  release-05-01-25
MergedConstraint.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2013 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributor: Wouter Hulsbergen, Francesco Tenchini *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 #pragma once
11 
12 #include <analysis/VertexFitting/TreeFitter/Constraint.h>
13 
14 namespace TreeFitter {
19  class MergedConstraint : public Constraint {
20  public:
22  typedef std::vector<Constraint*> constraintlist ;
23 
25  MergedConstraint() : Constraint(Constraint::merged) {}
27  virtual ~MergedConstraint() {}
29  explicit MergedConstraint(const constraintlist& list) :
30  Constraint(Constraint::merged), m_list(list)
31  {
32  int d = 0;
33  for (constraintlist::iterator it = m_list.begin() ;
34  it != m_list.end(); ++it) d += (*it)->dim() ;
35  setDim(d) ;
36  }
37 
38 
39 
41  virtual ErrCode project(const FitParams& fitpar, Projection& p) const override ;
42 
44  void push_back(Constraint* c)
45  {
46  m_list.push_back(c) ;
47  setDim(dim() + c->dim()) ;
48  setNIter(std::max(nIter(), c->nIter())) ;
49  }
50 
51 
52  private:
55  } ;
56 
57 }
TreeFitter::MergedConstraint::MergedConstraint
MergedConstraint()
empty constructor
Definition: MergedConstraint.h:41
TreeFitter::MergedConstraint::~MergedConstraint
virtual ~MergedConstraint()
destructor
Definition: MergedConstraint.h:43
TreeFitter::MergedConstraint::push_back
void push_back(Constraint *c)
push back a new constrint
Definition: MergedConstraint.h:60
TreeFitter::ErrCode
abstract errorocode be aware that the default is succes
Definition: ErrCode.h:23
TreeFitter::FitParams
Class to store and manage fitparams (statevector)
Definition: FitParams.h:29
TreeFitter::Constraint::Constraint
Constraint()
constructor
Definition: Constraint.h:78
TreeFitter::Constraint::setDim
void setDim(unsigned int d)
set dimension of cosntraint
Definition: Constraint.h:131
TreeFitter::Constraint::dim
unsigned int dim() const
get dimension of constraint
Definition: Constraint.h:69
TreeFitter::Constraint
class to manage the order of contraints and their filtering
Definition: Constraint.h:29
TreeFitter::MergedConstraint::constraintlist
std::vector< Constraint * > constraintlist
typedef of a list of constraints
Definition: MergedConstraint.h:38
TreeFitter::Constraint::setNIter
void setNIter(unsigned int d)
set max number of iterations for non lin constraint
Definition: Constraint.h:134
TreeFitter::MergedConstraint::project
virtual ErrCode project(const FitParams &fitpar, Projection &p) const override
project the constraints
Definition: MergedConstraint.cc:28
TreeFitter::MergedConstraint::m_list
constraintlist m_list
list of the constraints to merge
Definition: MergedConstraint.h:70
TreeFitter::Projection
class to store the projected residuals and the corresponding jacobian as well as the covariance matri...
Definition: Projection.h:27
TreeFitter::Constraint::nIter
unsigned int nIter() const
get maximum number of iterations for non in contraint
Definition: Constraint.h:75