Belle II Software light-2406-ragdoll
MassVertexFitKFit.h
1/**************************************************************************
2 * basf2 (Belle II Analysis Software Framework) *
3 * Author: The Belle II Collaboration *
4 * External Contributor: J. Tanaka *
5 * *
6 * See git log for contributors and copyright holders. *
7 * This file is licensed under LGPL-3.0, see LICENSE.md. *
8 **************************************************************************/
9
10#pragma once
11
12#include <analysis/VertexFitting/KFit/KFitConst.h>
13#include <analysis/VertexFitting/KFit/KFitError.h>
14#include <analysis/VertexFitting/KFit/KFitBase.h>
15
16#include <framework/geometry/B2Vector3.h>
17
18#ifndef ENABLE_BACKWARDS_COMPATIBILITY
19typedef HepGeom::Point3D<double> HepPoint3D;
20#endif
21
22
23namespace Belle2 {
29 namespace analysis {
30
34 class MassVertexFitKFit : public KFitBase {
35 public:
40
41
42 public:
47 enum KFitError::ECode setInitialVertex(const HepPoint3D& v);
57 enum KFitError::ECode setInvariantMass(const double m);
62 enum KFitError::ECode fixMass(void);
67 enum KFitError::ECode unfixMass(void);
68 enum KFitError::ECode setCorrelation(const CLHEP::HepMatrix& m) override;
69 enum KFitError::ECode setZeroCorrelation(void) override;
70
71
76 const HepPoint3D getVertex(const int flag = KFitConst::kAfterFit) const;
80 const CLHEP::HepSymMatrix getVertexError(void) const;
84 double getInvariantMass(void) const;
85 double getCHIsq(void) const override;
90 const CLHEP::HepMatrix getTrackVertexError(const int id) const;
91 double getTrackCHIsq(const int id) const override;
92 const CLHEP::HepMatrix getCorrelation(const int id1, const int id2,
93 const int flag = KFitConst::kAfterFit) const override;
94
95
96 public:
100 enum KFitError::ECode doFit(void);
101
107
108 private:
109 enum KFitError::ECode prepareInputMatrix(void) override;
110 enum KFitError::ECode prepareInputSubMatrix(void) override;
111 enum KFitError::ECode prepareCorrelation(void) override;
112 enum KFitError::ECode prepareOutputMatrix(void) override;
113 enum KFitError::ECode makeCoreMatrix(void) override;
114 enum KFitError::ECode calculateNDF(void) override;
115
116
117 private:
119 HepPoint3D m_BeforeVertex;
120
122 HepPoint3D m_AfterVertex;
124 CLHEP::HepSymMatrix m_AfterVertexError;
126 std::vector<CLHEP::HepMatrix> m_AfterTrackVertexError;
127
131 std::vector<int> m_IsFixMass;
132 };
133
134 } // namespace analysis
135
137} // namespace Belle2
Class to store reconstructed particles.
Definition: Particle.h:75
KFitBase is a base class for kinematical fitters.
Definition: KFitBase.h:37
ECode
ECode is a error code enumerate.
Definition: KFitError.h:34
MassVertexFitKFit is a derived class from KFitBase to perform mass-vertex-constraint kinematical fit.
enum KFitError::ECode setZeroCorrelation(void) override
Indicate no correlation between tracks.
enum KFitError::ECode prepareInputMatrix(void) override
Build grand matrices for minimum search from input-track properties.
enum KFitError::ECode calculateNDF(void) override
Calculate an NDF of the fit.
enum KFitError::ECode setInitialVertex(const HepPoint3D &v)
Set an initial vertex point for the mass-vertex constraint fit.
double getCHIsq(void) const override
Get a chi-square of the fit.
std::vector< int > m_IsFixMass
Array of flags whether the track property is fixed at the mass.
enum KFitError::ECode updateMother(Particle *mother)
Update mother particle.
const CLHEP::HepSymMatrix getVertexError(void) const
Get a fitted vertex error matrix.
enum KFitError::ECode unfixMass(void)
Tell the object to unfix the last added track property at the invariant mass.
enum KFitError::ECode prepareInputSubMatrix(void) override
Build sub-matrices for minimum search from input-track properties.
~MassVertexFitKFit(void)
Destruct the object.
enum KFitError::ECode doFit(void)
Perform a mass-vertex-constraint fit.
enum KFitError::ECode setInvariantMass(const double m)
Set an invariant mass for the mass-vertex constraint fit.
enum KFitError::ECode makeCoreMatrix(void) override
Build matrices using the kinematical constraint.
enum KFitError::ECode prepareCorrelation(void) override
Build a grand correlation matrix from input-track properties.
MassVertexFitKFit(void)
Construct an object with no argument.
HepPoint3D m_AfterVertex
Vertex position after the fit.
enum KFitError::ECode setCorrelation(const CLHEP::HepMatrix &m) override
Set a correlation matrix.
std::vector< CLHEP::HepMatrix > m_AfterTrackVertexError
array of vertex error matrices after the fit.
const CLHEP::HepMatrix getCorrelation(const int id1, const int id2, const int flag=KFitConst::kAfterFit) const override
Get a correlation matrix between two tracks.
double getTrackCHIsq(const int id) const override
Get a chi-square of the track.
const HepPoint3D getVertex(const int flag=KFitConst::kAfterFit) const
Get a vertex position.
CLHEP::HepSymMatrix m_AfterVertexError
Vertex error matrix after the fit.
enum KFitError::ECode prepareOutputMatrix(void) override
Build an output error matrix.
const CLHEP::HepMatrix getTrackVertexError(const int id) const
Get a vertex error matrix of the track.
HepPoint3D m_BeforeVertex
Vertex position before the fit.
enum KFitError::ECode fixMass(void)
Tell the object to fix the last added track property at the invariant mass.
double getInvariantMass(void) const
Get an invariant mass.
Abstract base class for different kinds of events.
Definition: ClusterUtils.h:24
static const int kAfterFit
Input parameter to specify after-fit when setting/getting a track attribute.
Definition: KFitConst.h:37