Belle II Software
release-08-01-10
|
Merge multiple constraints that we want to project simultaneously. More...
#include <MergedConstraint.h>
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 ParticleBase * | m_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 | |
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.
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.
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.
|
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.