57 std::string detName = dataOrigin.template as<std::string>();
58 std::string detNameLower = detName;
59 std::for_each(detNameLower.begin(), detNameLower.end(), [](
char&
c) { c = ::tolower(c); });
60 auto dplName = T::sChannelNameDPL;
61 auto dplLabel = std::string{dplName};
62 std::for_each(dplLabel.begin(), dplLabel.end(), [](
char&
c) { c = ::tolower(c); });
64 auto branchName = std::string{T::sDigitBranchName};
65 auto optionStr = std::string{detNameLower +
"-" + dplName +
"-branch-name"};
83 std::string detName = dataOrigin.template as<std::string>();
84 std::string detNameLower = detName;
85 std::for_each(detNameLower.begin(), detNameLower.end(), [](
char&
c) { c = ::tolower(c); });
87 auto logger = [](std::vector<Digit_t>
const& vecDigits) {
88 LOG(info) <<
"FITDigitWriter pulled " << vecDigits.size() <<
" digits";
91 auto finishWriting = [](TFile* outputfile, TTree* outputtree) {
92 const auto* brArr = outputtree->GetListOfBranches();
94 for (
const auto* brc : *brArr) {
95 int64_t
n = ((
const TBranch*)brc)->GetEntries();
96 if (nent && (nent !=
n)) {
97 LOG(error) <<
"Branches have different number of entries";
101 outputtree->SetEntries(nent);
105 auto digitsdef = getBranchDef<Digit_t>(dataOrigin, 1, logger);
106 auto trginputdef = getBranchDef<DetTrigInput_t>(dataOrigin);
108 if constexpr (trigInp ==
false) {
110 std::string{detName +
"DigitWriterRaw"}.c_str(),
111 std::string{
"o2_" + detNameLower +
"digits.root"}.c_str(),
114 getBranchDefFromTuple<IsubDigits, SubDigit_t>(dataOrigin)...,
115 getBranchDefFromTuple<IsingleSubDigits, SingleSubDigit_t>(dataOrigin)...,
116 std::move(digitsdef),
117 std::move(labelsdef))();
120 std::string{detName +
"DigitWriter"}.c_str(),
121 std::string{detNameLower +
"digits.root"}.c_str(),
124 getBranchDefFromTuple<IsubDigits, SubDigit_t>(dataOrigin)...,
125 getBranchDefFromTuple<IsingleSubDigits, SingleSubDigit_t>(dataOrigin)...,
126 std::move(digitsdef),
127 std::move(trginputdef),
128 std::move(labelsdef))();