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.
transient container for single chip digits accumulation
Simulation parameters for the ALIPIDE chip.
Definition of the ITSMFT Hit class.
Definition of the GeometryTGeo class : common part for ITS and MFT.
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 ...