137 std::cout <<
"\rR3BNeulandCal2Hit " <<
fEventNumber <<
" Events converted." << std::flush;
145 const bool beam = !std::isnan(start);
147 for (
auto calDataPtrPtr = calData.begin(); calDataPtrPtr != calData.end(); calDataPtrPtr++)
149 const auto barID = (*calDataPtrPtr)->GetBarId() - 1;
152 fmt::format(
"Input calData barID: {}, side: {}, time: {}, fTriggerTime: {}, fQdc: {}",
153 (*calDataPtrPtr)->GetBarId(),
154 (*calDataPtrPtr)->GetSide(),
155 (*calDataPtrPtr)->GetTime(),
156 (*calDataPtrPtr)->GetTriggerTime(),
157 (*calDataPtrPtr)->GetQdc()));
165 fHitMap[barID] = *calDataPtrPtr;
169 const auto& parameter =
fParMap[barID];
171 std::array<const R3BNeulandCalData*, 2> cal;
172 if ((*calDataPtrPtr)->GetSide() == 1)
173 cal = { *calDataPtrPtr,
fHitMap[barID] };
175 cal = {
fHitMap[barID], *calDataPtrPtr };
177 const std::array<double, 2> qdc = { std::max(cal[0]->GetQdc() - parameter.GetPedestal(1), 1.),
178 std::max(cal[1]->GetQdc() - parameter.GetPedestal(2), 1.) };
180 const std::array<Double_t, 2> unsatEnergy = {
185 const auto energy = TMath::Sqrt(
fAttenuationValues[barID] * unsatEnergy[0] * unsatEnergy[1]);
190 std::array<Double_t, 2> tdc;
192 if (std::isnan(cal[0]->GetTriggerTime()) || std::isnan(cal[0]->GetTriggerTime()))
194 tdc = { cal[0]->GetTime() + parameter.GetTimeOffset(1), cal[1]->GetTime() + parameter.GetTimeOffset(2) };
198 tdc = { cal[0]->GetTime() - cal[0]->GetTriggerTime() + parameter.GetTimeOffset(1),
199 cal[1]->GetTime() - cal[1]->GetTriggerTime() + parameter.GetTimeOffset(2) };
228 fmt::print(
"time: {}, start: {}\n", time, start);
237 const auto bar = (barID) % 50;
245 pos[0] = parameter.GetEffectiveSpeed() * (tdc[1] - tdc[0]);
248 pixel[0] = std::min(std::max(0., pos[0] / 5. + 25), 49.);
254 pos[1] = parameter.GetEffectiveSpeed() * (tdc[1] - tdc[0]);
257 pixel[1] = std::min(std::max(0., pos[1] / 5. + 25), 49.);
270 ROOT::Math::XYZVector{ pos },
271 ROOT::Math::XYZVector{ pixel } };
272 R3BLOG(debug1, fmt::format(
"Neuland hit: {}", hit));