37 using ChannelBCDataF = std::array<float, NTimeBinsPerBC>;
41 std::array<ChannelBCDataF, NChannels>
data = {};
42 std::array<ChannelBCDataF, NDigiChannels>
digi = {};
43 std::vector<o2::zdc::MCLabel>
labels;
57 for (
auto& chan :
data) {
89 if (mIRExternalTrigger.empty() || mIRExternalTrigger.back() !=
ir) {
90 mIRExternalTrigger.push_back(
ir);
94 void process(
const std::vector<o2::zdc::Hit>& hits,
95 std::vector<o2::zdc::BCData>& digitsBC,
96 std::vector<o2::zdc::ChannelData>& digitsCh,
99 void flush(std::vector<o2::zdc::BCData>& digitsBC,
100 std::vector<o2::zdc::ChannelData>& digitsCh,
111 void findEmptyBunches(
const std::bitset<o2::constants::lhc::LHCMaxBunches>& bunchPattern);
114 void Finalize(std::vector<BCData>& bcData, std::vector<o2::zdc::OrbitData>& pData);
121 static constexpr int BCCacheMin = -1, BCCacheMax = 5, NBC2Cache = 1 + BCCacheMax - BCCacheMin;
123 std::bitset<NChannels> chanPattern(uint32_t
v)
const
125 return std::bitset<NChannels>(
v);
127 void phe2Sample(
int nphe,
int parID,
double timeHit, std::array<o2::InteractionRecord, NBC2Cache>
const& cachedIR,
int nCachedIR,
int channel);
130 void setTriggerMask();
131 void setReadoutMask();
132 void generatePedestal();
133 void digitizeBC(BCCache&
bc);
134 bool triggerBC(
int ibc);
135 void storeBC(
const BCCache&
bc, uint32_t chan2Store,
136 std::vector<o2::zdc::BCData>& digitsBC, std::vector<o2::zdc::ChannelData>& digitsCh,
139 bool mIsContinuous =
true;
144 std::deque<o2::InteractionRecord> mIRExternalTrigger;
146 std::deque<BCCache> mCache;
147 std::array<std::vector<int16_t>,
NChannels> mTrigChannelsData;
148 int mTrigBinMin = 0xffff;
149 int mTrigBinMax = -0xffff;
151 uint32_t mTriggerMask = 0;
152 uint32_t mReadoutMask = 0;
153 int32_t mNEmptyBCs = -1;
154 float mPedFactor = 1;
155 bool mMaskTriggerBits =
true;
156 bool mSkipMCLabels =
false;
158 const SimCondition* mSimCondition =
nullptr;
159 const ModuleConfig* mModuleConfig =
nullptr;
160 std::vector<TriggerChannelConfig> mTriggerConfig;
161 uint32_t mTriggerableChanMask = 0;
162 std::vector<ModuleConfAux> mModConfAux;
163 std::vector<BCCache*> mFastCache;
164 std::vector<uint32_t> mStoreChanMask;
166 std::array<float, NChannels> mPedestalBLFluct;
170 static constexpr int binHelper(
int ib,
int& binInSiftedBC)
180 ClassDefNV(Digitizer, 1);