Belle II Software  release-05-02-19
InternalTrack.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2020 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributor: Francesco Tenchini, Jo-Frederik Krohn, Fabian Krinner *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 #pragma once
11 
12 #include <analysis/VertexFitting/TreeFitter/ParticleBase.h>
13 #include <analysis/VertexFitting/TreeFitter/RecoTrack.h>
14 
15 namespace TreeFitter {
16 
18  class InternalTrack : public ParticleBase {
19 
20  public:
21 
24  const ParticleBase* mother,
25  const ConstraintConfiguration& config,
26  bool forceFitAll,
27  bool noEnergySum,
28  bool forceMassConstraint
29  );
30 
32  virtual ~InternalTrack() {};
33 
35  virtual ErrCode initCovariance(FitParams&) const override;
36 
39 
41  virtual ErrCode initParticleWithMother(FitParams& fitparams) override;
42 
44  virtual ErrCode initMotherlessParticle(FitParams& fitparams) override;
45 
47  ErrCode projectConstraint(const Constraint::Type type, const FitParams& fitparams, Projection& p) const override;
48 
50  virtual int dim() const override;
51 
53  virtual int type() const override { return kInternalTrack ; }
54 
56  virtual int posIndex() const override;
57 
59  virtual int tauIndex() const override;
60 
62  virtual int momIndex() const override;
63 
65  virtual bool hasEnergy() const override;
66 
68  virtual bool hasPosition() const override;
69 
71  virtual void addToConstraintList(constraintlist& list, int depth) const override ;
72 
74  void setMassConstraint(bool b) { m_massconstraint = b ; }
75 
77  void forceP4Sum(FitParams& fitparams) const override;
78 
79  protected:
80 
82  ErrCode initMomentum(FitParams& fitparams) const ;
83 
84  private:
85 
87  bool static compTrkTransverseMomentum(const RecoTrack* lhs, const RecoTrack* rhs);
88 
91 
93  bool m_noEnergySum;
94 
96  bool m_isconversion;
97 
99  double m_bfield;
100  } ;
101 
102 }
TreeFitter::InternalTrack::initParticleWithMother
virtual ErrCode initParticleWithMother(FitParams &fitparams) override
init particle in case it has a mother
Definition: InternalTrack.cc:138
TreeFitter::InternalTrack::tauIndex
virtual int tauIndex() const override
tau index in fit params only if it has a mother
Definition: InternalTrack.cc:344
TreeFitter::InternalTrack::setMassConstraint
void setMassConstraint(bool b)
set mass constraint flag
Definition: InternalTrack.h:90
TreeFitter::ParticleBase::ParticleBase
ParticleBase(Belle2::Particle *particle, const ParticleBase *mother, const ConstraintConfiguration *config)
default constructor
Definition: ParticleBase.cc:41
TreeFitter::InternalTrack::initMomentum
ErrCode initMomentum(FitParams &fitparams) const
init momentum of *this and daughters
Definition: InternalTrack.cc:152
TreeFitter::InternalTrack::type
virtual int type() const override
type
Definition: InternalTrack.h:69
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::InternalTrack::InternalTrack
InternalTrack(Belle2::Particle *particle, const ParticleBase *mother, const ConstraintConfiguration &config, bool forceFitAll, bool noEnergySum, bool forceMassConstraint)
constructor
Definition: InternalTrack.cc:27
TreeFitter::InternalTrack::initMotherlessParticle
virtual ErrCode initMotherlessParticle(FitParams &fitparams) override
init particle in case it has no mother
Definition: InternalTrack.cc:61
TreeFitter::InternalTrack::dim
virtual int dim() const override
space reserved in fit params
Definition: InternalTrack.cc:339
TreeFitter::InternalTrack::m_isconversion
bool m_isconversion
is conversion
Definition: InternalTrack.h:112
TreeFitter::RecoTrack
reprasentation of all charged final states FIXME rename since this name is taken in tracking
Definition: RecoTrack.h:27
TreeFitter::InternalTrack::addToConstraintList
virtual void addToConstraintList(constraintlist &list, int depth) const override
add to constraint list
Definition: InternalTrack.cc:195
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::InternalTrack::momIndex
virtual int momIndex() const override
momentum index in fit params depending on whether it has a mother
Definition: InternalTrack.cc:334
TreeFitter::InternalTrack::hasPosition
virtual bool hasPosition() const override
has position index
Definition: InternalTrack.cc:317
TreeFitter::InternalTrack::projectHelixConstraint
ErrCode projectHelixConstraint(const FitParams &, Projection &) const
project helix constraint
Definition: InternalTrack.cc:227
TreeFitter::ParticleBase::constraintlist
std::vector< Constraint > constraintlist
alias
Definition: ParticleBase.h:69
TreeFitter::InternalTrack::m_noEnergySum
bool m_noEnergySum
Energy is not conserved at the decay (happens in Bremsstrahlung)
Definition: InternalTrack.h:109
TreeFitter::InternalTrack::~InternalTrack
virtual ~InternalTrack()
destructor
Definition: InternalTrack.h:48
TreeFitter::InternalTrack::compTrkTransverseMomentum
static bool compTrkTransverseMomentum(const RecoTrack *lhs, const RecoTrack *rhs)
compare transverse track momentum
Definition: InternalTrack.cc:56
TreeFitter::InternalTrack::m_massconstraint
bool m_massconstraint
has mass cosntraint
Definition: InternalTrack.h:106
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::InternalTrack::projectConstraint
ErrCode projectConstraint(const Constraint::Type type, const FitParams &fitparams, Projection &p) const override
find out which constraint it is and project
Definition: InternalTrack.cc:209
TreeFitter::InternalTrack::hasEnergy
virtual bool hasEnergy() const override
has energy in fitparams
Definition: InternalTrack.cc:324
TreeFitter::InternalTrack::posIndex
virtual int posIndex() const override
position index in fit params
Definition: InternalTrack.cc:329
TreeFitter::ParticleBase::particle
Belle2::Particle * particle() const
get basf2 particle
Definition: ParticleBase.h:109
TreeFitter::InternalTrack::forceP4Sum
void forceP4Sum(FitParams &fitparams) const override
Forces the four-momentum sum.
Definition: InternalTrack.cc:349
TreeFitter::Projection
class to store the projected residuals and the corresponding jacobian as well as the covariance matri...
Definition: Projection.h:27
TreeFitter::InternalTrack::m_bfield
double m_bfield
B field value.
Definition: InternalTrack.h:115
TreeFitter::InternalTrack::initCovariance
virtual ErrCode initCovariance(FitParams &) const override
init covariance
Definition: InternalTrack.cc:172