Project

General

Profile

Feature #20594

Milestone #20573: Separate ROOT from core framework functionality

Make MixHelper I/O agnostic

Added by Kyle Knoepfel about 1 year ago. Updated 9 months ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Infrastructure
Target version:
Start date:
08/13/2018
Due date:
% Done:

100%

Estimated time:
8.00 h
Spent time:
Scope:
Internal
Experiment:
-
SSI Package:
art
Duration:

Description

A reference to a MixHelper object is passed to the constructor of a MixFilter detail class. This class must be abstracted in some way so that it can support alternative I/O formats.


Related issues

Blocks art - Feature #20575: Migrate ROOT-dependent art facilities to art_root_ioClosed08/09/2018

History

#1 Updated by Kyle Knoepfel about 1 year ago

  • Blocks Feature #20575: Migrate ROOT-dependent art facilities to art_root_io added

#2 Updated by Kyle Knoepfel about 1 year ago

  • Target version set to Vega

#3 Updated by Kyle Knoepfel about 1 year ago

  • Category set to Infrastructure
  • Status changed from Accepted to Resolved
  • Assignee set to Kyle Knoepfel
  • % Done changed from 0 to 100
  • SSI Package art added

Due to some entanglements between MixHelper and MixOpBase and ROOT, this feature was more difficult than anticipated. The end result, however, is that a MixHelper object is now constructed with a MixIOPolicy object, which polymorphically represents the I/O mechanisms required for reading the files that contain the products to be mixed.

In order to support this, there is an interface change required. Users will need to specify the I/O policy for their detail object (e.g.):

#include "art/Framework/Modules/MixFilter.h" 
#include "art_root_io/RootIOPolicy.h" 

class MyMixingClass {
  ...
};

using MyFilterModule = art::MixFilter<MyMixingClass, art::RootIOPolicy>;
DEFINE_ART_MODULE(MyFilterModule)

Resolved with commit art:8d34cbc.

#4 Updated by Kyle Knoepfel about 1 year ago

  • Target version changed from Vega to 3.01.00

#5 Updated by Kyle Knoepfel about 1 year ago

  • Target version changed from 3.01.00 to 3.02.00

#6 Updated by Kyle Knoepfel 9 months ago

  • Status changed from Resolved to Closed


Also available in: Atom PDF