14#ifndef ALICEO2_ITS3_DIGITIZER_H
15#define ALICEO2_ITS3_DIGITIZER_H
42 using ExtraDig = std::vector<itsmft::PreDigitLabelRef>;
47 void setDigits(std::vector<o2::itsmft::Digit>* dig) { mDigits = dig; }
57 void process(
const std::vector<itsmft::Hit>* hits,
int evID,
int srcID,
int layer);
76 mEventROFrameMin = 0xffffffff;
93 ExtraDig* getExtraDigBuffer(uint32_t roFrame)
95 if (mROFrameMin > roFrame) {
98 int ind = roFrame - mROFrameMin;
99 while (ind >=
int(mExtraBuff.size())) {
100 mExtraBuff.emplace_back(std::make_unique<ExtraDig>());
102 return mExtraBuff[ind].get();
105 static constexpr float sec2ns = 1e9;
110 double mCollisionTimeWrtROF{};
111 uint32_t mROFrameMin = 0;
112 uint32_t mROFrameMax = 0;
113 uint32_t mNewROFrame = 0;
114 bool mIsBeforeFirstRO =
false;
116 uint32_t mEventROFrameMin = 0xffffffff;
117 uint32_t mEventROFrameMax = 0;
119 static constexpr std::array<o2::its3::SegmentationMosaix, 3> mIBSegmentations{0, 1, 2};
123 bool mSimRespIBOrientation{
false};
124 float mSimRespIBShift{0.f};
125 float mSimRespIBScaleX{1.f};
126 float mSimRespIBScaleZ{1.f};
127 float mSimRespOBShift{0.f};
131 std::vector<o2::its3::ChipDigitsContainer> mChips;
132 std::deque<std::unique_ptr<ExtraDig>> mExtraBuff;
134 std::vector<o2::itsmft::Digit>* mDigits =
nullptr;
135 std::vector<o2::itsmft::ROFRecord>* mROFRecords =
nullptr;
140 ClassDef(Digitizer, 5);
Definition of the ITSMFT Alpide simulated response parametrization.
Definition of the ITSMFT Hit class.
Definition of the GeometryTGeo class.
Definition of a container to keep Monte Carlo truth external to simulation objects.
Definition of the SegmentationMosaix class.
uint32_t getEventROFrameMax() const
void fillOutputContainer(uint32_t maxFrame=0xffffffff, int layer=-1)
bool isContinuous() const
void setDeadChannelsMap(const o2::itsmft::NoiseMap *mp)
void setContinuous(bool v)
void setROFRecords(std::vector< o2::itsmft::ROFRecord > *rec)
uint32_t getEventROFrameMin() const
void setDigits(std::vector< o2::itsmft::Digit > *dig)
void setGeometry(const o2::its::GeometryTGeo *gm)
double getEndTimeOfROFMax() const
o2::its3::DigiParams & getParams()
void resetROFrameBounds()
void resetEventROFrames()
void process(const std::vector< itsmft::Hit > *hits, int evID, int srcID, int layer)
Steer conversion of hits to digits.
void setMCLabels(o2::dataformats::MCTruthContainer< o2::MCCompLabel > *mclb)
const o2::its3::DigiParams & getParams() const
void setEventTime(const o2::InteractionTimeRecord &irt, int layer)
double getTimeOffset() const
bool isContinuous() const
float getROFrameLength(int layer=-1) const
void setContinuous(bool v)
NoiseMap class for the ITS and MFT.
GLenum GLuint GLint GLint layer