Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
PixelChargeCalibCondData.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
8 
9 
10 #include <stdexcept>
11 #include <sstream>
12 #include <cfloat> //for FLT_MAX
13 
14 
15 
16 using namespace PixelChargeCalib;
17 using InDetDD::enum2uint; //in PixelReadoutDefinitions.h; will use ADL anyway,but make it explicit
18 
19 namespace{
20  const std::out_of_range
21  generateError(const char * functionName, InDetDD::PixelDiodeType type, unsigned int moduleHash, unsigned int FE){
22  std::stringstream error;
23  error << "PixelChargeCalibCondData::"<< functionName << "("<<enum2uint(type,__func__)<< ", " << moduleHash << ", " << FE << "): out of bounds";
24  return std::out_of_range(error.str());
25  }
26  const std::out_of_range
27  generateError(const char * functionName, unsigned int moduleHash, unsigned int FE, unsigned int val){
28  std::stringstream error;
29  error << "PixelChargeCalibCondData::"<< functionName << "(" << moduleHash << ", " << FE << ", "<< val << "): out of bounds";
30  return std::out_of_range(error.str());
31  }
32  const std::out_of_range
33  generateError(const char * functionName, unsigned int moduleHash, unsigned int FE){
34  std::stringstream error;
35  error << "PixelChargeCalibCondData::"<< functionName << "(" << moduleHash << ", " << FE << "): out of bounds";
36  return std::out_of_range(error.str());
37  }
38  const std::out_of_range
39  generateError(const char * functionName, unsigned int moduleHash){
40  std::stringstream error;
41  error << "PixelChargeCalibCondData::"<< functionName << "(" << moduleHash << "): out of bounds";
42  return std::out_of_range(error.str());
43  }
44 }
45 
46 PixelChargeCalibCondData::PixelChargeCalibCondData(std::size_t max_module_hash) : m_sizeOfHashVector(max_module_hash){
47  //nop
48 }
49 
50 void
52  //calibration strategy
53  setCalibrationStrategy(moduleHash, b.calibrationType);
54  // Normal pixel
55  setThresholds(InDetDD::PixelDiodeType::NORMAL, moduleHash, b.threshold);
58  setTotResolutions(moduleHash, b.totRes);
59  // Long pixel
60  setThresholds(InDetDD::PixelDiodeType::LONG, moduleHash, b.thresholdLong);
63  // Ganged/large pixel
64  setThresholds(InDetDD::PixelDiodeType::GANGED, moduleHash, b.thresholdGanged);
65  setLegacyFitParameters(InDetDD::PixelDiodeType::GANGED, moduleHash, b.paramsGanged);
67 }
68 
69 void
70 PixelChargeCalibCondData::setAllFromConfigData(unsigned int moduleHash, const PixelModuleData * configData, const std::pair<int, int> &becLayer, unsigned int numFE){
71  const auto & [barrel_ec, layer] = becLayer;
72  for (size_t i{}; i != s_NPixelDiodes; ++i) {
73  const auto t = static_cast<InDetDD::PixelDiodeType>(i);
74  const Thresholds thresholds{configData->getDefaultAnalogThreshold(barrel_ec, layer), configData->getDefaultAnalogThresholdSigma(barrel_ec, layer),
75  configData->getDefaultAnalogThresholdNoise(barrel_ec, layer), configData->getDefaultInTimeThreshold(barrel_ec, layer)};
76  setThresholds(t, moduleHash, std::vector<Thresholds>(numFE, thresholds));
77  //
78  const LegacyFitParameters defaultParams{configData->getDefaultQ2TotA(), configData->getDefaultQ2TotE(), configData->getDefaultQ2TotC()};
79  setLegacyFitParameters(t, moduleHash, std::vector<LegacyFitParameters>(numFE, defaultParams));
80  //
81  const auto zeroLinFit = PixelChargeCalib::LinearFitParameters();
82  setLinearFitParameters(t, moduleHash, std::vector<PixelChargeCalib::LinearFitParameters>(numFE, zeroLinFit));
83  }
84  const auto zeroResolution = PixelChargeCalib::Resolutions();
85  setTotResolutions(moduleHash, std::vector<PixelChargeCalib::Resolutions>(numFE, zeroResolution));
86 }
87 
88 void
89 PixelChargeCalibCondData::setThresholds(InDetDD::PixelDiodeType type, unsigned int moduleHash, const std::vector<PixelChargeCalib::Thresholds> & thresholds){
90  if (moduleHash >= m_sizeOfHashVector) throw generateError(__func__, moduleHash);
91  auto & hashIndexedVector = m_thresholds[enum2uint(type,__func__)];
92  if (hashIndexedVector.size()<=moduleHash){
93  hashIndexedVector.resize(m_sizeOfHashVector);
94  }
95  hashIndexedVector[moduleHash] = thresholds;
96 }
97 
99 PixelChargeCalibCondData::getThresholds(InDetDD::PixelDiodeType type, unsigned int moduleHash, unsigned int FE) const{
100  auto idx = enum2uint(type,__func__);
101  const auto & hashIndexedVector = m_thresholds[idx];
102  const auto &feIndexedVector = hashIndexedVector.at(moduleHash);
103  if (FE < feIndexedVector.size()) {
104  return feIndexedVector[FE];
105  }
106  throw generateError(__func__, type, moduleHash, FE);
107 }
108 
109 void
110 PixelChargeCalibCondData::setLegacyFitParameters(InDetDD::PixelDiodeType type, unsigned int moduleHash, const std::vector<PixelChargeCalib::LegacyFitParameters> &parameters){
111  if (moduleHash >= m_sizeOfHashVector) throw generateError(__func__, moduleHash);
112  auto & thisVector = m_legacyFit.at(enum2uint(type,__func__));
113  if (thisVector.size()<=moduleHash){
114  thisVector.resize(m_sizeOfHashVector);
115  }
116  thisVector[moduleHash] = parameters;
117 }
118 
120 PixelChargeCalibCondData::getLegacyFitParameters(InDetDD::PixelDiodeType type, unsigned int moduleHash, unsigned int FE) const{
121  if (moduleHash >= m_sizeOfHashVector) throw generateError(__func__, type, moduleHash, FE);
122  auto idx = enum2uint(type,__func__);
123  const auto & thisVector = m_legacyFit.at(idx);
124  const auto &v = thisVector.at(moduleHash);
125  if (FE < v.size()) {
126  return v[FE];
127  }
128  throw generateError(__func__, type, moduleHash, FE);
129 }
130 
131 void
132 PixelChargeCalibCondData::setLinearFitParameters(InDetDD::PixelDiodeType type, unsigned int moduleHash, const std::vector<PixelChargeCalib::LinearFitParameters> &parameters){
133  if (moduleHash >= m_sizeOfHashVector) throw generateError(__func__, moduleHash);
134  auto & thisVector = m_linFit.at(enum2uint(type,__func__));
135  if ( thisVector.size()<=moduleHash){
136  thisVector.resize(m_sizeOfHashVector);
137  }
138  thisVector[moduleHash] = parameters;
139 }
140 
141 
143 PixelChargeCalibCondData::getLinearFitParameters(InDetDD::PixelDiodeType type, unsigned int moduleHash, unsigned int FE) const{
144  if (type==InDetDD::PixelDiodeType::NONE) throw generateError(__func__, type, moduleHash, FE);
145  auto idx = enum2uint(type,__func__);
146  const auto &typeMap = m_linFit.at(idx);
147  //
148  const auto &linFit = typeMap.at(moduleHash);
149  if (FE < linFit.size()) {
150  return typeMap.at(moduleHash).at(FE);
151  }
152  throw generateError(__func__, type, moduleHash, FE);
153 }
154 
155 void
156 PixelChargeCalibCondData::setTotResolutions(unsigned int moduleHash, const std::vector<PixelChargeCalib::Resolutions> &value){
157  if (moduleHash >= m_sizeOfHashVector) throw generateError(__func__, moduleHash);
158  if (moduleHash >= m_totRes.size()) m_totRes.resize(m_sizeOfHashVector);
159  m_totRes[moduleHash] = value;
160 }
161 
162 float
163 PixelChargeCalibCondData::getTotRes(unsigned int moduleHash, unsigned int FE, float Q) const{
164  Resolutions r;
165  if (const auto &res = m_totRes.at(moduleHash); FE < res.size()) {
166  r = res[FE];
167  } else {
168  throw generateError(__func__, moduleHash, FE);
169  }
170  return r.total(Q);
171 }
172 
173 float
174 PixelChargeCalibCondData::getToT(InDetDD::PixelDiodeType type, unsigned int moduleHash, unsigned int FE, float Q) const{
176  return getToTLUTFEI4(moduleHash, FE, Q);
177  }
178  if (type == InDetDD::PixelDiodeType::NONE) return 0.f;
179  const LegacyFitParameters & legacy = getLegacyFitParameters(type, moduleHash, FE);
180  float tot = legacy.ToT(Q);
181 
182  // Protection for large charge
183  float exth = 1e5f; // the calibration function is analytically connected at threshold exth.
184  if (Q>exth && getCalibrationStrategy(moduleHash)==CalibrationStrategy::RUN3PIX) {
185  const LinearFitParameters & lin = getLinearFitParameters(type, moduleHash, FE);
186  if ( float tot1 = lin.ToT(Q); tot1 != 0.f) return tot1;
187  }
188  return tot;
189 }
190 
191 
192 float
194  const CalibrationStrategy calibStrategy,
195  unsigned int moduleHash,
196  unsigned int FE,
197  float ToT) const{
198 
199  if (calibStrategy == CalibrationStrategy::LUTFEI4) {
200  return getChargeLUTFEI4(moduleHash, FE, ToT);
201  }
202 
203  if (type == InDetDD::PixelDiodeType::NONE) return 0.f;
204  const LegacyFitParameters & legacy = getLegacyFitParameters(type, moduleHash, FE);
205  float charge = legacy.Q(ToT);
206  // Protection for small charge
207  const auto & thresholds = getThresholds(type,moduleHash,FE);
208  const auto analogueThreshold = thresholds.value;
209  if (charge<analogueThreshold && calibStrategy==CalibrationStrategy::RUN3PIX) { charge=analogueThreshold; }
210  // Protection for large charge
211  float exth = 1e5f; // the calibration function is analytically connected at threshold exth.
212  if (charge>exth && calibStrategy==CalibrationStrategy::RUN3PIX) {
213  const LinearFitParameters & lin = getLinearFitParameters(type, moduleHash, FE);
214  if (float charge1 = lin.Q(ToT); charge1 != 0.f) return charge1;
215  }
216  return charge;
217 }
218 
219 
220 float
221 PixelChargeCalibCondData::getCharge(InDetDD::PixelDiodeType type, unsigned int moduleHash, unsigned int FE, float ToT) const{
223  return getChargeLUTFEI4(moduleHash, FE, ToT);
224  }
225  if (type == InDetDD::PixelDiodeType::NONE) return 0.f;
226  const LegacyFitParameters & legacy = getLegacyFitParameters(type, moduleHash, FE);
227 
228  float charge = legacy.Q(ToT);
229 
230  // Protection for small charge
231  const auto & thresholds = getThresholds(type,moduleHash,FE);
232  const auto analogueThreshold = thresholds.value;
233  if (charge<analogueThreshold && getCalibrationStrategy(moduleHash)==CalibrationStrategy::RUN3PIX) { charge=analogueThreshold; }
234  // Protection for large charge
235  float exth = 1e5f; // the calibration function is analytically connected at threshold exth.
237  const LinearFitParameters & lin = getLinearFitParameters(type, moduleHash, FE);
238  if (float charge1 = lin.Q(ToT); charge1 != 0.f) return charge1;
239  }
240  return charge;
241 }
242 
243 void
245  if (moduleHash >= m_sizeOfHashVector) {
246  throw generateError(__func__, moduleHash, static_cast<int>(strategy));
247  }
248  m_calibrationStrategy[moduleHash] = strategy;
249 }
250 
253  if (moduleHash >= m_sizeOfHashVector){
254  throw generateError(__func__, moduleHash);
255  }
256  auto itr = m_calibrationStrategy.find(moduleHash);
257  if (itr != m_calibrationStrategy.end()) {
258  return itr->second;
259  }
261 }
262 
263 void
264 PixelChargeCalibCondData::setTot2Charges(unsigned int moduleHash, IBLModule charges){
265  if (moduleHash >= m_sizeOfHashVector){
266  throw generateError(__func__, moduleHash);
267  }
268  m_tot2Charges[moduleHash] = std::move(charges);
269 }
270 
272 PixelChargeCalibCondData::getTot2Charges(unsigned int moduleHash, unsigned int FE) const{
273  auto it = m_tot2Charges.find(moduleHash);
274  if (it != m_tot2Charges.end() && FE < it->second.size()) {
275  return it->second.at(FE);
276  }
277  throw generateError(__func__, moduleHash,FE);
278 }
279 
280 float
281 PixelChargeCalibCondData::getChargeLUTFEI4(unsigned int moduleHash, unsigned int FE, unsigned int ToT) const{
282  if (ToT < 1 || ToT > IBLCalibrationSize) {
283  throw generateError(__func__, moduleHash,FE, ToT);
284  }
285 
286  const IBLCalibration &charges = getTot2Charges(moduleHash,FE);
287  return charges[ToT - 1];
288 }
289 
290 float
291 PixelChargeCalibCondData::getToTLUTFEI4(unsigned int moduleHash, unsigned int FE, float Q) const{
292  int tot = -1;
293  float minDiff = FLT_MAX;
294  for (size_t t = 0; t < IBLCalibrationSize; t++) {
295  float charge = getChargeLUTFEI4(moduleHash, FE, t + 1);
296  float diff = std::fabs(charge - Q);
297  if (diff < minDiff) {
298  minDiff = diff;
299  tot = t + 1;
300  }
301  }
302  return tot;
303 }
xAOD::strategy
strategy
Definition: L2CombinedMuon_v1.cxx:107
PixelChargeCalibCondData::getLegacyFitParameters
PixelChargeCalib::LegacyFitParameters getLegacyFitParameters(InDetDD::PixelDiodeType type, unsigned int moduleHash, unsigned int FE) const
Definition: PixelChargeCalibCondData.cxx:120
PixelModuleData::getDefaultAnalogThresholdSigma
int getDefaultAnalogThresholdSigma(int barrel_ec, int layer) const
Definition: PixelModuleData.cxx:38
beamspotman.r
def r
Definition: beamspotman.py:676
python.SystemOfUnits.second
int second
Definition: SystemOfUnits.py:120
PixelChargeCalibCondData::getTot2Charges
const IBLCalibration & getTot2Charges(unsigned int moduleHash, unsigned int FE) const
Definition: PixelChargeCalibCondData.cxx:272
PixelChargeCalibCondData::m_thresholds
std::array< std::vector< std::vector< PixelChargeCalib::Thresholds > >, s_NPixelDiodes > m_thresholds
Definition: PixelChargeCalibCondData.h:120
PixelChargeCalibCondData::getToT
float getToT(InDetDD::PixelDiodeType type, unsigned int moduleHash, unsigned int FE, float Q) const
Definition: PixelChargeCalibCondData.cxx:174
PixelModuleData::getDefaultAnalogThreshold
int getDefaultAnalogThreshold(int barrel_ec, int layer) const
Definition: PixelModuleData.cxx:15
PixelModuleData::getDefaultAnalogThresholdNoise
int getDefaultAnalogThresholdNoise(int barrel_ec, int layer) const
Definition: PixelModuleData.cxx:61
PixelChargeCalib::Resolutions
Definition: ChargeCalibParameters.h:90
PixelModuleData::getDefaultInTimeThreshold
int getDefaultInTimeThreshold(int barrel_ec, int layer) const
Definition: PixelModuleData.cxx:84
PixelChargeCalibCondData::getThresholds
PixelChargeCalib::Thresholds getThresholds(InDetDD::PixelDiodeType type, unsigned int moduleHash, unsigned int FE) const
Definition: PixelChargeCalibCondData.cxx:99
PixelModuleData
Definition: PixelModuleData.h:22
InDetDD::PixelDiodeType
PixelDiodeType
Definition: PixelReadoutDefinitions.h:28
skel.it
it
Definition: skel.GENtoEVGEN.py:401
mc.diff
diff
Definition: mc.SFGenPy8_MuMu_DD.py:14
athena.value
value
Definition: athena.py:124
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
PixelChargeCalibCondData::getTotRes
float getTotRes(unsigned int moduleHash, unsigned int FE, float Q) const
Definition: PixelChargeCalibCondData.cxx:163
PixelChargeCalibCondData::m_legacyFit
std::array< std::vector< std::vector< PixelChargeCalib::LegacyFitParameters > >, s_NPixelDiodes > m_legacyFit
Definition: PixelChargeCalibCondData.h:121
PixelChargeCalibCondData::setAllFromConfigData
void setAllFromConfigData(unsigned int moduleHash, const PixelModuleData *configData, const std::pair< int, int > &becLayer, unsigned int numFE)
Definition: PixelChargeCalibCondData.cxx:70
PixelChargeCalibCondData::setLinearFitParameters
void setLinearFitParameters(InDetDD::PixelDiodeType type, unsigned int moduleHash, const std::vector< PixelChargeCalib::LinearFitParameters > &parameters)
Definition: PixelChargeCalibCondData.cxx:132
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
InDetDD::PixelDiodeType::GANGED
@ GANGED
PixelChargeCalib::LegacyFitParameters
Definition: ChargeCalibParameters.h:18
PixelModuleData::getDefaultQ2TotC
float getDefaultQ2TotC() const
Definition: PixelModuleData.cxx:329
PixelChargeCalib::Thresholds
Definition: ChargeCalibParameters.h:73
PixelChargeCalibCondData::m_totRes
std::vector< std::vector< PixelChargeCalib::Resolutions > > m_totRes
Definition: PixelChargeCalibCondData.h:123
PixelChargeCalibCondData::CalibrationStrategy::RUN3PIX
@ RUN3PIX
PixelChargeCalibCondData::setLegacyFitParameters
void setLegacyFitParameters(InDetDD::PixelDiodeType type, unsigned int moduleHash, const std::vector< PixelChargeCalib::LegacyFitParameters > &parameters)
Definition: PixelChargeCalibCondData.cxx:110
PixelChargeCalibCondData::s_NPixelDiodes
constexpr static std::size_t s_NPixelDiodes
Definition: PixelChargeCalibCondData.h:118
PixelChargeCalibCondData::getChargeLUTFEI4
float getChargeLUTFEI4(unsigned int moduleHash, unsigned int FE, unsigned int ToT) const
Definition: PixelChargeCalibCondData.cxx:281
PixelChargeCalibCondData::m_sizeOfHashVector
std::size_t m_sizeOfHashVector
Definition: PixelChargeCalibCondData.h:117
InDetDD::PixelDiodeType::LONG
@ LONG
PixelChargeCalibCondData::PixelChargeCalibCondData
PixelChargeCalibCondData()=default
lumiFormat.i
int i
Definition: lumiFormat.py:85
PixelChargeCalibCondData::m_calibrationStrategy
std::map< int, CalibrationStrategy > m_calibrationStrategy
Definition: PixelChargeCalibCondData.h:126
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
PixelChargeCalibCondData::setThresholds
void setThresholds(InDetDD::PixelDiodeType type, unsigned int moduleHash, const std::vector< PixelChargeCalib::Thresholds > &thresholds)
Definition: PixelChargeCalibCondData.cxx:89
res
std::pair< std::vector< unsigned int >, bool > res
Definition: JetGroupProductTest.cxx:11
PixelChargeCalibCondData::CalibrationStrategy::LUTFEI4
@ LUTFEI4
ChargeCalibrationBundle.h
Struct for holding vectors of charge calibration constants, with utility methods.
PixelChargeCalibCondData::setTot2Charges
void setTot2Charges(unsigned int moduleHash, IBLModule charges)
Definition: PixelChargeCalibCondData.cxx:264
PixelChargeCalibCondData::setCalibrationStrategy
void setCalibrationStrategy(unsigned int moduleHash, CalibrationStrategy strategy)
Definition: PixelChargeCalibCondData.cxx:244
PixelChargeCalibCondData::getCalibrationStrategy
CalibrationStrategy getCalibrationStrategy(unsigned int moduleHash) const
Definition: PixelChargeCalibCondData.cxx:252
PixelChargeCalibCondData::CalibrationStrategy
CalibrationStrategy
Definition: PixelChargeCalibCondData.h:34
InDetDD::enum2uint
constexpr std::size_t enum2uint(T n, std::string_view callingFunctionName="")
Convert an enum class to size_t for use as an array index.
Definition: PixelReadoutDefinitions.h:51
PixelChargeCalibCondData::m_tot2Charges
std::map< int, IBLModule > m_tot2Charges
Definition: PixelChargeCalibCondData.h:127
PixelChargeCalib::LinearFitParameters
Definition: ChargeCalibParameters.h:49
PixelChargeCalibCondData::setAllFromBundle
void setAllFromBundle(unsigned int moduleHash, const PixelChargeCalib::ChargeCalibrationBundle &b)
Definition: PixelChargeCalibCondData.cxx:51
PixelChargeCalibCondData::IBLModule
std::vector< IBLCalibration > IBLModule
Definition: PixelChargeCalibCondData.h:31
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
charge
double charge(const T &p)
Definition: AtlasPID.h:897
python.PyAthena.v
v
Definition: PyAthena.py:154
PixelChargeCalibCondData::CalibrationStrategy::RUN1PIX
@ RUN1PIX
PixelChargeCalib::LinearFitParameters::Q
float Q(float tot) const
Definition: ChargeCalibParameters.h:68
PixelModuleData::getDefaultQ2TotA
float getDefaultQ2TotA() const
Definition: PixelModuleData.cxx:327
PixelChargeCalibCondData::getLinearFitParameters
PixelChargeCalib::LinearFitParameters getLinearFitParameters(InDetDD::PixelDiodeType type, unsigned int moduleHash, unsigned int FE) const
Definition: PixelChargeCalibCondData.cxx:143
Thresholds
Definition: LArCalorimeter/LArCalibDataQuality/python/Thresholds.py:1
Pythia8_RapidityOrderMPI.val
val
Definition: Pythia8_RapidityOrderMPI.py:14
InDetDD::PixelDiodeType::NONE
@ NONE
MistimedStreamPhI_runStandalone.legacy
legacy
Definition: MistimedStreamPhI_runStandalone.py:110
LArNewCalib_DelayDump_OFC_Cali.idx
idx
Definition: LArNewCalib_DelayDump_OFC_Cali.py:69
PixelChargeCalib
Definition: IChargeCalibrationParser.h:30
physics_parameters.parameters
parameters
Definition: physics_parameters.py:144
PixelChargeCalibCondData::getCharge
float getCharge(InDetDD::PixelDiodeType type, unsigned int moduleHash, unsigned int FE, float ToT) const
Definition: PixelChargeCalibCondData.cxx:221
PixelModuleData::getDefaultQ2TotE
float getDefaultQ2TotE() const
Definition: PixelModuleData.cxx:328
PixelModuleData.h
Store pixel constant parameters in PixelModuleData.
PixelChargeCalibCondData::IBLCalibrationSize
static constexpr size_t IBLCalibrationSize
Definition: PixelChargeCalibCondData.h:29
PixelChargeCalib::ChargeCalibrationBundle
bundles of parameters used together in the PixelChargeCalibCondAlg
Definition: ChargeCalibrationBundle.h:24
InDetDD::PixelDiodeType::NORMAL
@ NORMAL
PixelChargeCalibCondData::getToTLUTFEI4
float getToTLUTFEI4(unsigned int moduleHash, unsigned int FE, float Q) const
Definition: PixelChargeCalibCondData.cxx:291
get_generator_info.error
error
Definition: get_generator_info.py:40
PixelChargeCalibCondData::setTotResolutions
void setTotResolutions(unsigned int moduleHash, const std::vector< PixelChargeCalib::Resolutions > &value)
Definition: PixelChargeCalibCondData.cxx:156
PixelChargeCalibCondData.h
error
Definition: IImpactPoint3dEstimator.h:70
PixelChargeCalibCondData::m_linFit
std::array< std::vector< std::vector< PixelChargeCalib::LinearFitParameters > >, s_NPixelDiodes > m_linFit
Definition: PixelChargeCalibCondData.h:122
PixelChargeCalib::LinearFitParameters::ToT
float ToT(float Q) const
Definition: ChargeCalibParameters.h:62
PixelChargeCalibCondData::IBLCalibration
std::array< float, IBLCalibrationSize > IBLCalibration
Definition: PixelChargeCalibCondData.h:30