14#ifndef ALICEO2_ITSMFT_DIGITIZER_H
15#define ALICEO2_ITSMFT_DIGITIZER_H
48 using ExtraDig = std::vector<PreDigitLabelRef>;
58 void setDigits(std::vector<o2::itsmft::Digit>* dig) { mDigits = dig; }
72 void process(
const std::vector<Hit>* hits,
int evID,
int srcID,
int layer = -1);
94 mEventROFrameMin = 0xffffffff;
105 void processHit(
const o2::itsmft::Hit& hit, uint32_t& maxFr,
int evID,
int srcID,
int lay);
109 ExtraDig* getExtraDigBuffer(uint32_t roFrame)
111 if (mROFrameMin > roFrame) {
114 int ind = roFrame - mROFrameMin;
115 while (ind >=
int(mExtraBuff.size())) {
116 mExtraBuff.emplace_back(std::make_unique<ExtraDig>());
118 return mExtraBuff[ind].get();
121 static constexpr float sec2ns = 1e9;
126 double mCollisionTimeWrtROF{};
127 uint32_t mROFrameMin = 0;
128 uint32_t mROFrameMax = 0;
129 uint32_t mNewROFrame = 0;
130 bool mIsBeforeFirstRO =
false;
132 uint32_t mEventROFrameMin = 0xffffffff;
133 uint32_t mEventROFrameMax = 0;
135 int mNumberOfChips = 0;
142 std::vector<o2::itsmft::ChipDigitsContainer> mChips;
143 std::deque<std::unique_ptr<ExtraDig>> mExtraBuff;
145 std::vector<o2::itsmft::Digit>* mDigits =
nullptr;
146 std::vector<o2::itsmft::ROFRecord>* mROFRecords =
nullptr;
Definition of the ITSMFT Alpide simulated response parametrization.
Simulation parameters for the ALIPIDE chip.
Definition of the ITSMFT Hit class.
Definition of the GeometryTGeo class : common part for ITS and MFT.
transient container for single chip digits accumulation
Definition of the ITSMFT NoiseMap.
Container for similated points connected to a given chip.
double getTimeOffset() const
bool isContinuous() const
float getROFrameLength(int layer=-1) const
void setContinuous(bool v)
double getEndTimeOfROFMax() const
void setDeadChannelsMap(const o2::itsmft::NoiseMap *mp)
const o2::itsmft::DigiParams & getDigitParams() const
void fillOutputContainer(uint32_t maxFrame=0xffffffff, int layer=-1)
Digitizer(const Digitizer &)=delete
void setGeometry(const o2::itsmft::GeometryTGeo *gm)
auto getChipResponse(int chipID)
void setMCLabels(o2::dataformats::MCTruthContainer< o2::MCCompLabel > *mclb)
void setAlpideResponse(const o2::itsmft::AlpideSimResponse *resp, int i)
void setContinuous(bool v)
~Digitizer() override=default
Digitizer & operator=(const Digitizer &)=delete
void setNoiseMap(const o2::itsmft::NoiseMap *mp)
void setROFRecords(std::vector< o2::itsmft::ROFRecord > *rec)
void resetEventROFrames()
void setDigits(std::vector< o2::itsmft::Digit > *dig)
uint32_t getEventROFrameMax() const
Digitizer(Digitizer &&)=delete
Digitizer & operator=(Digitizer &&)=delete
bool isContinuous() const
const o2::itsmft::DigiParams & getParams() const
o2::itsmft::DigiParams & getParams()
void resetROFrameBounds()
void setEventTime(const o2::InteractionTimeRecord &irt, int layer=-1)
uint32_t getEventROFrameMin() const
void setDigiParams(const o2::itsmft::DigiParams &par)
NoiseMap class for the ITS and MFT.
GLenum GLuint GLint GLint layer
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...