14#ifndef ALICEO2_ITSMFT_DIGITIZER_H
15#define ALICEO2_ITSMFT_DIGITIZER_H
48 using ExtraDig = std::vector<PreDigitLabelRef>;
56 void setDigits(std::vector<o2::itsmft::Digit>* dig) { mDigits = dig; }
70 void process(
const std::vector<Hit>* hits,
int evID,
int srcID);
92 mEventROFrameMin = 0xffffffff;
97 void processHit(
const o2::itsmft::Hit& hit, uint32_t& maxFr,
int evID,
int srcID);
101 ExtraDig* getExtraDigBuffer(uint32_t roFrame)
103 if (mROFrameMin > roFrame) {
106 int ind = roFrame - mROFrameMin;
107 while (ind >=
int(mExtraBuff.size())) {
108 mExtraBuff.emplace_back(std::make_unique<ExtraDig>());
110 return mExtraBuff[ind].get();
113 static constexpr float sec2ns = 1e9;
118 double mCollisionTimeWrtROF;
119 uint32_t mROFrameMin = 0;
120 uint32_t mROFrameMax = 0;
121 uint32_t mNewROFrame = 0;
122 bool mIsBeforeFirstRO =
false;
124 uint32_t mEventROFrameMin = 0xffffffff;
125 uint32_t mEventROFrameMax = 0;
127 int mNumberOfChips = 0;
134 std::vector<o2::itsmft::ChipDigitsContainer> mChips;
135 std::deque<std::unique_ptr<ExtraDig>> mExtraBuff;
137 std::vector<o2::itsmft::Digit>* mDigits =
nullptr;
138 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() const
void setContinuous(bool v)
double getEndTimeOfROFMax() const
void setDeadChannelsMap(const o2::itsmft::NoiseMap *mp)
const o2::itsmft::DigiParams & getDigitParams() const
void setEventTime(const o2::InteractionTimeRecord &irt)
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
bool isContinuous() const
const o2::itsmft::DigiParams & getParams() const
o2::itsmft::DigiParams & getParams()
void fillOutputContainer(uint32_t maxFrame=0xffffffff)
uint32_t getEventROFrameMin() const
void setDigiParams(const o2::itsmft::DigiParams &par)
NoiseMap class for the ITS and MFT.
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...