11#include <analysis/VertexFitting/TreeFitter/RecoResonance.h>
12#include <analysis/VertexFitting/TreeFitter/ConstraintConfiguration.h>
13#include <analysis/VertexFitting/TreeFitter/FitParams.h>
24 m_massconstraint = std::find_if(config.m_massConstraintListPDG.begin(), config.m_massConstraintListPDG.end(),
25 [pdg = std::abs(
m_particle->getPDGCode())](
int val) {
26 return std::abs(val) == pdg;
27 }) != config.m_massConstraintListPDG.end()
28 or
m_particle->hasExtraInfo(
"treeFitterMassConstraint");
33 return ErrCode(ErrCode::Status::success);
43 for (
int i = 0; i < 3; ++i) {
44 quickindexmap[i] = posindex + i;
46 for (
int i = 0; i < 4; ++i) {
47 quickindexmap[i + 3] = momindex + i;
51 for (
int row = 0; row <
dimM(); ++row) {
54 return ErrCode(ErrCode::Status::success);
61 case Constraint::resonance:
78 list.push_back(
Constraint(
this, Constraint::resonance, depth,
dimM()));
81 list.push_back(
Constraint(
this, Constraint::mass, depth, 1, 3));
Class to store reconstructed particles.
int dimM() const
get dimension of measurement
Composite(Belle2::Particle *bc, const ParticleBase *mother, const ConstraintConfiguration &config, bool massconstraint=false)
constructor
Eigen::Matrix< double, 7, 1 > m_params
column vector to store the measurement
ErrCode projectComposite(const FitParams &fitparams, Projection &p) const
project this particle constraint
constraint configuration class
class to manage the order of constraints and their filtering
Type
type of constraints the order of these constraints is important: it is the order in which they are ap...
abstract errorocode be aware that the default is success
Class to store and manage fitparams (statevector)
Eigen::Matrix< double, -1, 1, 0, MAX_MATRIX_SIZE, 1 > & getStateVector()
getter for the fit parameters/statevector
base class for all particles
Belle2::Particle * particle() const
get basf2 particle
virtual std::string parname(int index) const
get name of parameter i
virtual ErrCode projectConstraint(Constraint::Type, const FitParams &, Projection &) const
project constraint.
Belle2::Particle * m_particle
pointer to framework type
int index() const
get index
const ParticleBase * mother() const
getMother() / hasMother()
std::vector< Constraint > constraintlist
alias
class to store the projected residuals and the corresponding jacobian as well as the covariance matri...
RecoResonance(Belle2::Particle *bc, const ParticleBase *mother, const ConstraintConfiguration &config)
constructor
virtual std::string parname(int index) const override
parameter name
virtual ErrCode projectConstraint(Constraint::Type, const FitParams &, Projection &) const override
project the constraint
bool m_massconstraint
has mass constraint
virtual int momIndex() const override
get momentum index in statevector
virtual int type() const override
get type
virtual ErrCode initParticleWithMother(FitParams &fitparams) override
init particle in case it has a mother
virtual void addToConstraintList(constraintlist &list, int depth) const override
add to the list of constraints
virtual ErrCode initMotherlessParticle(FitParams &fitparams) override
init particle in case it has no mother
virtual int posIndex() const override
get position index in statevector x,y,z,tau,px,py,pz