14#ifndef ALICEO2_TRK_DIGITIZER_H
15#define ALICEO2_TRK_DIGITIZER_H
42 using ExtraDig = std::vector<itsmft::PreDigitLabelRef>;
45 void setDigits(std::vector<o2::itsmft::Digit>* dig) { mDigits = dig; }
58 void process(
const std::vector<o2::trk::Hit>* hits,
int evID,
int srcID);
79 mEventROFrameMin = 0xffffffff;
86 void processHit(
const o2::trk::Hit& hit, uint32_t& maxFr,
int evID,
int srcID);
90 ExtraDig* getExtraDigBuffer(uint32_t roFrame)
92 if (mROFrameMin > roFrame) {
95 int ind = roFrame - mROFrameMin;
96 while (ind >=
int(mExtraBuff.size())) {
97 mExtraBuff.emplace_back(std::make_unique<ExtraDig>());
99 return mExtraBuff[ind].get();
106 int getNCols(
int subDetID,
int layer)
109 return constants::VD::petal::layer::nCols;
110 }
else if (subDetID == 1) {
120 int getNRows(
int subDetID,
int layer)
123 return constants::VD::petal::layer::nRows[
layer];
124 }
else if (subDetID == 1) {
130 static constexpr float sec2ns = 1e9;
135 double mCollisionTimeWrtROF{};
136 uint32_t mROFrameMin = 0;
137 uint32_t mROFrameMax = 0;
138 uint32_t mNewROFrame = 0;
140 bool mIsBeforeFirstRO =
false;
142 uint32_t mEventROFrameMin = 0xffffffff;
143 uint32_t mEventROFrameMax = 0;
145 int mNumberOfChips = 0;
151 std::string mRespName;
153 bool mSimRespOrientation{
false};
154 float mSimRespVDShift{0.f};
155 float mSimRespVDScaleX{1.f};
156 float mSimRespVDScaleZ{1.f};
157 float mSimRespMLOTShift{0.f};
158 float mSimRespMLOTScaleX{1.f};
159 float mSimRespMLOTScaleZ{1.f};
160 float mSimRespVDScaleDepth{1.f};
161 float mSimRespMLOTScaleDepth{1.f};
165 std::vector<o2::trk::ChipDigitsContainer> mChips;
166 std::deque<std::unique_ptr<ExtraDig>> mExtraBuff;
168 std::vector<o2::itsmft::Digit>* mDigits =
nullptr;
169 std::vector<o2::itsmft::ROFRecord>* mROFRecords =
nullptr;
Simulation parameters for the TRK digitizer. Based on the ITS2 and ITS3 digitizer parameters.
Definition of the TRK Hit class.
Definition of a container to keep Monte Carlo truth external to simulation objects.
NoiseMap class for the ITS and MFT.
float getROFrameLength() const
void setContinuous(bool v)
bool isContinuous() const
double getTimeOffset() const
void setEventTime(const o2::InteractionTimeRecord &irt)
void fillOutputContainer(uint32_t maxFrame=0xffffffff)
o2::trk::DigiParams & getParams()
bool isContinuous() const
const o2::trk::DigiParams & getDigitParams() const
void setResponseName(const std::string &name)
void setContinuous(bool v)
void process(const std::vector< o2::trk::Hit > *hits, int evID, int srcID)
Steer conversion of hits to digits.
uint32_t getEventROFrameMin() const
void setDigits(std::vector< o2::itsmft::Digit > *dig)
void setROFRecords(std::vector< o2::itsmft::ROFRecord > *rec)
void setDeadChannelsMap(const o2::itsmft::NoiseMap *mp)
const o2::trk::DigiParams & getParams() const
double getEndTimeOfROFMax() const
const o2::trk::ChipSimResponse * getChipResponse(int chipID)
void setMCLabels(o2::dataformats::MCTruthContainer< o2::MCCompLabel > *mclb)
void setGeometry(const o2::trk::GeometryTGeo *gm)
uint32_t getEventROFrameMax() const
void resetEventROFrames()
GLuint const GLchar * name
GLenum GLuint GLint GLint layer