37 TimingDeviceDPL(int16_t localToBC, std::vector<of::OutputSpec> outputSpecs) : mLocalToBC(localToBC)
50 std::array<std::vector<ROFRecord>,
NEvTypes> outRofs;
52 for (
size_t idx = 0; idx <
NEvTypes; ++idx) {
55 outRofs[idx].insert(outRofs[idx].
end(), inRofs[idx].begin(), inRofs[idx].
end());
57 for (
auto rof : inRofs[idx]) {
58 applyElectronicsDelay(rof.interactionRecord.orbit, rof.interactionRecord.bc, mLocalToBC, mMaxBunches);
59 outRofs[idx].emplace_back(rof);
67 int16_t mLocalToBC = 0;
69 std::vector<of::Output> mOutputs;
81 of::AlgorithmSpec{of::adaptFromTask<o2::mid::TimingDeviceDPL>(
static_cast<int16_t
>(localToBC), outputSpecs)}};
Utilities for MID Column Data Specs.
Delay parameters for MID electronics.
Device to synchronize MID clock with collision BC.
void snapshot(const Output &spec, T const &object)
DataAllocator & outputs()
The data allocator is used to allocate memory for the output data.
TimingDeviceDPL(int16_t localToBC, std::vector< of::OutputSpec > outputSpecs)
void init(o2::framework::InitContext &ic)
void run(o2::framework::ProcessingContext &pc)
constexpr int LHCMaxBunches
Defining PrimaryVertex explicitly as messageable.
std::vector< framework::InputSpec > buildInputSpecs(std::string_view dataBind, std::string_view dataDesc, bool useMC)
std::vector< framework::Output > buildOutputs(std::vector< framework::OutputSpec > outputSpecs)
std::vector< framework::OutputSpec > buildOutputSpecs(std::string_view bind, std::string_view description)
std::array< gsl::span< const ROFRecord >, NEvTypes > getRofs(framework::ProcessingContext &pc, std::string_view dataBind)
void applyElectronicsDelay(uint32_t &orbit, uint16_t &bc, int16_t delay, uint16_t maxBunches=constants::lhc::LHCMaxBunches)
framework::DataProcessorSpec getTimingSpec(int localToBC, std::string_view inRofDesc)
constexpr uint32_t NEvTypes
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...