70 int process(
const gsl::span<const o2::zdc::OrbitData>& orbitdata,
71 const gsl::span<const o2::zdc::BCData>& bcdata,
72 const gsl::span<const o2::zdc::ChannelData>& chdata);
109 mLowPassFilter =
val;
110 mLowPassFilterSet =
true;
111 LOG(warn) << __func__ <<
" Configuration of low pass filtering: " << (mLowPassFilter ?
"enabled" :
"disabled");
116 mFullInterpolation =
val;
117 mFullInterpolationSet =
true;
118 LOG(warn) << __func__ <<
" Full waveform interpolation: " << (mFullInterpolation ?
"enabled" :
"disabled");
125 mCorrSignalSet =
true;
126 LOG(warn) << __func__ <<
" Configuration of TDC signal correction: " << (mCorrSignal ?
"enabled" :
"disabled");
131 mCorrBackground =
val;
132 mCorrBackgroundSet =
true;
133 LOG(warn) << __func__ <<
" Configuration of TDC pile-up correction: " << (mCorrBackground ?
"enabled" :
"disabled");
143 const std::vector<o2::zdc::RecEventAux>&
getReco() {
return mReco; }
147 void updateOffsets(
int ibun);
148 void lowPassFilter();
149 int reconstructTDC(
int seq_beg,
int seq_end);
150 int reconstruct(
int seq_beg,
int seq_end);
151 int processTrigger(
int itdc,
int ibeg,
int iend);
152 int processTriggerExtended(
int itdc,
int ibeg,
int iend);
153 int interpolate(
int itdc,
int ibeg,
int iend);
154 int fullInterpolation(
int itdc,
int ibeg,
int iend);
155 void correctTDCPile();
156 bool mLowPassFilter =
true;
157 bool mLowPassFilterSet =
false;
158 bool mFullInterpolation =
false;
159 bool mFullInterpolationSet =
false;
160 int mFullInterpolationMinLength = 2;
161 int mInterpolationStep = 25;
162 bool mCorrSignal =
true;
163 bool mCorrSignalSet =
false;
164 bool mCorrBackground =
true;
165 bool mCorrBackgroundSet =
false;
166 bool mInError =
false;
169 int correctTDCSignal(
int itdc, int16_t TDCVal,
float TDCAmp,
float& fTDCVal,
float& fTDCAmp,
bool isbeg,
bool isend);
170 int correctTDCBackground(
int ibc,
int itdc, std::deque<DigiRecoTDC>& tdc);
173 void setPoint(
int itdc,
int ibeg,
int iend,
int i);
175 void assignTDC(
int ibun,
int ibeg,
int iend,
int itdc,
int tdc,
float amp);
176 void findSignals(
int ibeg,
int iend);
177 const RecoParamZDC* mRopt =
nullptr;
178 bool mIsContinuous =
true;
179 uint8_t mTriggerCondition = 0x3;
181 const ZDCTDCParam* mTDCParam =
nullptr;
182 const ZDCTDCCorr* mTDCCorr =
nullptr;
183 const ZDCEnergyParam* mEnergyParam =
nullptr;
184 const ZDCTowerParam* mTowerParam =
nullptr;
185 const BaselineParam* mPedParam =
nullptr;
186 uint32_t mTriggerMask = 0;
189 const RecoConfigZDC* mRecoConfigZDC =
nullptr;
192 bool mTreeDbg =
false;
193 std::unique_ptr<TFile> mDbg =
nullptr;
194 std::unique_ptr<TTree> mTDbg =
nullptr;
195 gsl::span<const o2::zdc::OrbitData> mOrbitData;
196 gsl::span<const o2::zdc::BCData> mBCData;
197 gsl::span<const o2::zdc::ChannelData> mChData;
198 std::vector<o2::zdc::RecEventAux> mReco;
199 std::map<uint32_t, int> mOrbit;
201 uint32_t mOffsetOrbit = 0xffffffff;
211 float tdc_calib[
NTDCChannels] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
212 float tdc_offset[
NTDCChannels] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
213 constexpr static uint16_t mMask[
NTimeBinsPerBC] = {0x0001, 0x002, 0x004, 0x008, 0x0010, 0x0020, 0x0040, 0x0080, 0x0100, 0x0200, 0x0400, 0x0800};