Belle II Software  release-05-01-25
QualityEstimatorBase.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2017 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Jonas Wagner *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 
13 #include <boost/optional.hpp>
14 
15 #include <framework/geometry/B2Vector3.h>
16 #include <tracking/spacePointCreation/SpacePoint.h>
17 
18 
19 namespace Belle2 {
28  struct QualityEstimationResults {
29  double qualityIndicator = 0;
30  boost::optional<double> chiSquared;
31  boost::optional<short> curvatureSign;
32  boost::optional<double> pt;
33  boost::optional<double> pmag;
34  boost::optional<B2Vector3<double>> p;
35  };
36 
44  class QualityEstimatorBase {
45 
46  public:
49 
51  virtual ~QualityEstimatorBase() = default;
52 
56  void setMagneticFieldStrength(double magneticFieldZ = 1.5) {m_magneticFieldZ = magneticFieldZ;}
57 
63  virtual double estimateQuality(std::vector<SpacePoint const*> const& measurements) = 0;
64 
71  virtual QualityEstimationResults estimateQualityAndProperties(std::vector<SpacePoint const*> const& measurements)
72  {
75  return m_results;
76  }
77 
78 
79  protected:
80  // utility methods
83  double calcPt(double const radius) const { return m_magneticFieldZ * radius * 0.00299792458; }
84 
85  // Data members
87  double m_magneticFieldZ = 1.5;
88 
94  };
96 }
97 
Belle2::QualityEstimationResults::p
boost::optional< B2Vector3< double > > p
momentum vector estimate from the QE
Definition: QualityEstimatorBase.h:42
Belle2::QualityEstimationResults
Container for complete fit/estimation results.
Definition: QualityEstimatorBase.h:36
Belle2::QualityEstimationResults::pmag
boost::optional< double > pmag
momentum magnitute estimate from the QE
Definition: QualityEstimatorBase.h:41
Belle2::QualityEstimationResults::chiSquared
boost::optional< double > chiSquared
chi squared value obtained by the fit of the QE
Definition: QualityEstimatorBase.h:38
Belle2::QualityEstimationResults::qualityIndicator
double qualityIndicator
return value of the quality estimator
Definition: QualityEstimatorBase.h:37
Belle2::QualityEstimatorBase::setMagneticFieldStrength
void setMagneticFieldStrength(double magneticFieldZ=1.5)
Setter for z component of magnetic field.
Definition: QualityEstimatorBase.h:64
Belle2::QualityEstimationResults::pt
boost::optional< double > pt
transverse momentum estimate from the QE
Definition: QualityEstimatorBase.h:40
Belle2::QualityEstimatorBase::~QualityEstimatorBase
virtual ~QualityEstimatorBase()=default
Destructor.
Belle2::QualityEstimatorBase::QualityEstimatorBase
QualityEstimatorBase()
Constructor.
Definition: QualityEstimatorBase.h:56
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::QualityEstimatorBase::m_magneticFieldZ
double m_magneticFieldZ
Member storing the z component of the magnetic field.
Definition: QualityEstimatorBase.h:95
Belle2::QualityEstimatorBase::calcPt
double calcPt(double const radius) const
Returns a value for the transverse momentum in GeV calculated from a provided radius.
Definition: QualityEstimatorBase.h:91
Belle2::QualityEstimationResults::curvatureSign
boost::optional< short > curvatureSign
direction of curvature as obtained by the QE
Definition: QualityEstimatorBase.h:39
Belle2::QualityEstimatorBase
BaseClass for QualityEstimators.
Definition: QualityEstimatorBase.h:52
Belle2::QualityEstimatorBase::estimateQualityAndProperties
virtual QualityEstimationResults estimateQualityAndProperties(std::vector< SpacePoint const * > const &measurements)
Quality estimation providing additional quantities Calculates quality indicator in range [0,...
Definition: QualityEstimatorBase.h:79
Belle2::QualityEstimatorBase::m_results
QualityEstimationResults m_results
Result of the quality estimation This is stored as a member variable, because some values may be calc...
Definition: QualityEstimatorBase.h:101
Belle2::QualityEstimatorBase::estimateQuality
virtual double estimateQuality(std::vector< SpacePoint const * > const &measurements)=0
Minimal implementation of the quality estimation Calculates quality indicator in range [0,...