![]() |
Project
|
#include <boost/program_options.hpp>
#include "../Framework/Core/src/ArrowSupport.h"
#include "Framework/WorkflowSpec.h"
#include "Framework/ConfigParamSpec.h"
#include "Framework/ExternalFairMQDeviceProxy.h"
#include "Framework/RawDeviceService.h"
#include "Framework/Task.h"
#include "Framework/DataRef.h"
#include "Framework/InputRecordWalker.h"
#include "Headers/DataHeader.h"
#include "Headers/Stack.h"
#include "SimulationDataFormat/MCTrack.h"
#include "SimulationDataFormat/MCEventHeader.h"
#include "Framework/DataProcessingHeader.h"
#include <CommonUtils/FileSystemUtils.h>
#include <unistd.h>
#include "Framework/runDataProcessing.h"
Go to the source code of this file.
Classes | |
class | ConsumerTask |
Functions | |
void | customize (std::vector< o2::framework::ConfigParamSpec > &workflowOptions) |
InjectorFunction | o2simKinematicsConverter (std::vector< OutputSpec > const &specs, uint64_t startTime, uint64_t step, int nevents, int nPerTF) |
WorkflowSpec | defineDataProcessing (ConfigContext const &configcontext) |
Describe the DPL workflow. | |
void customize | ( | std::vector< o2::framework::ConfigParamSpec > & | workflowOptions | ) |
Definition at line 33 of file o2sim_mctracks_proxy.cxx.
WorkflowSpec defineDataProcessing | ( | ConfigContext const & | configcontext | ) |
Describe the DPL workflow.
This function hooks up the the workflow specifications into the DPL driver.
We define at run time the number of devices to be attached to the workflow and the input matching string of the device. This is is done with a configuration string like the following one, where the input matching for each device is provide in comma-separated strings. For instance
A:TOF/RAWDATA/768;B:TOF/RAWDATA/1024,C:TOF/RAWDATA/1280;D:TOF/RAWDATA/1536
will lead to a workflow with 2 devices which will input match
tof-compressor-0 --> A:TOF/RAWDATA/768;B:TOF/RAWDATA/1024 tof-compressor-1 --> C:TOF/RAWDATA/1280;D:TOF/RAWDATA/1536
This gets a table handle from the message.
From the handle, we construct the actual arrow table which is then used as a source for the RDataFrame. This is probably easy to change to a:
auto rdf = ctx.inputs().get<RDataSource>("xz");
Get the input from the converter.
Get a table builder to build the results
Definition at line 162 of file o2sim_mctracks_proxy.cxx.
InjectorFunction o2simKinematicsConverter | ( | std::vector< OutputSpec > const & | specs, |
uint64_t | startTime, | ||
uint64_t | step, | ||
int | nevents, | ||
int | nPerTF | ||
) |
Function converting raw input data to DPL data format. Uses knowledge of how MCTracks and MCEventHeaders are sent from the o2sim side. If aggregate-timeframe is set to non-negative value N, this number of events is accumulated and then sent as a multipart message, which is useful for AOD creation
Definition at line 86 of file o2sim_mctracks_proxy.cxx.