45 static_assert(
DetID == o2::detectors::DetID::TRK ||
DetID == o2::detectors::DetID::FT3,
"only TRK and FT3 digitizers are supported");
46 using GeometryTGeo = std::conditional_t<DetID == o2::detectors::DetID::TRK, o2::trk::GeometryTGeo, o2::ft3::GeometryTGeo>;
47 using ExtraDig = std::vector<itsmft::PreDigitLabelRef>;
50 void setDigits(std::vector<o2::trkft3::Digit>* dig) { mDigits = dig; }
63 void process(
const std::vector<o2::trkft3::Hit>* hits,
int evID,
int srcID,
int layer);
81 LOG(info) <<
"trkft3::Digitizer set geom";
89 mEventROFrameMin = 0xffffffff;
96 void processHit(
const o2::trkft3::Hit& hit, uint32_t& maxFr,
int evID,
int srcID,
int rofLayer);
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();
116 int getNCols(
int subDetID,
int layer)
120 }
else if (subDetID == 1 || subDetID == 2) {
130 int getNRows(
int subDetID,
int layer)
134 }
else if (subDetID == 1 || subDetID == 2) {
140 int getROFLayer(
int chipID)
const
142 if constexpr (
DetID == o2::detectors::DetID::TRK) {
143 return mGeometry->getLayerTRK(chipID);
145 return mGeometry->getLayer(chipID);
149 int getDisk(
int chipID)
const
151 if constexpr (
DetID == o2::detectors::DetID::TRK) {
152 return mGeometry->getDisk(chipID);
158 static constexpr float sec2ns = 1e9;
163 double mCollisionTimeWrtROF{};
164 uint32_t mROFrameMin = 0;
165 uint32_t mROFrameMax = 0;
166 uint32_t mNewROFrame = 0;
168 int mROFsWrtFirstRO = 0;
170 uint32_t mEventROFrameMin = 0xffffffff;
171 uint32_t mEventROFrameMax = 0;
173 int mNumberOfChips = 0;
179 std::string mRespName;
181 bool mSimRespOrientation{
false};
182 float mSimRespVDShift{0.f};
183 float mSimRespVDScaleX{1.f};
184 float mSimRespVDScaleZ{1.f};
185 float mSimRespMLOTShift{0.f};
186 float mSimRespMLOTScaleX{1.f};
187 float mSimRespMLOTScaleZ{1.f};
188 float mSimRespVDScaleDepth{1.f};
189 float mSimRespMLOTScaleDepth{1.f};
191 const GeometryTGeo* mGeometry =
nullptr;
193 std::vector<o2::trkft3::ChipDigitsContainer> mChips;
194 std::deque<std::unique_ptr<ExtraDig>> mExtraBuff;
196 std::vector<o2::trkft3::Digit>* mDigits =
nullptr;
197 std::vector<o2::trkft3::ROFRecord>* mROFRecords =
nullptr;
void process(const std::vector< o2::trkft3::Hit > *hits, int evID, int srcID, int layer)
Steer conversion of hits to digits.