Skip to content

The interface between dunedaq::appfwk and DuneTriggers. Defines queues etc.

Notifications You must be signed in to change notification settings

jcfreeman2/DAQDuneTriggers

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DAQDuneTriggers

Broad overview / Philosophy

This package is the prototype interface between DuneTriggerAlgs (https://github.com/plasorak/DuneTriggerAlgs) and appfwk (https://github.com/DUNE-DAQ/appfwk). This is where the queues, DAQModule and their are implemented.

This package also is the interface in the case you want to simulate the trigger decision process and feed in simulated TPs. The implementation of that happens in DuneTriggerMCGenerators (https://github.com/plasorak/DuneTriggerMCGenerators, I know, it doesn't exist yet).

Installation

To install you need to first have the application framework, you can find instructions here: https://github.com/DUNE-DAQ/appfwk/wiki/Compiling-and-running You can omit the listrev package:

git clone https://github.com/DUNE-DAQ/listrev.git
./build_daq_software.sh --install --pkgname listrev

Then, you need to build DuneTriggerAlgs, which is a dependency of this package, the way to do that is here (well, not really, but soon): https://github.com/plasorak/DuneTriggerAlgs

Optionally, you can install DuneTriggerMCGenerators: https://github.com/plasorak/DuneTriggerMCGenerators, you should get a warning if you don't, but you can ignore it unless you really want the MC generators.

Finally, you should go back to the place called "MyTopDir" in the first link from the appfwk instruction, and do

git clone [email protected]:plasorak/DAQDuneTriggers.git
./build_daq_software.sh --install --pkgname DAQDuneTriggers

Hopefully, you didn't get any errors and you now have everything compiled.

Running

Logging from fresh shell, execute . ./setup_runtime_environment from MyTopDir, and then:

daq_application -c QueryResponseCommandFacility -j DAQDuneTriggers/conf/simplest_trigger.json

Or any other json file in DAQDuneTriggers/conf

Implementation

What actually happens behind the scene is the following:

  • Queues are setup, these queues are Multiple Producer - Multiple Consumer (MPMC). They hold collections of objects that are needed for making trigger decisions
  • DAQModule as setup, these are the stuff that "do the work". They produce TPs, TAs, TCs and TDs. Each have at least 2 threads, one which is responsible to receive the commands and another one that does the job.
  • Each of the DAQModule are assigned input or output queue, which they should read from and/or write to.

I think this is simple enough to understand from any json file, so have a look in the conf file (but sadly we can't comment in json).

About

The interface between dunedaq::appfwk and DuneTriggers. Defines queues etc.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 95.6%
  • CMake 4.4%