5#include <FairParRootFileIo.h>
6#include <FairRootManager.h>
8#include <FairRuntimeDb.h>
11#include <TDirectory.h>
18 template <
typename EngineType,
typename... Args>
19 void FillEngine(EngineType& engine,
R3B::FTType type,
unsigned int ftValue, Args&&... args)
21 engine.Fill(type, ftValue, std::forward<Args>(args)...);
29 std::string_view trig_mapped_data_name,
30 std::string_view par_name,
31 std::string_view trig_par_name)
60 if (
auto* base_par =
GetBasePar(); base_par !=
nullptr)
108 for (
const auto& [plane_num, planeSignals] :
map_data_)
110 for (
const auto& [barNum, barSignals] : planeSignals.bars)
112 auto barNum_tmp = barNum;
114 fmt::format(
"Calibrating with the map-level bar signal: {}, barNum: {}", barSignals, barNum));
116 const auto plane_number = plane_num;
117 auto FillData = [&](
FTType type,
auto value)
118 { FillEngine(
map_cal_engine_, type, value, plane_number, barNum_tmp); };
119 for (
const auto& signal : barSignals.left)
124 for (
const auto& signal : barSignals.right)
138 fmt::format(
"Calibrating with the map-level bar trig signal: {}, module num: {}",
139 moduleSignals.signal,
147 R3BLOG(debug,
"Starting to write calibration parameter...");
156 R3BLOG(debug,
"Calibration parameter written complete.");
161 auto old_dir = gDirectory;
162 auto* runDb = FairRuntimeDb::instance();
163 if (
auto* parRootFileIo =
dynamic_cast<ParRootFileIo*
>(runDb->getOutput()); parRootFileIo !=
nullptr)
165 auto* parRootFile = parRootFileIo->get_first_root_file();
166 if (!parRootFile->IsOpen() || !parRootFile->IsWritable())
168 throw R3B::runtime_error(
"R3B::ParRootFile is either closed or unable to be written!");
171 auto* new_dir = gDirectory->mkdir(
"CalParHistograms",
"",
true);
172 if (new_dir ==
nullptr)
#define R3BLOG(severity, x)
auto GetBasePar() const -> auto *
float coarse_time_frequency_
OutputParView< Map2CalPar > map_to_cal_trig_par_
calibration::FTEngine< calibration::ModuleCal > trig_map_cal_engine_
void TriggeredExec() override
InputMapConnector< int, PaddleTamexMappedData > map_data_
void ExtraInit(FairRootManager *rootMan) override
calibration::FTCalStrategy cal_strategy_
calibration::FTEngine< calibration::PlaneCal > map_cal_engine_
Map2CalParTask(std::string_view mapped_data_name="NeulandMappedData", std::string_view trig_mapped_data_name="NeulandTrigMappedData", std::string_view par_name="LandTCalPar", std::string_view trig_par_name="LandTrigTCalPar")
void EndOfTask() override
OutputParView< Map2CalPar > map_to_cal_par_
InputMapConnector< int, PaddleTamexTrigMappedData > trig_map_data_
Simulation of NeuLAND Bar/Paddle.