1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
|
#ifndef CondFormats_SiStripObjects_PedsFullNoiseAnalysis_H
#define CondFormats_SiStripObjects_PedsFullNoiseAnalysis_H
#include "CondFormats/SiStripObjects/interface/CommissioningAnalysis.h"
#include "DataFormats/SiStripCommon/interface/SiStripConstants.h"
#include <sstream>
#include <vector>
#include <cstdint>
/**
@class PedsFullNoiseAnalysis
@author M. Wingham, R.Bainbridge
@brief Histogram-based analysis for pedestal run.
*/
class PedsFullNoiseAnalysis : public CommissioningAnalysis {
public:
// ---------- con(de)structors ----------
PedsFullNoiseAnalysis(const uint32_t& key);
PedsFullNoiseAnalysis();
~PedsFullNoiseAnalysis() override { ; }
friend class PedestalsAlgorithm;
friend class PedsFullNoiseAlgorithm;
// ---------- public interface ----------
/** Identifies if analysis is valid or not. */
bool isValid() const override;
// Pedestal, noise and raw noise (128-strip vector per APV)
inline const VVFloat& peds() const;
inline const VVFloat& noise() const;
inline const VVFloat& raw() const;
// test statistics for each APV (128-strip vector per APV)
inline const VVFloat& adProbab() const;
inline const VVFloat& ksProbab() const;
inline const VVFloat& jbProbab() const;
inline const VVFloat& chi2Probab() const;
// Per strip values
inline const VVFloat& residualRMS() const; // RMS
inline const VVFloat& residualSigmaGaus() const; // from gaus fit
inline const VVFloat& noiseSignificance() const; // noise significance
inline const VVFloat& residualMean() const;
inline const VVFloat& residualSkewness() const;
inline const VVFloat& residualKurtosis() const;
inline const VVFloat& residualIntegralNsigma() const;
inline const VVFloat& residualIntegral() const;
// status for different class of bad or problematic strips
inline const VVInt& deadStrip() const;
inline const VVInt& badStrip() const;
inline const VVInt& badStripBit() const;
inline const VVInt& deadStripBit() const;
inline const VVInt& shiftedStrip() const;
inline const VVInt& lowNoiseStrip() const;
inline const VVInt& largeNoiseStrip() const;
inline const VVInt& largeNoiseSignificance() const;
inline const VVInt& badFitStatus() const;
inline const VVInt& badADProbab() const;
inline const VVInt& badKSProbab() const;
inline const VVInt& badJBProbab() const;
inline const VVInt& badChi2Probab() const;
inline const VVInt& badTailStrip() const;
inline const VVInt& badDoublePeakStrip() const;
// Mean and rms spread (value per APV)
inline const VFloat& pedsMean() const;
inline const VFloat& pedsSpread() const;
inline const VFloat& noiseMean() const;
inline const VFloat& noiseSpread() const;
inline const VFloat& rawMean() const;
inline const VFloat& rawSpread() const;
// Max and min values (value per APV)
inline const VFloat& pedsMax() const;
inline const VFloat& pedsMin() const;
inline const VFloat& noiseMax() const;
inline const VFloat& noiseMin() const;
inline const VFloat& rawMax() const;
inline const VFloat& rawMin() const;
// ---------- misc ----------
/** Prints analysis results. */
void print(std::stringstream&, uint32_t apv_number = 0) override;
/** Overrides base method. */
void summary(std::stringstream&) const override;
/** Resets analysis member data. */
void reset() override;
// ---------- private member data ----------
private:
/// Quantitles that are always filled for every strip
VVFloat peds_;
VVFloat noise_;
VVFloat raw_;
VVFloat adProbab_;
VVFloat ksProbab_;
VVFloat jbProbab_;
VVFloat chi2Probab_;
VVFloat residualRMS_;
VVFloat residualSigmaGaus_;
VVFloat noiseSignificance_;
VVFloat residualMean_;
VVFloat residualSkewness_;
VVFloat residualKurtosis_;
VVFloat residualIntegralNsigma_;
VVFloat residualIntegral_;
VVInt badStripBit_;
VVInt deadStripBit_;
/// Quantities filled only for bad strips i.e. vectors of strip-id
VVInt deadStrip_;
VVInt badStrip_;
VVInt shiftedStrip_;
VVInt lowNoiseStrip_;
VVInt largeNoiseStrip_;
VVInt largeNoiseSignificance_;
VVInt badFitStatus_;
VVInt badADProbab_;
VVInt badKSProbab_;
VVInt badJBProbab_;
VVInt badChi2Probab_;
VVInt badTailStrip_;
VVInt badDoublePeakStrip_;
// VFloat: 1 value per APV
VFloat pedsMean_;
VFloat pedsSpread_;
VFloat noiseMean_;
VFloat noiseSpread_;
VFloat rawMean_;
VFloat rawSpread_;
VFloat pedsMax_;
VFloat pedsMin_;
VFloat noiseMax_;
VFloat noiseMin_;
VFloat rawMax_;
VFloat rawMin_;
// true if legacy histogram naming is used
bool legacy_;
};
// ---------- Inline methods ----------
const PedsFullNoiseAnalysis::VVFloat& PedsFullNoiseAnalysis::peds() const { return peds_; }
const PedsFullNoiseAnalysis::VVFloat& PedsFullNoiseAnalysis::noise() const { return noise_; }
const PedsFullNoiseAnalysis::VVFloat& PedsFullNoiseAnalysis::raw() const { return raw_; }
const PedsFullNoiseAnalysis::VVFloat& PedsFullNoiseAnalysis::adProbab() const { return adProbab_; }
const PedsFullNoiseAnalysis::VVFloat& PedsFullNoiseAnalysis::ksProbab() const { return ksProbab_; }
const PedsFullNoiseAnalysis::VVFloat& PedsFullNoiseAnalysis::jbProbab() const { return jbProbab_; }
const PedsFullNoiseAnalysis::VVFloat& PedsFullNoiseAnalysis::chi2Probab() const { return chi2Probab_; }
const PedsFullNoiseAnalysis::VVFloat& PedsFullNoiseAnalysis::residualRMS() const { return residualRMS_; }
const PedsFullNoiseAnalysis::VVFloat& PedsFullNoiseAnalysis::residualSigmaGaus() const { return residualSigmaGaus_; }
const PedsFullNoiseAnalysis::VVFloat& PedsFullNoiseAnalysis::noiseSignificance() const { return noiseSignificance_; }
const PedsFullNoiseAnalysis::VVFloat& PedsFullNoiseAnalysis::residualMean() const { return residualMean_; }
const PedsFullNoiseAnalysis::VVFloat& PedsFullNoiseAnalysis::residualSkewness() const { return residualSkewness_; }
const PedsFullNoiseAnalysis::VVFloat& PedsFullNoiseAnalysis::residualKurtosis() const { return residualKurtosis_; }
const PedsFullNoiseAnalysis::VVFloat& PedsFullNoiseAnalysis::residualIntegralNsigma() const {
return residualIntegralNsigma_;
}
const PedsFullNoiseAnalysis::VVFloat& PedsFullNoiseAnalysis::residualIntegral() const { return residualIntegral_; }
const PedsFullNoiseAnalysis::VVInt& PedsFullNoiseAnalysis::deadStrip() const { return deadStrip_; }
const PedsFullNoiseAnalysis::VVInt& PedsFullNoiseAnalysis::badStrip() const { return badStrip_; }
const PedsFullNoiseAnalysis::VVInt& PedsFullNoiseAnalysis::badStripBit() const { return badStripBit_; }
const PedsFullNoiseAnalysis::VVInt& PedsFullNoiseAnalysis::deadStripBit() const { return deadStripBit_; }
const PedsFullNoiseAnalysis::VVInt& PedsFullNoiseAnalysis::shiftedStrip() const { return shiftedStrip_; }
const PedsFullNoiseAnalysis::VVInt& PedsFullNoiseAnalysis::lowNoiseStrip() const { return lowNoiseStrip_; }
const PedsFullNoiseAnalysis::VVInt& PedsFullNoiseAnalysis::largeNoiseStrip() const { return largeNoiseStrip_; }
const PedsFullNoiseAnalysis::VVInt& PedsFullNoiseAnalysis::largeNoiseSignificance() const {
return largeNoiseSignificance_;
}
const PedsFullNoiseAnalysis::VVInt& PedsFullNoiseAnalysis::badFitStatus() const { return badFitStatus_; }
const PedsFullNoiseAnalysis::VVInt& PedsFullNoiseAnalysis::badADProbab() const { return badADProbab_; }
const PedsFullNoiseAnalysis::VVInt& PedsFullNoiseAnalysis::badKSProbab() const { return badKSProbab_; }
const PedsFullNoiseAnalysis::VVInt& PedsFullNoiseAnalysis::badJBProbab() const { return badJBProbab_; }
const PedsFullNoiseAnalysis::VVInt& PedsFullNoiseAnalysis::badChi2Probab() const { return badChi2Probab_; }
const PedsFullNoiseAnalysis::VVInt& PedsFullNoiseAnalysis::badTailStrip() const { return badTailStrip_; }
const PedsFullNoiseAnalysis::VVInt& PedsFullNoiseAnalysis::badDoublePeakStrip() const { return badDoublePeakStrip_; }
const PedsFullNoiseAnalysis::VFloat& PedsFullNoiseAnalysis::pedsMean() const { return pedsMean_; }
const PedsFullNoiseAnalysis::VFloat& PedsFullNoiseAnalysis::pedsSpread() const { return pedsSpread_; }
const PedsFullNoiseAnalysis::VFloat& PedsFullNoiseAnalysis::noiseMean() const { return noiseMean_; }
const PedsFullNoiseAnalysis::VFloat& PedsFullNoiseAnalysis::noiseSpread() const { return noiseSpread_; }
const PedsFullNoiseAnalysis::VFloat& PedsFullNoiseAnalysis::rawMean() const { return rawMean_; }
const PedsFullNoiseAnalysis::VFloat& PedsFullNoiseAnalysis::rawSpread() const { return rawSpread_; }
const PedsFullNoiseAnalysis::VFloat& PedsFullNoiseAnalysis::pedsMax() const { return pedsMax_; }
const PedsFullNoiseAnalysis::VFloat& PedsFullNoiseAnalysis::pedsMin() const { return pedsMin_; }
const PedsFullNoiseAnalysis::VFloat& PedsFullNoiseAnalysis::noiseMax() const { return noiseMax_; }
const PedsFullNoiseAnalysis::VFloat& PedsFullNoiseAnalysis::noiseMin() const { return noiseMin_; }
const PedsFullNoiseAnalysis::VFloat& PedsFullNoiseAnalysis::rawMax() const { return rawMax_; }
const PedsFullNoiseAnalysis::VFloat& PedsFullNoiseAnalysis::rawMin() const { return rawMin_; }
#endif // CondFormats_SiStripObjects_PedsFullNoiseAnalysis_H
|