Belle II Software development
CDCDedxMeanPred Class Reference

Class to hold the prediction of mean as a function of beta-gamma (bg) More...

#include <CDCDedxMeanPred.h>

Public Member Functions

void setParameters (std::string infile)
 set the parameters from file
 
void setParameters ()
 set the parameters
 
void printParameters (std::string infile)
 write the parameters in file
 
double getMean (double bg)
 Return the predicted mean value as a function of beta-gamma (bg)
 
double getCurvePars (int i)
 get the curve parameters
 
void setCurvePars (int i, double val)
 set the curve parameters
 

Private Attributes

double m_meanpars [15]
 parameters for beta-gamma curve
 
const DBObjPtr< CDCDedxMeanParsm_DBMeanPars
 db object for dE/dx mean parameters
 

Detailed Description

Class to hold the prediction of mean as a function of beta-gamma (bg)

Definition at line 31 of file CDCDedxMeanPred.h.

Member Function Documentation

◆ getCurvePars()

double getCurvePars ( int  i)
inline

get the curve parameters

Definition at line 58 of file CDCDedxMeanPred.h.

58{ return m_meanpars[i]; };
double m_meanpars[15]
parameters for beta-gamma curve

◆ getMean()

double getMean ( double  bg)

Return the predicted mean value as a function of beta-gamma (bg)

Definition at line 61 of file CDCDedxMeanPred.cc.

62{
63
64 // define the section of the mean to use
65 double A = 0, B = 0, C = 0;
66
67 if (bg < 4.5) A = 1;
68 else if (bg < 10) B = 1;
69 else C = 1;
70
71 double x[1]; x[0] = bg;
72 double parsA[8];
73 double parsB[5];
74 double parsC[5];
75
76 parsA[0] = 1; parsB[0] = 2; parsC[0] = 3;
77 for (int i = 0; i < 15; ++i) {
78 if (i < 7) parsA[i + 1] = m_meanpars[i];
79 else if (i < 11) parsB[i % 7 + 1] = m_meanpars[i];
80 else parsC[i % 11 + 1] = m_meanpars[i];
81 }
82
83 // calculate dE/dx from the Bethe-Bloch mean
85 double partA = gc.meanCurve(x, std::vector<double>(parsA, parsA + 8));
86 double partB = gc.meanCurve(x, std::vector<double>(parsB, parsB + 5));
87 double partC = gc.meanCurve(x, std::vector<double>(parsC, parsC + 5));
88
89 return (A * partA + B * partB + C * partC);
90}
Class to hold the beta-gamma (bg) mean function.
double meanCurve(double *x, const std::vector< double > &par) const
calculate the predicted mean value as a function of beta-gamma (bg) this is done with a different fun...

◆ printParameters()

void printParameters ( std::string  infile)

write the parameters in file

Definition at line 49 of file CDCDedxMeanPred.cc.

50{
51
52 B2INFO("\tCDCDedxMeanPred: Printing parameters to file --> " << outfile.c_str());
53
54 // write out the parameters to file
55 std::ofstream fout(outfile.c_str());
56
57 for (int i = 1; i < 16; ++i) fout << i << "\t" << m_meanpars[i - 1] << std::endl;
58 fout.close();
59}

◆ setCurvePars()

void setCurvePars ( int  i,
double  val 
)
inline

set the curve parameters

Definition at line 63 of file CDCDedxMeanPred.h.

63{ m_meanpars[i] = val; };

◆ setParameters() [1/2]

void setParameters ( )

set the parameters

Definition at line 13 of file CDCDedxMeanPred.cc.

14{
15
16 // make sure the resolution parameters are reasonable
17 if (!m_DBMeanPars || m_DBMeanPars->getSize() == 0)
18 B2FATAL("No dE/dx mean parameters!");
19
20 std::vector<double> meanpar;
21 meanpar = m_DBMeanPars->getMeanPars();
22
23 for (int i = 0; i < 15; ++i)
24 m_meanpars[i] = meanpar[i];
25}
const DBObjPtr< CDCDedxMeanPars > m_DBMeanPars
db object for dE/dx mean parameters

◆ setParameters() [2/2]

void setParameters ( std::string  infile)

set the parameters from file

Definition at line 28 of file CDCDedxMeanPred.cc.

29{
30
31 B2INFO("\n\tWidgetParameterization: Using parameters from file --> " << infile);
32
33 std::ifstream fin;
34 fin.open(infile.c_str());
35
36 if (!fin.good()) B2FATAL("\tWARNING: CANNOT FIND" << infile);
37
38 int par;
39
40 B2INFO("\t --> Curve parameters");
41 for (int i = 0; i < 15; ++i) {
42 fin >> par >> m_meanpars[i];
43 B2INFO("\t\t (" << i << ")" << m_meanpars[i]);
44 }
45
46 fin.close();
47}

Member Data Documentation

◆ m_DBMeanPars

const DBObjPtr<CDCDedxMeanPars> m_DBMeanPars
private

db object for dE/dx mean parameters

Definition at line 69 of file CDCDedxMeanPred.h.

◆ m_meanpars

double m_meanpars[15]
private

parameters for beta-gamma curve

Definition at line 67 of file CDCDedxMeanPred.h.


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