Project
Loading...
Searching...
No Matches
WaveformCalibData.h
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#ifndef ZDC_WAVEFORMCALIB_DATA_H
13#define ZDC_WAVEFORMCALIB_DATA_H
14
15#include "ZDCBase/Constants.h"
17#include <array>
18
22
23namespace o2
24{
25namespace zdc
26{
27
29 static constexpr int NBT = WaveformCalib_NBT;
30 static constexpr int NW = WaveformCalib_NW;
31
32 int mFirstValid = 0;
33 int mLastValid = 0;
34 uint32_t mEntries = 0;
35 std::array<float, NW> mData = {0};
36
38 int getEntries() const;
39 int getFirstValid() const;
40 int getLastValid() const;
41 void clear();
42 void setN(int n);
44};
45
47 static constexpr int NBB = WaveformCalib_NBB;
48 static constexpr int NBA = WaveformCalib_NBA;
49 static constexpr int NBT = WaveformCalib_NBT;
50 static constexpr int NW = WaveformCalib_NW;
51
52 uint64_t mCTimeBeg = 0;
53 uint64_t mCTimeEnd = 0;
54 int mN = 0;
55 int mPeak = 0;
56
57 std::array<WaveformCalibChData, NChannels> mWave;
59 inline void setFirstValid(int isig, int ipos)
60 {
61 if (ipos > mWave[isig].mFirstValid) {
62#ifdef O2_ZDC_WAVEFORMCALIB_DEBUG
63 printf("WaveformCalibChData::%s isig=%-2d mFirstValid %5d -> %5d\n", __func__, isig, mWave[isig].mFirstValid, ipos);
64#endif
65 mWave[isig].mFirstValid = ipos;
66 }
67 }
68 inline void setLastValid(int isig, int ipos)
69 {
70 if (ipos < mWave[isig].mLastValid) {
71#ifdef O2_ZDC_WAVEFORMCALIB_DEBUG
72 printf("WaveformCalibChData::%s isig=%-2d mLastValid %5d -> %5d\n", __func__, isig, mWave[isig].mLastValid, ipos);
73#endif
74 mWave[isig].mLastValid = ipos;
75 }
76 }
77 inline void addEntry(int isig)
78 {
79 mWave[isig].mEntries++;
80 }
81 int getEntries(int is) const;
82 int getFirstValid(int is) const;
83 int getLastValid(int is) const;
84 void print() const;
85 void clear();
86 void clearWaveforms();
87 void setCreationTime(uint64_t ctime);
88 void setN(int n);
89 int saveDebugHistos(const std::string fn);
90 int dumpCalib(const std::string fn);
92};
93
94} // namespace zdc
95} // namespace o2
96
97#endif
Configuration of ZDC Tower intercalibration procedure.
GLdouble n
Definition glcorearb.h:1982
struct o2::upgrades_utils::@463 zdc
structure to keep FT0 information
constexpr int WaveformCalib_NBB
Definition Constants.h:347
constexpr int WaveformCalib_NBT
Definition Constants.h:349
constexpr int WaveformCalib_NW
Definition Constants.h:350
constexpr int WaveformCalib_NBA
Definition Constants.h:348
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
ClassDefNV(WaveformCalibChData, 1)
int mLastValid
First bin with valid data.
WaveformCalibChData & operator+=(const WaveformCalibChData &other)
Waveform.
std::array< float, NW > mData
Number of waveforms added.
uint32_t mEntries
Last bin with valid data.
void setLastValid(int isig, int ipos)
ClassDefNV(WaveformCalibData, 1)
int mPeak
Number of bunches in waveform.
int dumpCalib(const std::string fn)
std::array< WaveformCalibChData, NChannels > mWave
Peak position.
int mN
Time of processed time frame.
uint64_t mCTimeEnd
Time of processed time frame.
WaveformCalibData & operator+=(const WaveformCalibData &other)
int saveDebugHistos(const std::string fn)
void setCreationTime(uint64_t ctime)
void setFirstValid(int isig, int ipos)
VectorOfTObjectPtrs other