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...
 

Public Member Functions

double estimateQOverP (const ClusterType &cluster, const ROOT::Math::XYZVector &momentum, const ROOT::Math::XYZVector &position, short charge, const FitParameters &fitParameters, const CorrectionFitParameters &correctionFitParameters) const
 Main function: Estimate p over q for the given cluster and the path length calculated using the given tracking seeds with the fit parameters.
 
double estimateQOverPWithThickness (const ClusterType &cluster, short charge, const FitParameters &fitParameters, const CorrectionFitParameters &correctionFitParameters) const
 Main function: Estimate p over q for the given cluster and the thickness of the cluster with the fit parameters.
 
double convertDEDXToMomentum (double dEdX, const FitParameters &fitParameters, const CorrectionFitParameters &correctionFitParameters) const
 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.
 

Static Public Member Functions

static const VXDMomentumEstimationgetInstance ()
 Use this class as a singleton.
 

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()

VXDMomentumEstimation ( )
inlineprivate

Do not copy or create.

Definition at line 31 of file VXDMomentumEstimation.h.

31{ }

Member Function Documentation

◆ convertDEDXToMomentum()

double convertDEDXToMomentum ( double  dEdX,
const FitParameters fitParameters,
const CorrectionFitParameters correctionFitParameters 
) const
inline

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 101 of file VXDMomentumEstimation.h.

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

◆ estimateQOverP()

double estimateQOverP ( const ClusterType &  cluster,
const ROOT::Math::XYZVector &  momentum,
const ROOT::Math::XYZVector &  position,
short  charge,
const FitParameters fitParameters,
const CorrectionFitParameters correctionFitParameters 
) const
inline

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.

75 {
76 const VXDMomentumEstimationTools<ClusterType>& tools = VXDMomentumEstimationTools<ClusterType>::getInstance();
77
78 const double dEdX = tools.getDEDX(cluster, momentum, position, charge);
79 const double momentumEstimation = convertDEDXToMomentum(dEdX, fitParameters, correctionFitParameters);
80 const double QOverP = charge / momentumEstimation;
81
82 return QOverP;
83 }
static const VXDMomentumEstimationTools & getInstance()
Use this class as singleton.
double convertDEDXToMomentum(double dEdX, const FitParameters &fitParameters, const CorrectionFitParameters &correctionFitParameters) const
After calculating dEdX we need to map this to p using a predefined function and parameters that were ...
double charge(int pdgCode)
Returns electric charge of a particle with given pdg code.
Definition: EvtPDLUtil.cc:44

◆ estimateQOverPWithThickness()

double estimateQOverPWithThickness ( const ClusterType &  cluster,
short  charge,
const FitParameters fitParameters,
const CorrectionFitParameters correctionFitParameters 
) const
inline

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

Definition at line 87 of file VXDMomentumEstimation.h.

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

◆ getInstance()

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 }
VXDMomentumEstimation()
Do not copy or create.

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