PandaRoot
MergedConstraint.h
Go to the documentation of this file.
1 // ******************************************************
2 // DecayTreeFitter Package
3 // We thank the original author Wouter Hulsbergen
4 // (BaBar, LHCb) for providing the sources.
5 // http://arxiv.org/abs/physics/0503191v1 (2005)
6 // Adaptation & Development for PANDA: Ralf Kliemt (2015)
7 // ******************************************************
8 #ifndef MERGEDCONSTRAINT_H
9 #define MERGEDCONSTRAINT_H 1
10 
11 #include <vector>
12 #include "Constraint.h"
13 #include "Rtypes.h"
14 
15 namespace DecayTreeFitter {
16 class MergedConstraint : public Constraint {
17  public:
18  typedef std::vector<Constraint *> constraintlist;
19 
21  virtual ~MergedConstraint() {}
22 
23  MergedConstraint(const constraintlist &list) : Constraint(Constraint::merged), m_list(list)
24  {
25  int d(0);
26  for (constraintlist::iterator it = m_list.begin(); it != m_list.end(); ++it)
27  d += (*it)->dim();
28  setDim(d);
29  }
30 
31  virtual ErrCode project(const FitParams *fitpar, Projection &p) const;
32 
34  {
35  m_list.push_back(c);
36  setDim(dim() + c->dim());
37  setNIter(std::max(nIter(), c->nIter()));
38  }
39 
40  virtual void print(std::ostream &os = std::cout) const;
41 
42  private:
43  constraintlist m_list;
44  ClassDef(MergedConstraint, 1)
45 };
46 
47 } // namespace DecayTreeFitter
48 
49 #endif
virtual ErrCode project(const FitParams *fitpar, Projection &p) const
void setDim(unsigned int d)
Definition: Constraint.h:58
friend F32vec4 max(const F32vec4 &a, const F32vec4 &b)
Definition: P4_F32vec4.h:25
unsigned int nIter() const
Definition: Constraint.h:36
virtual void print(std::ostream &os=std::cout) const
std::vector< Constraint * > constraintlist
MergedConstraint(const constraintlist &list)
unsigned int dim() const
Definition: Constraint.h:34
void setNIter(unsigned int d)
Definition: Constraint.h:59