7#include <FairParRootFileIo.h>
8#include <FairRootManager.h>
10#include <FairRuntimeDb.h>
12#include <TDirectory.h>
19 template <
typename EngineType,
typename... Args>
20 void FillEngine(EngineType& engine,
R3B::FTType type,
unsigned int ftValue, Args&&... args)
22 engine.Fill(type, ftValue, std::forward<Args>(args)...);
47 R3BLOG(info,
"TrigIDMap is automatically determined!");
51 R3BLOG(info,
"TrigIDMap is read from the base par file!");
84 auto planeNum = planeSignals.plane_num;
85 for (
const auto& [barID, barSignals] : planeSignals.bars)
91 std::make_pair(moduleID, trigID),
Side::left, barSignals.left.size());
93 std::make_pair(moduleID, trigID),
Side::right, barSignals.right.size());
103 auto planeID = planeSignals.plane_num;
104 for (
const auto& [barNum, barSignals] : planeSignals.bars)
106 auto barNum_tmp = barNum;
108 fmt::format(
"Calibrating with the map-level bar signal: {}, barNum: {}", barSignals, barNum));
109 auto FillData = [&](
FTType type,
auto value)
110 { FillEngine(
mapCalEngine_, type, value, planeID, barNum_tmp); };
111 for (
const auto& signal : barSignals.left)
116 for (
const auto& signal : barSignals.right)
130 fmt::format(
"Calibrating with the map-level bar trig signal: {}, module num: {}",
131 moduleSignals.signal,
139 R3BLOG(debug,
"Starting to write calibration parameter...");
148 R3BLOG(debug,
"Calibration parameter written complete.");
153 auto old_dir = gDirectory;
154 auto* runDb = FairRuntimeDb::instance();
155 if (
auto* parRootFileIo =
dynamic_cast<FairParRootFileIo*
>(runDb->getOutput()); parRootFileIo !=
nullptr)
157 auto* parRootFile = parRootFileIo->getParRootFile();
158 if (!parRootFile->IsOpen() || !parRootFile->IsWritable())
163 auto* new_dir = gDirectory->mkdir(
"CalParHistograms",
"",
true);
164 if (new_dir ==
nullptr)
#define R3BLOG(severity, x)
auto GetBasePar() -> auto *
float coarse_time_frequency_
InputVectorConnector< PaddleTamexMappedData > mappedData_
InputMapConnector< unsigned int, PaddleTamexTrigMappedData > trigMappedData_
void RecordTrigMappingID()
Map2CalPar * calibrationTrigPar_
void TriggeredExec() override
calibration::FTEngine< calibration::PlaneCal > mapCalEngine_
void ExtraInit(FairRootManager *rootMan) override
calibration::FTCalStrategy cal_strategy_
void EndOfTask() override
TrigIDMappingFinder trigIDMappingFinder_
calibration::FTEngine< calibration::ModuleCal > trigMapCalEngine_
Map2CalPar * calibrationPar_
Simulation of NeuLAND Bar/Paddle.
constexpr auto Neuland_PlaneBar2ModuleNum(unsigned int planeNum, unsigned int barNum) -> unsigned int