Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
ChargeCalibParameters.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
11 #ifndef ChargeCalibParameters_h
12 #define ChargeCalibParameters_h
13 #include <cmath>
14 #include <iosfwd>
15 #include <limits>
16 
17 namespace PixelChargeCalib{
18 
21  float A = 0.f;
22  float E = 0.f;
23  float C = 0.f;
25  LegacyFitParameters() = default;
26  LegacyFitParameters(float a, float e, float c, float overflow ):A(a), E(e), C(c), maxToT(overflow){
27  //nop
28  }
29  bool operator == (const LegacyFitParameters & o) const{
30  return ((o.A == A) and (o.E == E) and (o.C == C));
31  }
32 
34  float ToT(float Q) const{
35  if ((C + Q) != 0.0f) {
36  return A * (E + Q) / (C + Q);
37  }
38  return 0.f;
39  }
40  //return Charge, given time-over-Threshold
41  float Q(float tot) const{
42  if (tot >= maxToT) return 1.81e5;
43  if (std::fabs(A) != 0.0f && std::fabs(tot / A - 1.f) != 0.0f) {
44  return (C * tot / A - E) / (1.f - tot / A);
45  }
46  return 0.f;
47  }
48 
49  };
50 
52  float F = 0.f;
53  float G = 0.f;
54  LinearFitParameters() = default;
55  LinearFitParameters(float f, float g):F(f), G(g){
56  //nop
57  }
59  return ((o.F == F) and (o.G == G) );
60  }
62  return not operator == (o);
63  }
64  float ToT(float Q) const{
65  if (F != 0.0f){
66  return (Q - G) / F;
67  }
68  return 0.f;
69  }
70  float Q(float tot) const {
71  return F * tot + G;
72  }
73  };
74 
75  struct Thresholds{
76  int value = 0;
77  int sigma = 0;
78  int noise = 0;
79  int inTimeValue = 0;
80  Thresholds() = default;
81  Thresholds (int v, int s, int n, int i):value(v), sigma(s), noise(n), inTimeValue(i){
82  //nop
83  }
84  bool operator == (const Thresholds & o){
85  return ((o.value == value) and (o.sigma == sigma) and (o.noise == noise) and (o.inTimeValue == inTimeValue));
86  }
87  bool operator != (const Thresholds & o){
88  return not operator == (o);
89  }
90  };
91 
92  struct Resolutions{
93  float res1 = 0.f;
94  float res2 = 0.f;
95  Resolutions() = default;
96  Resolutions(float r1, float r2):res1(r1), res2(r2){
97  //nop
98  }
99  bool operator == (const Resolutions & o){
100  return ((o.res1 == res1) and (o.res2 == res2) );
101  }
102  bool operator != (const Resolutions & o){
103  return not operator == (o);
104  }
105  float total(float Q) const {
106  return res1 + res2 * Q;
107  }
108  };
109 
110  std::ostream & operator << (std::ostream & out, const LegacyFitParameters & legFitPar);
111  std::ostream & operator << (std::ostream & out, const LinearFitParameters & linFitParam);
112  std::ostream & operator << (std::ostream & out, const Thresholds & t);
113  std::ostream & operator << (std::ostream & out, const Resolutions & r);
114 }
115 
116 #endif
PixelChargeCalib::Resolutions::Resolutions
Resolutions(float r1, float r2)
Definition: ChargeCalibParameters.h:96
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
beamspotman.r
def r
Definition: beamspotman.py:676
PixelChargeCalib::Thresholds::sigma
int sigma
Definition: ChargeCalibParameters.h:77
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
PixelChargeCalib::LegacyFitParameters::LegacyFitParameters
LegacyFitParameters(float a, float e, float c, float overflow)
Definition: ChargeCalibParameters.h:26
PixelChargeCalib::LinearFitParameters::F
float F
Definition: ChargeCalibParameters.h:52
PixelChargeCalib::Resolutions
Definition: ChargeCalibParameters.h:92
PixelChargeCalib::LinearFitParameters::operator!=
bool operator!=(const LinearFitParameters &o)
Definition: ChargeCalibParameters.h:61
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
PixelChargeCalib::LegacyFitParameters::C
float C
Definition: ChargeCalibParameters.h:23
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
PixelChargeCalib::Resolutions::res2
float res2
Definition: ChargeCalibParameters.h:94
PixelChargeCalib::LegacyFitParameters::maxToT
float maxToT
Definition: ChargeCalibParameters.h:24
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
PixelChargeCalib::Thresholds::Thresholds
Thresholds()=default
PixelChargeCalib::Resolutions::total
float total(float Q) const
Definition: ChargeCalibParameters.h:105
PixelChargeCalib::LinearFitParameters::G
float G
Definition: ChargeCalibParameters.h:53
PixelChargeCalib::LegacyFitParameters
Definition: ChargeCalibParameters.h:19
PixelChargeCalib::Resolutions::operator==
bool operator==(const Resolutions &o)
Definition: ChargeCalibParameters.h:99
PixelChargeCalib::LegacyFitParameters::LegacyFitParameters
LegacyFitParameters()=default
PixelChargeCalib::LinearFitParameters::LinearFitParameters
LinearFitParameters()=default
A
lumiFormat.i
int i
Definition: lumiFormat.py:85
beamspotman.n
n
Definition: beamspotman.py:731
python.CaloCondTools.g
g
Definition: CaloCondTools.py:15
PixelChargeCalib::LegacyFitParameters::E
float E
Definition: ChargeCalibParameters.h:22
PixelChargeCalib::Thresholds::operator!=
bool operator!=(const Thresholds &o)
Definition: ChargeCalibParameters.h:87
hist_file_dump.f
f
Definition: hist_file_dump.py:141
PixelChargeCalib::Thresholds::value
int value
Definition: ChargeCalibParameters.h:76
PixelChargeCalib::Thresholds::noise
int noise
Definition: ChargeCalibParameters.h:78
PixelChargeCalib::Resolutions::operator!=
bool operator!=(const Resolutions &o)
Definition: ChargeCalibParameters.h:102
PixelChargeCalib::Thresholds::operator==
bool operator==(const Thresholds &o)
Definition: ChargeCalibParameters.h:84
PixelChargeCalib::LinearFitParameters
Definition: ChargeCalibParameters.h:51
PixelChargeCalib::LinearFitParameters::operator==
bool operator==(const LinearFitParameters &o)
Definition: ChargeCalibParameters.h:58
PixelChargeCalib::LegacyFitParameters::ToT
float ToT(float Q) const
Return Time-over-threshold given charge Q.
Definition: ChargeCalibParameters.h:34
PixelChargeCalib::LegacyFitParameters::operator==
bool operator==(const LegacyFitParameters &o) const
Definition: ChargeCalibParameters.h:29
python.PyAthena.v
v
Definition: PyAthena.py:154
PixelChargeCalib::Thresholds::Thresholds
Thresholds(int v, int s, int n, int i)
Definition: ChargeCalibParameters.h:81
PixelChargeCalib::Resolutions::res1
float res1
Definition: ChargeCalibParameters.h:93
PixelChargeCalib::LinearFitParameters::Q
float Q(float tot) const
Definition: ChargeCalibParameters.h:70
a
TList * a
Definition: liststreamerinfos.cxx:10
PixelChargeCalib::LegacyFitParameters::defaultOverflow
static constexpr float defaultOverflow
Definition: ChargeCalibParameters.h:20
Thresholds
Definition: LArCalorimeter/LArCalibDataQuality/python/Thresholds.py:1
PixelChargeCalib
Definition: IChargeCalibrationParser.h:30
PixelChargeCalib::LegacyFitParameters::Q
float Q(float tot) const
Definition: ChargeCalibParameters.h:41
PixelChargeCalib::Thresholds::inTimeValue
int inTimeValue
Definition: ChargeCalibParameters.h:79
PixelChargeCalib::LinearFitParameters::LinearFitParameters
LinearFitParameters(float f, float g)
Definition: ChargeCalibParameters.h:55
python.compressB64.c
def c
Definition: compressB64.py:93
PixelChargeCalib::operator<<
std::ostream & operator<<(std::ostream &out, const LegacyFitParameters &legFitPar)
Definition: ChargeCalibParameters.cxx:18
PixelChargeCalib::LegacyFitParameters::A
float A
Definition: ChargeCalibParameters.h:21
PixelChargeCalib::Resolutions::Resolutions
Resolutions()=default
PixelChargeCalib::LinearFitParameters::ToT
float ToT(float Q) const
Definition: ChargeCalibParameters.h:64