12#ifndef _ZDC_RECEVENTFLAT_H_
13#define _ZDC_RECEVENTFLAT_H_
41 static std::array<float, NChannels>
fe;
42 static std::array<float, NTDCChannels>
fa;
60 std::map<uint8_t, float>
ezdc;
64 gsl::span<const o2::zdc::BCRecData>
mRecBC;
65 gsl::span<const o2::zdc::ZDCEnergy>
mEnergy;
67 gsl::span<const uint16_t>
mInfo;
80 std::array<bool, NChannels>
isBeg{};
81 std::array<bool, NChannels>
isEnd{};
96 std::array<bool, NChannels>
offPed{};
98 std::array<bool, NChannels>
pileTM{};
116 void init(
const std::vector<o2::zdc::BCRecData>* RecBC,
const std::vector<o2::zdc::ZDCEnergy>* Energy,
const std::vector<o2::zdc::ZDCTDCData>* TDCData,
const std::vector<uint16_t>* Info);
117 void init(
const gsl::span<const o2::zdc::BCRecData> RecBC,
const gsl::span<const o2::zdc::ZDCEnergy> Energy,
const gsl::span<const o2::zdc::ZDCTDCData> TDCData,
const gsl::span<const uint16_t> Info);
152 auto it =
ezdc.begin();
176 float tdcV(uint8_t ich, uint64_t ipos)
const
183 return -std::numeric_limits<float>::infinity();
186 float tdcA(uint8_t ich, uint64_t ipos)
const
193 return -std::numeric_limits<float>::infinity();
199 return TDCVal[ich].size();
208 return TDCAmp[ich].size();
216 std::map<uint8_t, float>::const_iterator it =
ezdc.find(ich);
217 if (it !=
ezdc.end()) {
220 return -std::numeric_limits<float>::infinity();
Class to refer to the reconstructed information.
Class to refer to the 1st entry and N elements of some group in the continuous container.
Container class to store energy released in the ZDC.
Container class to store a TDC hit in a ZDC channel.
struct o2::upgrades_utils::@463 zdc
structure to keep FT0 information
constexpr int NTDCChannels
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
ClassDefNV(RecEventFlat, 1)
void centroidZPA(float &x, float &rms)
uint64_t mEntry
Event quality information (decoded)
std::vector< float > inter[NChannels]
Current BC.
FirstEntry mStopT
Last + 1 energy.
std::array< bool, NChannels > tdcPileM1C
11 TDC in-bunch pile-up error
gsl::span< const o2::zdc::BCRecData > mRecBC
TDC pile-up correction flag (TODO)
std::array< bool, NChannels > isBeg
N info.
std::array< bool, NChannels > tdcSigE
17 TDC pile-up in bunch -3 error
std::array< bool, 4 > mComputed
Interpolated samples.
std::array< bool, NChannels > adcMissingwTDC
8 Pile-up detection from TM trigger bit
std::array< bool, NChannels > tdcPileM2E
14 TDC pile-up in bunch -2 corrected
std::array< bool, NChannels > tdcPedOr
– Event pedestal for TDC
std::array< bool, NChannels > adcPedQC
3 Orbit pedestal for ADC
gsl::span< const o2::zdc::ZDCTDCData > mTDCData
ZDC energy.
std::array< bool, NChannels > tdcPileM3E
16 TDC pile-up in bunch -3 corrected
std::array< bool, NChannels > tdcPileEvC
9 Missing ADC even if TDC is present
void decodeInfo(uint8_t ch, uint16_t code)
FirstEntry mFirstT
First energy.
int NtdcV(uint8_t ich) const
std::array< bool, NChannels > tdcPedMissing
1 QC pedestal for TDC
std::array< bool, NChannels > tdcPileM3C
15 TDC pile-up in bunch -2 error
void printDecodedMessages() const
std::vector< float > TDCVal[NTDCChannels]
signal in ZDCs
float tdcV(uint8_t ich, uint64_t ipos) const
std::array< bool, NChannels > genericE
Centroid computed.
std::map< uint8_t, float > ezdc
pattern of channels with autotrigger bit
std::array< bool, NChannels > isEnd
Beginning of sequence.
BCRecData mCurB
End of sequence.
bool getEnergy(int32_t i, uint8_t &key, float &val) const
float EZDC(uint8_t ich) const
std::array< bool, NChannels > adcPedMissing
4 QC pedestal for ADC
void centroidZNC(float &x, float &y)
gsl::span< const o2::zdc::ZDCEnergy > mEnergy
Interaction record and references to data.
uint32_t triggers
pattern of decoded energies
FirstEntry mFirstI
First TDC.
float tdcA(uint8_t ich, uint64_t ipos) const
void clearBitmaps()
18 Missing TDC signal correction
int NtdcA(uint8_t ich) const
std::array< bool, NChannels > pilePed
6 Anomalous offset from pedestal info
uint32_t mTriggerMask
Verbosity level.
uint32_t ezdcDecoded
pattern of channels acquired
void init(const std::vector< o2::zdc::BCRecData > *RecBC, const std::vector< o2::zdc::ZDCEnergy > *Energy, const std::vector< o2::zdc::ZDCTDCData > *TDCData, const std::vector< uint16_t > *Info)
Trigger mask for printout.
const std::vector< uint16_t > & getDecodedInfo()
std::array< bool, NChannels > tdcPedEv
0 Generic error
std::vector< uint16_t > mDecodedInfo
Event quality information.
gsl::span< const uint16_t > mInfo
ZDC TDC.
std::array< bool, NChannels > offPed
5 Missing pedestal for ADC
std::array< bool, NChannels > tdcPileEvE
10 TDC in-bunch pile-up corrected
std::array< bool, NChannels > tdcPileM1E
12 TDC pile-up in bunch -1 corrected
FirstEntry mStopI
Last + 1 TDC.
std::array< bool, NChannels > pileTM
7 Pile-up detection from pedestal info
std::array< bool, NChannels > tdcPedQC
– Orbit pedestal for TDC
FirstEntry mStopE
First info.
uint64_t mNEntries
Current entry.
std::vector< bool > TDCPile[NTDCChannels]
TDC signal amplitudes.
FirstEntry mFirstE
Number of entries.
std::array< bool, NChannels > adcPedEv
2 Missing pedestal for ADC
std::vector< float > TDCAmp[NTDCChannels]
TDC values.
std::array< bool, NChannels > adcPedOr
– Event pedestal for ADC
void centroidZNA(float &x, float &y)
void decodeMapInfo(uint32_t ch, uint16_t code)
void centroidZPC(float &x, float &rms)
std::array< bool, NChannels > tdcPileM2C
13 TDC pile-up in bunch -1 error
static void setNucleonEnergyZP(float energy)
static void setNucleonEnergy(float energy)
static std::array< float, NChannels > fe
static void setNucleonEnergyZN(float energy)
static std::array< float, NTDCChannels > fa