Belle II Software  release-05-02-19
Origin.h
1 /**************************************************************************
2  *
3  * BASF2 (Belle Analysis Framework 2) *
4  * Copyright(C) 2018 - Belle II Collaboration *
5  * *
6  * Author: The Belle II Collaboration *
7  * Contributor: wouter Hulsbergen, Jo-Frederik Krohn *
8  * *
9  * This software is provided "as is" without any warranty. *
10  **************************************************************************/
11 #pragma once
12 
13 #include <analysis/VertexFitting/TreeFitter/ParticleBase.h>
14 
15 #include <mdst/dbobjects/BeamSpot.h>
16 #include <framework/database/DBObjPtr.h>
17 
18 namespace TreeFitter {
19 
21  class Origin : public ParticleBase {
22 
23  public:
24 
27  const ConstraintConfiguration& config,
28  const bool forceFitAll
29  );
30 
32  explicit Origin(Belle2::Particle* daughter);
33 
35  virtual ~Origin() {};
36 
38  virtual ErrCode initParticleWithMother(FitParams& fitparams) override;
39 
41  virtual ErrCode initMotherlessParticle(FitParams& fitparams) override;
42 
45 
47  virtual int dim() const override { return m_constraintDimension; }
48 
50  virtual ErrCode initCovariance(FitParams& fitpar) const override;
51 
52  /* particle type */
53  virtual int type() const override { return kOrigin; }
54 
56  ErrCode projectOriginConstraint(const FitParams& fitpar, Projection&) const;
57 
59  virtual ErrCode projectConstraint(Constraint::Type, const FitParams&, Projection&) const override;
60 
62  virtual void addToConstraintList(constraintlist& list, int depth) const override;
63 
65  virtual int posIndex() const override { return index(); }
66 
68  virtual int momIndex() const override { return -1; }
69 
71  virtual int tauIndex() const override { return -1; }
72 
74  virtual bool hasEnergy() const override { return false; }
75 
77  virtual std::string name() const { return "Origin"; }
78 
79  private:
80 
82  const int m_constraintDimension;
83 
85  const std::vector<double> m_customOriginVertex;
86 
88  const std::vector<double> m_customOriginCovariance;
89 
91  Eigen::Matrix<double, Eigen::Dynamic, 1, Eigen::ColMajor, 3, 1> m_posVec;
92 
96  Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, Eigen::ColMajor, 3, 3> m_covariance;
97 
99  const bool m_isBeamSpot;
100 
103 
105  const int m_inflationFactorCovZ;
106  };
107 }
TreeFitter::Origin::m_posVec
Eigen::Matrix< double, Eigen::Dynamic, 1, Eigen::ColMajor, 3, 1 > m_posVec
vertex position of the origin
Definition: Origin.h:109
TreeFitter::Origin::m_constraintDimension
const int m_constraintDimension
dimension of the constraint
Definition: Origin.h:100
TreeFitter::Origin::projectConstraint
virtual ErrCode projectConstraint(Constraint::Type, const FitParams &, Projection &) const override
the abstract projection
Definition: Origin.cc:153
TreeFitter::Origin::initCovariance
virtual ErrCode initCovariance(FitParams &fitpar) const override
init covariance matrix of the constraint
Definition: Origin.cc:121
TreeFitter::Origin::m_customOriginVertex
const std::vector< double > m_customOriginVertex
vertex coordinates
Definition: Origin.h:103
TreeFitter::Origin::hasEnergy
virtual bool hasEnergy() const override
has energy
Definition: Origin.h:92
TreeFitter::Origin::name
virtual std::string name() const
get name
Definition: Origin.h:95
TreeFitter::ErrCode
abstract errorocode be aware that the default is succes
Definition: ErrCode.h:23
TreeFitter::Origin::m_isBeamSpot
const bool m_isBeamSpot
is this the beam constraint?
Definition: Origin.h:117
TreeFitter::FitParams
Class to store and manage fitparams (statevector)
Definition: FitParams.h:29
TreeFitter::Origin::momIndex
virtual int momIndex() const override
momentum index in the statevector.
Definition: Origin.h:86
TreeFitter::Origin::type
virtual int type() const override
get particle type
Definition: Origin.h:71
Belle2::DBObjPtr< Belle2::BeamSpot >
TreeFitter::Origin::initOrigin
ErrCode initOrigin()
init the origin "particle"
Definition: Origin.cc:64
TreeFitter::Origin::initMotherlessParticle
virtual ErrCode initMotherlessParticle(FitParams &fitparams) override
init particle, used if it has no mother
Definition: Origin.cc:50
TreeFitter::Origin::~Origin
virtual ~Origin()
destructor
Definition: Origin.h:53
TreeFitter::Origin::m_covariance
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::ColMajor, 3, 3 > m_covariance
covariance of the origin dont know size but I know the max size
Definition: Origin.h:114
TreeFitter::Origin::projectOriginConstraint
ErrCode projectOriginConstraint(const FitParams &fitpar, Projection &) const
the actuall constraint projection
Definition: Origin.cc:134
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::Origin::posIndex
virtual int posIndex() const override
vertex position index in the statevector
Definition: Origin.h:83
TreeFitter::Origin::addToConstraintList
virtual void addToConstraintList(constraintlist &list, int depth) const override
adds the origin as a particle to the constraint list
Definition: Origin.cc:166
TreeFitter::Origin::m_inflationFactorCovZ
const int m_inflationFactorCovZ
inflated the covariance matrix in z by this number
Definition: Origin.h:123
TreeFitter::ParticleBase::constraintlist
std::vector< Constraint > constraintlist
alias
Definition: ParticleBase.h:69
Belle2::Particle
Class to store reconstructed particles.
Definition: Particle.h:77
TreeFitter::Origin::Origin
Origin(Belle2::Particle *particle, const ConstraintConfiguration &config, const bool forceFitAll)
Constructor.
Definition: Origin.cc:28
TreeFitter::Origin::dim
virtual int dim() const override
space reserved in fit pars
Definition: Origin.h:65
TreeFitter::Origin::m_customOriginCovariance
const std::vector< double > m_customOriginCovariance
vertex covariance
Definition: Origin.h:106
TreeFitter::ParticleBase::particle
Belle2::Particle * particle() const
get basf2 particle
Definition: ParticleBase.h:109
TreeFitter::Projection
class to store the projected residuals and the corresponding jacobian as well as the covariance matri...
Definition: Projection.h:27
TreeFitter::Origin::tauIndex
virtual int tauIndex() const override
the lifetime index.
Definition: Origin.h:89
TreeFitter::Origin::initParticleWithMother
virtual ErrCode initParticleWithMother(FitParams &fitparams) override
init particle, used if it has a mother
Definition: Origin.cc:45
TreeFitter::Origin::m_beamSpot
Belle2::DBObjPtr< Belle2::BeamSpot > m_beamSpot
the parameters are initialize elsewhere this is just a pointer to that
Definition: Origin.h:120