Belle II Software  release-05-01-25
RecoResonance.cc
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 
11 
12 #include <analysis/VertexFitting/TreeFitter/RecoResonance.h>
13 #include <analysis/VertexFitting/TreeFitter/FitParams.h>
14 
15 namespace TreeFitter {
16 
17  RecoResonance::RecoResonance(Belle2::Particle* particle, const ParticleBase* mother)
18  : RecoComposite(particle, mother) {}
19 
20  ErrCode RecoResonance::initParticleWithMother([[gnu::unused]] FitParams& fitparams)
21  {
22  return ErrCode(ErrCode::Status::success);
23  }
24 
26  {
27  const int posindex = posIndex();
28  const int momindex = momIndex();
29 
30  //quick map for parameters
31  int quickindexmap[7];
32  for (int i = 0; i < 3; ++i) {
33  quickindexmap[i] = posindex + i;
34  }
35  for (int i = 0; i < 4; ++i) {
36  quickindexmap[i + 3] = momindex + i;
37  }
38 
39  // copy the 'measurement' -> this overwrites mother position !
40  for (int row = 0; row < dimM(); ++row) {
41  fitparams.getStateVector()(quickindexmap[row]) = m_params[row];
42  }
43  return ErrCode(ErrCode::Status::success);
44  }
45 
46  ErrCode RecoResonance::projectConstraint(Constraint::Type type, const FitParams& fitparams, Projection& p) const
47  {
48  ErrCode status;
49  switch (type) {
50  case Constraint::resonance:
51  status |= projectRecoComposite(fitparams, p);
52  break;
53  default:
54  status |= ParticleBase::projectConstraint(type, fitparams, p);
55  }
56  return status;
57  }
58 
59  std::string RecoResonance::parname(int index) const
60  {
61  return ParticleBase::parname(index + 4);
62  }
63 }
TreeFitter::ParticleBase::projectConstraint
virtual ErrCode projectConstraint(Constraint::Type, const FitParams &, Projection &) const
project constraint.
Definition: ParticleBase.cc:537
TreeFitter::RecoResonance::projectConstraint
virtual ErrCode projectConstraint(Constraint::Type, const FitParams &, Projection &) const override
project the constraint
Definition: RecoResonance.cc:54
TreeFitter::RecoComposite::projectRecoComposite
ErrCode projectRecoComposite(const FitParams &fitparams, Projection &p) const
project this particle constraint
Definition: RecoComposite.cc:82
TreeFitter::ErrCode
abstract errorocode be aware that the default is succes
Definition: ErrCode.h:23
TreeFitter::RecoResonance::type
virtual int type() const override
get type
Definition: RecoResonance.h:57
TreeFitter::FitParams
Class to store and manage fitparams (statevector)
Definition: FitParams.h:29
TreeFitter::RecoComposite::m_params
Eigen::Matrix< double, 7, 1 > m_params
column vector to store the measurement
Definition: RecoComposite.h:94
TreeFitter::FitParams::getStateVector
Eigen::Matrix< double, -1, 1, 0, MAX_MATRIX_SIZE, 1 > & getStateVector()
getter for the fit parameters/statevector
Definition: FitParams.h:74
TreeFitter::RecoResonance::momIndex
virtual int momIndex() const override
get momentum index in statevector
Definition: RecoResonance.h:63
TreeFitter::RecoResonance::initParticleWithMother
virtual ErrCode initParticleWithMother(FitParams &fitparams) override
init particle in case it has a mother
Definition: RecoResonance.cc:28
TreeFitter::RecoResonance::posIndex
virtual int posIndex() const override
get position index in statevector x,y,z,tau,px,py,pz
Definition: RecoResonance.h:60
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::RecoResonance::parname
virtual std::string parname(int index) const override
parameter name
Definition: RecoResonance.cc:67
TreeFitter::RecoComposite::dimM
int dimM() const
get dimension of measurement
Definition: RecoComposite.h:61
TreeFitter::RecoResonance::RecoResonance
RecoResonance(Belle2::Particle *bc, const ParticleBase *mother)
constructor
Definition: RecoResonance.cc:25
TreeFitter::ParticleBase::parname
virtual std::string parname(int index) const
get name of parameter i
Definition: ParticleBase.cc:304
Belle2::Particle
Class to store reconstructed particles.
Definition: Particle.h:77
TreeFitter::RecoResonance::initMotherlessParticle
virtual ErrCode initMotherlessParticle(FitParams &fitparams) override
init particle in case it has no mother
Definition: RecoResonance.cc:33