Project
Loading...
Searching...
No Matches
ChunkedDigitPublisher.cxx File Reference
#include "Framework/WorkflowSpec.h"
#include "Framework/DataProcessorSpec.h"
#include "Framework/Task.h"
#include "Framework/DataAllocator.h"
#include "Framework/ControlService.h"
#include "DataFormatsTPC/Digit.h"
#include "CommonUtils/ConfigurableParam.h"
#include "DetectorsRaw/HBFUtilsInitializer.h"
#include "TPCSimulation/CommonMode.h"
#include "DetectorsBase/Detector.h"
#include <SimulationDataFormat/MCCompLabel.h>
#include <SimulationDataFormat/MCTruthContainer.h>
#include <SimulationDataFormat/ConstMCTruthContainer.h>
#include <CommonUtils/FileSystemUtils.h>
#include "Algorithm/RangeTokenizer.h"
#include "TPCBase/Sector.h"
#include <TFile.h>
#include <TTree.h>
#include <TBranch.h>
#include <stdexcept>
#include <string>
#include <vector>
#include <utility>
#include <numeric>
#include <TROOT.h>
#include <cassert>
#include <TStopwatch.h>
#include "Framework/runDataProcessing.h"
#include "DataFormatsTPC/TPCSectorHeader.h"

Go to the source code of this file.

Classes

class  o2::tpc::Task
 

Namespaces

namespace  o2
 a couple of static helper functions to create timestamp values for CCDB queries or override obsolete objects
 
namespace  o2::tpc
 Global TPC definitions and constants.
 

Typedefs

using SubSpecificationType = o2::framework::DataAllocator::SubSpecificationType
 Takes TPC digit chunks (such drift times) --> accumulates to digit timeframe format --> publishes.
 
using MCTruthContainer = o2::dataformats::MCTruthContainer< o2::MCCompLabel >
 

Functions

void customize (std::vector< o2::framework::CallbacksPolicy > &policies)
 
void customize (std::vector< o2::framework::ConfigParamSpec > &workflowOptions)
 
template<typename T , typename R >
void o2::tpc::copyHelper (T const &origin, R &target)
 
template<>
void o2::tpc::copyHelper< MCTruthContainer > (MCTruthContainer const &origin, MCTruthContainer &target)
 
template<typename T >
auto o2::tpc::makePublishBuffer (framework::ProcessingContext &pc, int sector, uint64_t activeSectors)
 
template<>
auto o2::tpc::makePublishBuffer< MCTruthContainer > (framework::ProcessingContext &pc, int sector, uint64_t activeSectors)
 
template<typename T >
void o2::tpc::publishBuffer (framework::ProcessingContext &pc, int sector, uint64_t activeSectors, T *accum)
 
template<>
void o2::tpc::publishBuffer< MCTruthContainer > (framework::ProcessingContext &pc, int sector, uint64_t activeSectors, MCTruthContainer *accum)
 
template<typename T >
void o2::tpc::mergeHelper (const char *brprefix, std::vector< int > const &tpcsectors, uint64_t activeSectors, TFile &originfile, framework::ProcessingContext &pc)
 
void o2::tpc::publishMergedTimeframes (std::vector< int > const &lanes, std::vector< int > const &tpcsectors, bool domctruth, framework::ProcessingContext &pc)
 
DataProcessorSpec o2::tpc::getSpec (std::vector< int > const &laneConfiguration, std::vector< int > const &tpcsectors, bool mctruth, bool publish=true)
 
WorkflowSpec defineDataProcessing (ConfigContext const &configcontext)
 This function hooks up the the workflow specifications into the DPL driver.
 

Typedef Documentation

◆ MCTruthContainer

◆ SubSpecificationType

Takes TPC digit chunks (such drift times) --> accumulates to digit timeframe format --> publishes.

Author
Sandro Wenzel
Since
2021-03-10

Definition at line 50 of file ChunkedDigitPublisher.cxx.

Function Documentation

◆ customize() [1/2]

void customize ( std::vector< o2::framework::CallbacksPolicy > &  policies)

Definition at line 55 of file ChunkedDigitPublisher.cxx.

◆ customize() [2/2]

void customize ( std::vector< o2::framework::ConfigParamSpec > &  workflowOptions)

Definition at line 61 of file ChunkedDigitPublisher.cxx.

◆ defineDataProcessing()

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.

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

Definition at line 283 of file ChunkedDigitPublisher.cxx.