Project
Loading...
Searching...
No Matches
ChannelData.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
15
16#ifndef _FV0_CHANNELDATA_H_
17#define _FV0_CHANNELDATA_H_
18
19#include <Rtypes.h>
20#include <tuple>
21namespace o2
22{
23namespace fv0
24{
26 static constexpr char sChannelNameDPL[] = "DIGITSCH";
27 static constexpr char sDigitName[] = "ChannelData";
28 static constexpr char sDigitBranchName[] = "FV0DigitCh";
29 static constexpr uint8_t DUMMY_CHANNEL_ID = 0xff;
30 static constexpr uint8_t DUMMY_CHAIN_QTC = 0xff;
31 static constexpr int16_t DUMMY_CFD_TIME = -5000;
32 static constexpr int16_t DUMMY_QTC_AMPL = -5000;
33 uint8_t ChId = DUMMY_CHANNEL_ID; // channel Id
34 uint8_t ChainQTC = DUMMY_CHAIN_QTC; // QTC chain
35 int16_t CFDTime = DUMMY_CFD_TIME; // time in #CFD channels, 0 at the LHC clk center
36 int16_t QTCAmpl = DUMMY_QTC_AMPL; // Amplitude #channels
46
47 ChannelData() = default;
48 ChannelData(uint8_t iPmt, int time, int charge, uint8_t chainQTC)
49 {
50 ChId = iPmt;
51 CFDTime = time;
53 ChainQTC = chainQTC;
54 }
55 void setFlag(uint8_t flag)
56 {
57 ChainQTC = flag;
58 }
59 void setFlag(EEventDataBit bitFlag, bool value)
60 {
61 ChainQTC |= (value << bitFlag);
62 }
63 static void setFlag(EEventDataBit bitFlag, uint8_t& chainQTC) { chainQTC |= (1 << bitFlag); }
64 static void clearFlag(EEventDataBit bitFlag, uint8_t& chainQTC) { chainQTC &= ~(1 << bitFlag); }
65 bool getFlag(EEventDataBit bitFlag) const { return bool(ChainQTC & (1 << bitFlag)); }
76 void print() const;
77 void printLog() const;
78 [[nodiscard]] uint8_t getChannelID() const { return ChId; }
79 [[nodiscard]] uint16_t getTime() const { return CFDTime; }
80 [[nodiscard]] uint16_t getAmp() const { return QTCAmpl; }
81
82 bool operator==(ChannelData const& other) const
83 {
84 return std::tie(ChId, CFDTime, QTCAmpl, ChainQTC) == std::tie(other.ChId, other.CFDTime, other.QTCAmpl, other.ChainQTC);
85 }
87};
88} // namespace fv0
89} // namespace o2
90#endif
int16_t charge
Definition RawEventData.h:5
int16_t time
Definition RawEventData.h:4
GLsizei const GLfloat * value
Definition glcorearb.h:819
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
bool operator==(ChannelData const &other) const
Definition ChannelData.h:82
static constexpr int16_t DUMMY_CFD_TIME
Definition ChannelData.h:31
bool getFlag(EEventDataBit bitFlag) const
Definition ChannelData.h:65
void printLog() const
uint16_t getAmp() const
Definition ChannelData.h:80
static constexpr uint8_t DUMMY_CHANNEL_ID
Definition ChannelData.h:29
ChannelData(uint8_t iPmt, int time, int charge, uint8_t chainQTC)
Definition ChannelData.h:48
ClassDefNV(ChannelData, 3)
uint16_t getTime() const
Definition ChannelData.h:79
static void setFlag(EEventDataBit bitFlag, uint8_t &chainQTC)
Definition ChannelData.h:63
static constexpr char sDigitBranchName[]
Definition ChannelData.h:28
static constexpr char sDigitName[]
Definition ChannelData.h:27
void setFlag(uint8_t flag)
Definition ChannelData.h:55
uint8_t getChannelID() const
Definition ChannelData.h:78
static constexpr uint8_t DUMMY_CHAIN_QTC
Definition ChannelData.h:30
bool areAllFlagsGood() const
Definition ChannelData.h:66
static constexpr char sChannelNameDPL[]
Definition ChannelData.h:26
static constexpr int16_t DUMMY_QTC_AMPL
Definition ChannelData.h:32
static void clearFlag(EEventDataBit bitFlag, uint8_t &chainQTC)
Definition ChannelData.h:64
void setFlag(EEventDataBit bitFlag, bool value)
Definition ChannelData.h:59
VectorOfTObjectPtrs other