Belle II Software development
PrecisionUtil Class Reference

Utility collection for functions to determine a curvature precision such at a hough box covers a certain percentage of hits in the legendre algorithms. More...

#include <PrecisionUtil.h>

Public Types

using PrecisionFunction = std::function< double(double)>
 Function type which is used for resolution calculations (resolution=f(curvature)) Takes a curvature value and returns a width in the curvature direction such that a certain amount of hits is covered by the box in the hough space.
 

Static Public Member Functions

static constexpr int getLookupGridLevel ()
 Returns desired deepness of the trigonometrical lookup table. Used as template parameter for the TrigonometricalLookupTable<> class.
 
static double convertRhoToPt (double curv)
 convert curvature (one of the axis in Legendre phase-space) to Pt (in GeV)
 
static double getBasicCurvPrecision (double curv)
 Basic function to estimate the curvature precision Takes a curvature value and returns a width that.
 
static double getOriginCurvPrecision (double curv)
 Function which estimates desired curvature resolution of quadtree node in the given pt region parameters of the function are taken from the fit:
 
static double getNonOriginCurvPrecision (double curv)
 Function which estimates desired curvature resolution of quadtree node in the given pt region parameters of the function are taken from the fit:
 

Static Public Attributes

static constexpr const int c_lookupGridLevel = 16
 Deepness of the trigonometrical lookup table.
 

Detailed Description

Utility collection for functions to determine a curvature precision such at a hough box covers a certain percentage of hits in the legendre algorithms.

Definition at line 25 of file PrecisionUtil.h.

Member Typedef Documentation

◆ PrecisionFunction

using PrecisionFunction = std::function<double(double)>

Function type which is used for resolution calculations (resolution=f(curvature)) Takes a curvature value and returns a width in the curvature direction such that a certain amount of hits is covered by the box in the hough space.

Definition at line 43 of file PrecisionUtil.h.

Member Function Documentation

◆ convertRhoToPt()

static double convertRhoToPt ( double  curv)
inlinestatic

convert curvature (one of the axis in Legendre phase-space) to Pt (in GeV)

Definition at line 35 of file PrecisionUtil.h.

35{return 1.5 * 0.00299792458 / fabs(curv); };

◆ getBasicCurvPrecision()

static double getBasicCurvPrecision ( double  curv)
inlinestatic

Basic function to estimate the curvature precision Takes a curvature value and returns a width that.

Definition at line 49 of file PrecisionUtil.h.

50 {
51 // 0.3 is the width of the Legendre phase-space in curvatures direction.
52 return 0.3 / pow(2, 16);
53 }

◆ getLookupGridLevel()

static constexpr int getLookupGridLevel ( )
inlinestaticconstexpr

Returns desired deepness of the trigonometrical lookup table. Used as template parameter for the TrigonometricalLookupTable<> class.

Definition at line 29 of file PrecisionUtil.h.

29{return c_lookupGridLevel; };
static constexpr const int c_lookupGridLevel
Deepness of the trigonometrical lookup table.
Definition: PrecisionUtil.h:32

◆ getNonOriginCurvPrecision()

static double getNonOriginCurvPrecision ( double  curv)
inlinestatic

Function which estimates desired curvature resolution of quadtree node in the given pt region parameters of the function are taken from the fit:

10000 of pion tracks were generated with particle gun with impact parameter in XY plane of 3 cm (pt=[0.05;2.0]GeV, phi=[-2pi;2pi]) by resolution we imply size of the quadtree node which can cover 80% of the hits in Legendre phase-space resolution was estimated in bins of pt with step of 200MeV distribution of resolutions was fitted with function exp(a+b*pt)+c (this function has been chosen as it can describe the shape of the distribution) this function takes into account smearing of the track in Legendre space due to non-prompt production and energy losses

Definition at line 90 of file PrecisionUtil.h.

91 {
92 // Convert to pt making the cut-off of that has been here before
93 double pt = convertRhoToPt(curv);
94 if (not(pt <= 3.0)) {
95 pt = 3.0;
96 }
97
98 double precision{};
99 if (pt < 0.36) {
100 precision = exp(-0.356965 - 0.00186066 * pt) - 0.697526;
101 } else {
102 precision = exp(-0.357335 + 0.000438872 * pt) - 0.697786;
103 }
104
105 B2DEBUG(25, "non origin: precision = " << precision << "; curv = " << curv);
106 return precision;
107 }
static double convertRhoToPt(double curv)
convert curvature (one of the axis in Legendre phase-space) to Pt (in GeV)
Definition: PrecisionUtil.h:35

◆ getOriginCurvPrecision()

static double getOriginCurvPrecision ( double  curv)
inlinestatic

Function which estimates desired curvature resolution of quadtree node in the given pt region parameters of the function are taken from the fit:

10000 of pion tracks were generated with particle gun produced at (0,0,0) (IP) with pt=[0.05;2.0]GeV, phi=[-2pi;2pi] by resolution we imply size of the quadtree node which can cover 80% of the hits in Legendre phase-space resolution was estimated in bins of pt with step of 200MeV distribution of resolutions was fitted with function exp(a+b*pt)+c+d*pt (this function has been chosen as it can describe the shape of the distribution) this function takes into account smearing of the track in Legendre space due to energy losses

Definition at line 65 of file PrecisionUtil.h.

66 {
67 // Convert to pt making the cut-off of that has been here before
68 double pt = convertRhoToPt(curv);
69 if (not(pt <= 3.0)) {
70 pt = 3.0;
71 }
72
73 double precision = exp(-16.1987 * pt - 5.96206) + 0.000190872 - 0.0000739319 * pt;
74
75 /* 10.5 - 0.24 * exp(-4.13118 * convertRhoToPt(curv) + 2.74); */
76 B2DEBUG(25, "origin: precision = " << precision << "; curv = " << curv);
77 return precision;
78 }

Member Data Documentation

◆ c_lookupGridLevel

constexpr const int c_lookupGridLevel = 16
staticconstexpr

Deepness of the trigonometrical lookup table.

Definition at line 32 of file PrecisionUtil.h.


The documentation for this class was generated from the following file: