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; }
69 void process(
const std::vector<Hit>* hits,
int evID,
int srcID);
91 mEventROFrameMin = 0xffffffff;
96 void processHit(
const o2::itsmft::Hit& hit, uint32_t& maxFr,
int evID,
int srcID);
100 ExtraDig* getExtraDigBuffer(uint32_t roFrame)
102 if (mROFrameMin > roFrame) {
105 int ind = roFrame - mROFrameMin;
106 while (ind >=
int(mExtraBuff.size())) {
107 mExtraBuff.emplace_back(std::make_unique<ExtraDig>());
109 return mExtraBuff[ind].get();
112 static constexpr float sec2ns = 1e9;
117 double mCollisionTimeWrtROF;
118 uint32_t mROFrameMin = 0;
119 uint32_t mROFrameMax = 0;
120 uint32_t mNewROFrame = 0;
121 bool mIsBeforeFirstRO =
false;
123 uint32_t mEventROFrameMin = 0xffffffff;
124 uint32_t mEventROFrameMax = 0;
126 int mNumberOfChips = 0;
131 std::string mResponseFile =
"$(O2_ROOT)/share/Detectors/ITSMFT/data/AlpideResponseData/AlpideResponseData.root";
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)
auto getChipResponse(int chipID)
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)
void setMCLabels(o2::dataformats::MCTruthContainer< o2::MCCompLabel > *mclb)
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 ...