Project
Loading...
Searching...
No Matches
WaveformCalibConfig.cxx
Go to the documentation of this file.
1// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3// All rights not expressly granted are reserved.
4//
5// This software is distributed under the terms of the GNU General Public
6// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7//
8// In applying this license CERN does not waive the privileges and immunities
9// granted to it by virtue of its status as an Intergovernmental Organization
10// or submit itself to any jurisdiction.
11
12#include "Framework/Logger.h"
14#include <limits>
15
16using namespace o2::zdc;
18{
19 for (int isig = 0; isig < NChannels; isig++) {
20 cutLow[isig] = -std::numeric_limits<float>::infinity();
21 cutHigh[isig] = std::numeric_limits<float>::infinity();
22 }
23 // Firmware aligns signals within one sample
24 for (int itdc = 0; itdc < NTDCChannels; itdc++) {
26 cutTimeLow[itdc] = -cutTimeHigh[itdc];
27 }
28}
29
31{
34 if (ib >= ibeg && ib <= 0) {
35 ibeg = ib;
36 } else {
37 LOG(fatal) << "WaveformCalibConfig::restrictRange wrong setting for ibeg = " << ib;
38 }
39 if (ie <= iend && ie >= 0) {
40 iend = ie;
41 } else {
42 LOG(fatal) << "WaveformCalibConfig::restrictRange wrong setting for iend = " << ie;
43 }
44 nbun = iend - ibeg + 1;
45}
46
48{
49 LOG(info) << "WaveformCalibConfig range [" << ibeg << ":" << iend << "]";
50 for (int isig = 0; isig < NChannels; isig++) {
51 LOG(info) << ChannelNames[isig] << " limits A = (" << cutLow[isig] << " : " << cutHigh[isig] << ") min_entries = " << min_e[isig];
52 }
53 for (int itdc = 0; itdc < NTDCChannels; itdc++) {
54 LOG(info) << ChannelNames[TDCSignal[itdc]] << " T = (" << cutTimeLow[itdc] << " : " << cutTimeHigh[itdc] << ")";
55 }
56}
57
59{
60 for (int32_t isig = 0; isig < NChannels; isig++) {
61 min_e[isig] = val;
62 }
63}
64
66{
67 min_e[isig] = val;
68}
69
71{
72 for (int32_t isig = 0; isig < NChannels; isig++) {
73 cutLow[isig] = -std::numeric_limits<float>::infinity();
74 cutHigh[isig] = std::numeric_limits<float>::infinity();
75 }
76}
77
79{
80 for (int32_t isig = 0; isig < NChannels; isig++) {
81 cutLow[isig] = -std::numeric_limits<float>::infinity();
82 }
83}
84
86{
87 for (int32_t isig = 0; isig < NChannels; isig++) {
88 cutHigh[isig] = std::numeric_limits<float>::infinity();
89 }
90}
91
93{
94 cutLow[isig] = -std::numeric_limits<float>::infinity();
95}
96
98{
99 cutHigh[isig] = std::numeric_limits<float>::infinity();
100}
101
103{
104 for (int32_t isig = 0; isig < NChannels; isig++) {
105 cutLow[isig] = val;
106 }
107}
108
110{
111 for (int32_t isig = 0; isig < NChannels; isig++) {
112 cutHigh[isig] = val;
113 }
114}
115
117{
118 cutLow[isig] = val;
119}
120
122{
123 cutHigh[isig] = val;
124}
125
126void WaveformCalibConfig::setCuts(double low, double high)
127{
128 for (int32_t isig = 0; isig < NChannels; isig++) {
129 cutLow[isig] = low;
130 cutHigh[isig] = high;
131 }
132}
133
134void WaveformCalibConfig::setCuts(int isig, double low, double high)
135{
136 cutLow[isig] = low;
137 cutHigh[isig] = high;
138}
139
140void WaveformCalibConfig::setTimeCuts(double low, double high)
141{
142 for (int32_t itdc = 0; itdc < NTDCChannels; itdc++) {
143 cutTimeLow[itdc] = low;
144 cutTimeHigh[itdc] = high;
145 }
146}
147
148void WaveformCalibConfig::setTimeCuts(int itdc, double low, double high)
149{
150 cutTimeHigh[itdc] = low;
151 cutTimeLow[itdc] = high;
152}
153
155{
156 return ibeg;
157}
158
160{
161 return iend;
162}
Configuration of ZDC Tower intercalibration procedure.
GLuint GLfloat * val
Definition glcorearb.h:1582
constexpr double LHCBunchSpacingNS
const int TDCSignal[NTDCChannels]
Definition Constants.h:181
constexpr int NTimeBinsPerBC
Definition Constants.h:53
constexpr int NTDCChannels
Definition Constants.h:90
constexpr int WaveformCalib_NBB
Definition Constants.h:347
constexpr int NChannels
Definition Constants.h:65
constexpr std::string_view ChannelNames[]
Definition Constants.h:147
constexpr int WaveformCalib_NBA
Definition Constants.h:348
double cutTimeHigh[NTDCChannels]
TDC cut low.
void setTimeCuts(double low, double high)
double min_e[NChannels]
Amplitude cut high.
double cutHigh[NChannels]
Amplitude cut low.
double cutTimeLow[NTDCChannels]
Minimum entries to compute waveform.
void setCuts(double low, double high)
LOG(info)<< "Compressed in "<< sw.CpuTime()<< " s"