136 std::cout <<
"\rR3BNeulandCal2Hit " <<
fEventNumber <<
" Events converted." << std::flush;
144 const bool beam = !std::isnan(start);
146 for (
auto calDataPtrPtr = calData.begin(); calDataPtrPtr != calData.end(); calDataPtrPtr++)
148 const auto barID = (*calDataPtrPtr)->GetBarId() - 1;
151 fmt::format(
"Input calData barID: {}, side: {}, time: {}, fTriggerTime: {}, fQdc: {}",
152 (*calDataPtrPtr)->GetBarId(),
153 (*calDataPtrPtr)->GetSide(),
154 (*calDataPtrPtr)->GetTime(),
155 (*calDataPtrPtr)->GetTriggerTime(),
156 (*calDataPtrPtr)->GetQdc()));
164 fHitMap[barID] = *calDataPtrPtr;
168 const auto& parameter =
fParMap[barID];
170 std::array<const R3BNeulandCalData*, 2> cal;
171 if ((*calDataPtrPtr)->GetSide() == 1)
172 cal = { *calDataPtrPtr,
fHitMap[barID] };
174 cal = {
fHitMap[barID], *calDataPtrPtr };
176 const std::array<double, 2> qdc = { std::max(cal[0]->GetQdc() - parameter.GetPedestal(1), 1.),
177 std::max(cal[1]->GetQdc() - parameter.GetPedestal(2), 1.) };
179 const std::array<Double_t, 2> unsatEnergy = {
184 const auto energy = TMath::Sqrt(
fAttenuationValues[barID] * unsatEnergy[0] * unsatEnergy[1]);
189 std::array<Double_t, 2> tdc;
191 if (std::isnan(cal[0]->GetTriggerTime()) || std::isnan(cal[0]->GetTriggerTime()))
193 tdc = { cal[0]->GetTime() + parameter.GetTimeOffset(1), cal[1]->GetTime() + parameter.GetTimeOffset(2) };
197 tdc = { cal[0]->GetTime() - cal[0]->GetTriggerTime() + parameter.GetTimeOffset(1),
198 cal[1]->GetTime() - cal[1]->GetTriggerTime() + parameter.GetTimeOffset(2) };
227 fmt::print(
"time: {}, start: {}\n", time, start);
236 const auto bar = (barID) % 50;
244 pos[0] = parameter.GetEffectiveSpeed() * (tdc[1] - tdc[0]);
247 pixel[0] = std::min(std::max(0., pos[0] / 5. + 25), 49.);
253 pos[1] = parameter.GetEffectiveSpeed() * (tdc[1] - tdc[0]);
256 pixel[1] = std::min(std::max(0., pos[1] / 5. + 25), 49.);
262 auto hit =
R3BNeulandHit{ barID + 1, tdc[0], tdc[1], time, unsatEnergy[0], unsatEnergy[1], energy, pos, pixel };
263 R3BLOG(debug1, fmt::format(
"Neuland hit: {}", hit));