GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — AliceO2/Utilities/Mergers at dev · AliceO2Group/AliceO2

Expand file tree

/

Mergers

/
Copy path

Directory actions

More options

More options

Directory actions

More options

More options

Latest commit

 

History

History
History
/

Mergers

/
Copy path

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
include/Mergers
include/Mergers
 
 
src
src
 
 
test
test
 
 
CMakeLists.txt
CMakeLists.txt
 
 
README.md
README.md
 
 

README.md

O2 Mergers

Mergers are DPL devices able to merge objects produced in parallel. These can be TObjects or custom object inheriting MergeInterface. Topologies of mergers can be created using the o2::mergers::MergerInfrastructureBuilder class. To generate only one Merger, one can also use o2::mergers::MergerBuilder. Mergers provide a handful of options which are listed in the include/Mergers/MergerConfig.h file.

See the snippet from src/mergersTopologyExample.cxx as a usage example:

...

void customize(std::vector<CompletionPolicy>& policies)
{
  MergerBuilder::customizeInfrastructure(policies);
}

#include <Framework/runDataProcessing.h>

...

using namespace o2::mergers;

MergerInfrastructureBuilder mergersBuilder;

mergersBuilder.setInfrastructureName("histos");
mergersBuilder.setInputSpecs(mergersInputs);
mergersBuilder.setOutputSpec({{ "main" }, "TST", "HISTO", 0 });

MergerConfig config;
config.inputObjectTimespan = { InputObjectsTimespan::LastDifference };
config.mergedObjectTimespan = {MergedObjectTimespan::FullHistory};
config.publicationDecision = { PublicationDecision::EachNSeconds, 5};
config.topologySize = { TopologySize::NumberOfLayers, 2};

mergersBuilder.setConfig(config);

mergersBuilder.generateInfrastructure(specs); 
    
...

It creates a 2-layer topology of Mergers, which will consume mergerInputs and send merged object on the Output {{"main"}, "TST", "HISTO", 0 }. The infrastructure will integrate the received differences and each 5 seconds it will merge and publish the merged object. It will consist of a full history of the data that the topology will have received.

You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.