12#ifndef ALICEO2_FDD_DIGITIZER_H
13#define ALICEO2_FDD_DIGITIZER_H
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);
std::vector< std::string > labels
Dead channel map for FIT.
Definition of the Detector class.
Header to collect LHC related constants.
Definition of a container to keep Monte Carlo truth external to simulation objects.
int simulateLightYield(int pmt, int nPhot)
void setEventTime(long value)
float simulateTimeCFD(const ChannelBCDataF &pulse)
void setInteractionRecord(const o2::InteractionTimeRecord &src)
void setDeadChannelMap(o2::fit::DeadChannelMap const *deadChannelMap)
float integrateCharge(const ChannelBCDataF &pulse)
void process(const std::vector< o2::fdd::Hit > &hits, 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)
void setTriggers(o2::fdd::Digit *digit)
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)
GLsizei const GLfloat * value
constexpr double LHCBunchSpacingNS
constexpr int NTimeBinsPerBC
struct o2::upgrades_utils::@474 fdd
Collision labels.
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
InteractionRecord & operator=(const InteractionRecord &src)=default
static constexpr int PheRRSize
static constexpr int HitRRSize
static constexpr int NResponseTables
BCCache & operator=(const o2::InteractionRecord &ir)
std::vector< o2::fdd::MCLabel > labels
std::array< ChannelBCDataF, Nchannels > pulse
o2::InteractionRecord ir(0, 0)