Belle II Software  release-05-01-25
FourHitFilters.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Jakob Lettenbichler *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 
13 #include <TVector3.h>
14 #include "tracking/vxdCaTracking/ThreeHitFilters.h"
15 
16 
17 
18 namespace Belle2 {
25  class FourHitFilters {
26 
27  public:
28 
31  m_radiusABC(0.),
32  m_radiusBCD(0.),
34 
36  FourHitFilters(TVector3& outer, TVector3& outerCenter, TVector3& innerCenter, TVector3& inner, double magneticFieldStrength = 1.5):
37  m_hitA(outer),
38  m_hitB(outerCenter),
39  m_hitC(innerCenter),
40  m_hitD(inner),
41  m_radiusABC(0.),
42  m_radiusBCD(0.),
43  m_circleCalculated(false) { m_threeHitFilter.resetMagneticField(magneticFieldStrength); }
44 
45 
47  ~FourHitFilters() {}
48 
50  void resetValues(TVector3& outer, TVector3& outerCenter, TVector3& innerCenter, TVector3& inner)
51  {
52  m_hitA = outer;
53  m_hitB = outerCenter;
54  m_hitC = innerCenter;
55  m_hitD = inner;
56  m_radiusABC = 0.;
57  m_radiusBCD = 0.;
59  }
60 
62  void resetMagneticField(double magneticFieldStrength = 1.5) { m_threeHitFilter.resetMagneticField(magneticFieldStrength); }
63 
64 
66  double calcDeltapT();
67 
68 
70  double deltapT() { return calcDeltapT(); }
71 
72 
75 
76 
79  protected:
80 
82  void calcCircle()
83  {
88 
89  m_circleCalculated = true;
90  }
91 
92  TVector3 m_hitA;
93  TVector3 m_hitB;
94  TVector3 m_hitC;
95  TVector3 m_hitD;
96  TVector3 m_centerABC;
97  TVector3 m_centerBCD;
98  double m_radiusABC;
99  double m_radiusBCD;
102  }; //end class FourHitFilters
104 } //end namespace Belle2
Belle2::FourHitFilters::FourHitFilters
FourHitFilters()
Empty constructor.
Definition: FourHitFilters.h:38
Belle2::FourHitFilters::m_threeHitFilter
ThreeHitFilters m_threeHitFilter
instance of ThreeHitFilters-class used for some internal calculations
Definition: FourHitFilters.h:108
Belle2::ThreeHitFilters::calcRadius
double calcRadius(TVector3 &a, TVector3 &b, TVector3 &c, TVector3 &circleCenter)
calculates an estimation of the radius of given hits and existing estimation of circleCenter,...
Definition: ThreeHitFilters.h:291
Belle2::FourHitFilters::m_centerABC
TVector3 m_centerABC
estimation of a circleCenterPosition using hits A, B & C
Definition: FourHitFilters.h:104
Belle2::FourHitFilters::deltapT
double deltapT()
legacy - compatibility for old cases
Definition: FourHitFilters.h:78
Belle2::FourHitFilters::m_centerBCD
TVector3 m_centerBCD
estimation of a circleCenterPosition using hitsBA, C & D
Definition: FourHitFilters.h:105
Belle2::FourHitFilters::resetValues
void resetValues(TVector3 &outer, TVector3 &outerCenter, TVector3 &innerCenter, TVector3 &inner)
Overrides Constructor-Setup.
Definition: FourHitFilters.h:58
Belle2::FourHitFilters::m_hitC
TVector3 m_hitC
innerCenter hit (position relevant for useful filter calculation) used for the filter calculation
Definition: FourHitFilters.h:102
Belle2::FourHitFilters::m_radiusABC
double m_radiusABC
estimation of the radius of the circle using hits A, B & C
Definition: FourHitFilters.h:106
Belle2::FourHitFilters::m_radiusBCD
double m_radiusBCD
estimation of a radius of the circle using hitsBA, C & D
Definition: FourHitFilters.h:107
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::FourHitFilters::~FourHitFilters
~FourHitFilters()
Destructor.
Definition: FourHitFilters.h:55
Belle2::FourHitFilters::calcDeltaDistCircleCenter
double calcDeltaDistCircleCenter()
calculates ddist2IP-value directly (ddist2IP= difference in magnitude of the points of closest approa...
Definition: FourHitFilters.cc:29
Belle2::FourHitFilters::m_hitB
TVector3 m_hitB
outerCenter hit (position relevant for useful filter calculation) used for the filter calculation
Definition: FourHitFilters.h:101
Belle2::FourHitFilters::m_circleCalculated
bool m_circleCalculated
initially set to false, will be set true if calcCircle() is used at least once
Definition: FourHitFilters.h:109
Belle2::FourHitFilters::m_hitD
TVector3 m_hitD
inner hit (position relevant for useful filter calculation) used for the filter calculation
Definition: FourHitFilters.h:103
Belle2::FourHitFilters::resetMagneticField
void resetMagneticField(double magneticFieldStrength=1.5)
Overrides Constructor-Setup for magnetic field.
Definition: FourHitFilters.h:70
Belle2::FourHitFilters::deltaDistCircleCenter
double deltaDistCircleCenter()
legacy - compatibility for old cases
Definition: FourHitFilters.h:86
Belle2::FourHitFilters::m_hitA
TVector3 m_hitA
outer hit (position relevant for useful filter calculation) used for the filter calculation
Definition: FourHitFilters.h:100
Belle2::ThreeHitFilters::resetMagneticField
void resetMagneticField(double magneticFieldStrength=1.5)
Overrides Constructor-Setup for magnetic field.
Definition: ThreeHitFilters.h:98
Belle2::ThreeHitFilters::calcCircleCenter
void calcCircleCenter(TVector3 &a, TVector3 &b, TVector3 &c, TVector3 &circleCenter)
calculates an estimation of circleCenter position, result is written into the 4th input-parameter
Definition: ThreeHitFilters.h:300
Belle2::ThreeHitFilters
The class 'ThreeHitFilters' bundles filter methods using 3 hits which are stored in TVector3s.
Definition: ThreeHitFilters.h:33
Belle2::FourHitFilters::calcDeltapT
double calcDeltapT()
calculates dpt-value (dpt= difference in transverse momentum of 2 subsets of the hits),...
Definition: FourHitFilters.cc:20
Belle2::FourHitFilters::calcCircle
void calcCircle()
calculates an estimation of circleCenter position including an estimation for the circle radius
Definition: FourHitFilters.h:90