Belle II Software  release-08-01-10
MergedConstraint Class Reference

Merge multiple constraints that we want to project simultaneously. More...

#include <MergedConstraint.h>

Inheritance diagram for MergedConstraint:
Collaboration diagram for MergedConstraint:

Public Types

typedef std::vector< Constraint * > constraintlist
 typedef of a list of constraints
 
enum  Type {
  unknown = 0 ,
  beamenergy ,
  beamspot ,
  beam ,
  origin ,
  lifetime ,
  resonance ,
  composite ,
  track ,
  photon ,
  klong ,
  conversion ,
  kinematic ,
  geometric ,
  mass ,
  massEnergy ,
  merged ,
  ntypes ,
  helix
}
 type of constraints the order of these constraints is important: it is the order in which they are applied.
 

Public Member Functions

 MergedConstraint ()
 empty constructor
 
virtual ~MergedConstraint ()
 destructor
 
 MergedConstraint (const constraintlist &list)
 constructor with constraint list
 
virtual ErrCode project (const FitParams &fitpar, Projection &p) const override
 project the constraints
 
void push_back (Constraint *c)
 push back a new constraint
 
bool operator< (const Constraint &rhs) const
 operator used to sort the constraints
 
bool operator== (const Constraint &rhs) const
 operator
 
Type type () const
 get type of constraint
 
unsigned int dim () const
 get dimension of constraint
 
bool isLinear () const
 is this a linear constraint
 
unsigned int nIter () const
 get maximum number of iterations for non in constraint
 
virtual ErrCode filter (FitParams &fitpar)
 filter this constraint More...
 
virtual ErrCode filterWithReference (FitParams &fitpar, const FitParams &oldState)
 filter this constraint More...
 
std::string name () const
 get name of constraint

 
void setWeight (int w)
 used to be able to weight the constraints
 

Protected Member Functions

void setDim (unsigned int d)
 set dimension of constraint
 
void setNIter (unsigned int d)
 set max number of iterations for non lin constraint

 

Private Attributes

constraintlist m_list
 list of the constraints to merge
 
const ParticleBasem_node
 particle behind the constraint

 
int m_depth
 chi2 coming from the constraint More...
 
Type m_type
 type of constraint
 
unsigned int m_dim
 dimension of constraint
 
int m_weight
 weight of this constraint currently we set them all to unity

 
int m_maxNIter
 maximum number of iterations for non-linear constraints

 

Detailed Description

Merge multiple constraints that we want to project simultaneously.

As of release-00-08-00 this causes issues when referencing, see DecayChain.cc

Definition at line 18 of file MergedConstraint.h.

Member Function Documentation

◆ filter()

ErrCode filter ( FitParams fitpar)
virtualinherited

filter this constraint

We don't have reference state yet so we use the k-1 last state to linearize non-linear constraints

Definition at line 28 of file Constraint.cc.

◆ filterWithReference()

ErrCode filterWithReference ( FitParams fitpar,
const FitParams oldState 
)
virtualinherited

filter this constraint

We now linearise around the last iteration \alpha (const FitParams& oldState) In this implementation we can no longer linearize non-linear constraints but we ensured by the linearisation around the last state that the step size is small enough so we just use them as if they were linear

here we project the old state and use only the change with respect to the new state instead of the new state in the update . the advantage is more stable fit Downside: non-linear constraints can't be filtered multiple times anymore.

Definition at line 83 of file Constraint.cc.

Member Data Documentation

◆ m_depth

int m_depth
privateinherited

chi2 coming from the constraint

depth of the constraint in the tree (determines for example the order of the track constraints)

Definition at line 137 of file Constraint.h.


The documentation for this class was generated from the following files: