Belle II Software  release-05-01-25
RecoTrack.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/RecoParticle.h>
13 
14 #include <analysis/dataobjects/Particle.h>
15 
16 namespace TreeFitter {
17 
19  class RecoTrack : public RecoParticle {
20 
21  public:
24 
26  virtual ~RecoTrack() {};
27 
29  virtual ErrCode initParticleWithMother(FitParams& fitparams) override;
30 
32  virtual ErrCode initMotherlessParticle(FitParams& fitparams) override;
33 
35  ErrCode initCovariance(FitParams& fitparams) const override;
36 
38  ErrCode updFltToMotherCopy(const FitParams* fitparams);
39 
41  virtual ErrCode projectRecoConstraint(const FitParams&, Projection&) const override;
42 
44  ErrCode updateParams(double flt);
45 
47  virtual int dimM() const override { return 5 ; }
48 
50  virtual int type() const override { return kRecoTrack ; }
51 
53  virtual int nFinalChargedCandidates() const override { return 1 ; }
54 
56  virtual void addToConstraintList(constraintlist& alist, int depth) const override
57  {
58  alist.push_back(Constraint(this, Constraint::track, depth, dimM(), 1)) ;
59  }
60 
62  ErrCode updFltToMother(const FitParams& fitparams) ;
63 
65  void setFlightLength(double flt) { m_flt = flt ; }
66 
67  private:
68 
70  double m_bfield; //Bfield along Z
71 
74 
76  bool m_cached ;
77 
79  double m_flt ;
80 
82  Eigen::Matrix<double, 1, 5> m_params;
83 
85  Eigen::Matrix<double, 5, 5>m_covariance;
86  };
87 }
TreeFitter::RecoTrack::updFltToMother
ErrCode updFltToMother(const FitParams &fitparams)
update flight length to mother
Definition: RecoTrack.cc:78
TreeFitter::RecoTrack::initCovariance
ErrCode initCovariance(FitParams &fitparams) const override
init covariance matrix of this particle constraint
Definition: RecoTrack.cc:64
TreeFitter::ParticleBase::ParticleBase
ParticleBase(Belle2::Particle *particle, const ParticleBase *mother, const ConstraintConfiguration *config)
default constructor
Definition: ParticleBase.cc:41
TreeFitter::ErrCode
abstract errorocode be aware that the default is succes
Definition: ErrCode.h:23
TreeFitter::FitParams
Class to store and manage fitparams (statevector)
Definition: FitParams.h:29
TreeFitter::RecoTrack::~RecoTrack
virtual ~RecoTrack()
destructor
Definition: RecoTrack.h:42
TreeFitter::RecoTrack::nFinalChargedCandidates
virtual int nFinalChargedCandidates() const override
number of final charged candidates
Definition: RecoTrack.h:69
Belle2::TrackFitResult
Values of the result of a track fit with a given particle hypothesis.
Definition: TrackFitResult.h:59
TreeFitter::RecoTrack::RecoTrack
RecoTrack(Belle2::Particle *bc, const ParticleBase *mother)
constructor
Definition: RecoTrack.cc:32
TreeFitter::RecoTrack::initParticleWithMother
virtual ErrCode initParticleWithMother(FitParams &fitparams) override
init with mother particle (replacing initPar2)
Definition: RecoTrack.cc:45
TreeFitter::RecoTrack::m_params
Eigen::Matrix< double, 1, 5 > m_params
column vector to store the measurement
Definition: RecoTrack.h:98
TreeFitter::RecoTrack::projectRecoConstraint
virtual ErrCode projectRecoConstraint(const FitParams &, Projection &) const override
project the constraint (calculate residuals)
Definition: RecoTrack.cc:105
TreeFitter::RecoTrack::m_trackfit
const Belle2::TrackFitResult * m_trackfit
trackfit result from reconstruction
Definition: RecoTrack.h:89
TreeFitter::RecoTrack::initMotherlessParticle
virtual ErrCode initMotherlessParticle(FitParams &fitparams) override
init without mother particle
Definition: RecoTrack.cc:59
TreeFitter::RecoTrack::dimM
virtual int dimM() const override
dimension (5)
Definition: RecoTrack.h:63
TreeFitter::RecoTrack::m_covariance
Eigen::Matrix< double, 5, 5 > m_covariance
only lower triangle filled!
Definition: RecoTrack.h:101
TreeFitter::ParticleBase::constraintlist
std::vector< Constraint > constraintlist
alias
Definition: ParticleBase.h:69
TreeFitter::RecoTrack::m_bfield
double m_bfield
B field along z
Definition: RecoTrack.h:86
TreeFitter::RecoTrack::setFlightLength
void setFlightLength(double flt)
setter for the flight length
Definition: RecoTrack.h:81
TreeFitter::RecoTrack::type
virtual int type() const override
type of the constraint
Definition: RecoTrack.h:66
Belle2::Particle
Class to store reconstructed particles.
Definition: Particle.h:77
TreeFitter::RecoTrack::addToConstraintList
virtual void addToConstraintList(constraintlist &alist, int depth) const override
add to the list of constraints
Definition: RecoTrack.h:72
TreeFitter::ParticleBase::mother
const ParticleBase * mother() const
getMother() / hasMother()
Definition: ParticleBase.cc:295
TreeFitter::RecoTrack::m_cached
bool m_cached
flag to mark the particle as initialised
Definition: RecoTrack.h:92
TreeFitter::RecoTrack::updateParams
ErrCode updateParams(double flt)
updated the cahed parameters
Definition: RecoTrack.cc:87
TreeFitter::RecoTrack::updFltToMotherCopy
ErrCode updFltToMotherCopy(const FitParams *fitparams)
update m_flt
TreeFitter::RecoTrack::m_flt
double m_flt
helix arc length at vertex
Definition: RecoTrack.h:95
TreeFitter::Projection
class to store the projected residuals and the corresponding jacobian as well as the covariance matri...
Definition: Projection.h:27