Belle II Software  release-05-02-19
FourCFitKFit.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2017 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributor: Yu Hu *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 #include <analysis/VertexFitting/KFit/KFitConst.h>
13 #include <analysis/VertexFitting/KFit/KFitError.h>
14 #include <analysis/VertexFitting/KFit/KFitBase.h>
15 #include <TLorentzVector.h>
16 
17 #ifndef ENABLE_BACKWARDS_COMPATIBILITY
19 #endif
20 
21 namespace Belle2 {
27  namespace analysis {
28 
32  class FourCFitKFit : public KFitBase {
33  public:
35  FourCFitKFit(void);
37  ~FourCFitKFit(void);
38 
39 
40  public:
45  enum KFitError::ECode setVertex(const HepPoint3D& v);
50  enum KFitError::ECode setVertexError(const CLHEP::HepSymMatrix& e);
55  enum KFitError::ECode setInvariantMass(const double m);
60  enum KFitError::ECode setFourMomentum(const TLorentzVector& m);
65  enum KFitError::ECode setFlagAtDecayPoint(const bool flag);
70  enum KFitError::ECode fixMass(void);
75  enum KFitError::ECode unfixMass(void);
80  enum KFitError::ECode setTrackVertexError(const CLHEP::HepMatrix& e);
85  enum KFitError::ECode setCorrelation(const CLHEP::HepMatrix& m) override;
86  enum KFitError::ECode setZeroCorrelation(void) override;
87 
88 
93  const HepPoint3D getVertex(const int flag = KFitConst::kAfterFit) const;
98  const CLHEP::HepSymMatrix getVertexError(const int flag = KFitConst::kAfterFit) const;
102  double getInvariantMass(void) const;
106  bool getFlagAtDecayPoint(void) const;
110  bool getFlagFitWithVertex(void) const;
111  double getCHIsq(void) const override;
117  const CLHEP::HepMatrix getTrackVertexError(const int id, const int flag = KFitConst::kAfterFit) const;
118  double getTrackCHIsq(const int id) const override;
119  const CLHEP::HepMatrix getCorrelation(const int id1, const int id2,
120  const int flag = KFitConst::kAfterFit) const override;
121 
122 
123  public:
127  enum KFitError::ECode doFit(void);
128 
133  enum KFitError::ECode updateMother(Particle* mother);
134 
135  private:
136  enum KFitError::ECode prepareInputMatrix(void) override;
137  enum KFitError::ECode prepareInputSubMatrix(void) override;
138  enum KFitError::ECode prepareCorrelation(void) override;
139  enum KFitError::ECode prepareOutputMatrix(void) override;
140  enum KFitError::ECode makeCoreMatrix(void) override;
141  enum KFitError::ECode calculateNDF(void) override;
142 
143 
144  private:
148  CLHEP::HepSymMatrix m_BeforeVertexError;
150  std::vector<CLHEP::HepMatrix> m_BeforeTrackVertexError;
151 
155  CLHEP::HepSymMatrix m_AfterVertexError;
157  std::vector<CLHEP::HepMatrix> m_AfterTrackVertexError;
158 
165 
168 
170  TLorentzVector m_FourMomentum;
171 
173  std::vector<int> m_IsFixMass;
174  };
175 
176  } // namespace analysis
177 
179 } // namespace Belle2
Belle2::analysis::FourCFitKFit::m_AfterVertex
HepPoint3D m_AfterVertex
Vertex position after the fit.
Definition: FourCFitKFit.h:153
Belle2::analysis::FourCFitKFit::m_FlagTrackVertexError
bool m_FlagTrackVertexError
Flag to indicate if the vertex error matrix of the child particle is preset.
Definition: FourCFitKFit.h:160
Belle2::analysis::FourCFitKFit::setInvariantMass
enum KFitError::ECode setInvariantMass(const double m)
Set an invariant mass for the four momentum-constraint fit.
Definition: FourCFitKFit.cc:71
Belle2::analysis::FourCFitKFit::setVertexError
enum KFitError::ECode setVertexError(const CLHEP::HepSymMatrix &e)
Set an initial vertex error matrix for the four momentum-constraint fit.
Definition: FourCFitKFit.cc:55
Belle2::analysis::FourCFitKFit::m_InvariantMass
double m_InvariantMass
Invariant mass.
Definition: FourCFitKFit.h:167
Belle2::analysis::FourCFitKFit::getTrackVertexError
const CLHEP::HepMatrix getTrackVertexError(const int id, const int flag=KFitConst::kAfterFit) const
Get a vertex error matrix of the track.
Definition: FourCFitKFit.cc:211
Belle2::analysis::KFitBase
KFitBase is a base class for kinematical fitters.
Definition: KFitBase.h:38
Belle2::analysis::FourCFitKFit::getTrackCHIsq
double getTrackCHIsq(const int id) const override
Get a chi-square of the track.
Definition: FourCFitKFit.cc:228
Belle2::analysis::FourCFitKFit::m_AfterTrackVertexError
std::vector< CLHEP::HepMatrix > m_AfterTrackVertexError
array of vertex error matrices after the fit.
Definition: FourCFitKFit.h:157
Belle2::analysis::FourCFitKFit::unfixMass
enum KFitError::ECode unfixMass(void)
Tell the object to unfix the last added track property at the invariant mass.
Definition: FourCFitKFit.cc:103
Belle2::analysis::FourCFitKFit::prepareInputMatrix
enum KFitError::ECode prepareInputMatrix(void) override
Build grand matrices for minimum search from input-track properties.
Definition: FourCFitKFit.cc:297
Belle2::analysis::FourCFitKFit
FourCFitKFit is a derived class from KFitBase to perform 4 momentum-constraint kinematical fit.
Definition: FourCFitKFit.h:32
Belle2::analysis::FourCFitKFit::~FourCFitKFit
~FourCFitKFit(void)
Destruct the object.
Belle2::analysis::FourCFitKFit::m_BeforeVertex
HepPoint3D m_BeforeVertex
Vertex position before the fit.
Definition: FourCFitKFit.h:146
Belle2::analysis::FourCFitKFit::m_BeforeVertexError
CLHEP::HepSymMatrix m_BeforeVertexError
Vertex error matrix before the fit.
Definition: FourCFitKFit.h:148
Belle2::analysis::FourCFitKFit::doFit
enum KFitError::ECode doFit(void)
Perform a four momentum-constraint fit.
Definition: FourCFitKFit.cc:291
Belle2::analysis::FourCFitKFit::setVertex
enum KFitError::ECode setVertex(const HepPoint3D &v)
Set an initial vertex position for the four momentum-constraint fit.
Definition: FourCFitKFit.cc:47
Belle2::analysis::FourCFitKFit::m_FourMomentum
TLorentzVector m_FourMomentum
Four Momentum.
Definition: FourCFitKFit.h:170
Belle2::analysis::FourCFitKFit::updateMother
enum KFitError::ECode updateMother(Particle *mother)
Update mother particle.
Definition: FourCFitKFit.cc:665
Belle2::analysis::FourCFitKFit::getFlagAtDecayPoint
bool getFlagAtDecayPoint(void) const
Get a flag if to constraint at the decay point in the four momentum-constraint fit.
Definition: FourCFitKFit.cc:190
Belle2::analysis::KFitConst::kAfterFit
static const int kAfterFit
Input parameter to specify after-fit when setting/getting a track attribute.
Definition: KFitConst.h:45
Belle2::analysis::FourCFitKFit::prepareCorrelation
enum KFitError::ECode prepareCorrelation(void) override
Build a grand correlation matrix from input-track properties.
Definition: FourCFitKFit.cc:430
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::analysis::FourCFitKFit::setFlagAtDecayPoint
enum KFitError::ECode setFlagAtDecayPoint(const bool flag)
Set a flag if to constraint at the decay point in the four momentum-constraint fit.
Definition: FourCFitKFit.cc:87
Belle2::analysis::FourCFitKFit::m_FlagFitIncludingVertex
bool m_FlagFitIncludingVertex
Flag to indicate if the fit is allowed with moving the vertex position.
Definition: FourCFitKFit.h:162
Belle2::analysis::FourCFitKFit::FourCFitKFit
FourCFitKFit(void)
Construct an object with no argument.
Definition: FourCFitKFit.cc:27
Belle2::analysis::FourCFitKFit::fixMass
enum KFitError::ECode fixMass(void)
Tell the object to fix the last added track property at the invariant mass.
Definition: FourCFitKFit.cc:95
Belle2::analysis::FourCFitKFit::m_AfterVertexError
CLHEP::HepSymMatrix m_AfterVertexError
Vertex error matrix after the fit.
Definition: FourCFitKFit.h:155
Belle2::analysis::FourCFitKFit::setZeroCorrelation
enum KFitError::ECode setZeroCorrelation(void) override
Indicate no correlation between tracks.
Definition: FourCFitKFit.cc:142
Belle2::analysis::FourCFitKFit::setTrackZeroVertexError
enum KFitError::ECode setTrackZeroVertexError(void)
Indicate no vertex uncertainty in the child particle in the addTrack'ed order.
Definition: FourCFitKFit.cc:128
Belle2::analysis::FourCFitKFit::getVertex
const HepPoint3D getVertex(const int flag=KFitConst::kAfterFit) const
Get a vertex position.
Definition: FourCFitKFit.cc:148
Belle2::Particle
Class to store reconstructed particles.
Definition: Particle.h:77
Belle2::analysis::FourCFitKFit::m_IsFixMass
std::vector< int > m_IsFixMass
Array of flags whether the track property is fixed at the mass.
Definition: FourCFitKFit.h:173
Belle2::analysis::FourCFitKFit::prepareInputSubMatrix
enum KFitError::ECode prepareInputSubMatrix(void) override
Build sub-matrices for minimum search from input-track properties.
Definition: FourCFitKFit.cc:419
Belle2::analysis::FourCFitKFit::m_FlagAtDecayPoint
bool m_FlagAtDecayPoint
Flag controlled by setFlagAtDecayPoint().
Definition: FourCFitKFit.h:164
Belle2::analysis::FourCFitKFit::getCHIsq
double getCHIsq(void) const override
Get a chi-square of the fit.
Definition: FourCFitKFit.cc:204
Belle2::analysis::FourCFitKFit::m_BeforeTrackVertexError
std::vector< CLHEP::HepMatrix > m_BeforeTrackVertexError
array of vertex error matrices before the fit.
Definition: FourCFitKFit.h:150
Belle2::analysis::FourCFitKFit::getVertexError
const CLHEP::HepSymMatrix getVertexError(const int flag=KFitConst::kAfterFit) const
Get a vertex error matrix.
Definition: FourCFitKFit.cc:167
Belle2::analysis::FourCFitKFit::setTrackVertexError
enum KFitError::ECode setTrackVertexError(const CLHEP::HepMatrix &e)
Set a vertex error matrix of the child particle in the addTrack'ed order.
Definition: FourCFitKFit.cc:111
Belle2::analysis::FourCFitKFit::getFlagFitWithVertex
bool getFlagFitWithVertex(void) const
Get a flag if the fit is allowed with moving the vertex position.
Definition: FourCFitKFit.cc:197
Belle2::analysis::KFitError::ECode
ECode
ECode is a error code enumerate.
Definition: KFitError.h:43
Belle2::analysis::FourCFitKFit::getCorrelation
const CLHEP::HepMatrix getCorrelation(const int id1, const int id2, const int flag=KFitConst::kAfterFit) const override
Get a correlation matrix between two tracks.
Definition: FourCFitKFit.cc:264
Belle2::analysis::FourCFitKFit::makeCoreMatrix
enum KFitError::ECode makeCoreMatrix(void) override
Build matrices using the kinematical constraint.
Definition: FourCFitKFit.cc:547
HepGeom::Point3D< double >
Belle2::analysis::FourCFitKFit::prepareOutputMatrix
enum KFitError::ECode prepareOutputMatrix(void) override
Build an output error matrix.
Definition: FourCFitKFit.cc:488
Belle2::analysis::FourCFitKFit::getInvariantMass
double getInvariantMass(void) const
Get an invariant mass.
Definition: FourCFitKFit.cc:183
Belle2::analysis::FourCFitKFit::setFourMomentum
enum KFitError::ECode setFourMomentum(const TLorentzVector &m)
Set an 4 Momentum for the FourC-constraint fit.
Definition: FourCFitKFit.cc:79
Belle2::analysis::FourCFitKFit::calculateNDF
enum KFitError::ECode calculateNDF(void) override
Calculate an NDF of the fit.
Definition: FourCFitKFit.cc:659
Belle2::analysis::FourCFitKFit::setCorrelation
enum KFitError::ECode setCorrelation(const CLHEP::HepMatrix &m) override
Set a correlation matrix.
Definition: FourCFitKFit.cc:136