Belle II Software  release-05-01-25
RecoComposite.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2018 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributor: Wouter Hulsbergen, Francesco Tenchini, Jo-Frederik Krohn *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 #pragma once
11 
12 #include <analysis/VertexFitting/TreeFitter/ParticleBase.h>
13 
14 namespace TreeFitter {
15 
17  class RecoComposite : public ParticleBase {
18 
19  public:
22 
24  virtual ~RecoComposite() {};
25 
27  virtual ErrCode initParticleWithMother(FitParams& fitparams) override;
28 
30  virtual ErrCode initMotherlessParticle(FitParams& fitparams) override;
31 
33  void updateParams();
34 
36  ErrCode projectRecoComposite(const FitParams& fitparams, Projection& p) const;
37 
39  int dimMeas() const { return m_hasEnergy ? 7 : 6 ; }
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 kRecoComposite ; }
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  }
74 
75  protected:
76 
78  Eigen::Matrix<double, 7, 1> m_params;
79 
81  Eigen::Matrix < double, -1, -1, 0, 7, 7 > m_covariance;
82 
84  bool m_hasEnergy;
85  };
86 }
TreeFitter::RecoComposite::type
virtual int type() const override
get ype
Definition: RecoComposite.h:67
TreeFitter::RecoComposite::momIndex
virtual int momIndex() const override
get momentum index in statevector
Definition: RecoComposite.h:76
TreeFitter::ParticleBase::ParticleBase
ParticleBase(Belle2::Particle *particle, const ParticleBase *mother, const ConstraintConfiguration *config)
default constructor
Definition: ParticleBase.cc:41
TreeFitter::RecoComposite::projectRecoComposite
ErrCode projectRecoComposite(const FitParams &fitparams, Projection &p) const
project this particle constraint
Definition: RecoComposite.cc:82
TreeFitter::ErrCode
abstract errorocode be aware that the default is succes
Definition: ErrCode.h:23
TreeFitter::RecoComposite::initMotherlessParticle
virtual ErrCode initMotherlessParticle(FitParams &fitparams) override
init particle in case it has no mother
Definition: RecoComposite.cc:38
TreeFitter::RecoComposite::initParticleWithMother
virtual ErrCode initParticleWithMother(FitParams &fitparams) override
init particle in case it has a mother
Definition: RecoComposite.cc:33
TreeFitter::RecoComposite::m_covariance
Eigen::Matrix< double, -1, -1, 0, 7, 7 > m_covariance
only lower triangle filled!
Definition: RecoComposite.h:97
TreeFitter::FitParams
Class to store and manage fitparams (statevector)
Definition: FitParams.h:29
TreeFitter::RecoComposite::m_params
Eigen::Matrix< double, 7, 1 > m_params
column vector to store the measurement
Definition: RecoComposite.h:94
TreeFitter::RecoComposite::posIndex
virtual int posIndex() const override
get position index in statevectof x,y,z,tau,px,py,pz
Definition: RecoComposite.h:70
TreeFitter::Constraint::Type
Type
type of constraints the order of these constraints is important: it is the order in which they are ap...
Definition: Constraint.h:36
TreeFitter::ParticleBase::index
int index() const
get index
Definition: ParticleBase.h:112
TreeFitter::Constraint
class to manage the order of contraints and their filtering
Definition: Constraint.h:29
TreeFitter::RecoComposite::~RecoComposite
virtual ~RecoComposite()
destructor
Definition: RecoComposite.h:40
TreeFitter::RecoComposite::dim
virtual int dim() const override
get dimension of cosntraint
Definition: RecoComposite.h:58
TreeFitter::RecoComposite::m_hasEnergy
bool m_hasEnergy
flag
Definition: RecoComposite.h:100
TreeFitter::RecoComposite::tauIndex
virtual int tauIndex() const override
get tau (lifetime) index in statevector
Definition: RecoComposite.h:73
TreeFitter::ParticleBase::constraintlist
std::vector< Constraint > constraintlist
alias
Definition: ParticleBase.h:69
TreeFitter::RecoComposite::updateParams
void updateParams()
update chaed params
Definition: RecoComposite.cc:50
TreeFitter::RecoComposite::dimM
int dimM() const
get dimension of measurement
Definition: RecoComposite.h:61
Belle2::Particle
Class to store reconstructed particles.
Definition: Particle.h:77
TreeFitter::ParticleBase::mother
const ParticleBase * mother() const
getMother() / hasMother()
Definition: ParticleBase.cc:295
TreeFitter::RecoComposite::addToConstraintList
virtual void addToConstraintList(constraintlist &alist, int depth) const override
add this to list
Definition: RecoComposite.h:85
TreeFitter::RecoComposite::hasPosition
virtual bool hasPosition() const override
return true FIXME
Definition: RecoComposite.h:82
TreeFitter::RecoComposite::RecoComposite
RecoComposite(Belle2::Particle *bc, const ParticleBase *mother)
constructor
Definition: RecoComposite.cc:27
TreeFitter::RecoComposite::dimMeas
int dimMeas() const
dimension of the measurement vector
Definition: RecoComposite.h:55
TreeFitter::RecoComposite::hasEnergy
virtual bool hasEnergy() const override
return of this constraint/particle has an energy component
Definition: RecoComposite.h:79
TreeFitter::Projection
class to store the projected residuals and the corresponding jacobian as well as the covariance matri...
Definition: Projection.h:27
TreeFitter::RecoComposite::projectConstraint
virtual ErrCode projectConstraint(Constraint::Type, const FitParams &, Projection &) const override
project this constraint
Definition: RecoComposite.cc:104