Belle II Software  release-08-01-10
FourHitFilters.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 
9 #pragma once
10 
11 #include <framework/geometry/B2Vector3.h>
12 #include "tracking/vxdCaTracking/ThreeHitFilters.h"
13 
14 
15 
16 namespace Belle2 {
24 
25  public:
26 
29  m_radiusABC(0.),
30  m_radiusBCD(0.),
31  m_circleCalculated(false) {}
32 
34  FourHitFilters(const B2Vector3D& outer, const B2Vector3D& outerCenter, const B2Vector3D& innerCenter, const B2Vector3D& inner,
35  const double magneticFieldStrength = 1.5):
36  m_hitA(outer),
37  m_hitB(outerCenter),
38  m_hitC(innerCenter),
39  m_hitD(inner),
40  m_radiusABC(0.),
41  m_radiusBCD(0.),
42  m_circleCalculated(false) { m_threeHitFilter.resetMagneticField(magneticFieldStrength); }
43 
44 
47 
49  void resetValues(const B2Vector3D& outer, const B2Vector3D& outerCenter, const B2Vector3D& innerCenter, const B2Vector3D& inner)
50  {
51  m_hitA = outer;
52  m_hitB = outerCenter;
53  m_hitC = innerCenter;
54  m_hitD = inner;
55  m_radiusABC = 0.;
56  m_radiusBCD = 0.;
57  m_circleCalculated = false;
58  }
59 
61  void resetMagneticField(const double magneticFieldStrength = 1.5) { m_threeHitFilter.resetMagneticField(magneticFieldStrength); }
62 
63 
65  double calcDeltapT();
66 
67 
69  double deltapT() { return calcDeltapT(); }
70 
71 
74 
75 
78  protected:
79 
81  void calcCircle()
82  {
87 
88  m_circleCalculated = true;
89  }
90 
97  double m_radiusABC;
98  double m_radiusBCD;
101  }; //end class FourHitFilters
103 } //end namespace Belle2
The class 'FourHitFilters' bundles filter methods using 4 hits which are stored in B2Vector3Ds.
double calcDeltaDistCircleCenter()
calculates ddist2IP-value directly (ddist2IP= difference in magnitude of the points of closest approa...
FourHitFilters(const B2Vector3D &outer, const B2Vector3D &outerCenter, const B2Vector3D &innerCenter, const B2Vector3D &inner, const double magneticFieldStrength=1.5)
Constructor.
double m_radiusABC
estimation of the radius of the circle using hits A, B & C
double deltapT()
legacy - compatibility for old cases
B2Vector3D m_centerABC
estimation of a circleCenterPosition using hits A, B & C
double m_radiusBCD
estimation of a radius of the circle using hitsBA, C & D
B2Vector3D m_hitB
outerCenter hit (position relevant for useful filter calculation) used for the filter calculation
FourHitFilters()
Empty constructor.
bool m_circleCalculated
initially set to false, will be set true if calcCircle() is used at least once
double calcDeltapT()
calculates dpt-value (dpt= difference in transverse momentum of 2 subsets of the hits),...
void resetMagneticField(const double magneticFieldStrength=1.5)
Overrides Constructor-Setup for magnetic field.
double deltaDistCircleCenter()
legacy - compatibility for old cases
void calcCircle()
calculates an estimation of circleCenter position including an estimation for the circle radius
~FourHitFilters()
Destructor.
ThreeHitFilters m_threeHitFilter
instance of ThreeHitFilters-class used for some internal calculations
B2Vector3D m_centerBCD
estimation of a circleCenterPosition using hitsBA, C & D
B2Vector3D m_hitC
innerCenter hit (position relevant for useful filter calculation) used for the filter calculation
B2Vector3D m_hitD
inner hit (position relevant for useful filter calculation) used for the filter calculation
B2Vector3D m_hitA
outer hit (position relevant for useful filter calculation) used for the filter calculation
void resetValues(const B2Vector3D &outer, const B2Vector3D &outerCenter, const B2Vector3D &innerCenter, const B2Vector3D &inner)
Overrides Constructor-Setup.
The class 'ThreeHitFilters' bundles filter methods using 3 hits which are stored in B2Vector3Ds.
void calcCircleCenter(const B2Vector3D &a, const B2Vector3D &b, const B2Vector3D &c, B2Vector3D &circleCenter)
calculates an estimation of circleCenter position, result is written into the 4th input-parameter
double calcRadius(const B2Vector3D &a, const B2Vector3D &b, const B2Vector3D &c, const B2Vector3D &circleCenter)
calculates an estimation of the radius of given hits and existing estimation of circleCenter,...
void resetMagneticField(const double magneticFieldStrength=1.5)
Overrides Constructor-Setup for magnetic field.
Abstract base class for different kinds of events.