Belle II Software development
VXDMomentumEstimation< ClusterType > Class Template Reference

Class doing the momentum estimation from dEdX for SVDClusters and PXDClusters. More...

#include <VXDMomentumEstimation.h>

Classes

struct  CorrectionFitParameters
 Struct holding the parameters of the correction function to map them median of the estimation function to 0. More...
 
struct  FitParameters
 Struct holding the parameters of the estimation function which maps dEdX to p. More...
 

Static Public Member Functions

static const VXDMomentumEstimationgetInstance ()
 Use this class as a singleton.
 
static double estimateQOverP (const ClusterType &cluster, const ROOT::Math::XYZVector &momentum, const ROOT::Math::XYZVector &position, short charge, const FitParameters &fitParameters, const CorrectionFitParameters &correctionFitParameters)
 Main function: Estimate p over q for the given cluster and the path length calculated using the given tracking seeds with the fit parameters.
 
static double estimateQOverPWithThickness (const ClusterType &cluster, short charge, const FitParameters &fitParameters, const CorrectionFitParameters &correctionFitParameters)
 Main function: Estimate p over q for the given cluster and the thickness of the cluster with the fit parameters.
 
static double convertDEDXToMomentum (double dEdX, const FitParameters &fitParameters, const CorrectionFitParameters &correctionFitParameters)
 After calculating dEdX we need to map this to p using a predefined function and parameters that were extracted with a fit to mc data.
 

Private Member Functions

 VXDMomentumEstimation ()
 Do not copy or create.
 
 VXDMomentumEstimation (const VXDMomentumEstimation &)
 Do not copy or create.
 
VXDMomentumEstimationoperator= (const VXDMomentumEstimation &)
 Do not copy or create.
 

Detailed Description

template<class ClusterType>
class Belle2::VXDMomentumEstimation< ClusterType >

Class doing the momentum estimation from dEdX for SVDClusters and PXDClusters.

It uses a precompiled estimator function (given by the parameters FitParameters and CorrectionFitParameters and calculates the momentum estimation based on dEdX that get compiled from the ADC count and the path length of each given hit. For calculating the path length, some helix parameter must be used, than can for example come from the track fit.

Template class for SVD or PXD clusters.

Definition at line 27 of file VXDMomentumEstimation.h.

Constructor & Destructor Documentation

◆ VXDMomentumEstimation()

template<class ClusterType>
VXDMomentumEstimation ( )
inlineprivate

Do not copy or create.

Definition at line 31 of file VXDMomentumEstimation.h.

31{ }

Member Function Documentation

◆ convertDEDXToMomentum()

template<class ClusterType>
static double convertDEDXToMomentum ( double dEdX,
const FitParameters & fitParameters,
const CorrectionFitParameters & correctionFitParameters )
inlinestatic

After calculating dEdX we need to map this to p using a predefined function and parameters that were extracted with a fit to mc data.

Definition at line 102 of file VXDMomentumEstimation.h.

104 {
105 const double firstPart = fitParameters.aE / (dEdX - fitParameters.bE) / (dEdX - fitParameters.bE);
106 const double lastPart = fitParameters.cE + fitParameters.dE * dEdX;
107 const double estimation = firstPart + lastPart;
108
109 const double quadPart = correctionFitParameters.aM * estimation * estimation;
110 const double linearPart = correctionFitParameters.bM * estimation;
111 const double constantPart = correctionFitParameters.cM;
112 const double cubicPart = correctionFitParameters.dM * estimation * estimation * estimation;
113 const double mediumCorrection = cubicPart + quadPart + linearPart + constantPart;
114
115 const double estimationWithMediumCalibration = estimation - mediumCorrection;
116 return estimationWithMediumCalibration;
117 }

◆ estimateQOverP()

template<class ClusterType>
static double estimateQOverP ( const ClusterType & cluster,
const ROOT::Math::XYZVector & momentum,
const ROOT::Math::XYZVector & position,
short charge,
const FitParameters & fitParameters,
const CorrectionFitParameters & correctionFitParameters )
inlinestatic

Main function: Estimate p over q for the given cluster and the path length calculated using the given tracking seeds with the fit parameters.

Definition at line 72 of file VXDMomentumEstimation.h.

76 {
77 const VXDMomentumEstimationTools<ClusterType>& tools = VXDMomentumEstimationTools<ClusterType>::getInstance();
78
79 const double dEdX = tools.getDEDX(cluster, momentum, position, charge);
80 const double momentumEstimation = convertDEDXToMomentum(dEdX, fitParameters, correctionFitParameters);
81 const double QOverP = charge / momentumEstimation;
82
83 return QOverP;
84 }

◆ estimateQOverPWithThickness()

template<class ClusterType>
static double estimateQOverPWithThickness ( const ClusterType & cluster,
short charge,
const FitParameters & fitParameters,
const CorrectionFitParameters & correctionFitParameters )
inlinestatic

Main function: Estimate p over q for the given cluster and the thickness of the cluster with the fit parameters.

Definition at line 88 of file VXDMomentumEstimation.h.

90 {
91 const VXDMomentumEstimationTools<ClusterType>& tools = VXDMomentumEstimationTools<ClusterType>::getInstance();
92
93 const double dEdX = tools.getDEDXWithThickness(cluster);
94 const double momentumEstimation = convertDEDXToMomentum(dEdX, fitParameters, correctionFitParameters);
95 const double QOverP = charge / momentumEstimation;
96
97 return QOverP;
98 }

◆ getInstance()

template<class ClusterType>
static const VXDMomentumEstimation & getInstance ( )
inlinestatic

Use this class as a singleton.

Definition at line 64 of file VXDMomentumEstimation.h.

65 {
66 static VXDMomentumEstimation instance;
67 return instance;
68 }

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