59 auto cput = mTimer.CpuTime();
61 updateTimeDependentParams(pc);
66 mCTFCoder.setSelectedIRFrames(pc.
inputs().
get<gsl::span<o2::dataformats::IRFrame>>(
"selIRFrames"));
69 for (uint32_t iLayer = 0; iLayer < nLayers; iLayer++) {
70 auto compClusters = pc.
inputs().
get<gsl::span<o2::itsmft::CompClusterExt>>(getBinding(
"compClusters", iLayer));
71 auto pspan = pc.
inputs().
get<gsl::span<unsigned char>>(getBinding(
"patterns", iLayer));
72 auto rofs = pc.
inputs().
get<gsl::span<o2::itsmft::ROFRecord>>(getBinding(
"ROframes", iLayer));
75 iosize += mCTFCoder.encode(
buffer, rofs, compClusters, pspan, mPattIdConverter, iLayer);
79 mCTFCoder.getIRFramesSelector().clear();
82 LOG(info) << iosize.asString() <<
" in " << mTimer.CpuTime() - cput <<
" s";
131 std::vector<InputSpec> inputs;
132 std::vector<OutputSpec> outputs;
133 for (uint32_t iLayer = 0; iLayer < nLayers; ++iLayer) {
137 outputs.emplace_back(Origin,
"CTFDATA", iLayer, Lifetime::Timeframe);
140 inputs.emplace_back(
"selIRFrames",
"CTF",
"SELIRFRAMES", 0, Lifetime::Timeframe);
141 inputs.emplace_back(
"cldict", Origin,
"CLUSDICT", 0, Lifetime::Condition,
ccdbParamSpec(fmt::format(
"{}/Calib/ClusterDictionary", Origin.as<std::string>())));
143 inputs.emplace_back(
"alppar", Origin,
"ALPIDEPARAM", 0, Lifetime::Condition,
ccdbParamSpec(fmt::format(
"{}/Config/AlpideParam", Origin.as<std::string>())));
145 if (ctfdictOpt.empty() || ctfdictOpt ==
"ccdb") {
146 inputs.emplace_back(
"ctfdict", Origin,
"CTFDICT", 0, Lifetime::Condition,
ccdbParamSpec(fmt::format(
"{}/Calib/CTFDictionaryTree", Origin.as<std::string>())));
148 outputs.emplace_back(
OutputSpec{{
"ctfrep"}, Origin,
"CTFENCREP", 0, Lifetime::Timeframe});
153 AlgorithmSpec{adaptFromTask<EntropyEncoderSpec<N>>(doStag, selIR, ctfdictOpt)},
154 Options{{
"irframe-margin-bwd", VariantType::UInt32, 0u, {
"margin in BC to add to the IRFrame lower boundary when selection is requested"}},
155 {
"irframe-margin-fwd", VariantType::UInt32, 0u, {
"margin in BC to add to the IRFrame upper boundary when selection is requested"}},
156 {
"mem-factor", VariantType::Float, 1.f, {
"Memory allocation margin factor"}},
157 {
"ans-version", VariantType::String, {
"version of ans entropy coder implementation to use"}}}};
DataAllocator & outputs()
The data allocator is used to allocate memory for the output data.
InputRecord & inputs()
The inputs associated with this processing context.
ServiceRegistryRef services()
The services registry associated with this processing context.