37 : mTimeStamp(0), mIntRecord(), mEventId(-1), mSrcId(-1), mMCLabels(), mCache(), mPmtChargeVsTime(), mNBins(), mNTimeBinsPerBC(), mPmtResponseGlobalRing5(), mPmtResponseGlobalRingA1ToA4(), mPmtResponseTemp(), mLastBCCache(), mCfdStartIndex()
55 void process(
const std::vector<o2::fv0::Hit>& hits, std::vector<o2::fv0::Digit>& digitsBC,
56 std::vector<o2::fv0::ChannelData>& digitsCh, std::vector<o2::fv0::DetTrigInput>& digitsTrig,
59 void flush(std::vector<o2::fv0::Digit>& digitsBC,
60 std::vector<o2::fv0::ChannelData>& digitsCh,
61 std::vector<o2::fv0::DetTrigInput>& digitsTrig,
67 uint16_t
getBC()
const {
return mIntRecord.
bc; }
72 std::vector<o2::fv0::MCLabel>
labels;
78 std::fill(std::begin(channel), std::end(channel), 0.);
92 static constexpr int BCCacheMin = 0, BCCacheMax = 7, NBC2Cache = 1 + BCCacheMax - BCCacheMin;
101 void createPulse(
float mipFraction,
int parID,
const double hitTime,
const float hitR,
102 std::array<o2::InteractionRecord, NBC2Cache>
const& cachedIR,
int nCachedIR,
const int detID);
108 std::deque<fv0::MCLabel> mMCLabels;
109 std::deque<BCCache> mCache;
115 std::vector<o2::fv0::Digit>& digitsBC,
116 std::vector<o2::fv0::ChannelData>& digitsCh,
117 std::vector<o2::fv0::DetTrigInput>& digitsTrig,
119 bool isRing5(
int detID);
123 UInt_t mNTimeBinsPerBC;
127 std::vector<Double_t> mPmtResponseGlobalRing5;
128 std::vector<Double_t> mPmtResponseGlobalRingA1ToA4;
129 std::vector<Double_t> mPmtResponseTemp;
133 std::array<int, Constants::nFv0Channels> mCfdStartIndex;
136 Int_t SimulateLightYield(Int_t pmt, Int_t nPhot)
const;
141 static float getDistFromCellCenter(UInt_t cellId,
double hitx,
double hity);
142 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)