24 <<
" NULL pointer to Analysis object!";
29 if (histos.size() != 2) {
34 if (!histos.empty()) {
39 std::vector<TH1*>::const_iterator ihis = histos.begin();
40 for (; ihis != histos.end(); ihis++) {
56 hPeds_.second = (*ihis)->GetName();
58 hNoise_.second = (*ihis)->GetName();
65 hPeds_.second = (*ihis)->GetName();
68 hNoise_.second = (*ihis)->GetName();
80 <<
" NULL pointer to base Analysis object!";
88 <<
" NULL pointer to derived Analysis object!";
102 TProfile* peds_histo =
dynamic_cast<TProfile*
>(
hPeds_.first);
103 TProfile* raw_histo =
dynamic_cast<TProfile*
>(
hNoise_.first);
115 if (peds_histo->GetNbinsX() != 256) {
120 if (raw_histo->GetNbinsX() != 256) {
126 for (uint16_t iapv = 0; iapv < 2; iapv++) {
132 for (uint16_t istr = 0; istr < 128; istr++) {
133 uint16_t
strip = iapv * 128 + istr;
137 if (peds_histo->GetBinEntries(strip + 1)) {
138 anal->
peds_[iapv][istr] = peds_histo->GetBinContent(strip + 1);
139 p_sum += anal->
peds_[iapv][istr];
140 p_sum2 += (anal->
peds_[iapv][istr] * anal->
peds_[iapv][istr]);
141 if (anal->
peds_[iapv][istr] > p_max) {
142 p_max = anal->
peds_[iapv][istr];
144 if (anal->
peds_[iapv][istr] < p_min) {
145 p_min = anal->
peds_[iapv][istr];
153 if (raw_histo->GetBinEntries(strip + 1)) {
154 anal->
raw_[iapv][istr] = raw_histo->GetBinContent(strip + 1);
155 r_sum += anal->
raw_[iapv][istr];
156 r_sum2 += (anal->
raw_[iapv][istr] * anal->
raw_[iapv][istr]);
157 if (anal->
raw_[iapv][istr] > r_max) {
158 r_max = anal->
raw_[iapv][istr];
160 if (anal->
raw_[iapv][istr] < r_min) {
161 r_min = anal->
raw_[iapv][istr];
167 if (peds_histo->GetBinEntries(strip + 1)) {
168 anal->
raw_[iapv][istr] = raw_histo->GetBinError(strip + 1);
169 r_sum += anal->
raw_[iapv][istr];
170 r_sum2 += (anal->
raw_[iapv][istr] * anal->
raw_[iapv][istr]);
171 if (anal->
raw_[iapv][istr] > r_max) {
172 r_max = anal->
raw_[iapv][istr];
174 if (anal->
raw_[iapv][istr] < r_min) {
175 r_min = anal->
raw_[iapv][istr];
184 if (!anal->
peds_[iapv].empty()) {
185 p_sum /=
static_cast<float>(anal->
peds_[iapv].size());
186 p_sum2 /=
static_cast<float>(anal->
peds_[iapv].size());
192 if (!anal->
raw_[iapv].empty()) {
193 r_sum /=
static_cast<float>(anal->
raw_[iapv].size());
194 r_sum2 /=
static_cast<float>(anal->
raw_[iapv].size());
static const char unexpectedTask_[]
Histogram-based analysis for pedestal run.
const uint32_t & fedKey() const
Utility class that holds histogram title.
static const char numberOfHistos_[]
void extract(const std::vector< TH1 * > &) override
static const char unexpectedExtraInfo_[]
static const char numberOfBins_[]
uint32_t extractFedKey(const TH1 *const)
static const char mlCommissioning_[]
static const uint16_t maximum_
virtual void addErrorCode(const std::string &error)
static const uint16_t invalid_
Abstract base for derived classes that provide analysis of commissioning histograms.
CommissioningAnalysis *const anal() const
static const char nullPtr_[]