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

dE/dx wire gain calibration constants More...

#include <CDCDedx1DCell.h>

Inheritance diagram for CDCDedx1DCell:
Collaboration diagram for CDCDedx1DCell:

Public Member Functions

 CDCDedx1DCell ()
 Default constructor.
 
 CDCDedx1DCell (short version, const std::vector< std::vector< double >> &onedgains)
 Constructor.
 
 ~CDCDedx1DCell ()
 Destructor.
 
CDCDedx1DCelloperator*= (CDCDedx1DCell const &rhs)
 Combine payloads.
 
short getVersion () const
 Get the version for the 1D cleanup.
 
unsigned int getSize () const
 Get the number of bins for the entrance angle correction.
 
unsigned int getNBins (unsigned int layer) const
 Get the number of bins for the entrance angle correction.
 
double getMean (unsigned int layer, unsigned int bin) const
 Return dE/dx mean value for the given bin. More...
 
void setMean (unsigned int layer, unsigned int bin, double value)
 Reset dE/dx mean value for the given bin. More...
 
double getMean (unsigned int layer, double enta) const
 Return dE/dx mean value for given entrance angle. More...
 

Private Member Functions

 ClassDef (CDCDedx1DCell, 5)
 ClassDef.
 

Private Attributes

short m_version
 dE/dx cleanup correction versus entrance angle may be different for different layers, so store as a vector of vectors keep a version number to identify which layers are valid More...
 
std::vector< std::vector< double > > m_onedgains
 dE/dx means in entrance angle bins
 

Detailed Description

dE/dx wire gain calibration constants

Definition at line 27 of file CDCDedx1DCell.h.

Member Function Documentation

◆ getMean() [1/2]

double getMean ( unsigned int  layer,
double  enta 
) const
inline

Return dE/dx mean value for given entrance angle.

Parameters
layercontinuous layer number
entaentrance angle (-pi/2 to pi/2)

Definition at line 134 of file CDCDedx1DCell.h.

135  {
136  if (layer > 56) {
137  B2ERROR("No such layer!");
138  return 0;
139  }
140 
141  int mylayer = 0;
142  if (layer >= 8 && m_onedgains.size() == 2) mylayer = 1;
143  else if (m_onedgains.size() == 56) mylayer = layer;
144 
145  double piby2 = TMath::Pi() / 2.0;
146  // assume rotational symmetry
147  if (enta < -piby2) enta += piby2;
148  if (enta > piby2) enta -= piby2;
149 
150  double binsize = (m_onedgains[mylayer].size() != 0) ? 2.0 * piby2 / m_onedgains[mylayer].size() : 0.0;
151  int bin = (binsize != 0.0) ? std::floor((enta + piby2) / binsize) : -1;
152  if (bin < 0 || (unsigned)bin >= m_onedgains[mylayer].size()) {
153  B2WARNING("Problem with CDC dE/dx 1D binning!");
154  return 1.0;
155  }
156 
157  return m_onedgains[mylayer][bin];
158  };
std::vector< std::vector< double > > m_onedgains
dE/dx means in entrance angle bins

◆ getMean() [2/2]

double getMean ( unsigned int  layer,
unsigned int  bin 
) const
inline

Return dE/dx mean value for the given bin.

Parameters
layeris layer number between 0-55
binis enta bin number

Definition at line 104 of file CDCDedx1DCell.h.

◆ setMean()

void setMean ( unsigned int  layer,
unsigned int  bin,
double  value 
)
inline

Reset dE/dx mean value for the given bin.

Parameters
layeris layer number between 0-55
binis enta bin number
valueis constant for requested entabin and layer

Definition at line 120 of file CDCDedx1DCell.h.

Member Data Documentation

◆ m_version

short m_version
private

dE/dx cleanup correction versus entrance angle may be different for different layers, so store as a vector of vectors keep a version number to identify which layers are valid

version number for 1D cleanup correction

Definition at line 164 of file CDCDedx1DCell.h.


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