dE/dx wire gain calibration constants
More...
#include <CDCDedx2DCell.h>
|
| CDCDedx2DCell () |
| Default constructor.
|
|
| CDCDedx2DCell (short version, const std::vector< TH2F > &twodgains) |
| Constructor.
|
|
| ~CDCDedx2DCell () |
| Destructor.
|
|
CDCDedx2DCell & | operator*= (CDCDedx2DCell const &rhs) |
| Combine payloads.
|
|
short | getVersion () const |
| Get the version for the 2D correction.
|
|
unsigned int | getSize () const |
| Get the number of histograms for the 2D correction.
|
|
const TH2F * | getHist (int layer) const |
| Get the 2D histogram for the correction for this layer.
|
|
double | getMean (unsigned int layer, int dbin, int ebin) const |
| Return dE/dx mean value for the given bin.
|
|
double | getMean (unsigned int layer, double doca, double enta) const |
| Return dE/dx mean value for given DOCA and entrance angle.
|
|
|
short | m_version |
| dE/dx gains versus DOCA and entrance angle may be different for different layers, so store as a vector keep a version number to identify which layers are valid
|
|
std::vector< TH2F > | m_twodgains |
| 2D histograms of doca/enta gains, layer dependent
|
|
dE/dx wire gain calibration constants
Definition at line 26 of file CDCDedx2DCell.h.
◆ CDCDedx2DCell() [1/2]
Default constructor.
Definition at line 33 of file CDCDedx2DCell.h.
short m_version
dE/dx gains versus DOCA and entrance angle may be different for different layers, so store as a vecto...
std::vector< TH2F > m_twodgains
2D histograms of doca/enta gains, layer dependent
◆ CDCDedx2DCell() [2/2]
CDCDedx2DCell |
( |
short |
version, |
|
|
const std::vector< TH2F > & |
twodgains |
|
) |
| |
|
inline |
◆ ~CDCDedx2DCell()
◆ getHist()
const TH2F * getHist |
( |
int |
layer | ) |
const |
|
inline |
Get the 2D histogram for the correction for this layer.
Definition at line 72 of file CDCDedx2DCell.h.
73 {
75 B2ERROR("ERROR!");
76 return NULL;
77 }
78
82 else {
83 B2ERROR("ERROR! const histograms NOT found");
84 return NULL;
85 }
88 } else {
89 B2ERROR("ERROR! Something is wrong # of const histograms");
90 return NULL;
91 }
92 return NULL;
93 }
◆ getMean() [1/2]
double getMean |
( |
unsigned int |
layer, |
|
|
double |
doca, |
|
|
double |
enta |
|
) |
| const |
|
inline |
Return dE/dx mean value for given DOCA and entrance angle.
- Parameters
-
layer | continuous layer number |
doca | distance of closest approach |
enta | entrance angle |
Definition at line 114 of file CDCDedx2DCell.h.
115 {
116 if (layer > 56) {
117 B2ERROR("Asking for a CDC layer beyond 56!");
118 return 0;
119 }
120
121 int mylayer = 0;
122 if (layer >= 8 &&
m_twodgains.size() == 2) mylayer = 1;
123 else if (
m_twodgains.size() == 56) mylayer = layer;
124
125
126 if (enta < -3.1416 / 2.0) enta += 3.1416 / 2.0;
127 if (enta > 3.1416 / 2.0) enta -= 3.1416 / 2.0;
128
129
130 double dbinsize =
m_twodgains[mylayer].GetXaxis()->GetBinCenter(2) -
m_twodgains[mylayer].GetXaxis()->GetBinCenter(1);
131 int dbin = std::floor((doca -
m_twodgains[mylayer].GetXaxis()->GetBinLowEdge(1)) / dbinsize) + 1;
132
133 double ebinsize =
m_twodgains[mylayer].GetYaxis()->GetBinCenter(2) -
m_twodgains[mylayer].GetYaxis()->GetBinCenter(1);
134
135 int ebin = std::floor((enta -
m_twodgains[mylayer].GetYaxis()->GetBinLowEdge(1)) / ebinsize) + 1;
136
137 double mean = 1.0;
138 if (dbin > 0 && dbin <=
m_twodgains[mylayer].GetNbinsX() && ebin > 0 && ebin <=
m_twodgains[mylayer].GetNbinsY())
139 mean =
m_twodgains[mylayer].GetBinContent(dbin, ebin);
142 else
143
144 B2WARNING("Problem with 2D CDC dE/dx calibration! " << doca << "\t" << dbin << "\t" << enta << "\t" << ebin);
145
146 return mean;
147 };
◆ getMean() [2/2]
double getMean |
( |
unsigned int |
layer, |
|
|
int |
dbin, |
|
|
int |
ebin |
|
) |
| const |
|
inline |
Return dE/dx mean value for the given bin.
- Parameters
-
layer | layer number |
dbin | doca bin number |
ebin | enta bin number |
Definition at line 100 of file CDCDedx2DCell.h.
101 {
102 int mylayer = 0;
103 if (layer >= 8 &&
m_twodgains.size() == 2) mylayer = 1;
104 else if (
m_twodgains.size() == 56) mylayer = layer;
105
106 return m_twodgains[mylayer].GetBinContent(dbin, ebin);
107 }
◆ getSize()
unsigned int getSize |
( |
| ) |
const |
|
inline |
Get the number of histograms for the 2D correction.
Definition at line 68 of file CDCDedx2DCell.h.
◆ getVersion()
short getVersion |
( |
| ) |
const |
|
inline |
Get the version for the 2D correction.
Definition at line 64 of file CDCDedx2DCell.h.
◆ operator*=()
Combine payloads.
Definition at line 48 of file CDCDedx2DCell.h.
49 {
51 B2WARNING("2D cell gain parameters do not match, cannot merge!");
52 return *this;
53 }
54 for (
unsigned int layer = 0; layer <
getSize(); ++layer) {
55 const TH2F* newhist = rhs.getHist(layer);
56 if (newhist->GetEntries() > 0)
m_twodgains[layer].Multiply(newhist);
57 else B2ERROR("ERROR! constant histograms is empty");
58 }
59 return *this;
60 }
unsigned int getSize() const
Get the number of histograms for the 2D correction.
◆ m_twodgains
std::vector<TH2F> m_twodgains |
|
private |
2D histograms of doca/enta gains, layer dependent
Definition at line 154 of file CDCDedx2DCell.h.
◆ m_version
dE/dx gains versus DOCA and entrance angle may be different for different layers, so store as a vector keep a version number to identify which layers are valid
version number for 2D correction
Definition at line 153 of file CDCDedx2DCell.h.
The documentation for this class was generated from the following file: