7#include <FairMCEventHeader.h>
8#include <FairRootManager.h>
9#include <FairRuntimeDb.h>
13#include <RtypesCore.h>
22 void convert_event_header(FairMCEventHeader* mc_header, R3BEventHeader* header)
24 if (mc_header ==
nullptr)
26 throw R3B::runtime_error(
"MCEventHeader is nullptr!");
28 if (header ==
nullptr)
30 throw R3B::runtime_error(
"EventHeader is nullptr!");
32 header->SetRunId(mc_header->GetRunID());
53 auto* root_manager = FairRootManager::Instance();
59 if (
mc_event_header_ =
dynamic_cast<FairMCEventHeader*
>(root_manager->GetObject(
"MCEventHeader."));
62 throw R3B::logic_error(
"Cannot find MCEventHeader from the input simulated data file.");
68 auto* rtdb = FairRuntimeDb::instance();
69 base_par_ = std::make_unique<CalibrationBasePar>().release();
84 convert(sim_cal_data, cal_data);
92 std::vector<BarCalData>& cal_data)
95 for (
const auto& sim_data : sim_cal_data)
97 auto module_id = sim_data.module_id;
98 auto [iter, _] =
bar_map_data_.try_emplace(module_id,
static_cast<unsigned int>(module_id));
102 left_signal.time_over_threshold =
ValueError<double>{ sim_data.time_over_thresh.left(), 0 };
106 right_signal.time_over_threshold =
ValueError<double>{ sim_data.time_over_thresh.right(), 0 };
108 auto& obj = iter->second;
109 obj.left.push_back(left_signal);
110 obj.right.push_back(right_signal);
114 cal_data.push_back(
pair.second);
void convert(const std::vector< R3B::Neuland::SimCalData > &sim_cal_data, std::vector< BarCalData > &cal_data)
std::unordered_map< int, BarCalData > bar_map_data_
FairMCEventHeader * mc_event_header_
auto Init() -> InitStatus override
CalibrationBasePar * base_par_
SimCal2Cal(std::string_view sim_cal_data_name="NeulandSimCal", std::string_view cal_data_name="NeulandCalData")
R3BEventHeader * event_header_
void Exec(Option_t *) override
void FinishTask() override
void SetParContainers() override
OutputVectorConnector< BarCalData > cal_data_
InputVectorConnector< R3B::Neuland::SimCalData > sim_cal_data_
Simulation of NeuLAND Bar/Paddle.
ValueError< double > leading_time