38 : mTimeStamp(0), mIntRecord(), mEventId(-1), mSrcId(-1), mMCLabels(), mCache(), mPmtChargeVsTime(), mNBins(), mNTimeBinsPerBC(), mPmtResponseGlobalRing5(), mPmtResponseGlobalRingA1ToA4(), mPmtResponseTemp(), mLastBCCache(), mCfdStartIndex()
57 void process(
const std::vector<o2::fv0::Hit>& hits, std::vector<o2::fv0::Digit>& digitsBC,
58 std::vector<o2::fv0::ChannelData>& digitsCh, std::vector<o2::fv0::DetTrigInput>& digitsTrig,
61 void flush(std::vector<o2::fv0::Digit>& digitsBC,
62 std::vector<o2::fv0::ChannelData>& digitsCh,
63 std::vector<o2::fv0::DetTrigInput>& digitsTrig,
69 uint16_t
getBC()
const {
return mIntRecord.
bc; }
74 std::vector<o2::fv0::MCLabel>
labels;
80 std::fill(std::begin(channel), std::end(channel), 0.);
94 static constexpr int BCCacheMin = 0, BCCacheMax = 7, NBC2Cache = 1 + BCCacheMax - BCCacheMin;
103 void createPulse(
float mipFraction,
int parID,
const double hitTime,
const float hitR,
104 std::array<o2::InteractionRecord, NBC2Cache>
const& cachedIR,
int nCachedIR,
const int detID);
110 std::deque<fv0::MCLabel> mMCLabels;
111 std::deque<BCCache> mCache;
117 std::vector<o2::fv0::Digit>& digitsBC,
118 std::vector<o2::fv0::ChannelData>& digitsCh,
119 std::vector<o2::fv0::DetTrigInput>& digitsTrig,
121 bool isRing5(
int detID);
125 UInt_t mNTimeBinsPerBC;
129 std::vector<Double_t> mPmtResponseGlobalRing5;
130 std::vector<Double_t> mPmtResponseGlobalRingA1ToA4;
131 std::vector<Double_t> mPmtResponseTemp;
135 std::array<int, Constants::nFv0Channels> mCfdStartIndex;
140 Int_t SimulateLightYield(Int_t pmt, Int_t nPhot)
const;
145 static float getDistFromCellCenter(UInt_t cellId,
double hitx,
double hity);
146 static float getSignalFraction(
float distanceFromXc,
bool isFirstChannel);
void flush(std::vector< o2::fv0::Digit > &digitsBC, std::vector< o2::fv0::ChannelData > &digitsCh, std::vector< o2::fv0::DetTrigInput > &digitsTrig, o2::dataformats::MCTruthContainer< o2::fv0::MCLabel > &labels)