Project
Loading...
Searching...
No Matches
runDataProcessing.h File Reference

Go to the source code of this file.

Classes

struct  UserCustomizationsHelper
 

Namespaces

namespace  o2
 a couple of static helper functions to create timestamp values for CCDB queries or override obsolete objects
 
namespace  o2::framework
 Defining PrimaryVertex explicitly as messageable.
 

Concepts

concept  WithUserOverride
 
concept  WithNonTrivialDefault
 

Functions

o2::framework::WorkflowSpec defineDataProcessing (o2::framework::ConfigContext const &context)
 This function hooks up the the workflow specifications into the DPL driver.
 
void defaultConfiguration (std::vector< o2::framework::ConfigParamSpec > &globalWorkflowOptions)
 
void defaultConfiguration (std::vector< o2::framework::ServiceSpec > &services)
 
std::vector< o2::framework::ConfigParamSpecrequiredWorkflowOptions ()
 Workflow options which are required by DPL in order to work.
 
void overridePipeline (o2::framework::ConfigContext &ctx, std::vector< o2::framework::DataProcessorSpec > &workflow)
 Helper used to customize a workflow pipelining options.
 
void overrideCloning (o2::framework::ConfigContext &ctx, std::vector< o2::framework::DataProcessorSpec > &workflow)
 Helper used to customize a workflow via a template data processor.
 
void overrideLabels (o2::framework::ConfigContext &ctx, std::vector< o2::framework::DataProcessorSpec > &workflow)
 Helper used to add labels to Data Processors.
 
int doMain (int argc, char **argv, o2::framework::WorkflowSpec const &specs, std::vector< o2::framework::ChannelConfigurationPolicy > const &channelPolicies, std::vector< o2::framework::CompletionPolicy > const &completionPolicies, std::vector< o2::framework::DispatchPolicy > const &dispatchPolicies, std::vector< o2::framework::ResourcePolicy > const &resourcePolicies, std::vector< o2::framework::CallbacksPolicy > const &callbacksPolicies, std::vector< o2::framework::SendingPolicy > const &sendingPolicies, std::vector< o2::framework::ConfigParamSpec > const &workflowOptions, std::vector< o2::framework::ConfigParamSpec > const &detectedOptions, o2::framework::ConfigContext &configContext)
 
void doDefaultWorkflowTerminationHook ()
 
template<typename T >
requires requires(T& policy) { { T::createDefaultPolicies() } -> std::same_as<std::vector<T>>; }
std::vector< T > injectCustomizations ()
 
template<typename T >
requires requires(T& hook) { customize(hook); }
void callWorkflowTermination (T &hook, char const *idstring)
 
template<typename T >
void callWorkflowTermination (T &, char const *idstring)
 
void overrideAll (o2::framework::ConfigContext &ctx, std::vector< o2::framework::DataProcessorSpec > &workflow)
 
o2::framework::ConfigContext createConfigContext (std::unique_ptr< o2::framework::ConfigParamRegistry > &workflowOptionsRegistry, o2::framework::ServiceRegistry &configRegistry, std::vector< o2::framework::ConfigParamSpec > &workflowOptions, std::vector< o2::framework::ConfigParamSpec > &extraOptions, int argc, char **argv)
 
std::unique_ptr< o2::framework::ServiceRegistrycreateRegistry ()
 
int mainNoCatch (int argc, char **argv)
 
int callMain (int argc, char **argv, int(*)(int, char **))
 
chargetIdString (int argc, char **argv)
 
int main (int argc, char **argv)
 

Function Documentation

◆ callMain()

int callMain ( int  argc,
char **  argv,
int(*)(int, char **)  mainNoCatch 
)

Definition at line 195 of file runDataProcessing.cxx.

◆ callWorkflowTermination() [1/2]

template<typename T >
void callWorkflowTermination ( T &  ,
char const *  idstring 
)

Definition at line 163 of file runDataProcessing.h.

◆ callWorkflowTermination() [2/2]

template<typename T >
requires requires(T& hook) { customize(hook); }
void callWorkflowTermination ( T &  hook,
char const *  idstring 
)

