Running artdaqDriver - art-daq/artdaq GitHub Wiki
Running artdaqDriver
See also [[artdaq-demo:Running a sample artdaq-demo system#artdaqDriver: a lightweight executable for testing]].
ArtdaqDriver is a single process which starts “fragment generator
threads” as they would appear in the BoardReader
process. Additionally, it starts a thread which is similar to the
datalogger thread that starts an artdaq process
to write a data file. So, configuration for:
- the fragment generator
- data logger art process and
- overall control of the fragment generator
must be supplied.
This configuration is similar to configuration in the separate
BoardReader and DataLogger processes.
It would be nice to be able to take the BoardReader configuration and
run it directly under artdaqDriver.
The closest to this would be to take the fhicl snippet below and combine
it with the BoardReader fhicl
with the “daq:” table stripped:
Take the following and create “driver.fcl”
echo '
events_to_generate: 100000000
run_number: 101
debug_cout: true
transition_timeout: 30
event_builder: {
expected_fragments_per_event: 1
max_fragment_size_bytes: 0x200000
buffer_count: 20
use_art: true
print_event_store_stats: false
verbose: true
events_expected_in_SimpleQueueReader: @local::events_to_generate
send_requests: false
}
physics: {
analyzers:{}
producers:{}
p1: [ ]
a1: [ ]
e1: [ rootout ]
#end_paths: [ e1 ]
end_paths: [ ]
}
outputs: {
rootout: {
module_type: RootOutput
fileName: "/data1/sbnddriveir1.root"
fastCloning: false
compressionLevel: 0
}
out1: {
module_type: FileDumperOutput
wantProductFriendlyClassName: true
}
}
source: {
module_type: SBNDDAQInput
waiting_time: 900
resume_after_timeout: true
}
' >driver.fcl
Then combine it with the stripped BoardReader (for example pmtx01.fcl) creating pmtx01_driver.fcl:
( awk '/daq:/{next}{if(prv)print prv;prv=$0}' pmtx01.fcl; cat driver.fcl ) >|pmtx01_driver.fcl
Then run artdaqDriver with the resulting .fcl file:
artdaqDriver -c pmtx01_driver.fcl