Belle II Software development
Composite.h
1/**************************************************************************
2 * basf2 (Belle II Analysis Software Framework) *
3 * Author: The Belle II Collaboration *
4 * External Contributor: Wouter Hulsbergen *
5 * *
6 * See git log for contributors and copyright holders. *
7 * This file is licensed under LGPL-3.0, see LICENSE.md. *
8 **************************************************************************/
9#pragma once
10
11#include <analysis/VertexFitting/TreeFitter/ParticleBase.h>
12
13#include <Eigen/Core>
14
15namespace TreeFitter {
16
19 class Composite : public ParticleBase {
20
21 public:
24 bool massconstraint = false);
25
27 virtual ~Composite() {};
28
30 virtual ErrCode initParticleWithMother(FitParams& fitparams) override;
31
33 virtual ErrCode initMotherlessParticle(FitParams& fitparams) override;
34
36 void updateParams();
37
39 ErrCode projectComposite(const FitParams& fitparams, Projection& p) const;
40
42 virtual int dim() const override { return m_hasEnergy ? 8 : 7 ; }// (x,y,z,t,px,py,pz,(E))
43
45 int dimM() const { return m_hasEnergy ? 7 : 6 ; }
46
48 virtual ErrCode projectConstraint(Constraint::Type, const FitParams&, Projection&) const override ;
49
51 virtual int type() const override { return kComposite ; }
52
54 virtual int posIndex() const override { return index() ; }
55
57 virtual int tauIndex() const override { return index() + 3 ; }
58
60 virtual int momIndex() const override { return index() + 4 ; }
61
63 virtual bool hasEnergy() const override { return m_hasEnergy ; }
64
66 virtual bool hasPosition() const override { return true ; }
67
69 virtual void addToConstraintList(constraintlist& alist, int depth) const override
70 {
71 alist.push_back(Constraint(this, Constraint::composite, depth, dimM())) ;
72 alist.push_back(Constraint(this, Constraint::geometric, depth, 3)) ;
73 if (m_massconstraint) {
74 alist.push_back(Constraint(this, Constraint::mass, depth, 1, 3));
75 }
76 }
77
78 protected:
79
81 Eigen::Matrix<double, 7, 1> m_params;
82
84 Eigen::Matrix < double, -1, -1, 0, 7, 7 > m_covariance;
85
88
91 };
92}
Class to store reconstructed particles.
Definition Particle.h:76
virtual bool hasPosition() const override
return true FIXME
Definition Composite.h:66
virtual ~Composite()
destructor
Definition Composite.h:27
int dimM() const
get dimension of measurement
Definition Composite.h:45
virtual int tauIndex() const override
get tau (lifetime) index in statevector
Definition Composite.h:57
Composite(Belle2::Particle *bc, const ParticleBase *mother, const ConstraintConfiguration &config, bool massconstraint=false)
constructor
Definition Composite.cc:20
virtual int dim() const override
get dimension of constraint
Definition Composite.h:42
void updateParams()
update changed params
Definition Composite.cc:44
virtual ErrCode projectConstraint(Constraint::Type, const FitParams &, Projection &) const override
project this constraint
Definition Composite.cc:98
bool m_massconstraint
flag
Definition Composite.h:90
Eigen::Matrix< double, 7, 1 > m_params
column vector to store the measurement
Definition Composite.h:81
virtual int momIndex() const override
get momentum index in statevector
Definition Composite.h:60
Eigen::Matrix< double, -1, -1, 0, 7, 7 > m_covariance
only lower triangle filled!
Definition Composite.h:84
virtual int type() const override
get type
Definition Composite.h:51
virtual bool hasEnergy() const override
return of this constraint/particle has an energy component
Definition Composite.h:63
virtual void addToConstraintList(constraintlist &alist, int depth) const override
add this to list
Definition Composite.h:69
virtual ErrCode initParticleWithMother(FitParams &fitparams) override
init particle in case it has a mother
Definition Composite.cc:27
virtual ErrCode initMotherlessParticle(FitParams &fitparams) override
init particle in case it has no mother
Definition Composite.cc:32
ErrCode projectComposite(const FitParams &fitparams, Projection &p) const
project this particle constraint
Definition Composite.cc:76
virtual int posIndex() const override
get position index in statevectof x,y,z,tau,px,py,pz
Definition Composite.h:54
class to manage the order of constraints and their filtering
Definition Constraint.h:20
Type
type of constraints the order of these constraints is important: it is the order in which they are ap...
Definition Constraint.h:27
abstract errorocode be aware that the default is success
Definition ErrCode.h:14
Class to store and manage fitparams (statevector)
Definition FitParams.h:20
ParticleBase(Belle2::Particle *particle, const ParticleBase *mother, const ConstraintConfiguration *config=nullptr)
default constructor
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...
Definition Projection.h:18