Definition at line 154 of file runDataProcessing.h.

◆ createConfigContext()

o2::framework::ConfigContext createConfigContext ( std::unique_ptr< o2::framework::ConfigParamRegistry > &  workflowOptionsRegistry,
o2::framework::ServiceRegistry configRegistry,
std::vector< o2::framework::ConfigParamSpec > &  workflowOptions,
std::vector< o2::framework::ConfigParamSpec > &  extraOptions,
int  argc,
char **  argv 
)

Definition at line 2809 of file runDataProcessing.cxx.

◆ createRegistry()

std::unique_ptr< o2::framework::ServiceRegistry > createRegistry ( )

Definition at line 2829 of file runDataProcessing.cxx.

◆ defaultConfiguration() [1/2]

void defaultConfiguration ( std::vector< o2::framework::ConfigParamSpec > &  globalWorkflowOptions)

Definition at line 69 of file runDataProcessing.h.

◆ defaultConfiguration() [2/2]

void defaultConfiguration ( std::vector< o2::framework::ServiceSpec > &  services)

Definition at line 80 of file runDataProcessing.h.

◆ defineDataProcessing()

o2::framework::WorkflowSpec defineDataProcessing ( ConfigContext const &  configcontext)

This function hooks up the the workflow specifications into the DPL driver.

To be implemented by the user to specify one or more DataProcessorSpec.

Use the ConfigContext context in input to get the value of global configuration properties like command line options, number of available CPUs or whatever can affect the creation of the actual workflow.

Returns
a std::vector of DataProcessorSpec which represents the actual workflow to be executed

The workflow executable for the stand alone CPV reconstruction workflow The basic workflow for CPV reconstruction is defined in RecoWorkflow.cxx and contains the following default processors

  • digit reader
  • clusterer

The default workflow can be customized by specifying input and output types e.g. digits, raw, tracks.

MC info is processed by default, disabled by using command line option --disable-mc

This function hooks up the the workflow specifications into the DPL driver.

The workflow executable for the stand alone CTP reconstruction workflow

  • digit and lumi reader This function hooks up the the workflow specifications into the DPL driver.

The workflow executable for the stand alone EMCAL reconstruction workflow The basic workflow for EMCAL reconstruction is defined in RecoWorkflow.cxx and contains the following default processors

  • digit reader
  • clusterer

The default workflow can be customized by specifying input and output types e.g. digits, raw, tracks.

MC info is processed by default, disabled by using command line option --disable-mc

This function hooks up the the workflow specifications into the DPL driver.

The workflow executable for the stand alone TOF reconstruction workflow The basic workflow for TOF reconstruction is defined in RecoWorkflow.cxx and contains the following default processors

  • digit reader
  • clusterer
  • cluster raw decoder
  • track-TOF matcher

The default workflow can be customized by specifying input and output types e.g. digits, raw, clusters.

MC info is processed by default, disabled by using command line option --disable-mc

This function hooks up the the workflow specifications into the DPL driver.

DPL Workflow to process MCH or MID DCS data points.

The expected input is a vector of DataPointCompositeObject containing only MCH (or only MID) data points.

Those datapoints are accumulated into DPMAPs (map from alias names to vector of DataPointValue).

The accumulated DPMAPs are sent to the output whenever :

  • they reach a given size (–xx-max-size option(s))
  • they span a given duration (–xx-max-duration option(s))
  • the workflow is ended

DPL workflow which generates fake random MCH DCS data points.

Data points are generated for HV (currents and voltages) as well as for LV (DualSampa analog and digital voltages, and SOLAR voltages).

DPL workflow which generates fake random MID DCS data points.

Data points are generated for HV (currents and voltages).

The workflow executable for the stand alone PHOS reconstruction workflow The basic workflow for PHOS reconstruction is defined in RecoWorkflow.cxx and contains the following default processors

  • digit reader
  • clusterer

The default workflow can be customized by specifying input and output types e.g. digits, raw, tracks.

MC info is processed by default, disabled by using command line option --disable-mc

