Project

General

Profile

Idea #22059

Idea #21923: With a few code changes, we could support multiple logger processes sending events to the Dispatcher

Implement filename wildcards in RootDAQOut

Added by Eric Flumerfelt over 1 year ago. Updated over 1 year ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Additional Functionality
Target version:
Start date:
03/05/2019
Due date:
% Done:

0%

Estimated time:
Experiment:
-
Duration:

Description

The sample modifications to RootDAQOut_module.cc are on the feature/21923_MultipleLoggersToDispatcher branch in the artdaq repo.

The scheme that I used for substitutions is to use ${<keyword>} in the filename pattern. Other ideas for the substitution pattern may be better.
The currently supported substitutions are the following:

${Rank} is replaced with the process rank
${ZeroBasedRelativeRank} is replaced with the zero-based relative rank of the current logger progess. This substitution needs the "firstLoggerRank" parameter to be set in the config document.
${OneBasedRelativeRank} is replaced with the one-based relative rank of the current logger progess. This substitution needs the "firstLoggerRank" parameter to be set in the config document.

I will commit sample mediumsystem_with_routing_master config files that use some of these substitutions, and I also need to talk with John about the possibility of book-keeping the firstLoggerRank config parameter.

In addition to the 'fixed' substitutions mentioned above, user-defined substitutions are also supported. Here is a sample:


  normalOutput: {
    module_type: RootDAQOut
    fileName: "/tmp/artdaqdemo_r%06r_sr%02s_%#_dl${OneBasedRelativeRank}_${DataDisk}_${ExtraSuffix}.root" 
    fileProperties: { maxSubRuns: 1 maxRuns: 1 maxSize: 8192000 maxEvents: 1000 }
    fastCloning: false
    compressionLevel: 0
    firstLoggerRank: 6
    fileNameSubstitutions:
    [
      {
        targetString: "DataDisk" 
        replacementList:
        [
          { appName: "DataLogger1_art1" newString: "data0" },
          { appName: "DataLogger2_art1" newString: "data1" }
        ]
      },
      {
        targetString: "${ExtraSuffix}" 
        replacementList:
        [
          { appName: "DataLogger1_art1" newString: "hello" },
          { appName: "DataLogger2_art1" newString: "world" }
        ]
      }
    ]
  }

History

#1 Updated by Eric Flumerfelt over 1 year ago

  • Status changed from Resolved to Reviewed
  • Category set to Additional Functionality

#2 Updated by Eric Flumerfelt over 1 year ago

  • Target version set to artdaq v3_04_00
  • Status changed from Reviewed to Closed


Also available in: Atom PDF