19#ifndef ALICEO2_IOTOF_DIGITIZER_H
20#define ALICEO2_IOTOF_DIGITIZER_H
54 void setDigits(std::vector<o2::iotof::Digit>* dig) { mDigits = dig; }
62 void process(
const std::vector<o2::itsmft::Hit>* hits,
int evID,
int srcID);
83 void registerDigits(
Chip& chip, uint32_t roFrame,
double time,
int nROF,
86 void stepping(
const o2::itsmft::Hit& hit,
float**& respMatrix,
float**& avgHitLocalX,
float**& avgHitLocalZ,
int& rowStart,
int& colStart,
int& rowSpan,
int& colSpan);
89 double smearTime(
double time,
const float x,
const float z)
const;
92 int energyToCharge(
float energyLoss)
const;
96 void loadMap(TH2D*& map,
const std::string&
path,
const char* mapName);
98 void prepareScaledResolutionMap();
103 bool isEfficient(
const float x,
const float z)
const;
105 std::vector<o2::iotof::McLabelRef>* getExtraLabelBuffer(uint32_t roFrame)
113 while (
index >=
int(mExtraLabelBuffer.size())) {
114 mExtraLabelBuffer.emplace_back(std::make_unique<std::vector<o2::iotof::McLabelRef>>());
116 return mExtraLabelBuffer[
index].get();
119 static constexpr float ps2ns = 1e-3f;
120 static constexpr float sec2ns = 1e9f;
121 static constexpr float cm2um = 1e4f;
124 TH2D* mEfficiencyMap =
nullptr;
125 TH2D* mResolutionMap =
nullptr;
126 TH2D* mScaledResolutionMap =
nullptr;
127 TH2D* mTimeOfArrivalMap =
nullptr;
129 std::vector<o2::iotof::Chip> mChips;
130 std::deque<std::unique_ptr<std::vector<o2::iotof::McLabelRef>>> mExtraLabelBuffer;
132 std::vector<o2::iotof::Digit>* mDigits =
nullptr;
133 std::vector<o2::itsmft::ROFRecord>* mROFRecords =
nullptr;
138 bool mContinuous =
true;
142 ClassDefNV(Digitizer, 1);
Definition of the ITSMFT Hit class.
Definition of a container to keep Monte Carlo truth external to simulation objects.
Definition of the Segmentation class.
Container for similated points connected to a given TOF Chip This will be used in order to allow a mo...
Digitizer for the ALICE3 Inner/Outer TOF detector.
void setROFRecords(std::vector< o2::itsmft::ROFRecord > *rec)
void setROFRecordIR(const o2::InteractionRecord &ir)
void init()
Initialize the digitizer.
void fillOutputContainer()
Flush the output container.
void setDigits(std::vector< o2::iotof::Digit > *dig)
void process(const std::vector< o2::itsmft::Hit > *hits, int evID, int srcID)
Steer conversion of hits to digits.
bool isContinuous() const
void setEventTime(const o2::InteractionTimeRecord &irt)
Set the event time.
void setContinuous(bool v)
Set continuous readout mode.
void setMCLabels(o2::dataformats::MCTruthContainer< o2::MCCompLabel > *mclb)
void setGeometry(const o2::iotof::GeometryTGeo *gm)
Segmentation and response for pixels in inner and outer TOF of the ALICE 3 apparatus.
GLuint GLsizei const GLchar * label
GLsizei const GLchar *const * path
GLdouble GLdouble GLdouble z
o2::InteractionRecord ir(0, 0)