Belle II Software development
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
16namespace 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
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.