Belle II Software  release-08-01-10
SVDPositionErrorFunction Class Reference

class to contain the Cluster Position Error Formulae More...

#include <SVDPositionErrorFunction.h>

Inheritance diagram for SVDPositionErrorFunction:
Collaboration diagram for SVDPositionErrorFunction:

Public Types

typedef double(SVDPositionErrorFunction::* posErrFunction) (double, int) const
 typedef of the return value of the position error function
 

Public Member Functions

double getPositionError (double snr, int size) const
 returns the position error, depending on the cluster SNR and size
 
 SVDPositionErrorFunction ()
 constructor
 
void set_current (int current)
 allows to choose the function version
 
void set_a1 (double a1_1, double a1_2, double a1_3, double a1_4, double a1_5)
 set the a1 cluster size dependent parameters
 
void set_a2 (double a2_1, double a2_2, double a2_3, double a2_4, double a2_5)
 set the a2 cluster size dependent parameters
 
void set_b1 (double b1_1, double b1_2, double b1_3, double b1_4, double b1_5)
 set the b1 cluster size dependent parameters
 
void set_c1 (double c1_1, double c1_2, double c1_3, double c1_4, double c1_5)
 set the c1 cluster size dependent parameters
 
 SVDPositionErrorFunction (const Belle2::SVDPositionErrorFunction &a)
 copy constructor
 
SVDPositionErrorFunctionoperator= (const Belle2::SVDPositionErrorFunction &a)
 operator =
 

Private Member Functions

double v0 (double clSNR, int clSize) const
 v0 implementation More...
 
 ClassDef (SVDPositionErrorFunction, 2)
 Do not stream this, please throw it in the WC.
 

Private Attributes

double m_a1 [maxClusterSize] = {3, 3, 3, 3, 3}
 function parameters & implementations More...
 
double m_a2 [maxClusterSize] = {3, 0, 0, 0, 0}
 size dependent a2-parameter
 
double m_b1 [maxClusterSize] = {0}
 size dependent b1-parameter
 
double m_c1 [maxClusterSize] = {0}
 size dependent c1-parameter
 
int m_current
 current function ID
 

Static Private Attributes

static const int maxClusterSize = 5
 total number of cluster sizes
 
static std::vector< posErrFunctionm_implementations
 vector of functions for position error, we use the m_current
 

Detailed Description

class to contain the Cluster Position Error Formulae

Definition at line 24 of file SVDPositionErrorFunction.h.

Member Function Documentation

◆ v0()

double v0 ( double  clSNR,
int  clSize 
) const
inlineprivate

v0 implementation

Parameters
clSNRcluster SNR
clSizecluster size
Returns
final cluster position error, including scale factor

Definition at line 128 of file SVDPositionErrorFunction.h.

129  {
130 
131  double x = sqrt(clSize) * clSNR;
132 
133  if (clSize > maxClusterSize)
134  clSize = maxClusterSize;
135 
136  double A = m_a1[clSize - 1] / (x + m_a2[clSize - 1]);
137  double B = m_b1[clSize - 1] * x;
138  double C = m_c1[clSize - 1];
139 
140  return sqrt(A * A + B * B + C * C);
141  };
static const int maxClusterSize
total number of cluster sizes
double m_a1[maxClusterSize]
function parameters & implementations
double m_a2[maxClusterSize]
size dependent a2-parameter
double m_c1[maxClusterSize]
size dependent c1-parameter
double m_b1[maxClusterSize]
size dependent b1-parameter
double sqrt(double a)
sqrt for double
Definition: beamHelpers.h:28

Member Data Documentation

◆ m_a1

double m_a1[maxClusterSize] = {3, 3, 3, 3, 3}
private

function parameters & implementations

ID = {0}, rel05: error is the sum in quadrature of A = a1/(x+a2) B = b1 * x C = c1 with x = S_cl / N_cl * sqrt(size) size dependent a1-parameter

Definition at line 118 of file SVDPositionErrorFunction.h.


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