43 using ChannelBCDataF = std::array<float, NTimeBinsPerBC>;
47 std::array<ChannelBCDataF, Nchannels>
pulse = {};
48 std::vector<o2::fdd::MCLabel>
labels;
54 for (
auto& chan :
pulse) {
67 void process(
const std::vector<o2::fdd::Hit>& hits,
68 std::vector<o2::fdd::Digit>& digitsBC,
69 std::vector<o2::fdd::ChannelData>& digitsCh,
70 std::vector<o2::fdd::DetTrigInput>& digitsTrig,
73 void flush(std::vector<o2::fdd::Digit>& digitsBC,
74 std::vector<o2::fdd::ChannelData>& digitsCh,
75 std::vector<o2::fdd::DetTrigInput>& digitsTrig,
94 static constexpr int BCCacheMin = -1, BCCacheMax = 10, NBC2Cache = 1 + BCCacheMax - BCCacheMin;
96 void createPulse(
int nphe,
int parID,
double timeHit, std::array<o2::InteractionRecord, NBC2Cache>
const& cachedIR,
int nCachedIR,
int channel);
101 void storeBC(
const BCCache&
bc,
102 std::vector<o2::fdd::Digit>& digitsBC, std::vector<o2::fdd::ChannelData>& digitsCh, std::vector<o2::fdd::DetTrigInput>& digitsTrig,
109 std::deque<BCCache> mCache;
114 ChannelBCDataF mTimeCFD;
116 float mPmtTimeIntegral;
119 HitRandomRingType mRndScintDelay;
120 PheRandomRingType mRndGainVar;
121 PheRandomRingType mRndSignalShape;
127 static Double_t PMResponse(Double_t
x);
128 static Double_t PMResponse(Double_t*
x, Double_t*);
129 static Double_t SinglePhESpectrum(Double_t*
x, Double_t* par);
void flush(std::vector< o2::fdd::Digit > &digitsBC, std::vector< o2::fdd::ChannelData > &digitsCh, std::vector< o2::fdd::DetTrigInput > &digitsTrig, o2::dataformats::MCTruthContainer< o2::fdd::MCLabel > &labels)