This function hooks up the the workflow specifications into the DPL driver.

MC info is processed by default, disabled by using command line option --disable-mc

This function hooks up the the workflow specifications into the DPL driver.

The workflow executable for the stand alone TPC reconstruction workflow The basic workflow for TPC reconstruction is defined in RecoWorkflow.cxx and contains the following default processors

  • digit reader
  • clusterer
  • ClusterHardware Decoder
  • CA tracker

The default workflow can be customized by specifying input and output types e.g. digits, clustershw, tracks.

MC info is processed by default, disabled by using command line option --disable-mc

This function hooks up the the workflow specifications into the DPL driver.

This function is required to be implemented to define the workflow specifications

This shows how to get a condition for the origin "TES" and the description "STRING".

This function hooks up the the workflow specifications into the DPL driver.

Entry point of o2-sim-mcevent-to-hepmc

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 81 of file barrel-alignment-workflow.cxx.

◆ doDefaultWorkflowTerminationHook()

void doDefaultWorkflowTerminationHook ( )

Definition at line 1008 of file runDataProcessing.cxx.

◆ doMain()

int doMain ( int  argc,
char **  argv,
o2::framework::WorkflowSpec const &  specs,
std::vector< o2::framework::ChannelConfigurationPolicy > const &  channelPolicies,
std::vector< o2::framework::CompletionPolicy > const &  completionPolicies,
std::vector< o2::framework::DispatchPolicy > const &  dispatchPolicies,
std::vector< o2::framework::ResourcePolicy > const &  resourcePolicies,
std::vector< o2::framework::CallbacksPolicy > const &  callbacksPolicies,
std::vector< o2::framework::SendingPolicy > const &  sendingPolicies,
std::vector< o2::framework::ConfigParamSpec > const &  workflowOptions,
std::vector< o2::framework::ConfigParamSpec > const &  detectedOptions,
o2::framework::ConfigContext configContext 
)

Iterate over the physicalWorkflow, any DataProcessorSpec that has a expendable label should have all the timeframe lifetime outputs changed to sporadic, because there is no guarantee that the device will be alive, so we should not expect its data to always arrive.

This is the earlies the services are actually needed

Set the fair::Logger severity to the one specified in the command line We do it by hand here, because FairMQ device is not initialsed until much later and we need the logger before that.

Definition at line 2843 of file runDataProcessing.cxx.

◆ getIdString()

char * getIdString ( int  argc,
char **  argv 
)

Definition at line 185 of file runDataProcessing.cxx.

◆ injectCustomizations()

template<typename T >
requires requires(T& policy) { { T::createDefaultPolicies() } -> std::same_as<std::vector<T>>; }
std::vector< T > injectCustomizations ( )

Definition at line 143 of file runDataProcessing.h.

◆ main()

int main ( int  argc,
char **  argv 
)

Definition at line 214 of file runDataProcessing.h.

◆ mainNoCatch()

int mainNoCatch ( int  argc,
char **  argv 
)

Definition at line 177 of file runDataProcessing.h.

◆ overrideAll()

void overrideAll ( o2::framework::ConfigContext ctx,
std::vector< o2::framework::DataProcessorSpec > &  workflow 
)

Definition at line 2802 of file runDataProcessing.cxx.

◆ overrideCloning()

void overrideCloning ( o2::framework::ConfigContext ctx,
std::vector< o2::framework::DataProcessorSpec > &  workflow 
)

Helper used to customize a workflow via a template data processor.

◆ overrideLabels()

void overrideLabels ( o2::framework::ConfigContext ctx,
std::vector< o2::framework::DataProcessorSpec > &  workflow 
)

Helper used to add labels to Data Processors.

◆ overridePipeline()

void overridePipeline ( o2::framework::ConfigContext ctx,
std::vector< o2::framework::DataProcessorSpec > &  workflow 
)

Helper used to customize a workflow pipelining options.

◆ requiredWorkflowOptions()

std::vector< o2::framework::ConfigParamSpec > requiredWorkflowOptions ( )

Workflow options which are required by DPL in order to work.